linux下的軟件防火墻iptables——規則的查看與清除、定義默認策略

防火墻是用戶限制某些ip或用戶對其主機的訪問。防火墻從種類上分為兩大類,硬件防火墻以及軟件防火墻。軟件防火墻主要是對數據包進行過濾,硬件防火墻主要用來對惡意攻擊的防護以及數據包的過濾,比如ddos攻擊。這里,我們來講解linux下的軟件防火墻——iptables。

iptables與firewalld

在centOS6下,默認的軟件防火墻是iptables,而到了centos7,則是firewalld。它們之間有什么聯系了,其實firewalld就是在原iptables上新封裝成的一個軟件。

學習iptables時,建議先關閉firewalld,并開啟iptables

yum?install?iptables-services systemctl?stop?firewalld systemctl?start?iptables

iptables的表和鏈

iptables的不同的表代表著不同的功能,默認有4個表

  • filter(過濾器) nat(地址轉換) mangle raw

不同的表下面,有著自己的規則鏈:

  • filter(INPUT/OUTPUT/FORWARD)

  • nat(prerouting/output/postouting)

這些鏈代表的意義如下:

  • INPUT鏈——進來的數據包應用此規則鏈中的規則

  • OUTPUT鏈——外出的數據包應用此規則鏈中的規則

  • FORWARD鏈——轉發數據包時應用此規則鏈中的規則

  • PREROUTING鏈——對數據包作路由選擇前應用此鏈中的規則

  • POSTROUTING鏈——對數據包作路由選擇后應用此鏈中的規則

iptables的規則查看與清除

規則查看

用法示例:iptables [-t tables] -L [-nv]

選項與參數:

  • -t后接表類型,省略該選項,則默認為filter表。

  • -L列出當前表的規則

  • -n 不進行域名與ip反查

  • -v 顯示更多信息

#?查看filter表的規則 #?iptables?-nvL Chain?INPUT?(policy?ACCEPT?0?packets,?0?bytes) ?pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination????????? ???67??4444?ACCEPT?????all??--??*??????*???????0.0.0.0/0????????????0.0.0.0/0????????????state?RELATED,ESTABLISHED ????0?????0?ACCEPT?????icmp?--??*??????*???????0.0.0.0/0????????????0.0.0.0/0??????????? ????0?????0?ACCEPT?????all??--??lo?????*???????0.0.0.0/0????????????0.0.0.0/0??????????? ????0?????0?ACCEPT?????tcp??--??*??????*???????0.0.0.0/0????????????0.0.0.0/0????????????state?NEW?tcp?dpt:22 ????2???286?REJECT?????all??--??*??????*???????0.0.0.0/0????????????0.0.0.0/0????????????reject-with?icmp-host-prohibited Chain?FORWARD?(policy?ACCEPT?0?packets,?0?bytes) ?pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination????????? ????0?????0?REJECT?????all??--??*??????*???????0.0.0.0/0????????????0.0.0.0/0????????????reject-with?icmp-host-prohibited Chain?OUTPUT?(policy?ACCEPT?38?packets,?4664?bytes) ?pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination?? ? #?查看nat表的規則 iptables?-t?nat?-L?-nv

鏈下的規則選項的含義如下:

  • target:代表進行的操作,ACCEPT放行、drop丟棄、reject拒絕

  • prot:代表使用的數據包協議,有tcp、udp以及icmp

  • opt:說明信息

  • source:對某來源主機進行限制

  • destination:對某目標主機進行限制

上面顯示的INPUT鏈的5條規則含義如下:

  1. 只要數據包的狀態為RELATED,ESTABLISHED,都接受

  2. 只要是icmp包都接受

  3. 只要是本地回環網卡,所有數據都接受

  4. 只要是發送給22端口的主動式連接的TCP數據包都接受。

  5. 拒絕所有的數據包

清楚iptables的規則

默認安裝centOS7后,系統就已經有許多iptables的規則,這里教大家如何去清除這些規則。

用法示例:iptables [-t tables] [-FXZ]

選項與參數:

  • -F 清理所有已定制的規則

  • -X 清理所有用戶自定義的規則

  • -Z 將所有的統計計數置零

#?iptables?-F #?iptables?-X #?iptables?-Z

查看具體的規則

使用iptables-save可以查看具體的規則

用法:iptables-save [-t tables]

#?iptables-save?-t?filter #?Generated?by?iptables-save?v1.4.21?on?Sat?Nov?14?21:51:56?2020 *filter :INPUT?ACCEPT?[0:0] :FORWARD?ACCEPT?[0:0] :OUTPUT?ACCEPT?[56:7196] -A?INPUT?-m?state?--state?RELATED,ESTABLISHED?-j?ACCEPT -A?INPUT?-p?icmp?-j?ACCEPT -A?INPUT?-i?lo?-j?ACCEPT -A?INPUT?-p?tcp?-m?state?--state?NEW?-m?tcp?--dport?22?-j?ACCEPT -A?INPUT?-j?REJECT?--reject-with?icmp-host-prohibited -A?FORWARD?-j?REJECT?--reject-with?icmp-host-prohibited ? #?Completed?on?Sat?Nov?14?21:51:56?2020

定義默認策略

當我們清楚完規則后,就只剩下默認的策略了。什么是默認的策略,就是當不滿足我們任何一條規則時,就采用默認規則。默認的策略有ACCEPT(接受數據包)和DROP(丟棄數據包)

用法:iptables [-t tables] -P [INPUT|OUTPUT|FORWARD……] [ACCEPT|DROP]

現在,我們嘗試將filter的INPUT鏈的默認修改為DROP、OUTPUT及FORWARD鏈修改為ACCETP

iptables?-t?filter?-P?INPUT?DROP #?注意,該命令敲完后,你的終端就可能會斷開連接了 iptables?-P?OUTPUT?ACCEPT iptables?-P?FORWARD?ACCEPT

相關推薦:《linux課程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享