iptables防火墙应用案例

iptables防火墙应用案例

案例1:公司拥有一个公有IP,使用防火墙实现局域网中所有的主机通过SNAT共享上网,我们使用CentOS6.3作为公司软路由,公司内部所有192.168.0.0/24网段内的主机连接外网时,防火墙自动将所有数据包的原地址修改为路由器上的公有IP,最后互联网将信息返回路由后,由路由再转交给真正的后端主机。防火墙原地址(SNAT)规则需要被写入到NAT表的POSTROUTING链。

操作:开启路由转发功能

vi /etc/sysctl.conf

net.ipv4.ip_forward=1

sysctl -p

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

案例2:公司对外有一个公网IP,内部有HTTP、MAIL两台核心服务器,通过防火墙实现客户可以从互联网的任意位置访问位于公司内部的两台服务器资源,只是连接的方向发生了变化,案例1是源地址转换(SNAT),本例是目标地址转换(DNAT)

操作:开启路由转发功能

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

案例3:数据包因为太大无法一次完成数据的传输,此时数据包将被分割为数据片段再发送出去。接收端接收完数据后,将把这些数据片段重新组合成完整的数据包。但问题在于当数据被分割后,只有前面的初始数据片段包含全部的数据头部信息(IP、TCP、UDP、ICMP等),后续的数据片段仅包含数据包头部信息的一部分。这时再去检查后续数据片段的头部信息是不可能的。当然,如果你想匹配第二个及后面被分片的数据,可以使用”-f”选项丢弃发送至192.168.1.1的所有数据以及分片数据:

iptables -A OUTPUT -f -d 192.168.1.1 -j DROP

案例4:目前网络上的攻击手法层出不穷,很多攻击会采用发送大量无效的数据包给服务器,造成服务器无法响应正常的请求包,iptables提供了一个limit扩展功能,可以限制单位时间内数据包的个数。下面的规则是当每秒钟数据包个数为500时接收入站规则,否则拒绝连接。

iptables -I INIPUT -m limit –limit 500/sec -j ACCEPT

iptables -P INPUT DROP

案例5:企业环境中,服务器会面临各种各样的攻击,iptables本身属于三层包过滤防火墙,但也提供了string扩展功能,通过–string也可以根据关键词限制网络连接。将下面两条记录写入基于Linux的软路由服务器防火墙规则中,实现拒绝转发包含有关键词/etc/passwd以及qq的数据包,也就是防止将密码文件复制出局域网,并防止内部员工访问QQ网站。

iptables -I FORWARD -m string –algo bm –string “/etc/passwd” -j REJECT

iptables -I FORWARD -m string –algo bm –string “qq” -j REJECT

案例6:根据数据连接状态设置防火墙规则,放行所有的出站数据包。拒绝入站的新连接与无效连接,放行入站的回应请求。

iptables -F

iptables -I INPUT -m state –state NEW -j DROP

iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -P OUTPUT ACCEPT

案例7:公司采用基于Linux的软路由设备,要求在路由设备上设置防火墙规则,记录192.168.0.1至192.168.0.22地址段内所有主机发送给路由要求转发的数据包,并允许转发这些数据包。

iptables -A FORWARD -m iprange –src-range 192.168.0.1-192.168.0.22 -p tcp –dport 80 -j LOG

iptables -A FORWARD -m iprange –src-range 192.168.0.1-192.168.0.22 -p tcp –dport 80 -j ACCEPT

发表评论

电子邮件地址不会被公开。 必填项已用*标注

😉😐😡😈🙂😯🙁🙄😛😳😮:mrgreen:😆💡😀👿😥😎😕