發新話題

linux 核心 iptables 的範例

linux 核心 iptables 的範例

iptables 是 linux 核心 2.4 以上所提供的工具,它能提供絕大部份的防火牆所擁有的功能,大致上可分為五類:

1. 過濾

2. 偽裝

3. 重新導向

4. 封包重組

5. 記綠

以上相同的功能,市面上所謂的防火牆 ( 包括軟硬體 ) 的售價可是很貴的!



iptables 檔案路徑

/etc/sysconfig/iptables



寫成 shell script 檔

將定義好的規則寫成 shell script 檔,並將它命名為 ipt.sh,方便以後的管理。存檔後記得要賦予可以執行的權限:

[root@linus ~]# chmod 700 ipt.sh



開機時自動套用規則

如果要自動套用所寫好的 shell script 檔,可執行以下指令:

[root@linus ~]# ./ipt.sh  <== 將規則寫入 iptables 表內。這是只套用在這一次的啟動中的意思

[root@linus ~]# service iptables save  <== 這是將所定義好的規則記錄到 /etc/sysconfig/iptables 裏,以後只要 iptables 啟動時,就會執行所定義的規則



iptables 規則範例
注意!以下紅字前方是兩個 『-』 的符號而且沒有空格哦。不曉得是什麼原因,在 wordpress.com 提供的空間上只顯現出一個 『-』 的符號,好怪?

# 清除所有防火牆規則,並建立全部阻擋封包進入
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP

# 所有的來自 lo 這個介面的封包,都予以接受
iptables -A INPUT -i lo -j ACCEPT

# 對於自己所產生的連線,並且後續的要求封包都接受
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

# 對於 ping 要求的封包全部拒絕,不過對於自己發出去的 ping 封包要接受
iptables -A INPUT -p icmp –icmp-type 8 -j DROP
iptables -A INPUT -p icmp –icmp-type 0 -j ACCEPT

# 開放 ftp (20,21) ,ssh (22),http (80) ssl (443) 的 tcp port
iptables -A INPUT -s 0/0 -p tcp –dport 20 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp –dport 21 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -s 0/0 -p tcp –dport 443 -j ACCEPT

# 開放 bind DNS (53) 的 udp port
iptables -A INPUT -s 0/0 -p udp –dport 53 -j ACCEPT

# 不正確的封包擋掉
# 擋掉 scan port 的程式
iptables -A INPUT -i eth0 -m state –state RELATED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -m state –state NEW,INVALID -j DROP
iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL ALL -j DROP
iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -i eth0 -p tcp –tcp-flags ALL NONE -j DROP
iptables -A INPUT -i eth0 -p tcp –tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -i eth0 -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP

# 擋掉某些 IP 的所有連線
iptables -A INPUT -s 61.62.63.64 -j REJECT –reject-with icmp-host-prohibited
iptables -A INPUT -s 65.66.67.68 -j REJECT –reject-with icmp-host-prohibited

# 拒絕本機連線到特定的機器或是特定的服務
iptables -A INPUT -d 140.111.1.1 -p tcp -j DROP

# 開啟並限制 NAT 的功能
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.100.0/24 -j MASQUERADE

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。