溫馨提示×

如何用CentOS iptables阻止IP

小樊
47
2025-05-16 20:03:25
欄目: 智能運維

要使用 CentOS 的 iptables 阻止特定 IP 地址,可以按照以下步驟操作。請注意,執行這些命令需要具有 root 權限或使用 sudo。

1. 阻止單個 IP 地址

臨時阻止(重啟后失效):

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

說明:

  • -A INPUT:在 INPUT 鏈追加規則。
  • -s 192.168.1.100:指定要阻止的源 IP 地址。
  • -j DROP:丟棄匹配的數據包。

永久阻止(重啟后仍然有效):

CentOS 7 及以上版本使用 firewalld 作為默認防火墻,推薦使用 firewalld 來管理防火墻規則。如果需要使用 iptables 持久化規則,可以安裝 iptables-services 并保存規則。

# 安裝 iptables-services
sudo yum install iptables-services

# 啟動并啟用 iptables 服務
sudo systemctl start iptables
sudo systemctl enable iptables

# 添加規則
sudo iptables -A INPUT -s 192.168.1.100 -j DROP

# 保存規則
sudo service iptables save

對于 CentOS 6 或其他不支持 iptables-services 的版本,可以使用 service iptables save 命令,但具體方法可能因系統而異。

2. 阻止多個 IP 地址

臨時阻止:

sudo iptables -A INPUT -s 192.168.1.100 -j DROP
sudo iptables -A INPUT -s 192.168.1.101 -j DROP
sudo iptables -A INPUT -s 192.168.1.102 -j DROP

使用通配符或范圍(例如,阻止 192.168.1.100 到 192.168.1.110):

sudo iptables -m iprange --src-range 192.168.1.100-192.168.1.110 -j DROP

3. 阻止整個子網

臨時阻止:

sudo iptables -A INPUT -m iprange --src-range 192.168.1.0-192.168.1.255 -j DROP

4. 查看當前的 iptables 規則

sudo iptables -L -n -v

5. 刪除已添加的規則

如果需要刪除特定的規則,可以使用 iptables -D 命令。例如,刪除阻止 192.168.1.100 的規則:

sudo iptables -D INPUT -s 192.168.1.100 -j DROP

6. 使用 firewalld 進行更靈活的管理(推薦)

firewalld 提供了更直觀和動態的方式來管理防火墻規則,并支持區域(zone)的概念。

查看 firewalld 狀態:

sudo firewall-cmd --state

查看所有開放端口:

sudo firewall-cmd --list-all

阻止單個 IP:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'

重新加載 firewalld 配置:

sudo firewall-cmd --reload

刪除規則:

sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'

注意事項

  1. 備份現有規則: 在修改 iptables 規則之前,建議備份當前的規則,以便在需要時恢復。

    sudo iptables-save > /etc/iptables/rules.v4
    
  2. 順序重要性: iptables 規則是按順序匹配的,確保更具體的規則放在前面,以避免被更通用的規則覆蓋。

  3. 測試規則: 在應用規則后,使用 pingtelnet 等工具測試目標 IP 是否已被成功阻止。

  4. 權限: 修改 iptables 規則通常需要 root 權限,確保使用 sudo 或以 root 用戶身份執行相關命令。

  5. 持久化方法: 不同的 CentOS 版本可能有不同的持久化方法,推薦使用 firewalld 進行管理,尤其是在 CentOS 7 及以上版本中。

通過以上步驟,您應該能夠在 CentOS 系統中使用 iptables 或 firewalld 成功阻止指定的 IP 地址。如有進一步的問題,歡迎繼續提問!

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女