溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iptables總結

發布時間:2020-07-07 14:58:25 來源:網絡 閱讀:919 作者:90后_IT女 欄目:安全技術

iptables:位于/sbin/iptables,是用來管理防火墻的命令工具


      包過濾防火墻,工作在網絡層。




一.規則鏈:規則鏈是防火墻規則/策略的集合


INPUT:處理入站數據包


OUTPUT:處理出站數據包


FORWARD:處理轉發數據包


POSTROUTING鏈:在進行路由選擇后處理數據包


PREROUTING鏈:在進行路由選擇前處理數據包




二.規則表:規則表是規則鏈的集合(優先順序:raw、mangle、nat、filter


raw表:確定是否對該數據包進行狀態跟蹤OUTPUT、PREROUTING


mangle表:為數據包設置標記(PREROUNTING、POSTROUTING、INPUT、OUPUT、FORWARD)


nat表:修改數據包中的源、目標IP地址或端口(PREROUTING、POSTROUTIN、OUTPUT)


filter表:確定是否放行該數據包(過濾)(INPUT FOREARD、OUTPUT)


規則鏈間的匹配順序


入站數據:PREROUTING、INPUT


出站數據:OUTPUT、POSTROUTING


轉發數據:PREROUTING、FORWARD、POSTROUTING




iptables命令的語法格式


iptables [-t 表名] 管理選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]


注意:不指定表名時,默認表示filter


不指定鏈名時,默認表示該表內所有鏈


除非設置規則鏈的缺省策略,否則需要指定匹配條件




四.命令選項


