转自:
iptables实例
iptables应用案例分析(客户端上设置iptables)
iptables应用案例分析(包过滤服务器上设置iptables)
iptables应用案例分析(代理服务器上设置iptables)
禁止客户机访问不健康网站
【例1】添加iptables规则禁止用户访问域名为www.sexy.com的网站
iptables -I FORWARD -d www.sexy.com -j DROP
【例2】添加iptables规则禁止用户访问IP地址为.20的网站
iptables -I FORWARD -d .20 -j DROP
注意以下几点
(1)上面这两条iptables命令都省略了< -t table>,所以它们默认使用的是:-t filter
(2)上面这两条iptables命令中的chain,使用的是FORWARD链,为什么呢?因为本机不提供www.sexy.com的服务,所以不使用INPUT链,而使用FORWARD链
禁止某些客户机上网
【例1】添加iptables规则禁止IP地址为192.168.1.X的客户机上网
iptables -I FORWARD -s 192.168.1.X -j DROP
【例2】添加iptables规则禁止
192.168.1.0子网里所有的客户机上网
iptables -I FORWARD -s
192.168.1.0/24 -j DROP
禁止客户机访问某些服务
【例1】禁止192.168.1.0子网里所有的客户机使用FTP协议下载
iptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport 21 -j DROP
【例2】禁止192.168.1.0子网里所有的客户机使用Telnet协议连接远程计算机
iptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport 23 -j DROP
注意:-p与--dport或者--sport必须一起使用
强制访问指定的站点
【例】强制所有的客户机访问192.168.1.x这台Web服务器
iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.x:80
禁止使用ICMP协议
【例】禁止Internet上的计算机通过ICMP协议ping到NAT服务器的ppp0接口,但允许内网的客户机通过ICMP协议ping的计算机
iptables -I INPUT -i ppp0 -p icmp -j DROP
发布内部网络服务器
【例1】发布内网.3主机的Web服务,Internet用户通过访问防火墙的IP地址即可访问该主机的Web服务
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to-destination .3:80
【例2】发布内网10.0.0.3主机的终端服务(使用的是TCP协议的3389端口),Internet用户通过访问防火墙的IP地址访问该机的终端服务
iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT --to-destination .3:3389
#允许其它主机连接本终端的SSH服务(本终端为:SSH服务器)
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 22 -j ACCEPT
#允许本终端连接远程主机的SSH服务(本终端为:SSH客户端)
iptables -t filter -A INPUT -p tcp --sport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
#设置终端本地回环通行(因为本地回环地址:127.0.0.1,它提供了很多的服务,可通过netstat -autnlp查看)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
#允许本终端发送和接收ICMP数据包(ping指令)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
#允许本终端发送和接收DNS数据包(本终端为:DNS客户端)
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT
#允许本终端发送和接收httpd数据包(本终端为:web客户端)
iptables -t filter -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
#改变默认的策略规则(注意:一定要先设置上面的那些服务(特别是:SSH服务),再修改默认规则)
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP