Linux的iptables常用配置範例(3)

編輯/etc/rc.local,加入iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE,外網口eth1爲dhcp獲得IP。

進入本機的數據包爲INPUT,從本機發送出去的數據包爲OUTPUT,只是路由的包爲FORWARD;防火牆就是基於這3個過濾點來操作的。

對於包的操作有:目標(Target)、丟棄(DROP)、接受(ACCEPT)、彈回(REJECT)、日誌(LOG)……等等,比如iptables -A INPUT -p icmp -j DROP(-A代表添加到的過濾點 -p針對的協議類型;此條命令的作用是禁ping),通常是拒絕所有,再一個一個的打開。

iptables -F 清空所有規則

iptables -A INPUT -p tcp -d 10.0.0.1 –dport 21 -j DROP (本機地址爲10.0.0.1,此條規則爲拒絕所有發送到本機TCP 21端口的數據包,即關閉FTP服務)

iptables -A INPUT -p tcp -s 10.0.0.1 –dport 21 -j DROP (此條規則爲拒絕所有發送至10.0.0.1的TCP 21端口的數據包)

==================================

(本機,即服務器的地址爲10.0.0.1)

iptables -A INPUT -p tcp -d 10.0.0.1 –dport 22 -j ACCEPT #允許別人訪問22端口

iptables -A OUTPUT -p tcp –sport 22 -m state –state ESTABLISHED -j ACCEPT #和自己建立過22端口連接的包纔給與迴應,防止病毒利用22端口,不允許本地22端口主動產生包發出去

iptables -A INPUT -p tcp –sport 22 -m state –state ESTABLISHED -j ACCPET #只接收ssh服務迴應自己SSH請求的迴應包

iptables -P INPUT DROP #丟棄所有的input包

iptables -P OUTPUT DROP #丟棄所有的OUTPUT包

iptables -P FORWARD DROP #丟棄所有的FORWARD包

iptables -L -n #查看所有鏈路信息,如果再加“–line-numbers”則顯示編號

iptables -A INPUT -p tcp -d 10.0.0.1 –dport 80 -j ACCEPT #允許別人訪問80端口

iptables -A OUTPUT -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT #和自己建立過80端口連接的包纔給與迴應,防止病毒利用80端口,不允許本地80端口主動產生包發出去

iptables -A OUTPUT -p udp -s 10.0.0.1 –dport 53 -j ACCEPT #允許向DNS服務器發送同步數據包

iptables -A OUTPUT -p udp –sport 53 -j ACCEPT #對於自己53端口發送的請求包通過(自己是DNS服務器時)

iptables -A INPUT-p udp –dport 53 -j ACCEPT #允許別人訪問自己的53端口(自己是DNS服務器時)

iptables -A INPUT -p udp –sport 53 -j ACCEPT #允許接收DNS服務器的返回包

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允許自己通過環回口訪問自己的所有服務

iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允許自己通過環回口訪問自己的所有服務

iptables -I INPUT 1 -p tcp –dport 22 -j LOG –log-level 5 –log-prefix “iptables:” #爲22端口的INPUT包增加日誌功能,插在input的第1個規則前面,一定要保證在提交到日誌之前,沒有相同接收或者丟棄包

vi /etc/syslog.conf #編輯日誌配置文件,添加kern.=notice   /var/log/firewall.log(log-level 5爲notice,詳情man syslog)

service syslog restart #重啓日誌服務

tail /var/log/firewall.log -f #查看日誌

iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT #從局域網發給互聯網的包全部轉發

iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT #從互聯網發送給局域網的包全部轉發

還需要打開/proc/sys/net/ipv4/ip_forward 讓裏面的值變爲1(默認值是0),打開轉發,此方法是臨時生效

vi /ect/sysctl.conf #打開系統配置文件,編輯net.ipv4.ip_forward = 1,此方法是永久生效

iptables -t nat -L -n #查看iptables的nat表

service iptables save #永久性的保存規則,等同於iptables-save > /etc/sysconfig/iptables

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章