iptables配置

孤竹星發表於2017-06-15
filter表包含以下3條鏈:
INPUT鏈:過濾所有目標地址是本機的資料包,
forward鏈:過濾所有路過本機的資料包,也就是目的地址和源地址都不是本機的資料包,
OUTPUT鏈:過濾所有由本機產生的資料包,也就是源地址是本機的資料包,


nat表
nat表用於網路地址轉換,iptables可以進行以下的nat轉發:
DNAT:主要用於改變資料包的目的地址,以使資料包能重新路由到某臺主機,
SNAT:主要用於改變資料包的源地址,以幫助內部網路能連線到internet,
MASQUERADE和SNAT完全一樣,只是MASQUERADE會查詢可用的ip地址,而不像SNAT要有一個固定的ip,所以MASQUERADE一般用於adsl/ppp等拔號共享上網的方式



nat表包含以下3條鏈:
PREROUTING 鏈:可以在資料包到達防火牆的時候改變包的目標地址,
postrouting鏈:在資料包就要離開防火牆的時候改變資料包的源地址
OUTPUT鏈:可以改變本地產生的資料包的目標地址,


使用nat表 實現埠轉發
cat /proc/sys/net/ipv4/ip_forward 1 表示生效 0 標識不生效


vi /etc/sysctl.conf 修改net.ipv4.ip_forward為1
使修改生效
sysctl -p


例:將對IP192.168.169.112埠 8080的訪問轉發到192.168.169.111的80埠


112機器上執行
iptables -t nat -A PREROUTING --dst 192.168.169.112 -p tcp --dport 8080 -j DNAT --to-destination 192.168.169.111:80
iptables -t nat -A POSTROUTING --dst 192.168.169.111 -p tcp --dport 80 -j SNAT --to-source 192.168.169.112 

對來自192.168.169.101的icmp請求丟棄
iptables 語法:
iptables -t filter -A INPUT -p icmp -s 192.168.169.101 -j DROP
禁止icmp
iptables -t filter -A INPUT -p icmp  -j DROP

-A INPUT
-p icmp
-p Protocol(協議)
匹配某個特定協議封包,
語法:-p icmp ,-p tcp ,-p udp -p all


-s 192.168.1.10 
-s address[/mask] 源地址
-d address[/mask] 目的地址

-j 目標處理規則
常見的處理規則 
ACCEPT 允許透過
DROP 將封包丟棄調,這種處理方式將導致來源端誤以為封包丟失,而不斷重新傳送封包,這個動作將持續到連線Timeout為止
REJECT 將封包丟棄掉,並回送一個DestinationUnreachable的ICMP封包給傳送端,傳送端的應用程式收到這個錯誤資訊封包之後,會終止連線的動作

限制192.168.169.94 對本機的80埠進行訪問
iptables -t filter -A INPUT -p tcp -s 192.168.169.94 --dport 80 -j DROP

允許埠80訪問
iptables -t filter -A INPUT  -p tcp --dport 80 -j ACCEPT

清除filter表規則
iptables -F
清除nat 表規則
iptables -t nat -F

根據規則行號刪除規則
iptables -nvL --line-number
刪除行號為2的規則
iptables -D INPUT 2

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28282660/viewspace-2140792/,如需轉載,請註明出處,否則將追究法律責任。

相關文章