CentOS7 使用 firewalld 打开关闭防火墙与端口

firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。

firewalld跟iptables比起来至少有两大好处:firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。 firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。

0x01 基本使用

yum install firewalld firewall-config    #安装firewalld
systemctl start firewalld    #启动
systemctl stop firewalld    #关闭
systemctl status firewalld    #查看状态
systemctl disable firewalld    #开机禁用
systemctl enable firewalld    #开机启用
systemctl start firewalld.service #启动一个服务
systemctl stop firewalld.service #关闭一个服务
systemctl restart firewalld.service #重启一个服务
systemctl status firewalld.service #显示一个服务的状态
systemctl enable firewalld.service #在开机时启用一个服务
systemctl disable firewalld.service #在开机时禁用一个服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
systemctl list-unit-files|grep enabled #查看已启动的服务列表
systemctl –failed #查看启动失败的服务列表

0x02 服务实例

firewall-cmd –version #查看版本
firewall-cmd –help #查看帮助
firewall-cmd –state #显示状态
firewall-cmd –zone=public –list-ports #查看所有打开的端口
firewall-cmd –reload #加载防火墙规则
firewall-cmd –get-active-zones #查看区域信息
firewall-cmd –get-zone-of-interface=eth0 #查看指定接口所属区域
firewall-cmd –panic-on #拒绝所有包
firewall-cmd –panic-off #取消拒绝状态
firewall-cmd –query-panic #查看是否拒绝
firewall-cmd --enable service=ssh    #允许SSH服务通过
firewall-cmd --disable service=ssh    #禁止SSH服务通过
firewall-cmd --enable ports=8080/tcp    #打开TCP的8080端口
firewall-cmd --enable service=samba --timeout=600    #临时允许Samba服务通过600秒
firewall-cmd --list-services    #显示当前服务
firewall-cmd --permanent --zone=internal --add-service=http    #添加HTTP服务到内部区域(internal)
firewall-cmd --reload    #在不改变状态的条件下重新加载防火墙
firewall-cmd --add-service=mysql    #开放mysql端口
firewall-cmd --remove-service=http    #阻止http端口
firewall-cmd --list-services    #查看开放的服务
firewall-cmd --add-port=3306/tcp    #开放通过tcp访问3306
firewall-cmd --remove-port=80tcp    #阻止通过tcp访问3306
firewall-cmd --add-port=233/udp    #开放通过udp访问233
firewall-cmd –zone=public –add-port=80/tcp –permanent #添加80tcp端口 –permanent 永久生效,没有此参数重启后失效
firewall-cmd –zone= public –remove-port=80/tcp –permanent # –permanent 永久生效,没有此参数重启后失效
firewall-cmd –zone=public –query-port=80/tcp #查看端口开启状态
firewall-cmd --list-ports    #查看开放的端口
firewall-cmd --zone=internal --change-zone=p3p1 #临时修改接口p3p1所属的zone为internal
firewall-cmd --add-service=http #暂时开放http
firewall-cmd --permanent --add-service=http #永久开放http
firewall-cmd --zone=public --add-port=80/tcp --permanent #在public中永久开放80端口
firewall-cmd --permanent --zone=public --remove-service=ssh #从public zone中移除服务
firewall-cmd --add-rich-rule="rule family="ipv4" source address="127.0.0.1/32" protocol value="icmp" accept" #增加指定源为127.0.0.1的主机,允许访问icmp协议。
firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade   # 允许防火墙伪装IP
firewall-cmd --remove-masquerade# 禁止防火墙伪装IP
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080    #将80端口的流量转发至8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1    #将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080    #将80端口的流量转发至192.168.0.1的8080端口
相关推荐
python ERROR: Command errored out with exit status 1:
Windows Server 2016 搭建 SMB 共享文件
Windows Server 2019 域环境搭建 SMB 共享文件服务
Parallels Desktop 15.1.3