CentOS7/RHEL7系统默认的iptables管理工具是firewalld,不再是以往的iptables-services,命令用起来也是不一样了,当然你也可以选择卸载firewalld,安装iptables-services
firewalld 服务管理
1.安装firewalld
yum -y install firewalld
2.开机启动/禁用服务
systemctl enable/disable firewalld
3.启动/关闭服务
systemctl start/stop firewalld
4.查看服务状态
systemctl status firewalld
使用 firewall-cmd 命令设置规则
1.查看状态
firewall-cmd --state
2.获取活动的区域
firewall-cmd --get-active-zones
3.获取所有支持的服务
firewall-cmd --get-service
4.应急模式(阻断所有的网络连接)
firewall-cmd --panic-on #开启应急模式
firewall-cmd --panic-off #关闭应急模式
firewall-cmd --query-panic #查询应急模式
5.修改配置文件后,使用命令重新加载
firewall-cmd --reload
6.启用某个服务/端口
firewall-cmd --zone=public --add-service=https #临时 firewall-cmd --zone=public --add-port=8080-8081/tcp #临时
firewall-cmd --permanent --zone=public --add-service=https #永久 firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp #永久
如果是要删除,直接修改成remove-service或者remove-port
7.查看开启的端口和服务
firewall-cmd --permanent --zone=public --list-services #服务空格隔开
例如 dhcpv6-client https ss
firewall-cmd --permanent --zone=public --list-ports #端口空格隔开
例如 8080-8081
在每次修改端口和服务后 /etc/firewalld/zones/public.xml 文件就会被修改
8.设置某个ip访问某个服务
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.122.0/24" service name="http" accept" #ip 192.168.122.0/24 访问 http
总结
防火墙预定义的服务配置文件是xml文件,目录在 /usr/lib/firewalld/services/
在 /etc/firewalld/services/ 这个目录中也有配置文件,但是/etc/firewalld/services/目录优先于 /usr/lib/firewalld/services/ 目录