Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
下面我们来看看firewalld常用命令
获取firewall状态
systemctl status firewalld.service firewall-cmd --state 开启停止防火墙 开机启动:systemctl enable firewalld.service 启动:systemctl start firewalld.service 停止:systemctl stop firewalld.service 禁止开机启动:systemctl disable firewalld.service
开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent –zone #作用域 –add-port=80/tcp #添加端口,格式为:端口号/协议 –permanent #永久生效,没有此参数重启后失效
禁用端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
应用修改
firewall-cmd --reload
查看所有开放的端口
firewall-cmd --zone=dmz --list-ports
其它参数说明
1. firewall-cmd --state ##查看防火墙状态,是否是running 2. firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 3. firewall-cmd --get-zones ##列出支持的zone 4. firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的 5. firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no 6. firewall-cmd --add-service=ftp ##临时开放ftp服务 7. firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务 8. firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务 9. iptables -L -n ##查看规则,这个命令是和iptables的相同的