Vpsadd教程:Linux防火墙iptables安全问题设置如禁止PING与向外发包
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<module_name>/-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的话,最好别用两条命令,否则会发不出邮件。