为了防止 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 yes
PasswordAuthentication 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 = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 600
启动并启用 Fail2ban 服务:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
通过采取这些措施,你可以大大降低 CentOS 系统上 SSH 服务被攻击的风险。请确保定期检查和更新系统,以便保持安全性。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>