要提升CentOS SSH的安全性,可以采取以下措施:
-
更改默认SSH端口:
- 编辑SSH配置文件
/etc/ssh/sshd_config
。 - 找到
#Port 22
这一行,取消注释并更改端口号(例如改为2222)。 - 保存文件并重启SSH服务:
sudo systemctl restart sshd
。
- 编辑SSH配置文件
-
禁用root登录:
- 在
/etc/ssh/sshd_config
文件中找到PermitRootLogin
这一行。 - 将其值改为
prohibit-password
或no
。 - 保存文件并重启SSH服务。
- 在
-
使用公钥认证:
- 在客户端生成SSH密钥对(如果还没有):
ssh-keygen -t rsa
。 - 将公钥复制到服务器的
~/.ssh/authorized_keys
文件中。 - 确保
~/.ssh
目录和authorized_keys
文件的权限正确:chmod 700 ~/.ssh
和chmod 600 ~/.ssh/authorized_keys
。
- 在客户端生成SSH密钥对(如果还没有):
-
限制SSH访问:
- 使用防火墙(如firewalld或iptables)限制可以访问SSH的IP地址。
- 例如,使用firewalld:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="2222" accept'
。
-
使用Fail2Ban:
- Fail2Ban可以监控SSH登录失败日志,并自动封禁可疑IP地址。
- 安装Fail2Ban:
sudo yum install fail2ban
。 - 配置Fail2Ban以监控SSH日志并设置封禁策略。
-
更新SSH版本:
- 确保使用的是最新版本的OpenSSH,因为新版本通常包含安全修复和改进。
- 更新SSH:
sudo yum update openssh-server
。
-
使用SELinux:
- 如果系统启用了SELinux,可以配置SELinux策略来限制SSH的访问和行为。
- 例如,可以设置SELinux布尔值来限制SSH的访问控制。
-
监控和日志记录:
- 定期检查SSH日志文件(通常位于
/var/log/secure
)以发现异常活动。 - 使用工具如
logwatch
或auditd
来自动化日志分析和监控。
- 定期检查SSH日志文件(通常位于
-
使用SSH隧道和代理:
- 使用SSH隧道来加密和保护数据传输。
- 使用SSH代理(如
sshuttle
或ProxyCommand
)来管理多个SSH连接。
通过实施这些措施,可以显著提高CentOS SSH服务器的安全性。记得定期审查和更新安全配置,以应对新的威胁和漏洞。