溫馨提示×

溫馨提示×

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

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

IPTables防火墻規(guī)則的用法是什么

發(fā)布時間:2022-01-24 14:23:57 來源:億速云 閱讀:132 作者:柒染 欄目:開發(fā)技術(shù)

本篇文章為大家展示了IPTables防火墻規(guī)則的用法是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

對于Linux系統(tǒng)管理員來說管理網(wǎng)絡(luò)流量是最棘手的工作之一,很多人把IPTables 當(dāng)成一個防火墻,但是對于管理員來說則是與 Linux Kernel 進行溝通的一個命令行工具。

IPTables 包括一組內(nèi)置和由用戶定義規(guī)則的「鏈」,管理員可以在「鏈」上附加各種數(shù)據(jù)包處理規(guī)則。

  • FILTER 默認過濾表,內(nèi)建的鏈有:

    • INPUT:處理流入本地的數(shù)據(jù)包

    • FORWARD:處理通過系統(tǒng)路由的數(shù)據(jù)包

    • OUTPUT:處理本地流出的數(shù)據(jù)包

  • NAT 實現(xiàn)網(wǎng)絡(luò)地址轉(zhuǎn)換的表,內(nèi)建的鏈有:

    • PREROUTING:處理即將接收的數(shù)據(jù)包

    • OUTPUT:處理本地產(chǎn)生的數(shù)據(jù)包

    • POSTROUTING:處理即將傳出的數(shù)據(jù)包

  • MANGLE 此表用于改變數(shù)據(jù)包,共 5 條鏈:

    • PREROUTING:處理傳入連接

    • OUTPUT:處理本地生成的數(shù)據(jù)包

    • INPUT:處理報文

    • POSTROUTING:處理即將傳出數(shù)據(jù)包

    • FORWARD:處理通過本機轉(zhuǎn)發(fā)的數(shù)據(jù)包

接下來我們將由簡入難介紹 25 條 Linux 管理員最常會用到的 IPTables 規(guī)則。

1、啟動、停止和重啟IPTables

雖然 IPTables 并不是一項服務(wù),但在 Linux 中還是可以像服務(wù)一樣對其狀態(tài)進行管理。

基于SystemD的系統(tǒng)

systemctl start iptables
systemctl stop iptables
systemctl restart iptables

基于SysVinit的系統(tǒng)

 /etc/init.d/iptables start
/etc/init.d/iptables stop
/etc/init.d/iptables restart

2、查看IPtables防火墻策略

你可以使用如下命令來查看 IPtables 防火墻策略:

 iptables -L -n -v

以上命令應(yīng)該返回數(shù)據(jù)下圖的輸出:

IPTables防火墻規(guī)則的用法是什么

以上命令是查看默認的 FILTER 表,如果你只希望查看特定的表,可以在 -t 參數(shù)后跟上要單獨查看的表名。例如只查看 NAT 表中的規(guī)則,可以使用如下命令:

 iptables -t nat -L -v –n

3、屏蔽某個IP地址

如果你發(fā)布有某個 IP 向服務(wù)器導(dǎo)入攻擊或非正常流量,可以使用如下規(guī)則屏蔽其 IP 地址:

 iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

注意需要將上述的 XXX 改成要屏蔽的實際 IP 地址,其中的 -A 參數(shù)表示在 INPUT 鏈的最后追加本條規(guī)則。(IPTables 中的規(guī)則是從上到下匹配的,一旦匹配成功就不再繼續(xù)往下匹配)

如果你只想屏蔽 TCP 流量,可以使用 -p 參數(shù)的指定協(xié)議,例如:

iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP

4、解封某個IP地址

要解封對 IP 地址的屏蔽,可以使用如下命令進行刪除:

 iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP

其中 -D 參數(shù)表示從鏈中刪除一條或多條規(guī)則。

5、使用IPtables關(guān)閉特定端口

很多時候,我們需要阻止某個特定端口的網(wǎng)絡(luò)連接,可以使用 IPtables 關(guān)閉特定端口。

阻止特定的傳出連接:

 iptables -A OUTPUT -p tcp --dport xxx -j DROP

阻止特定的傳入連接:

iptables -A INPUT -p tcp --dport xxx -j ACCEPT

6、使用Multiport控制多端口

使用 multiport 我們可以一次性在單條規(guī)則中寫入多個端口,例如:

iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT

7、在規(guī)則中使用 IP 地址范圍

在 IPtables 中 IP 地址范圍是可以直接使用 CIDR 進行表示的,例如:

iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT

8、配置端口轉(zhuǎn)發(fā)

有時我們需要將 Linux 服務(wù)器的某個服務(wù)流量轉(zhuǎn)發(fā)到另一端口,此時可以使用如下命令:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525

上述命令會將所有到達 eth0 網(wǎng)卡 25 端口的流量重定向轉(zhuǎn)發(fā)到 2525 端口。

9、屏蔽HTTP服務(wù)Flood攻擊

有時會有用戶在某個服務(wù),例如 HTTP 80 上發(fā)起大量連接請求,此時我們可以啟用如下規(guī)則:

iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT

上述命令會將連接限制到每分鐘 100 個,上限設(shè)定為 200。

10、禁止PING

對 Linux 禁 PING 可以使用如下規(guī)則屏蔽 ICMP 傳入連接:

iptables -A INPUT -p icmp -i eth0 -j DROP

11、允許訪問回環(huán)網(wǎng)卡

環(huán)回訪問(127.0.0.1)是比較重要的,建議大家都開放:

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

12、屏蔽指定MAC地址

使用如下規(guī)則可以屏蔽指定的 MAC 地址:

iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP

13、限制并發(fā)連接數(shù)

如果你不希望來自特定端口的過多并發(fā)連接,可以使用如下規(guī)則:

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT

以上規(guī)則限制每客戶端不超過 3 個連接。

14、清空IPtables規(guī)則

要清空 IPtables 鏈可以使用如下命令:

iptables -F

要清空特定的表可以使用 -t 參數(shù)進行指定,例如:

iptables -t nat –F

15、保存IPtables規(guī)則

默認情況下,管理員對 IPtables 規(guī)則的操作會立即生效。但由于規(guī)則都是保存在內(nèi)存當(dāng)中的,所以重啟系統(tǒng)會造成配置丟失,要永久保存 IPtables 規(guī)則可以使用 iptables-save 命令:

iptables-save > ~/iptables.rules

保存的名稱大家可以自己改。

16、還原IPtables規(guī)則

有保存自然就對應(yīng)有還原,大家可以使用 iptables-restore 命令還原已保存的規(guī)則:

iptables-restore

17、允許建立相關(guān)連接隨著網(wǎng)絡(luò)流量的進出分離,要允許建立傳入相關(guān)連接,可以使用如下規(guī)則:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j

ACCEPT允許建立傳出相關(guān)連接的規(guī)則:

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

18、丟棄無效數(shù)據(jù)包很多網(wǎng)絡(luò)攻擊都會嘗試用黑客自定義的非法數(shù)據(jù)包進行嘗試,我們可以使用如下命令來丟棄無效數(shù)據(jù)包:

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

19、IPtables屏蔽郵件發(fā)送規(guī)則如果你的系統(tǒng)不會用于郵件發(fā)送,我們可以在規(guī)則中屏蔽 SMTP 傳出端口:

iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT

20、阻止連接到某塊網(wǎng)卡如果你的系統(tǒng)有多塊網(wǎng)卡,我們可以限制 IP 范圍訪問某塊網(wǎng)卡:

iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j D

上述內(nèi)容就是IPTables防火墻規(guī)則的用法是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI