Iptables - 基礎應用

 

iptables命令是Linux上常用的防火牆軟件,是netfilter項目的一部分。

 

表名包括:

raw:高級功能,如:網址過濾。
mangle:數據包修改(QOS),用於實現服務質量。
net:地址轉換,用於網關路由器。
filter:包過濾,用於防火牆規則。

規則鏈名包括:

INPUT鏈:處理輸入數據包。
OUTPUT鏈:處理輸出數據包。
PORWARD鏈:處理轉發數據包。
PREROUTING鏈:用於目標地址轉換(DNAT)。
POSTOUTING鏈:用於源地址轉換(SNAT)。

動作包括:

ACCEPT:接收數據包。
DROP:丟棄數據包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址轉換。
DNAT:目標地址轉換。
MASQUERADE:IP僞裝(NAT),用於ADSL。 LOG:日誌記錄。
 

安裝iptables-services並啓動服務,保存防火牆規則。

yum -y install iptables-services
systemctl start iptables.service
systemctl enable iptables.service
service iptables save
防火牆規則存放文件:/etc/sysconfig/iptables

 

實例:K8S添加iptables防火牆策略

#a) 查看當前iptables規則
iptables -L -n --line-number
 
#b) 插入禁止訪問的端口規則並允許本機訪問
iptables -I INPUT -p tcp -m multiport --dports 6443,2379:2381,10250:10259 -j DROP
iptables -I INPUT -p tcp -s 127.0.0.1 -m multiport --dports 6443,2379:2381,10250:10259 -j ACCEPT
iptables -I INPUT -p tcp -s `hostname -i` -m multiport --dports 6443,2379:2381,10250:10259 -j ACCEPT
 
#c) 對特定IP解除6443訪問限制(Flannel和工作節點)
iptables -I INPUT -p tcp -s 10.244.0.0/16 --dport 6443 -j ACCEPT
iptables -I INPUT -p tcp -s 10.3.61.189,10.3.61.192 --dport 6443 -j ACCEPT
 
#d) 開機自動添加防火牆規則(k8s_iptables.sh爲上述命令)
chmod +x /etc/rc.d/rc.local
echo ". /etc/kubernetes/k8s_iptables.sh" >>/etc/rc.d/rc.local

 

 

常見的模塊拓展-m iprange 、-m multiport

1)指定-m multiport就可以使用--dports、--sports
標準的--dport與--sport使用方式: 80、80:90、:80、90:
擴展的--dports與--sports使用方式:以上組合,使用冒號來分離。
iptables -I INPUT -p tcp -m multiport --dports 6443,2379:2380,10250:10259 -j DROP
2)指定-m iprange就可以使用--src-range 、--dst-range
標準的-s 使用方式:192.168.1.1、192.168.1.0/24、192.168.1.2,10.1.1.1、(192.168.1.1,10.1.1.0/24)
擴展的--src-range使用方式:192.168.1.5-192.168.1.6
iptables -A INPUT -p tcp --dport 6443 -m iprange --src-range 10.3.61.189-10.3.61.192 -j ACCEPT

 

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