實驗案例:公司使用一臺運行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