Linux操作系统中除了使用firewall-config图形化界面设置防火墙,也可以通过.xml配置文件或者命令行设置防火墙,下面介绍防火墙设置命令。
systemctl使用
systemctl unmask firewalld #执行命令,即可实现取消服务的锁定
systemctl mask firewalld # 下次需要锁定该服务时执行
systemctl start firewalld.service #启动防火墙
systemctl stop firewalld.service #停止防火墙
systemctl reload firewalld.service #重载配置
systemctl restart firewalld.service #重启服务
systemctl status firewalld.service #显示服务的状态
systemctl enable firewalld.service #在开机时启用服务
systemctl disable firewalld.service #在开机时禁用服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
firewall-cmd使用
firewall-cmd --state #查看防火墙状态
firewall-cmd --reload #更新防火墙规则
firewall-cmd --list-ports #查看所有打开的端口
firewall-cmd --list-services #查看所有允许的服务
firewall-cmd --get-services #获取所有支持的服务
firewall-cmd --permanent #防火墙设置永久有效
firewall-cmd --version #查看版本
firewall-cmd --help #查看帮助
创建一个新的Service
firewall-cmd --new-service=<service-name> 或
firewall-cmd --new-service-from-file=service-name.xml --name=service-name
将当前运行时的配置持久化,重启后继续生效
firewall-cmd --runtime-to-permanent
区域相关
firewall-cmd --get-zones #显示所有支持的分区
firewall-cmd --list-all-zones #查看所有区域信息
firewall-cmd --get-active-zones #查看活动区域信息
firewall-cmd --set-default-zone=public #设置public为默认区域
firewall-cmd --get-default-zone #查看默认区域信息
firewall-cmd --zone=public --add-interface=eth0 #将接口eth0加入区域public
firewall-cmd --zone=public --list-service#显示当前域public开放的服务
接口相关
firewall-cmd --zone=public --remove-interface=eth0 #从区域public中删除接口eth0
firewall-cmd --zone=default --change-interface=eth0 #修改接口eth0所属区域为default
firewall-cmd --get-zone-of-interface=eth0 #查看接口eth0所属区域
firewall-cmd --zone=dmz --list-ports #查看dmz区域所有打开的端口