iptables的基本配置 ㈠ 基本操作 www.2cto.com 列出現有iptables策略 iptables -L 插入一條策略 iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT 注釋:所有使用TCP協議並且目標連接埠是22的流量全部允許通過的順序為3的策略 刪除一條策略 iptables -D INPUT 3 刪除所有策略(臨時生效) iptables -F 策略組成表:
㈡ 匹配參數 基於IP地址 -s 192.168.1.1(源地址) -d 192.168.1.0/24(目標地址) 基於介面 -i eth0(從eth0上接收的流量) -o eth1(從eth1上發送的流量) 排除參數 -s '!' 192.168.1.0/24(除192.168.1.0/24之外的所有網段) 基於協議以及連接埠 -p tcp --dport 23 (目標連接埠) -p udp --sport 53 (源連接埠) -p lcmp ㈢ 例子 www.2cto.com ① 控制到原生網路流量 iptables -A INPUT -s 192.168.1.100 -j DROP iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j DROP iptables -A INPUT -i eth0 -j ACCEPT ② 當使用linux作為路由(進行資料轉寄)裝置使用時,可以在過濾點FORWARD設定策略進行轉寄控制 如:禁止所有192.168.1.0/24到10.1.1.0/24的流量 iptables -A FORWARD -s 192.168.1.0/24 -d 10.1.1.0/24 -j DROP ③ NAT(網路位址轉譯)用來對資料包的IP地址進行修改的機制,NAT分為兩種: ● SNAT:源地址轉換,通常用於偽裝內部地址 ● DNAT:目標地址轉換,通常用於跳轉(負載平衡或者偽裝保護) iptables中實現NAT功能的是NAT表 DNAT只能作用在PROROUTING這個過濾點上 SNAT只能作用在POSTROUTING這個過濾點上 ★ 通過NAT進行跳轉: iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.1.10 ★ 通過NAT對出向資料進行跳轉: iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-dest 192.168.1.100:8080 ★ 通過NAT對資料流進行偽裝: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ★ 通過NAT隱藏源IP地址 iptables -t nat -A POSTROUTING -j SNAT --to-source 1.3.1.4 ㈣ 設定檔 通過iptables添加的策略並不會永久儲存 如果需要永久儲存策略,則需要將此記錄在設定檔中 /etc/sysconfig/iptables 通過以下命令可以把記憶體中的iptables策略全部寫入設定檔 service iptables save ㈤ 小結 如果是遠端管理一個linux主機並修改iptables策略,則必須先允許來自用戶端主機的ssh流量確保這是第一條iptables策略, 否則,可能由於配置失誤將自己鎖在外面