firewall通用指令合集

failymao發表於2024-08-05

常用指令

  1. 檢視防火牆狀態

    firewall-cmd --state
    
  2. 停止firewall

    systemctl stop firewalld.service
    
  3. 禁止開機啟動

    systemctl disable firewalld.service
    
  4. 開放某個服務埠--允許所有IP訪問

    firewall-cmd --add-port=16379/tcp --permanent 
    
  5. 移除6379埠-禁止訪問

    firewall-cmd --permanent --remove-port=6379/tcp
    firewall-cmd --reload
    
  6. ** 只允許指定埠訪問指定伺服器埠**

    # 允許192.168.142.166 IP 訪問ES 9200埠
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" \
                  port protocol="tcp" port="9200" accept"
    firewall-cmd --reload
    
  7. 刪除規則:刪除上一條規則--撤銷192.168.142.166訪問本機9200埠的訪問許可權

    firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.142.166" 
                  port protocol="tcp" port="9200" accept"
    firewall-cmd --reload
    
  8. 其他指令

    #檢視開放的埠
    $ firewall-cmd --list-ports
    
    #查詢6379埠是否開放
    $ firewall-cmd --query-port=6379/tcp
    
    # 檢視當前系統開啟的所有埠
    firewall-cmd --zone=public --list-ports
    
    # 獲取已啟用的zonesudo dockerd –debug
    firewall-cmd --get-active-zones
    
    
  9. docker啟動失敗,防火牆問題

    ZONE_CONFLICT: 'docker0' already bound to a zone
    #Check if docker zone exists in firewall-cmd
    $ firewall-cmd --get-active-zones
    
    #If "docker" zone is available, change interface to docker0 (not persisted)
    $ sudo firewall-cmd --zone=docker --change-interface=docker0
    
    #If "docker" zone is available, change interface to docker0 (persisted, thanks rbjorklin)
    $ sudo firewall-cmd --permanent --zone=docker --change-interface=docker0
    
    $ sudo systemctl restart firewalld
    
  10. 檢視所有的規則

    firewall-cmd --list-all
    
  11. 埠轉發: 只允許外部透過訪問18088埠訪問伺服器8088 web服務, 外部無法透過8088埠服務

    1. 啟用埠轉發:
      sudo firewall-cmd --permanent --add-masquerade
      sudo firewall-cmd --reload
      
    2. 新增轉發規則:
      sudo firewall-cmd --permanent --add-forward-port=port=18088:proto=tcp:toport=8088
      sudo firewall-cmd --reload
      
    3. 禁用外部透過8088埠訪問 web服務
      firewall-cmd --permanent --remove-port=8088/tcp
      sudo firewall-cmd --reload
      

    這些命令將啟用埠轉發並新增相應的轉發規則。

    第一個命令啟用了IP偽裝(masquerade),允許轉發流量。

    第二個命令新增了轉發規則,將透過18088埠的流量轉發到8088埠。

    第三個:防火牆中新增了阻止8088埠訪問的規則

    請注意:如果你已經在防火牆中新增了阻止80埠訪問的規則,則可以跳過第一步

應用

外部透過訪問10022埠訪問ssh服務

  1. 檢查防火牆是否啟用

    service firewalld status
    
    #如果未啟用則啟用firewalld服務
    service firewalld start
    
  2. 檢查防火牆現有規則

    firewall-cmd --list-all
    
    # 輸出如下
    443/tcp 80/tcp 10022/tcp 9092/tcp 8088/tcp 8080/tcp 22/tcp 20514/udp 
    
  3. 檢查sshd服務, 新增sshd額外監聽埠10022,如果已配置,忽略此步驟

    vim /etc/ssh/sshd_config
    
    # 新增第18行程式碼
    ...
    17 Port 22
    18 Port 10022
    19 #AddressFamily any
    20 #ListenAddress 0.0.0.0
    21 #ListenAddress ::
    ...
    
    # 重啟ssh 服務
    service sshd restart
    
  4. 啟用 firewall埠轉發規則功能

    sudo firewall-cmd --permanent --add-masquerade
    sudo firewall-cmd --reload
    
  5. 新增埠轉發規則:將10022埠轉發至埠22

    sudo firewall-cmd --permanent --add-forward-port=port=10022:proto=tcp:toport=22
    sudo firewall-cmd --reload
    
  6. 禁用外部透過22埠訪問sshd服務

    firewall-cmd --permanent --remove-port=22/tcp
    firewall-cmd --reload
    
  7. 防火牆中新增了阻止8088/8080埠(星海大資料管理平臺)訪問的規則

    firewall-cmd --permanent --remove-port=8088/tcp
    firewall-cmd --permanent --remove-port=8080/tcp
    
    firewall-cmd --reload
    
  8. 新增埠轉發規則:將19092埠轉發至埠9092(KAFKA服務),同時禁用外部透過9092訪問KAFKA服務

    firewall-cmd --permanent --add-forward-port=port=19092:proto=tcp:toport=9092
    firewall-cmd --permanent --remove-port=9092/tcp
    
    sudo firewall-cmd --reload
    

相關文章