一、代码
# 启动防火墙
systemctl start firewalld
# 查看防火墙状态
systemctl status firewalld
# 设置防火墙开机自启
systemctl enable firewalld
# 查看firewalld默认规则列表
firewall-cmd --list-all
# 增加防火墙规则,只允许白名单IP(192.168.0.100)访问服务器的22端口
# 注意:这一步一定要将白名单IP设置好了,不然这一部操作完后,不在白名单的服务器就不能ssh登录了。
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.100" port protocol="tcp" port="22" accept' --permanent
# 移除防火墙默认规则中的ssh登录默认规则
firewall-cmd --zone=public --remove-service=ssh --permanent
# 如果想回退,则把remove修改为add或者把add修改为remove
# 增加所有IP可以访问服务器ssh服务(22端口)
firewall-cmd --zone=public --add-service=ssh --permanent
# 重新加载防火墙配置
firewall-cmd --reload
linux自带防护墙默认配置为所有机器都可以访问ssh服务。
二、加固代码,只允许白名单内的IP地址可以访问服务器的22端口
# 只允许192.168.0.1访问服务器的22端口
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.1" port protocol="tcp" port="22" accept' --permanent
# 只允许192.168.0.2访问服务器的22端口
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.2" port protocol="tcp" port="22" accept' --permanent
# 只允许192.168.1.0/24访问服务器的22端口
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept' --permanent
# 将防火墙默认配置所有IP地址都可以访问ssh服务规则删除
firewall-cmd --zone=public --remove-service=ssh --permanent
# 重新加载防火墙配置
firewall-cmd --reload
# 显示防火墙规则
firewall-cmd --list-all