[user@localhost ~] su root 密码: [root@localhost home]# cd ~ [root@localhost ~]#
systemctl status firewalld
systemctl firewall state 或 firewall-cmd --state
#启动防火墙 systemctl start firewalld #重启防火墙 systemctl restart firewalld 或 systemctl reload firewalld #关闭 systemctl stop firewalld #设置开机自启动防火墙 systemctl enable firewalld.service #查看防火墙设置开机自启是否成功 systemctl is-enabled firewalld.service
如下图所示,即为防火墙设置开机自启是否成功。
在开启防火墙之后,我们有些服务就会访问不到,是因为服务的相关端口没有打开。
firewall-cmd --list-ports 或 netstat -ntlp
firewall-cmd --list-all
firewall-cmd --list-protocals
本次以开启80端口为例。
# 查询端口是否开放 firewall-cmd --query-port=80/tcp
命令规则:
–permanent:表示永久生效,若没有重启失效;
– zone :表示作用域
–add-port=80/tcp 表示添加端口,格式为端口/通讯协议
开启端口的关键字:add
移除的关键字:remove
#永久增加/开启80端口 firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=998/tcp firewall-cmd --add-port=999/tcp #重启防火墙服务 systemctl restart firewalld #删除端口 firewall-cmd --remove-port=999/tcp
允许ip访问的关键字:accept
阻止ip访问的关键字:drop
#开启192.168.43.88访问 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.43.100" accept" #重启防火墙服务 firewall-cmd --reload #禁止192.168.43.88访问 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.43.100" drop"
# 允许IPV4 Ip是8.8.8.8 连接端口80 accept表示允许使用 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="8.8.8.8" port protocol="tcp" port="80" accept" # 允许IPV4 Ip是10.168.186.25 连接端口22 accept表示允许使用 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.168.186.25" port protocol="tcp" port="22" accept" firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.168.186.25,10.168.186.211" port protocol="tcp" port="3306" accept" firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.168.186.0/24" port protocol="tcp" port="22" accept" # 以上运行完后提示success则表示配置成功
#阻止ICMP包 firewall-cmd --permanent --add-rich-rule="rule protocol value="icmp" drop" #允许特定地址通过icmp firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="120.12.23.136" protocol value="icmp" accept"
#允许特定地址可以访问SSH服务 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.168.186.25" service name="ssh" accept"
firewall-cmd --remove-rich-rule="rule family="ipv4" source address="10.168.186.25" service name="ssh" drop" #从允许通过防火墙的列表里移除SSH服务 sudo firewall-cmd --remove-service=ssh --permanent firewall-cmd --remove-rich-rule="rule protocol value="icmp" drop" --permanent
#重启防火墙(修改配置后要重启防火墙) firewall-cmd --reload #加入白名单 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="8.8.8.8" port protocol="tcp" port="80" accept" #查看规则 firewall-cmd --list-rich-rules #显示是 rule family="ipv4" source address="8.8.8.8" port port="80" protocol="tcp" accept #删除规则 firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="8.8.8.8" port port="80" protocol="tcp" accept" #注意端口添加,删除后要更新防火墙 firewall-cmd --reload
firewall-cmd --get-services
#增加服务 (临时增加) firewall-cmd --add-service=http #删除服务 (临时删除) firewall-cmd --remove-service=http #查询服务 firewall-cmd --query-service=http