iptable 範例
建議於命令稿前加上以下三行,清空所有chain
iptables -F
iptables -t nat -F
iptables -t mangle -F
將Filter Table中INPUT鏈的原則皆指到DROP去
iptables -P INPUT DROP
將mangle Table中PREROUTING鏈的原則皆指到DROP去
iptables -t mangle -P PREROUTING DROP
新增一個chain預設新增在Filter tables
iptables -N [chainname]
刪除一個chain,該chain必須為空的
iptables -X [chainname]
清除一個chain的內容
iptables -F [chainname]
列出鏈的內容
iptables -L [chainname]
表格鏈常用參數
-t 指定表格名稱
-I 在鏈最前面加入規則,亦可指定序號
-A 在鏈的最後面加入規則
-D 在鏈中刪除某個規則
-N 自訂新鏈
封包比對規則常用參數
-i 指訂封包進入的網路介面
-o 指訂封包出去的網路介面
-p 指定封包類型
-s 指定封包來源ip
-d 指定封包目的ip
--sport只定來源port
--dport只定目的port
封包處理動作
-j 規則處理方式
DROP:丟棄
REJECT:丟棄,且回應訊息
ACCEPT:允許
###############################################################
新增一個鏈BADPKT
iptables -N BADPKT
讓系統記錄進入BADPKT的封包 記錄時的前字串
iptables -A BADPKT -j LOG --log-prefix "** Firewall BADPKT**"
進入封包都DROP
iptable -A BADPKT -j DROP
使用state模組,如非法則丟到BADPKT
iptables -A INPUT -m state --state INVAID -j BADPKT
###############################################################
iptables -A INPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
iptables -A -m state --state ESTABLISHED,RELATED -j ACCEPT
###############################################################
拒絕任何來自class D位址的封包
iptables -A INPUT -i eth0 -s 224.0.0.0/4 -j DROP
開放ftp
iptables -A INPUT -i eth1 -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT
禁止來自192.168.2網段的ip連到210.200.160.10
iptables -A FORWARD -p TCP -s 192.168.2.0/24 -d 210.200.160.10 --dport www -j DROP
對10.0.0.1:8080的連線都轉到192.18.0.5的 80port
iptables -t nat -A PREROUTING -p tcp -d 10.0.0.1 --dport 8080 -j DNAT --to 192.168.0.5 80
###############################################################
Standard SNAT 用法
iptables -t nat -A POSTROUTING -o 外送介面 -j --to-source 來源位址
將封包來源位址改為168.94.2.35
iptables -t nat -A POSTROUTING -o eth0 -j --to-source 168.94.2.35
將封包來源位址改為168.94.2.35或168.94.2.39
iptables -t nat -A POSTROUTING -o eth0 -j --to-source 168.94.2.35-168.94.2.39
將封包來源位址改為1.2.3.4同時指定連接port為1-1023
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 1.2.3.4:1-1023
Masquerade SNAT用法
iptables -t nat -A POSTROUTING -o 外送介面 -j MASQUERADE
將所有封包由ppp0介面送出
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#################################################################
Standard DNAT
iptables -t nat -A PREROUTING -i 內送介面 -j DNAT --to-destination 目的位址
iptables -t nat -A OUTPUT -o 外送介面 -j DnAT --to-destination 目的位址
目的位址通常是內部主機或Server
將封包目的位址改為5.6.7.8
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-destination 5.6.7.8
將封包目的位址改為5.6.7.8或5.6.7.9 或5.6.7.10
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-destination 5.6.7.8-5.6.7.8.10
將封包目的位址改為5.6.7.8,同時指定連接port8080
iptables -t nat -A PREROUtING -p tcp --dport 80 -i eth1 -j DNAT --to-destination 5.6.7.8:8080
將原本要送至1.2.3.4的本地封包轉送至loopback位址
iptables -t nat -A OUTPUT -d 1.2.3.4 -j DNAT --to-dextination 127.0.0.1
REDIRECT DNAT
iptables -t nat -A PREROUTING -i 內送介面 -j REDIRECT [--to-port 連接port]
iptables -t nat -A OUTPUT -o 外送介面 -j REDIRECT [--to-port 連接port]
將封包重新導向至REDIRECT的主機上,通常是Server,另可指定封包導向至新的port
將WEB重新導向至porxy8080
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080
###################################################################
# 轉3389port到terminal主機
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to 172.20.182.16:3389
#轉到內部80port(上面的是通通都轉包含內部出去也會轉,以下是連到wan ip指到lan ip去 xxx.xxx.xxx.xx是wan ip)
iptables -t nat -A PREROUTING -p tcp -d xxx.xx.xxx.xxx --dport 80 -j DNAT --to 2
10.200.161.205:80
留言列表