首頁 >運維 >linux運維 >linux下的軟體防火牆iptables-規則的檢視與清除、定義預設策略

linux下的軟體防火牆iptables-規則的檢視與清除、定義預設策略

齐天大圣
齐天大圣原創
2020-11-18 15:19:013728瀏覽

防火牆是使用者限制某些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:限制某目標主機

  1. 上面顯示的INPUT鏈的5條規則意義如下:

  2. 只要封包的狀態為RELATED,ESTABLISHED,都接受

  3. 只要是icmp套件都接受

  4. 只要是本地回環網卡,所有資料都接受

只要是傳送給22埠的主動式連接的TCP資料包都接受。

拒絕所有的封包

#清楚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課程###》###

以上是linux下的軟體防火牆iptables-規則的檢視與清除、定義預設策略的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn