linux防火墙限制向外发包,Vpsadd教程:Linux防火墙iptables安全问题设置如禁止PING与向外发包...

Vpsadd教程:Linux防火墙b4d6ea1228d114aa0e1effc157225325.png

iptables

-t

filter: 顾名思义,用于过滤的时候

nat: 顾名思义,用于做 NAT 的时候

-A、-I、-D、-R、-P、-F

APPEND,追加一条规则

INSERT,插入一条规则

DELETE,删除一条规则

REPLACE,替换一条规则

POLICY,设置某个链的默认规则

FLUSH,清空规则

INPUT: 位于 filter 表,匹配目的 IP 是本机的数据包

FORWARD: 位于filter 表,匹配穿过本机的数据包,

PREROUTING: 位于 nat 表,用于修改目的地址(DNAT)

POSTROUTING:位于 nat 表,用于修改源地址 (SNAT)

-i、-o

流入、流出接口

-i ppp0

-s、-d

来源、目的地址

-s192.168.0.1 匹配来自 192.168.0.1 的数据包

-s 192.168.1.0/24 匹配来自 192.168.1.0/24网络的数据包

-p

协议类型

-p icmp –icmp-type 类型

-p tcp

–sport、–dport

来源、目的端口

–sport1000 匹配源端口是 1000 的数据包

–sport 1000:3000 匹配源端口是 1000-3000的数据包(含1000、3000)

–sport:3000 匹配源端口是 3000 以下的数据包(含 3000)

–sport1000: 匹配源端口是 1000 以上的数据包(含 1000)

-m

state –state NEW、RELATED、ESTABLISHED、INVALID

mac –mac-source xxxxxxx

limit –limit 50/s

-m multiport –dports 21,22,25,80,110

-j

ACCEPT

DROP

SNAT

DNAT

MASQUERADE

典型应用:

iptables -t nat -A PREROUTING -i ppp0 -p tcp –dport 80 \

-j DNAT –to192.168.1.1

做dnat,内网提供web服务

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 \

-j SNAT –to1.1.1.1

做snat,为内网提供上网服务

-L [链名]

LIST,列出规则

v:显示详细信息,包括每条规则的匹配包数量和匹配字节数

x:在 v的基础上,禁止自动单位换算(K、M)

n:只显示 IP地址和端口号码,不显示域名和服务名称

所有链名必须大写

INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING

所有表名必须小写

filter/nat/mangle

所有动作必须大写

ACCEPT/DROP/SNAT/DNAT/MASQUERADE

所有匹配必须小写

-s/-d/-m/-p/–sport/–dport

一、利用iptables规则禁ping

iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -j DROP

二、利用iptables规则,禁止服务器向外发包,防止DDOS向外攻击

iptables -I OUTPUT -p udp –dport 53 -d 8.8.8.8 -j ACCEPT #允许UDP服务IP

iptables -A OUTPUT -p udp -j DROP #禁止udp服务

上述53端口和8888是DNS服务必须有的,如果不清楚本机的DNS设置,可执行以下命令得到IP:

cat /etc/resolv.conf

DoS攻击防范

利用扩展模块limit,我们还可以配置iptables规则,实现DoS攻击防范:

iptables -A INPUT -p -tcp –dport 80 -m limit –limit 25/minute –limit-burst 100 -j ACCEPT

–litmit 25/minute 指示每分钟限制最大连接数为25

–litmit-burst 100 指示当总连接数超过100时,启动 litmit/minute 限制

利用iptables规则,禁止服务器向外发包,防止DDOS向外攻击,如果服务使用了邮件发送类似wordpress的SMTP的话,最好别用两条命令,否则会发不出邮件。