iptables學習筆記
Netfilter:是Linux操作系統核心層內部的一個數據包處理模塊。
Hook point:數據包在Netfilter中的掛載點。(PRE_ROUTIN
,INPUT,OUTPUT,FORWARD,POST_ROUTING)
iptables 規則組成:四張表+五條鏈(Hook point)+規則
四張表:filter表、nat表、mangle表、raw表
五條鏈:INPUT OUTPUT FORWARD PREROUTING POSTROUTING
PREROUTIN 進 如果流量localhost(本地) ——》INPUT 鏈
如果流量不是本地——》FORWARD鏈
POSTROUTIN 出
規則:
數據包訪問控制:ACCEPT(接收)、DROP(丟棄)、REJECT(拒絕)
數據包改寫:SNAT(源地址)、DNAT(目標地址)
信息紀錄:LOG
Command:
-A :追加新紀錄
-D:刪除
-L:顯示當前規則
-F:清楚現有規則
-P:設置默認規則
-I:插入新規則
Parameter&xmatch
-P 協議
-s 源地址
-d 目標地址
–sport 源端口
–dport 目標端口
–dports 目標端口段
-m tcp|state|multiport
Target
-j ACCEPT 運行通過
DROP 丟棄
REJECT 拒絕
DNAT
SNAT
實例:
Iptables 配置場景一
規則1、對所有的地址開放本機tcp(80、22、10-21)端口的訪問
規則2、允許對所有的地址開放本機的基于ICMP協議的數據包訪問
規則3、其他未被允許的端口規則禁止訪問
Iptables -nL
Iptables -F
Iptables -I INPUT -p tcp –dport 80 -j ACCEPT
Iptables -I INPUT -p tcp –dport 22 -j ACCEPT
Iptables -I INPUT -p tcp –dport 10:21 ACCEPT
Iptables -I INPUT -p icmp -j ACCEPT
Iptables -A INPUT -j REJECT
場景一存在的問題:
1、本機無法訪問本機
Iptables -I INPUT -i lo -j ACCEPT
2、本機無法訪問其他主機
Iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
補充:在場景一的基礎上,只允許192.168.0.100訪問本機的httpd服務
Iptables -D INPUT -p tcp –dport 80 -j ACCEPT
Iptables -I INPUT -p tcp -s 192.168.0.100 –dport 80 -j ACCEPT
Iptables 配置場景二
1、ftp主動模式下iptables配置
2、ftp被動模式下iptables配置
Iptables 配置場景三
要求一:員工作公司內部(192.168.1.0/24,192.168.2.0/24)能訪問服務器的任何服務
要求二:當員工出差例如在上海,通過VPN連接到公司外網(員工)===撥號到===VPN服務器++=》內網FTP,SAMBA,NFS,SSH
要求三:公司有一個門戶網站需要允許公網訪問
iptables -F
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -j ACCEPT
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT
iptables -nL
/etc/init.d/iptables save
Snat
Nat轉發 設置/etc/sysctl.conf net.ipv4.ip_forward=1 默認為0
Iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT –to 10.10.188.232
Dnat
Iptables -t nat -A PREROUTING -d 10.10.188.233 -p tcp –dport 80 -j DNAT –to 10.10.177.232:80
iptables -I INPUT -p TCP –syn –dport 80 -m connlimit –connlimit-above 100-j REJECT
場景:限制10個icmp包通個,如果大于10個包就現在速度 每分鐘5個
Iptables -A INPUT -p icmp -m limit –limit 1/m –limit-burst 10 -j ACCEPT
Iptables -A INPUT -p icmp -j DROP
原創文章,作者:luobocai,如若轉載,請注明出處:http://www.www58058.com/49664