在Rocky Linux上修改SSH默认端口为8888,并限制访问来源为172.16.0.0/16网段,同时确保SELinux允许SSH服务在新端口上运行,以下是完整的步骤:
1. 修改SSH配置文件
步骤:
使用文本编辑器打开SSH配置文件sshd_config。
sudo vim /etc/ssh/sshd_config
找到#Port 22行,去掉注释并将其修改为8888。
Port 8888
保存并关闭文件。如果您使用的是vim,请按下Esc键,然后输入:wq并按下Enter。
重新加载SSH服务以应用更改:
sudo systemctl reload sshd
查看ssh运行状态。
查看ssh运行状态,确保ssh运行正常
[root@bogon ~]# systemctl status sshd
2. 更新防火墙规则
查看当前防火墙规则:
sudo firewall-cmd --list-all
步骤:
移除旧的允许SSH端口22的规则(如果存在)。
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port protocol="tcp" port="22" accept'
添加新的允许规则,仅允许172.16.0.0/16网段访问新的SSH端口8888。
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.16.0.0/16" port protocol="tcp" port="8888" accept'
拒绝其他所有IP地址对端口8888的访问。
sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source not address='172.16.0.0/16' port protocol='tcp' port='8888' drop"
重载防火墙配置以应用更改。
sudo firewall-cmd --reload
3. 修改SELinux配置
步骤:检查SELinux状态,确保SELinux已启用。
sestatus
如果SELinux状态为enabled,则继续下一步。
安装semanage工具(如果未安装)。
sudo yum install policycoreutils-python-utils
使用semanage命令将新端口8888添加到SELinux的SSH端口列表中。
sudo semanage port -a -t ssh_port_t -p tcp 8888
检查SELinux策略,确保新端口已正确添加。
sudo semanage port -l | grep ssh
这将列出所有标记为ssh_port_t的端口,您应该能够看到端口8888已列出。
4. 重启SSH服务
步骤:重新启动SSH服务以应用端口更改。
sudo systemctl restart sshd
5. 验证配置
步骤:检查SSH服务状态,确保服务正在运行且没有错误。
sudo systemctl status sshd
从172.16.0.0/16网段内的一台机器测试SSH连接,确保连接成功。
ssh username@server_ip -p 8888
从其他网段的机器尝试连接,确认连接被拒绝。
完成以上步骤后,您已经成功地将Rocky Linux上的SSH默认端口修改为8888,并限制了访问来源为172.16.0.0/16网段,同时确保SELinux允许SSH服务在新端口上运行。
启用防火墙的日志记录
sudo firewall-cmd --set-log-denied=all
sudo firewall-cmd --runtime-to-permanent
使用journalctl查看firewalld日志
sudo journalctl -f -u firewalld