实验目的:
使用iptables作为公司内网的网关,使内网用户可以正常访问外网。
内网有一台web服务器需要对外提供
内网有两台服务器部署了samba,ftp和dns服务,给内网用户使用
对192.168.1.10-192.168.1.50的用户限速
GW
192.168.1.200(连接外网) 192.168.2.1(连接内网)
WEB Server
192.168.2.202
Other Servers
192.168.2.101
192.168.2.102
一、配置WEB Server的防火墙规则:
目的:
只开放本机的tcp80端口
只允许192.168.2.100-192.168.2.120使用ssh登录
WEB服务器可以ping其他主机
添加规则:
192.168.2.202 上操作
iptables -t raw -A PREROUTING-d 192.168.2.202 -p tcp --dport 80 -j NOTRACK iptables -t raw -A OUTPUT -s192.168.2.202 -p tcp --sport 80 -j NOTRACK
//上面两条规则对匹配到的流量关闭连接追踪状态
iptables -A INPUT -d192.168.2.202 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -d192.168.2.202 -p tcp -m iprange --src-range 192.168.2.100-192.168.2.120 --dport22 -j ACCEPT iptables -A OUTPUT -s192.168.2.202 -p tcp -m multiport --sports 22,80 -j ACCEPT iptables -A INPUT -p icmp -d192.168.2.202 --icmp-type 0 -j ACCEPT iptables -A OUTPUT -p icmp -s192.168.2.202 --icmp-type 8 -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP
二、配置Other Servers的防火墙规则:
目的:
开放samba,ftp和dns服务
dns服务器之间可以实现主从复制
只允许192.168.2.100-192.168.2.120使用ssh登录
服务器可以ping其他主机
添加规则:
在192.168.2.101和192.168.2.102上操作
vim/etc/sysconfig/iptables-config
service iptables restart //加载模块
iptables -F //清空默认规则
添加规则:
在192.168.2.101上操作
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED-j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -jACCEPT iptables -A INPUT -d 192.168.2.101 -p tcp -m multiport--dports 21,53,139,145 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.101 -p udp -m multiport--dports 53,137:138 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.101 -p tcp -m iprange--src-range 192.168.2.100-192.168.2.120 --dport 22 -m state --state NEW -jACCEPT iptables -A INPUT -d 192.168.2.101 -p icmp --icmp-type 0-m state --state NEW -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -s 192.168.2.101 -p icmp --icmp-type 8-m state --state NEW -j ACCEPT iptables -A INPUT -s 127.0.0.1-p tcp --dport 953 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp -d 127.0.0.1 --dport 953 -jACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP
在192.168.2.102上操作
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED-j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -jACCEPT iptables -A INPUT -d 192.168.2.102 -p tcp -m multiport--dports 21,53,139,145 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.102 -p udp -m multiport--dports 53,137:138 -m state --state NEW -j ACCEPT iptables -A INPUT -d 192.168.2.102 -p tcp -m iprange--src-range 192.168.2.100-192.168.2.120 --dport 22 -m state --state NEW -jACCEPT iptables -A INPUT -d 192.168.2.102 -p icmp --icmp-type 0-m state --state NEW -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW-j ACCEPT iptables -A OUTPUT -s 192.168.2.102 -p icmp --icmp-type 8-m state --state NEW -j ACCEPT iptables -A INPUT -s 127.0.0.1-p tcp --dport 953 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp -d 127.0.0.1 --dport 953 -jACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP
三、配置GW:
确保已打开ip转发
vim/etc/sysctl.d/99-sysctl.conf //使ip转发永久生效
sysctl -p //立即生效
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 ! -d192.168.2.0/24 -j SNAT --to-source 192.168.1.200 iptables -t nat -A PREROUTING -d 192.168.1.200 -p tcp--dport 80 -j DNAT --to-destination 192.168.2.202 iptables -A FORWARD -m iprange--src-range 192.168.1.10-192.168.1.50 -m connlimit --connlimit-above 10 -j DROP
//限制内网用户发往外网的连接并发数(需要进一步验证)
iptables -A FORWARD -m iprange--dst-range 192.168.1.10-192.168.1.50 -m limit --limit 300/minute -j ACCEPT
//限制内网用户的下载速度(需要进一步验证)