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
     
原文地址:https://www.cnblogs.com/jiftle/p/13180979.html