一、Iptables 簡介
Iptables
是 Linux 自帶的防火牆程序,可以對網絡流量進行管理和過濾,來保障網絡的安全。Iptables 可以被運用於 IPv4/IPv6 網絡,支持網絡地址轉換(NAT)、端口轉發、數據包過濾等功能。
二、安裝與基本概念
1、安裝Iptables
在 CentOS 上,Iptables 防火牆系統默認已安裝。如果沒有,可以通過 yum 命令進行安裝。
yum install -y iptables-services
安裝完成後,通過以下命令啟動 Iptables 服務:
systemctl start iptables.service
2、Iptables 分類
Iptables 有三個分類,分別是表、鏈和規則。
表:一個表就是一個數據結構,可以提供不同的處理方式。Linux 操作系統默認提供了三個表:
filter
表: 是默認的表,用於過濾網絡數據包。nat
表:用於網絡地址轉換(NAT)。mangle
表:這個表可以修改報文頭,而不是過濾數據報。比如可以修改某個特定的IP地址,修改TTL值等。
鏈: 鏈是表的組成部分,它能夠執行指定的動作。CentOS 默認選擇了五個主要的鏈。
INPUT
鏈:用於處理輸入數據報。所有進入到本地計算機的網絡數據包都要進入該鏈。OUTPUT
鏈:用於處理輸出數據報。所有發出本地計算機的網絡數據包都要通過該鏈。FORWARD
鏈:用於處理轉發數據報。當本地計算機作為路由器或者網關,數據必須經過本機的時候,就走這個鏈。PREROUTING
鏈:用於在數據報到達本地計算機之前修改該數據報,能夠修改報文頭中的一些內容。POSTROUTING
鏈:用於在數據報將離開本地計算機之前修改該數據報,能夠修改報文頭中的一些內容。
規則: 規則是鏈的組成部分,每個規則定義了 Iptables 命令如何對數據包執行一個動作。 Iptables 命令用一些規則對鏈進行定義,設置這些規則可以限制、轉發、修改、丟棄或允許流量通過這些鏈。
三、Iptables 常用命令與操作
1、查看規則
通過 iptables -L
命令可以查看規則,其中 -L
參數表示查看所有的規則,如果想查看針對某個表的規則,可以加上表的名稱,如下:
# 查看 filter 表內規則
iptables -L -v --line-numbers -t filter
2、添加規則
下列命令表示:通過實現 DROP 動作,從輸入連接中丟棄所有的 ICMP ,因為所有的 ICMP 連接都來源於外部網絡,我們不能讓外部網絡訪問內部網絡。
iptables -A INPUT -p icmp -j DROP
3、刪除規則
刪除規則可以通過 iptables -D
命令,規則的編號可以從iptables -L
中找到。
iptables -D INPUT 2
4、修改規則
修改規則可以先利用 iptables -D
刪除原有規則,再使用 iptables -A
添加新規則。
iptables -D INPUT -p tcp --dport ssh -j DROP
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
5、重置規則
重置規則可以通過下面的命令實現,默認的規則是允許所有的流量通過。
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
四、例子
1、允許 Ping
如何允許 Ping 呢?可以加入下面的規則:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
2、允許SSH
如何允許SSH?可以加入下面的規則:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables-save
上面的命令中,第一條規則代表只有在狀態為 NEW,來源為 TCP,目標端口為22的時候才允許連接通過。
3、設置端口轉發
下面是一些開源服務的 Iptables 配置示例:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080
上面的命令是將所有端口 80 的請求轉發到端口 8080 上,如果是本地訪問,則需要在 OUTPUT 鏈進行配置。
4、DDoS 防禦
下面的規則可以防禦基於 SYN 的攻擊:
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
上面的命令表示只有 SYN 請求的 TCP 數據包才被接受,其他的都需要被丟棄。
五、總結
以上就是 CentOS Iptables 的詳解。作為系統安全的重要一環,Iptables 需要具備基本的配置和管理能力,才能保障整個系統網絡的安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240784.html