歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux Iptables使用整理

Linux Iptables使用整理

日期:2017/2/28 15:50:07   编辑:Linux教程


filter: 顧名思義,用於過濾的時候
nat: 顧名思義,用於做NAT 的時候
NAT:Network Address Translator

INPUT: 位於filter 表,匹配目的IP 是本機的數據包
FORWARD: 位於filter 表,匹配穿過本機的數據包,
PREROUTING: 位於nat 表,用於修改目的地址(DNAT)
POSTROUTING:位於nat 表,用於修改源地址(SNAT)

-A <鏈名>
APPEND,追加一條規則(放到最後)
例如:
iptables -t filter -A INPUT -j DROP

iptables -D INPUT 3(按號碼匹配) //刪除
iptables -D INPUT -s 192.168.0.1 -j DROP(按內容匹配)

iptables -R INPUT 3 -j ACCEPT //替換

匹配條件
£流入、流出接口(-i、-o)
£來源、目的地址(-s、-d)
£協議類型(-p)
£來源、目的端口(--sport、--dport)

-p tcp
-p udp
-p icmp --icmp-type 類型
ping: type 8 pong: type 0


匹配應用舉例
1、端口匹配
-p udp --dport 53
匹配網絡中目的端口是53 的UDP 協議數據包
2、地址匹配
-s 10.1.0.0/24 -d 172.17.0.0/16
匹配來自10.1.0.0/24 去往172.17.0.0/16 的所有數據包
3、端口和地址聯合匹配
-s 192.168.0.1 -d www.linuxidc.com -p tcp --dport 80
匹配來自192.168.0.1,去往www.linuxidc.com 的80 端口的TCP 協議數據包
注意:
1、--sport、--dport 必須聯合-p 使用,必須指明協議類型是什麼
2、條件寫的越多,匹配越細致,匹配范圍越小

NAT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.0.1
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to 192.168.0.2:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.0.1-192.168.0.10


SNAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1
將內網192.168.0.0/24 的原地址修改為1.1.1.1,用於NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1-1.1.1.10
同上,只不過修改成一個地址池裡的IP


MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
將源地址是192.168.0.0/24 的數據包進行地址偽裝


state
-m state --state 狀態
狀態:NEW、RELATED、ESTABLISHED、INVALID
NEW:有別於tcp 的syn,包將要或已經開始建立一個新的連接,或者是這個包和一個還沒有在兩端都有數據發送的連接有關.注意NEW狀態並不在試圖建立新連接的TCP包裡尋找SYN標記
ESTABLISHED:包是完全有效的,而且屬於一個已建立的連接,這個連接的兩端都已經有數據發送。
RELATED:衍生態,與conntrack 關聯(FTP),說明包正在建立一個新的連接,這個連接是和一個已建立的連接相關的.比如:FTP data transfer
INVALID:意味著這個包沒有已知的流或連接與之關聯,也可能是它包含的數據或包頭有問題,
例如:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


mac:iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
limit:iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT


multiport
iptables -A INPUT -p tcp -m multiport --dports 21,22,25,80,110 -j ACCEPT
注意:必須與-p 參數一起使用


修改/etc/sysconfig/iptablses,不影響在線業務
#iptables-restore < /etc/sysconfig/iptables
#service iptables save

Copyright © Linux教程網 All Rights Reserved