close

iptables觀念

建議於命令稿前加上以下三行,清空所有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
##########################################################

arrow
arrow
    全站熱搜

    horace1123 發表在 痞客邦 留言(0) 人氣()