1、安装firewalld防火墙及启用
安装防火墙命令:
yum -y install firewalld
如果系统已经安装firewalld防火墙,执行yum命令后会自动更新到最新版firewalld。
启动防火墙命令:
systemctl start firewalld
执行命令无任何返回结果,表明开启firewalld防火墙成功。
执行命令如果返回结果: Failed to start firewalld.service: Unit is masked. 说明系统锁定firewalld服务,防火墙无法开启,需要先执行解锁firewalld服务。
解锁防火墙命令:
systemctl unmask firewalld
删除firewalld默认规则:
rm -rf /etc/firewalld/zones
设置firewalld防火墙区域(zone)为public:
firewall-cmd --set-default-zone=public
设置开机自启动防火墙:
systemctl enable firewalld
重启防火墙服务:
systemctl restart firewalld
2、设置防火墙firewalld需要开放端口
查看防火墙已经开放端口列表命令:
firewall-cmd --list-all
从返回结果上看出ports后面为空,表示没有开通任何端口。
开通端口命令,例如http端口80、https端口443、mysql端口3306,命令如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
修改防火墙配置后,必须重新加载才能生效。
重新加载firewalld防火墙命令:
firewall-cmd --reload
移除端口命令,例如关闭80端口,命令如下:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
执行完毕命令后重新加载:
firewall-cmd --reload
通过设置防火墙firewalld实现服务器禁止ping通,设置如下:
通过icmp-block-inversion实现禁止ping,命令如下:
firewall-cmd --permanent --add-icmp-block-inversion
通过icmp-block实现禁止ping,命令如下:
firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'
允许服务器ping通,可以移除添加的禁ping规则,命令如下:
firewall-cmd --permanent --remove-icmp-block-inversion
firewall-cmd --permanent --remove-rich-rule='rule protocol value=icmp drop'
防火墙常用命令
查看防火墙状态命令:
systemctl status firewalld
关闭防火墙命令:
systemctl stop firewalld
开启防火墙命令:
systemctl start firewalld
重启防火墙命令:
systemctl restart firewalld
开机时自动启动防火墙服务:
systemctl enable firewalld
开机时自动禁用防火墙服务:
systemctl disable firewalld
修改配置后重新加载防火墙命令:
firewall-cmd --reload
查看端口占用情况命令:
netstat -tlunp