-A:在指定鏈的末尾添加(--apped一條新的規則(注意與-I的插入位置區別


-D:刪除(--delete指定鏈中的某一條規則,按規則序號或內容確定要刪除的規則


-I在指定鏈中插入(--insert一條新的規則,若未指定插入位置,則默認在鏈的開頭插入


-R:修改、替換(--replace指定鏈的某一條規則,按規則序號或內容確定要替換的規則


-L:列出(--list指定鏈中所有的規則進行查看,若未指定鏈名,則列出表中所有鏈的內容


-F:清空(--flush指定鏈中的所有規則,若未指定鏈名,則清空表中的所有鏈的內容


-N:新建(--new-chain一條用戶自己定義的規則鏈


-X:刪除指定表中用戶自定義的規則鏈


-P設置指定鏈的默認策略(--policy


-n使用數字形式(--numeric顯示輸出結果


-v查看規則列表時顯示詳細(--verbose的信


-V查看iptables命令工具的版本(--version信息


-h查看命令幫助信息(--help


--line-numbers查看規則表時,同時顯示規則在鏈中的順序號




五.通用(general)條件匹配


可直接使用,不依賴于其他的條件或擴展模塊


包括網絡協議、IP地址、網絡接口等匹配方式


1.協議匹配


使用-p 協議名”的形式


協議名可使用在“/etc/protocols”文件中定義的名稱


常用的協議包括tcp、udp、icmp


例:拒絕進入防火墻的所有icmp協議的數據包


iptables -I INPUT -p icmp -j REJECT




2.地址匹配


使用“-s源地址(--source、-d 目標地址(--destination”的形式


地址可以是單個IP地址、網絡地址(帶掩碼長度)


例:拒絕轉發來自192.168.1.11主機的數據


iptables -A FORWARD -s 192.168.1.11 -j REJECT




3.網絡端口匹配


使用“-i 網絡接口名 (--in-interface”、 “-o 網絡接口名(--out-interface”的形式,分別對應接收、發送數據包的網絡接口


例:丟棄10.20.30.0/24網段,并在2小時后解封


iptables -I INPUT -s 10.20.30.0/24 -j REJECT


iptables -I FORWARD -s 10.20.30.0/24 -j DROP


at now +2 hours


at > iptables -D INPUT 1


at > iptables -D FORWARD 1


(crtl + D 結束)




六.隱含(implicit)條件匹配


1.端口匹配


使用“--sport 源端口”、“--dport 目標端口”的形式


采用“端口1:端口2”的形式可以指定一個范圍的端口


例:僅允許管理員從202.13.0.0/16使用ssh


 iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT


 iptables -A INPUT -p tcp --dport 22 -j DROP




2.TCP標記匹配


使用“--tcp-flags 檢查范圍 被設置的標記”的形式


如“--tcp-flags SYN,RST,ACK SYN”表示檢查SYN、RST、ACK3個標記,只有SYN1時滿足條件


例:拒絕從外網接口(eth2)直接訪問防火墻備機的數據包,但是允許響應防火墻TCP


 求的數據包進入


 iptables -P INPUT DROP


 iptables -I INPUT -i eth2 -p tcp --tcp-flags SYN, RST, ACK SYN -j REJECT


 iptables -I INPUT -i eth2 -p tcp --tcp-flags !--syn -j ACCEPT


(--syn的用法為兼容舊版本iptables的形式,此處等于--tcp-flags SYN, RST, ACK SYN)




3.ICMP類型匹配


使用“--icmp-type ICMP類型”的形式


ICMP類型可以使用類型字符串或者對應的數值,例如Echo-Request、Echo-Reply


例:禁止其他主機ping防火墻主機,但是允許從防火墻上ping其他主機(允許接收ICMP


 回應數據)


 iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP


 iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT


 iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT




七.顯示條件匹配


1.MAC地址匹配


使用“-m mac”結合“--mac-source MAC地址”的形式


例:禁止轉發來自MAC地址為00:0C:29:27:55:3F的主機的數據包


 iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP




2.多端口匹配


使用“-m multiport”結合“--sports 源端口列表”或者“--dports 目標端口列表”的形式


多個端口之間使用逗號“,”分隔,連續的端口也可以使用冒號“:”分隔


例:允許防火墻本機對外開放TCP端口20、21、25、110以及被動模式FTP端口1250-1280


 iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT




3.IP地址范圍匹配


使用“-m iprange”結合“--src-range IP范圍”或者“--dst-range 目標IP范圍” 的形式


以“-”符號連接起始IP地址、結束IP地址


例:禁止轉發源IP地址為192.168.1.20~192.168.1.99TCP數據包


 iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP




4.數據包狀態匹配


使用“-m state”結合“--state 狀態類型”的形式


同時表示多種狀態時以逗號“,”分隔


常見的數據包狀態包括:NEW、ESTABLISHED、RELATED


例:拒絕訪問防火墻的新數據包,但允許響應連接或與已有連接相關的數據包


 iptables -A INPUT -p tcp -m state --state NEW -j DROP


 iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT




八.數據包控制


常見的數據包處理方式


ACCEPT:放行數據包


DROP:丟棄數據包,不給出任何回應信息


REJECT:拒絕數據包,必要時會給數據發送端一個響應信息


LOG:記錄日志信息,并傳遞給下一條規則處理


用戶自定義鏈名:傳遞給自定義鏈內的規則進行處理


SNAT:修改數據包的源地址信息


DNAT:修改數據包的目標地址信息




九.導入、導出防火墻規則


導出規則


iptables-save


結合重定向輸出“>”符號保存規則信息



導入規則


iptables-restore


結合重定向輸入“<”符號恢復規則信息




十.SNAT策略


SNAT策略的典型應用環境


局域網主機共享單個公網IP地址接入Internet

SNAT策略的原理


源地址轉換,Source Network Address Translation


修改數據包的源IP地址


前提條件


局域網各主機正確設置IP地址/子網掩碼


局域網各主機正確設置默認網關地址


推薦實現步驟


1. 開啟網關主機的路由轉發功能


2. 添加使用SNAT策略的防火墻規則


規則示例:


iptables總結

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0-j SNAT --to-source 218.29.30.31


(在路由選擇之后進行處理,-s 特定局域網,-o需要從接口eth0外出的數據包--to-source 218.29.30.31網關主機外網口ip地址




十一.MASQUERADE(地址偽裝)策略


只需將 “-j SNAT --to-source 218.29.30.31”的形式改為“-j MASQUERADE”即可


如果是通過ADSL撥號方式連接Internet,則外網接口名稱通常為 ppp0、ppp1


MASQUERADE策略應用示例


iptables -t nat -A POSTROUTING -s 192.168.1.0/24-o ppp0 -j MASQUERADE




十二.DNAT策略


DNAT策略的典型應用環境


Internet中發布位于企業局域網內的服務器


DNAT策略的原理


目標地址轉換,Destination Network Address Translation


修改數據包的目標IP地址


前提條件


局域網的Web服務器正確設置了IP地址/子網掩碼


局域網的Web服務器正確設置了默認網關地址


推薦實現步驟


1. 確認已開啟網關的路由轉發功能


2. 添加使用DNAT策略的防火墻規則


規則示例:


iptables總結


iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 80 -j DNAT--to-destination 192.168.1.6


(在路由選擇之前進行處理,-i 外網接口進入的數據包,-d訪問網關的公網ip地址的數據包,-dport訪問標準Web服務端口的數據包,--to-destination內網中Web服務器的實際IP地址




通過DNAT策略同時修改目標端口號


使用形式


只需要在“--to-destination”后的目標IP地址后面增加“:端口號”即可,即:

-j DNAT --to-destination 目標IP:目標端口

通過DNAT策略修改目標端口號的應用示例


Internet中訪問網關主機(218.29.30.31)的 2222 端口時,實際由運行在局域網主機(192.168.1.5)的 22 端口的應用程序提供服務


iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22


十三.iptables的開啟和關閉

1. Linux防火墻(Iptables)重啟系統生效

  1. 開啟: chkconfig iptables on  

  2. 關閉: chkconfig iptables off  

2.Linux防火墻(Iptables) 即時生效,重啟后失效

  1. 開啟: service iptables start  

  2. 關閉: service iptables stop



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女