一、iptables基本介紹
iptables是一個重要的Linux內核中網路安全系統,通過設置iptables規則,可以對進入和離開Linux伺服器的數據進行過濾。
iptables規則是一系列指令,用於決定數據包如何轉發和處理,可以將數據包放行或丟棄,還可以修改數據包頭的一些欄位。
以下是一個簡單的iptables規則:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
這條規則表示允許TCP協議的80埠數據包通過輸入方向(即到達伺服器)。
二、iptables基本語法
iptables的命令格式如下:
iptables [-t 表名] 插入規則鏈 操作選項 規則限制條件 -j 動作
其中,選項-t用於指定表名,常用的是filter表,表示過濾器策略。插入規則鏈可以是INPUT、OUTPUT或FORWORD,表示規則作用的方向。操作選項常用的有-A(添加)、D(刪除)、I(插入)和R(替換)。規則限制條件包括協議類型、埠號、源IP和目標IP等。動作包括ACCEPT(接受)、DROP(丟棄)和REJECT(拒絕)等。
三、iptables常用操作
(一)允許或拒絕所有流量
需要在iptables中設置默認規則,以確定如何處理沒有匹配到指定規則的數據包。以下是兩個示例:
iptables -P INPUT ACCEPT iptables -P INPUT DROP
第一個示例表示允許所有輸入流量,而第二個示例表示禁止所有輸入流量。
(二)開啟和關閉埠
可以使用iptables開啟或關閉服務埠,下面以80埠為例:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j DROP
第一條規則表示允許TCP協議的80埠數據包通過輸入方向,而第二條規則表示禁止TCP協議的80埠數據包通過輸入方向。
(三)限制IP訪問
可以使用iptables來阻止特定的IP地址訪問系統,下面以192.168.1.100為例:
iptables -A INPUT -s 192.168.1.100 -j DROP
以上命令表示禁止192.168.1.100的IP地址通過INPUT規則鏈訪問系統。
(四)限制IP段訪問
可以使用iptables來阻止特定的IP地址段訪問系統,下面以192.168.1.0/24為例:
iptables -A INPUT -s 192.168.1.0/24 -j DROP
以上命令表示禁止192.168.1.0/24的IP地址段通過INPUT規則鏈訪問系統。
(五)限制訪問協議
可以使用iptables來阻止特定的協議訪問系統,下面以FTP協議為例:
iptables -A INPUT -p tcp --dport 21 -j DROP
以上命令表示禁止使用FTP協議通過INPUT規則鏈訪問系統。
四、iptables保存和恢復規則
iptables的規則在重啟後會失效,需要手動保存並恢復規則。規則的保存可以使用iptables-save命令將當前iptables規則保存到一個文件中:
iptables-save > /etc/iptables.rules
規則的恢復可以在系統啟動時使用iptables-restore命令,從保存的文件中還原規則:
iptables-restore < /etc/iptables.rules
五、iptables實用技巧
(一)多條規則操作
可以使用分號將多條規則合併在一起,例如:
iptables -A INPUT -s 192.168.1.100 -j DROP;iptables -A INPUT -p tcp --dport 80 -j ACCEPT
(二)規則鏈操作
可以使用自定義規則鏈,以便集合相似的規則。為了避免規則過於複雜,應該盡量將相同的規則放到一起,例如:
iptables -N sshguard iptables -A sshguard -m recent --name ssh --set --rsource iptables -A sshguard -m recent --name ssh --rcheck --seconds 60 --hitcount 4 --rttl -j DROP iptables -A INPUT -p tcp --dport ssh -m state --state NEW -j sshguard
(三)使用ipv6防火牆
Linux內核中也支持IPv6防火牆,稱為ip6tables。ip6tables的語法與iptables相同,只是選項和限制條件略有不同。
以下是一個開啟http服務的IPv6防火牆規則:
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
六、總結
本文介紹了Linux防火牆配置的基本概念和iptables常用操作,包括開啟和關閉埠、限制IP訪問、限制IP段訪問、限制訪問協議等。同時提供了實用技巧,如多條規則操作、規則鏈操作和ipv6防火牆的使用。
作為一名全能編程開發工程師,理解和掌握iptables規則和防火牆配置是必不可少的技能。
原創文章,作者:RATJN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/373057.html