Linux 系統以其開源、穩定、高效的特點,在服務器領域占據了舉足輕重的地位
然而,即便是這樣強大的操作系統,如果沒有合適的防火墻保護,也會變得脆弱不堪
本文將詳細介紹 Linux 防火墻的常用命令,幫助讀者構建一道堅不可摧的安全防線
一、Linux 防火墻概述 Linux 防火墻主要依賴于 `iptables`和 `firewalld`兩大工具
`iptables` 是 Linux 內核自帶的防火墻工具,功能強大但配置復雜;`firewalld` 則是一個動態管理防火墻的區域和服務的守護進程,提供了更為直觀和友好的配置界面
1.1 iptables `iptables` 是 Linux 下用于設置、維護和檢查 IPv4 數據包過濾規則的工具
通過定義規則,`iptables` 可以允許或拒絕進出系統的網絡流量,從而保護系統免受攻擊
1.2 firewalld `firewalld` 提供了動態防火墻管理功能,支持區域(zones)和服務(services)的概念
區域定義了網絡連接的信任級別,而服務則是一組預定義的端口和協議
`firewalld` 使得防火墻配置更加直觀和易于管理
二、iptables 基本命令 2.1 查看當前規則 sudo iptables -L -v -n - `-L`:列出規則
- `-v`:顯示詳細信息(如數據包計數和字節計數)
- `-n`:以數字形式顯示地址和端口
2.2 添加規則 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT - `-A INPUT`:將規則添加到 INPUT 鏈
- `-p tcp`:指定協議為 TCP
- `--dport 22`:指定目標端口為 22(SSH)
- `-j ACCEPT`:指定動作為接受
2.3 刪除規則 sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT - `-D INPUT`:從 INPUT 鏈中刪除規則
2.4 保存規則 由于 `iptables` 規則在系統重啟后會丟失,因此需要將其保存到配置文件中
對于基于 Debian 的系統(如 Ubuntu): sudo apt-get install iptables-persistent sudo netfilter-persistent save 對于基于 Red Hat 的系統(如 CentOS): sudo service iptables save 2.5 阻止特定 IP 地址 sudo iptables -I INPUT -s 192.168.1.100 -j DROP - `-I INPUT`:將規則插入到 INPUT 鏈的開頭
- `-s 192.168.1.100`:指定源 IP 地址
- `-j DROP`:指定動作為丟棄
三、firewalld 基本命令 3.1 啟動和停止 firewalld sudo systemctl start firewalld sudo systemctl stop firewalld 3.2 啟用和禁用 firewalld 開機自啟 sudo systemctl enable firewalld sudo systemctl disable firewalld 3.3 查看當前區域和規則 sudo firewall-cmd --get-active-zones sudo firewall-cmd --list-all 3.4 添加服務到區域 sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload - `--zone=public`:指定區域為 public
- `--add-service=http`:添加 HTTP 服務
- `--permanent`:永久生效
- `--reload`:重新加載防火墻配置
3.5 開放特定端口 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload - `--add-port=8080/tcp`:開放 TCP 8080 端口
3.6 允許特定 IP 地址訪問 sudo firewall-cmd --zone=public --add-rich-rule=rule family=ipv4 source address=192.168.1.100 accept --permanent sudo firewall-cmd --reload - `--add-rich-rule`:添加富規則
- `family=ipv4`:指定 IP 版本為 IPv4
- `source address=192.168.1.100`:指定源 IP 地址
四、高級配置與優化 4.1 日志記錄 為了更好地監控和分析網絡流量,可以啟用 `iptables` 的日志記錄功能
sudo iptables -A INPUT