firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的"zone"概念
firewalld有图形界面和工具界面,图形界面请参照官方文档;我们以字符界面介绍
firewalld的字符界面管理工具是firewall-cmd
firewalld默认配置文件有两个:
/usr/lib/firewalld/ 系统配置,尽量不要修改
/etc/firewalld/ 用户配置地址
##########################1.查下是否安装#########################################
systemctl status firewalld
#########################2.如果未安装,则进行安装##################################
yum install firewalld firewall-config
#########################3.如果已安装不是, 更新最新版本##################################
yum -y update firewalld
#########################4.安装更新完毕,查下详细信息################################
rpm -qi firewalld firewalld firewall-config
#######################1.启用firewalld服务########################################
systemctl start firewalld
#######################2.查看firewalld状态########################################
systemctl status firewalld 或firewall-cmd --state
#######################3.停止服务##############################################
systemctl disable firewalld
#######################4.禁用服务(禁用后,下次系统启动,是不会自动开启firewalld服务)#######
systemctl stop firewalld
#######################5.恢复开机自动启动firewalld服务##############################
systemctl enable firewalld
#######################6.重启服务##############################################
systemctl restart firewalld
#######################7.更多命令请使用help获取帮助################################
#######################添加服务###############################################
firewall-cmd --state
firewall-cmd --list-services
=================查询可添加的服务
firewall-cmd --get-services
=================查询已开放的端口
firewall-cmd --zone=public --list-ports
=================更新防火墙规则
firewall-cmd --reload
=================添加开放服务
firewall-cmd --add-service=http //添加http服务
这样添加的服务当前立即生效,但系统下次启动就失效了,要永久开放,使用 --permanent参数
firewall-cmd --add-service=mysql --permanent //添加mysql服务
================查看已开放服务
firewall-cmd --list-services //可以看到已添加的服务了
================如果添加的服务端口不对应,需要更改服务配置文件
cd /usr/lib/firewalld/service
================更改需要改动的service文件
firewall-cmd --reload
一个服务,对应一个端口,添加开放端口,外部就可以访问到
#########################添加开放端口##########################################
firewall-cmd --zone=public --add-port=3810/tcp
#########这样添加的端口当前立即生效,但系统下次启动就失效了,要永久开放,使用 --permanent参数
firewall-cmd --zone=public --add-port=3810/tcp --permanent
#########################查看端口是否添加成功####################################
firewall-cmd --list-ports
没有当前的端口号,需要更新防火墙规则
#########################更新防火墙规则#########################################
firewall-cmd --reload 或 firewall-cmd --complate-reload
使用第一命令,无需断开连接,这就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务
#########################在次查看端口##########################################
firewall-cmd --zone=public --query-port=3810/tcp ###yes存在
firewall-cmd --list-ports ###列表中存在
#########################如果添加的端口没有对应的服务#############################
就要新建一个服务,在/usr/lib/firewalld/services,随便拷贝一个xml文件,改一个新名字
如果是新添加的service,需要把新建的service添加到firewalld
firewall-cmd --permanent --add-service=myservice
######################重启firewall服务###################################
systemctl restart firewalld
参考博客:
https://blog.csdn.net/solaraceboy/article/details/78342360
https://blog.csdn.net/spxfzc/article/details/39645133
https://www.cnblogs.com/hubing/p/6058932.html