2.11使用filter机制来构建网关式防火墙
假设10.0.1.100是Internet上的一台主机,且其上运行了smtp,pop3及http三项服务,由于我们尚未介绍nat机制,因此本示例先假设企业内使用的ip是公网IP,其网段是192.168.0.0/24.
环境需求:
1.192.168.0.200这台主机只能访问10.1.1.100主机的smtp及pop3服务.
2. 192.168.0.0/24网段上的其他主机只可以访问Internet上的DNS,SMTP,POP3,HTTP及https服务.
3.Internet上的主机不得访问企业内的任何主机.
图:2-33网关式防火墙(这里以10.0.1.0/24网段做为外网)
1.#/bin/bash \\设置shell解释器的路径
#===============================<Set Variable>>=============
2.IPT=/sbin/iptables
3.MAIL_SRV=10.0.1.100
4.ACC_PC=192.168.0.200 \\设置变量
#===============================<Set Default Policy>=================
5.$IPT -t filter -P INPUT DROP \\设置INPUT链默认策略为DROP目的使用网关式防火墙来保护及限制企业内的主机
6.$IPT -t filter -P FORWARD DROP \\设置FORWARD链的默认策略为DROP目的是以严格的方式来管制企业对外的连接
#===============================<Clear Original Rule>===============
7.$IPT -t filter -F \\清除原有的防火墙的规则
#===============================<Set INPUT RULE>===============
8.$IPT -A INPUT -p tcp -m state --state INVALID -j DROP \\将状态INVALID数据包丢弃
9.$IPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT \\允许ESTABLISHED,RELATED状态的数据包正常返回
#===============================<Set FORWARD RULE>============
10.$IPT -A FORWARD -i eth0 -o eth1 -m state --state INVALID -j DROP \\将所有从Internet送到企业内部且状态是INVALID数据包丢弃
11.$IPT -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j \ACCEPT \\允许所有由企业内部对外建立连接时所产生的应答数据包正常返回企业内部
12.$IPT -A FORWARD -i eth1 -o eth0 -p tcp -s $ACC_PC -d $MAIL_SRV --dport \ 25:110 -j ACCEPT
13.$IPT -A FORWARD -i eth1 -o eth0 -p all -s $ACC_PC -j DROP \\设置192.168.0.200主机只能访问Internet上10.0.1.100这台主机的SMTP,及POP3服务
14.$IPT -A FORWARD -i eth1 -o eth0 -p tcp --dport 25,110 -j ACCEPT
15.$IPT -A FORWARD -i eth1 -o eth0 -p tcp --dport 80,443 -j ACCEPT
16.$IPT -A FORWARD -i eth1 -o eth0 -p udp --dport 53 -j ACCEPT \\在192.168.0.0/24网段中的主机只能访问Internet上的SMTP,POP3,HTTP,HTTPS及DNS服务
本笔记为一书 《Linux网络安全技术与实现(第2版)》第二章前部分,目的为了方便自己以后查看,同时也分享出来,希望对大家有帮助。笔记不免有所遗漏,欢迎大家指正。
转载于:https://blog.51cto.com/linchao52/1212716