Firewall常用规则设置【转发】
   3 分钟阅读    邵晨峰

Firewall常用规则设置【转发】

一. 设置firewall规则

例1:对外暴露8080端口

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

例2:使mysql服务的3306端口只允许192.168.1.1/24网段的服务器能访问

#添加规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="3306" accept"

#reload使生效
firewall-cmd --reload

例3:端口转发,将到本机的3306端口的访问转发到192.168.1.1服务器的3306端口

# 开启伪装IP
firewall-cmd --permanent --add-masquerade
# 配置端口转发
firewall-cmd --permanent --add-forward-port=port=3306:proto=tcp:toaddr=192.168.1.2:toport=13306

注意:如果不开启伪装IP,端口转发会失败;其次,要确保源服务器上的端口(3306)和目标服务器上的端口(13306)是开启的。

二. firewall命令

1.启动, 停止, 重启firewalld

  1. 停止
systemctl stop firewalld.service 
  1. 启动
systemctl start firewalld.service 
  1. 重启
systemctl restart firewalld.service
  1. 查看状态
systemctl status firewalld 
  1. 禁止firewall开机启动
systemctl disable firewalld
  1. 设置开机启用防火墙
    systemctl enable firewalld.service

2.查看firewall规则与状态

  1. 查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state              
  1. 查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)
firewall-cmd --list-all           
  1. 查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)
firewall-cmd --list-all-zones     
  1. 重新加载配置文件
firewall-cmd --reload             
  1. 配置firewalld-cmd
查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息:  firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

4. 开启一个端口

  1. 添加(–permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
  1. 重新载入(修改规则后使其生效)
firewall-cmd --reload
  1. 查看
firewall-cmd --zone=public --query-port=80/tcp
  1. 删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent

因为在/usr/lib/firewalld/services/中事先定义了ssh.xml等相应的规则,所以可以直接运用规则

firewall-com --zone=public --add-server=ssh --permanent
  1. systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

原文链接:https://www.jianshu.com/p/4a9958d2e859