Iptables 实用案例

Published on 2015 - 06 - 10

Iptables 实用案例

iptables 开放端口、SNAT软路由、DNAT、limit防攻击、关键词过滤使用案例

允许访问服务器提供的HTTP、HTTPS、DNS、NTP、SMTP、POP3、SSH,其余拒绝,允许所有出站

开放 80端口、143端口、53端口、123端口、25端口、110端口、22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -j ACCEPT
iptables -A INPUT -p udp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

SNAT 代理内网上网

开启内核转发

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

配置Iptables

iptables -t nat -I POSTROUTING -s 192.168.0.0/24 -j --to-source 124.126.199.84

DNAT

说明:内网有HTTP、MAIL两台核心服务器,通过防火墙实现客户端可以从互联网的任意位置访问位于公司内部的两台服务器资源

开启内核转发

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

添加防火墙规则

iptables -t nat -I PREROUTING -d 124.126.199.84 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.100
iptables -t nat -I PREROUTING -d 124.126.199.84 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.101
iptables -t nat -I PREROUTING -d 124.126.199.84 -p tcp --dport 110 -j DNAT --to-destination 192.168.0.101

limit防攻击

限制每秒钟数据包个数为500时 接受入站连接,否则拒绝连接。 用以防止黑客采用发送大量无效的数据包给服务器,造成服务器无法访问。
iptables -I INPUT -m limit --limit 500/sec -j ACCEPT
iptables -P INPUT DROP

关键词过滤,检测到相应关键词拒绝数据包

设置拒绝包含关键词 “/etc/passwd”以及QQ的数据包

iptables -I FORWARD -m string --algo bm --string "/etc/passwd" -j REJECT
iptables -I FORWARD -m string --algo bm --string "qq" -j REJECT

Iptables 记录数据转发日志

iptables -A FORWARD -m iprange --src-range 192.168.0.1-192.168.0.254 -p tcp --dport 80 -j LOG
iptables -A FORWARD -m iprange --src-range 192.168.0.1-192.168.0.254 -p tcp --dport 80 -j ACCEPT

Iptables 备份与还原

iptables-save  /etc/sysconfig/iptables     #保存
iptables-save  firewall.bak                #备份
iptables-restore  firewall.bak             #还原