1. 程式人生 > >網路防火牆iptables

網路防火牆iptables

linux作業系統自身可以充當交換機,還可以當路由器,也就是說linux多網絡卡之間擁有互相轉發資料包的能力,這種能力的實現主要依靠的是防火牆的功能進行資料包的轉發和入站。
路由選擇點,就是在一個點分辨出事轉發還是入站,在路由選擇點之前的路叫路由選著前,出站之後的路叫路由選擇後
儲存鏈的表示filter 和nat
filter裡村的是入站出站,和轉發
nat存的是路由前,路由後和出站。

入站叫INPUT

出站叫OUTPUT

轉發叫FORWARD

入站前叫PREROUTING

出站叫之後叫POSTROUTING

儲存防火牆規則的配置檔案/etc/sysconfig/iptables

匯出備份的命令

iptables-save > 檔案路徑

匯入還原命令

iptables-restore < 檔案路徑

iptables的命令用法和引數

iptables -t 【表名】 選項 【鏈名】 【條件】 【-j控制型別】

注意事項:

不指定表名時:預設的是filter表

不指定鏈名時:預設是表內所有的鏈

除非設定鏈的預設匹配,否則必須知道匹配條件

選項、鏈名、控制型別使用大寫字母、其餘的均為小寫

控制型別常用的引數

ACCEPT:允許通過

DROP:直接丟包,不給出任何的迴應

REJECT:拒絕通過 ,必要時會給出提示

LOG:記錄日誌資訊,然後傳給下一條規則繼續匹配

選項類的引數

-A:在鏈的末尾追加一條規則,

-I:在鏈的開頭(或指定序號)插入一條規則

查看錶規則引數。

-L:列出所有的規則條目

-n:以數字形式顯示地址,埠等資訊

-v:以更詳細的方式顯示規則資訊

--line-numbers:檢視規則時,顯示規則的序號。--line與之同效

刪除清空規則的引數

-D:刪除鏈內指定序號(或內容)的一條規則

-F:清空所有的規則

iptables -D INPUT 3
刪除input鏈上的序號是3的規則

修改、替換規則

-R:修改替換規則

修改鏈規則

-P:修改鏈的規則

iptables -P FORWARD -j DROP
所有的轉發鏈都丟包

通用匹配引數

-p:協議匹配,指定協議

-s:來源地址匹配,指定來源

-d:目標地址匹配,指定目標

-i:指定入站的網絡卡匹配

-o:指定出站的網絡卡匹配

隱含的匹配

隱含的匹配需要在有通用的匹配後才能使用,--開頭

--sport:來源埠,需要指定協議後才能匹配

--dport:目標埠,需要指定協議後才能匹配

iptables -A INPUT -s 192.168.200.0/24 -p tcp --sport 22:21 -dport 53 -j ACCEPT
例句的意思是在input鏈上追加一條,來源ip為200網段的tcp協議,來源埠是22~21,目標埠是53的都同一通過

--tcp-flags:檢查範圍被設定的標記

iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ADK,SYN -j DROP
例句的意思是在input鏈上插入一條從eth1網絡卡進來的tcp協議,被標記的syn等包都丟掉

icmp協議的隱含匹配

--icmp-type 型別

8 Echo request 請求包

0 Echo reply 應答包

3 錯誤回顯

iptables -A INPUT -p icmp --icmp-type 8 -j DROP
例句的意思是最近一條規則在input鏈,所有的icmp協議的請求包都丟掉

狀態匹配 -m state --state 連線狀態

常見的連線狀態

NEW:新連線

ESTABLISHED:響應請求,或已經建立連線的

RELATED:與已連線有相關性的,如ftp資料連線

iptables -A INPUT -p tcp --dport 80 -m state --state ESTABLISHED,RELATED,NEW -j DROP
命令的意思是在input鏈上追加一條tcp規則已經連線和有關聯的連線新的連線都拒絕

 SNAT將來源的ip轉換成自己設定的ip

iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o eth1 -j SNAT --to-source 192.168.100.100
例句的意思是指定nat表最近一條針對出站後的鏈來源ip是200網段的從eth1出的,統統把來源ip換成192.169.100.100

DNAT將目標ip轉換成自己設定的ip

iptables -t nat -A PREROUTING -i eth0 -d 192.168.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.200.88:8080
例句的意思是將nat表 入站前 從eth網絡卡來的目標ip是192.168.100.100 埠是80來的tcp協議都改成目標ip為192.168.200.88埠是8080