Firewalld是centos7的一大特性,Firewalld提供了一个动态管理的防火墙,支持网络/防火墙区域来定义网络连接或接口的信任级别。它支持IPv4、IPv6防火墙设置和以太网网桥,并分离运行时和永久配置选项。它还支持服务或应用程序直接添加防火墙规则的接口。
1.添加端口
# 添加指定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 添加临时指定端口
firewall-cmd --zone=public --add-port=8080/tcp
# 添加区间端口
firewall-cmd --zone=public --add-port=8080-9000/tcp --permanent
# 重新加载
firewall-cmd --reload
# 查看所有打开的端口
firewall-cmd --zone=public --list-ports
cat /etc/firewalld/zones/public.xml
# 查看端口
firewall-cmd --zone=public --query-port=8080/tcp
firewall-cmd防火墙管理工具常用参数:
--permanent #表示设置为永久
--state #查看服务状态
--get-default-zone #查询默认的区域名称
--set-default-zone=<zone> #设置默认的区域,不需要reload或者重启服务,是即改即生效,并且是永久的
--get-zones #显示可用的区域名称
--get-services #显示预先定义的服务
--get-active-zones #显示当前正在使用的区域与网卡名称
--add-source=<source>/<mask> #将来源于此IP或子网的流量导向指定的区域,例如:--add-source=192.168.2.110/24
--remove-source=<source>/<mask> #不再将此IP或子网的流量导向某个指定区域,例如:--remove-source=192.168.2.110/24
--add-interface=<interface> #将来自该接口的所有流量到指定区域,例如:--add-interface=eth0
--change-interface=<interface> #将接口已有绑定区域而与其他区域关联,例如:--change-interface=eth0
--list-all #列出默认区域的所有配置(接口、源、服务和端口)
--list-all-zones #列出所有区域的所有配置(接口、源、服务和端口)
--add-service=<service> #设置默认区域允许该服务,例如:--add-service=ssh
--remove-service=<service> #设置默认区域不再允许该服务,例如:--remove-service=ssh
--add-port=<portid>/<protocol> #添加允许该端口,例如:--add-port=8080/tcp
--remove-port=<portid>/<protocol> #删除允许该端口,例如:--remove-port=8080/tcp
--reload #让永久生效的配置规则立即生效
--panic-on #开启应急状况模式(阻断所有的网络连接)
--panic-off #关闭应急状况模式(阻断所有的网络连接)
2.删除端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
3.常用命令:
# 启动服务
systemctl start firewalld
# 关闭服务
systemctl stop firewalld
# 重启服务
systemctl restart firewalld
# 查看状态
systemctl status firewalld
# 开机启用
systemctl enable firewalld
# 开机禁用
systemctl disable firewalld
# 查看已启动的服务列表:
systemctl list-unit-files | grep enabled