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

網路防火墻iptables

註意 eth1 行數 alt quest 文件 pre 交換機 syn

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

網路防火墻iptables