firewall的規則設置與命令(白名單設置)


一. 設置firewall規則

例1:對外暴露8080端口

firewall-cmd --permanent --add-port=8080/tcp 

例2:使mysql服務的3306端口只允許192.168.1.1/24網段的服務器能訪問

  1. #添加規則
  2. firewall-cmd --permanent -- add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="3306" accept"
  3.  
  4. #reload使生效
  5. firewall-cmd --reload

例3:端口轉發,將到本機的3306端口的訪問轉發到192.168.1.1服務器的3306端口

  1. # 開啟偽裝IP
  2. firewall-cmd --permanent --add-masquerade
  3. # 配置端口轉發
  4. firewall-cmd --permanent --add-forward-port=port= 3306:proto=tcp:toaddr=192.168.1.2:toport=13306

注意:如果不開啟偽裝IP,端口轉發會失敗;其次,要確保源服務器上的端口(3306)和目標服務器上的端口(13306)是開啟的。

二. firewall命令

1.啟動, 停止, 重啟firewalld

  1. 1. 停止
  2. systemctl stop firewalld.service
  3.  
  4. 2. 啟動
  5. systemctl start firewalld.service
  6.  
  7. 3. 重啟
  8. systemctl restart firewalld.service
  9.  
  10. 4. 查看狀態:
  11. systemctl status firewalld
  12.  
  13. 5.禁止firewall開機啟動
  14. systemctl disable firewalld
  15.  
  16. 6. 設置開機啟用防火牆:
  17. systemctl enable firewalld.service

2.查看firewall規則與狀態

  1. 1. 查看默認防火牆狀態(關閉后顯示notrunning,開啟后顯示running)
  2. firewall-cmd --state
  3.  
  4. 2. 查看防火牆規則(只顯示/etc/firewalld/zones/public.xml中防火牆策略)
  5. firewall-cmd --list-all
  6.  
  7. 3. 查看所有的防火牆策略(即顯示/etc/firewalld/zones/下的所有策略)
  8. firewall-cmd --list-all-zones
  9.  
  10. 4. 重新加載配置文件
  11. firewall-cmd --reload
  12.  

3.配置firewalld-cmd

  1. 查看版本: firewall-cmd --version
  2.  
  3. 查看幫助: firewall-cmd --help
  4.  
  5. 顯示狀態: firewall-cmd --state
  6.  
  7. 查看所有打開的端口: firewall-cmd --zone=public --list-ports
  8.  
  9. 更新防火牆規則: firewall-cmd --reload
  10.  
  11. 查看區域信息: firewall-cmd --get-active-zones
  12.  
  13. 查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=eth0
  14.  
  15. 拒絕所有包:firewall-cmd --panic-on
  16.  
  17. 取消拒絕狀態: firewall-cmd --panic-off
  18.  
  19. 查看是否拒絕: firewall-cmd --query-panic

4. 那怎么開啟一個端口呢

  1. 1. 添加(--permanent永久生效,沒有此參數重啟后失效)
  2. firewall-cmd --zone= public --add-port=80/tcp --permanent
  3.  
  4. 2. 重新載入(修改規則后使其生效)
  5. firewall-cmd --reload
  6.  
  7. 3. 查看
  8. firewall-cmd --zone= public --query-port=80/tcp
  9.  
  10. 4. 刪除
  11. firewall-cmd --zone= public --remove-port=80/tcp --permanent
  12.  
  13. 因為在/usr/lib/firewalld/services/中事先定義了ssh.xml的相應的規則

5. systemctl是CentOS7的服務管理工具中主要的工具,它融合之前service和chkconfig的功能於一體。

  1. 啟動一個服務:systemctl start firewalld.service
  2. 關閉一個服務:systemctl stop firewalld.service
  3. 重啟一個服務:systemctl restart firewalld.service
  4. 顯示一個服務的狀態:systemctl status firewalld.service
  5. 在開機時啟用一個服務:systemctl enable firewalld.service
  6. 在開機時禁用一個服務:systemctl disable firewalld.service
  7. 查看服務是否開機啟動:systemctl is-enabled firewalld.service
  8. 查看已啟動的服務列表:systemctl list-unit-files|grep enabled
  9. 查看啟動失敗的服務列表:systemctl --failed
     
     
    原文: https://blog.csdn.net/qq_29493353/article/details/83383844
     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM