为了防止 CentOS 系统上的 SSH 服务被攻击,你可以采取以下措施:

sudo yum update编辑 /etc/ssh/sshd_config 文件:
sudo vi /etc/ssh/sshd_config找到 #Port 22 这一行,取消注释并更改端口号,例如:
Port 2222保存文件并重启 SSH 服务:
sudo systemctl restart sshd/etc/ssh/sshd_config 文件,找到 PermitRootLogin 这一行,将其更改为 prohibit-password 或 no。PermitRootLogin prohibit-password保存文件并重启 SSH 服务:
sudo systemctl restart sshd在客户端生成 SSH 密钥对(如果尚未生成):
ssh-keygen将公钥复制到服务器的 ~/.ssh/authorized_keys 文件中:
ssh-copy-id -p 2222 your_username@your_server_ip确保 sshd_config 文件中的以下设置已启用:
PubkeyAuthentication yesPasswordAuthentication no保存文件并重启 SSH 服务:
sudo systemctl restart sshd例如,使用 firewalld 仅允许特定 IP 地址访问 SSH:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="your_ip_address" port protocol="tcp" port="2222" accept'sudo firewall-cmd --reload安装 Fail2ban:
sudo yum install fail2ban创建一个新的 Fail2ban 配置文件 /etc/fail2ban/jail.local,并添加以下内容:
[sshd]enabled = trueport = 2222filter = sshdlogpath = /var/log/securemaxretry = 3bantime = 600启动并启用 Fail2ban 服务:
sudo systemctl start fail2bansudo systemctl enable fail2ban通过采取这些措施,你可以大大降低 CentOS 系统上 SSH 服务被攻击的风险。请确保定期检查和更新系统,以便保持安全性。