您好,登錄后才能下訂單哦!
了解linux下軟件防火墻iptables——規則的定義與刪除是什么?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
準備工作
制定規則前,我們首先關閉firewalld服務、開啟iptables服務,然后清除已有的規則。
# systemctl stop firewalld # systemctl start iptables # iptables -F # iptables -X # iptables -Z
新增規則鏈
關于iptables的添加規則鏈,選項非常繁多,下面我們看基本用法:
iptables [-t tables] -A|I 鏈名 [-i|o 網絡接口] [-m state] [--state 數據包狀態] \ > [-p 網絡協議] [-s 源地址 --sport 端口范圍] [-d 目標地址 --dport 端口范圍] \ > -j [ACCEPT|DROP|REJECT]
選項與參數:
-A|I 鏈名 A表示在已有規則后添加規則,而I則是在最前面插入規則
-i|o 網絡接口 i表示數據包進入的那個網絡接口,需要和INPUT或PREROUTING鏈配合使用;o表示數據包出去的那個接口,需和OUTPUT鏈配合使用
-p 網絡協議 常見的有tcp、upd、icmp以及all
-m state 數據包的狀態
--state 數據包狀態 常見的狀態有INVALID(無效的數據包)、ESTABLISHED(已經成功連接的狀態)、NEW(新建立的數據包)、RELATED(新連接與現有連接相關聯)
-s 源地址 地址可以是ip地址,如192.168.1.110 或網絡地址192.168.1.0/24
-d 目的地址
-j 后面接操作,常見的有ACCEPT(接受)、DROP(丟棄)、REJECT(拒絕)
針對ip、網絡、網卡接口的規則制定
下面,給出幾個規則鏈案例。我們允許從192.168.1.110發來的數據、拒絕192.168.1.111發來的數據。
# iptables -A INPUT -s 192.168.1.110 -j ACCEPT # iptables -I INPUT -s 192.168.1.111 -j DROP # iptables -vnL Chain INPUT (policy ACCEPT 33 packets, 3048 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 192.168.1.111 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.110 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 18 packets, 1844 bytes) pkts bytes target prot opt in out source destination
允許192.168.1.0/24網絡地址訪問
# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # iptables -vnL Chain INPUT (policy ACCEPT 29 packets, 2328 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 192.168.1.111 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.110 0.0.0.0/0 0 0 ACCEPT all -- * * 192.168.1.0/24 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 15 packets, 1460 bytes) pkts bytes target prot opt in out source destination
思考一個問題,192.168.1.111的數據包是會被接受還是會拒絕。從INPUT第一條規則看是會被拒絕,但從最后一條看,會接受。答案是會被拒絕,當滿足其中一條規則時,就不會再走下面的規則了,所以說規則鏈的順序也是非常重要的。
繼續看案例:只要是本地回環地址lo都允許
# iptables -A INPUT -i lo -j ACCEPT
針對端口的規則制定
將進入本地的21端口數據包都阻擋掉
# iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP
將1024至65534之間的端口都開放,可以用 端口號:端口號 來表示一段連續的端口號
# iptables -A INPUT -i eth0 -p tcp --dport 1024:65534 -j ACCEPT
下面來看兩個個綜合性的規則
本機的3306端口,不對192.168.1.0/24這個網絡開放。
本機的ssh服務,不接受192.168.1.0/24這個網絡的1024:65535端口的數據包
# iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 3306 -j DROP # iptables -A INPUT -i etc0 -p tcp -s 192.168.1.0/24 \ > --sport 1024:65535 --dport 22 -j DROP
針對數據包的連接狀態的規則制定
數據包常見的狀態有INVALID(無效的數據包)、ESTABLISHED(已經成功連接的狀態)、NEW(新建立的數據包)、RELATED(新連接與現有連接相關聯)。
針對ESTABLISHED以及RELATED狀態的數據包全都接受,針對INVALID狀態的數據包全部丟棄
# iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -m state --state INVALID -j DROP
刪除規則鏈
刪除規則鏈基本和添加規則鏈一致,只不過-A換成-D即可,下面我們一起來刪除幾條規則。
# iptables-save # Generated by iptables-save v1.4.21 on Sun Nov 15 22:36:41 2020 *filter :INPUT ACCEPT [4:1920] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [16:1380] -A INPUT -s 192.168.1.111/32 -j DROP -A INPUT -s 192.168.1.110/32 -j ACCEPT -A INPUT -s 192.168.1.0/24 -j ACCEPT …… # iptables -t filter -D INPUT -s 192.168.1.111/32 -j DROP # iptables -D INPUT -s 192.168.1.110/32 -j ACCEPT
注:以上關于iptables的設置只會保存到內存中去,重啟服務后系統后,這些設置將消失。所以,只要不把自己阻擋在外情況下,請盡管練習吧
若想保存規則的話,請輸入/usr/libexec/iptables/iptables.init save來保存。
感謝各位的閱讀!看完上述內容,你們對linux下軟件防火墻iptables——規則的定義與刪除是什么大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。