溫馨提示×

Ubuntu防火墻如何實現自動化管理

小樊
73
2025-05-20 04:33:45
欄目: 智能運維

在Ubuntu系統中,可以使用 Uncomplicated Firewall (UFW)Firewalld 來實現防火墻的自動化管理。以下是兩種方法的詳細介紹:

使用UFW進行自動化管理

  1. 安裝UFW(如果尚未安裝):

    sudo apt update
    sudo apt install ufw
    
  2. 啟用UFW

    sudo ufw enable
    
  3. 配置UFW規則

    • 允許特定端口:
      sudo ufw allow 22/tcp  # 允許SSH
      sudo ufw allow 80/tcp  # 允許HTTP
      sudo ufw allow 443/tcp # 允許HTTPS
      
    • 允許特定IP地址或子網:
      sudo ufw allow from 192.168.1.0/24 to any port 22  # 允許來自192.168.1.0/24網段的SSH連接
      
    • 刪除規則:
      sudo ufw delete allow 22/tcp  # 刪除允許22端口的規則
      
  4. 查看當前規則

    sudo ufw status verbose
    
  5. 保存規則(確保重啟后規則仍然有效):

    sudo ufw save
    
  6. 自動化腳本(例如,firewall.sh):

    #!/bin/bash
    ufw disable
    echo y | ufw reset
    ufw allow from xxx.xxx.xxx.xxx
    ufw allow from xx.xx.xx.0/24
    ufw allow from 192.168.101.0/24 to any port 161 proto udp
    ufw allow 80/tcp
    ufw allow 1:500/tcp
    ufw enable
    

使用Firewalld進行自動化管理

  1. 安裝Firewalld(如果尚未安裝):

    sudo apt update
    sudo apt install firewalld
    
  2. 啟用Firewalld

    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  3. 配置Firewalld規則

    • 添加新的規則:
      sudo firewall-cmd --permanent --add-port=80/tcp
      sudo firewall-cmd --permanent --add-service=http
      sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
      
  4. 重新加載防火墻規則

    sudo firewall-cmd --reload
    
  5. 自動化腳本(例如,firewall_manager.py):

    import firewalld
    
    fw = firewalld.Firewall()
    
    # 獲取當前運行狀態
    status = fw.getStatus()
    print("Firewalld status:", status)
    
    # 添加一個新的區域
    new_zone = "myzone"
    if not fw.zoneExists(new_zone):
        fw.newZone(new_zone, {"target": "ACCEPT", "icmp-block-inversion": "no"})
        print(f"New zone '{new_zone}' created.")
    else:
        print(f"Zone '{new_zone}' already exists.")
    
    # 將新區域設置為默認區域
    fw.setDefaultZone(new_zone)
    print(f"Default zone set to '{new_zone}'.")
    
    # 向新區域添加一條規則,允許來自IP地址192.168.1.100的SSH流量
    source_ip = "192.168.1.100"
    service = "ssh"
    fw.addRichRule(f"rule family=\"ipv4\" source address=\"{source_ip}\" service name=\"{service}\" accept", new_zone)
    print(f"Added rule to allow SSH traffic from {source_ip}.")
    
    # 重新加載防火墻配置
    fw.reload()
    print("Firewalld configuration reloaded.")
    

通過上述方法,可以實現Ubuntu防火墻的自動化管理。根據具體需求,可以選擇使用UFW或Firewalld,并通過腳本進一步自動化配置過程。

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