防火牆是使用者限制某些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]
#選項與參數:
# 查看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
拒絕所有的封包
#清楚iptables的規則#-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下的軟體防火牆iptables-規則的檢視與清除、定義預設策略的詳細內容。更多資訊請關注PHP中文網其他相關文章!