实验案例:公司使用一台运行RHEL5系统的服务器作为网关,分别连接三个网络,其中LAN1为普通员工电脑所在的局域网,LAN2为DNS缓存服务器所在的局域网。eth0通过10M光纤接入Internet。为了有效的管理网络环境及增强内部网络的安全性,需要配置iptables防火墙规则实现IP地址和端口的过滤控制。网络拓扑如下:
需求描述:
入站控制:
1.允许Internet上的主机访问网关服务器的21、25、80、110、143端口。
2.允许IP地址为201.12.13.14的远程主机访问网关22端口,并记录访问日志(每15分钟记录一次)。
3.允许IP地址为192.168.1.5、MAC地址为00:0C:27:30:4E:5D的主机访问网关的22端口。
4.仅允许局域网主机(LAN1:192.168.1.0/24)访问3128端口的代理服务。
转发控制:允许LAN1的主机通过网关访问位于LAN2的DNS的服务器(192.168.2.2)。
其它任何非明确许可的数据包入站访问均予以丢弃;数据包出站访问均允许。
编写的iptables脚本如下:
- #!/bin/bash
- #This is the firewall configuration
- iptables -t nat -F
- iptables -F
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables -A INPUT -p tcp -m multiport --dport 21,25,80,110,143 -j ACCEPT
- iptables -A INPUT -p tcp --dport 22 -s 201.12.13.14 -j ACCEPT
- iptables -A INPUT -p tcp --dport 22 -m limit --limit 4/hour -j LOG
- iptables -A INPUT -p tcp --dport 22 -s 192.168.1.5 -m mac --mac-source 00:0C:27:30:4E:5D -j ACCEPT
- iptables -A INPUT -p tcp --dport 3128 -s 192.168.1.0/24 -j ACCEPT
- iptables -A FORWARD -p udp --dport 53 -s 192.168.1.0/24 -j ACCEPT
- iptables -A FORWARD -p udp --sport 53 -d 192.168.1.0/24 -j ACCEPT
最后还要开启Linux网关服务器的路由转发功能:
# vi /etc/sysctl.conf
net . ipv4 .ip_forward = 1
本文转自 kk5234 51CTO博客,原文链接:http://blog.51cto.com/kk5234/397029,如需转载请自行联系原作者