在CentOS系统中,SSH(Secure Shell)是一种常用的远程登录协议。为了确保SSH的安全性,可以采取以下措施进行配置:
1. 更新系统
首先,确保你的CentOS系统是最新的,以修复已知的安全漏洞。
sudo yum update -y
2. 修改SSH默认端口
默认情况下,SSH使用端口22。将SSH端口更改为非标准端口可以减少自动化攻击的风险。
编辑/etc/ssh/sshd_config
文件:
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
Port 22
改为一个非标准端口,例如:
Port 2222
保存并退出编辑器,然后重启SSH服务:
sudo systemctl restart sshd
3. 禁用root登录
为了防止root用户直接通过SSH登录,可以在sshd_config
文件中禁用root登录。
编辑/etc/ssh/sshd_config
文件:
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
PermitRootLogin yes
改为:
PermitRootLogin no
保存并退出编辑器,然后重启SSH服务:
sudo systemctl restart sshd
4. 使用公钥认证
使用公钥认证代替密码认证可以提高安全性。生成SSH密钥对并将其添加到服务器上。
在本地机器上生成SSH密钥对:
ssh-keygen -t rsa -b 4096
将公钥复制到服务器:
ssh-copy-id user@remote_host
5. 配置防火墙
确保防火墙只允许必要的端口和服务。
使用firewalld
配置防火墙:
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp sudo firewall-cmd --reload
6. 启用Fail2Ban
Fail2Ban可以防止暴力破解攻击。安装并配置Fail2Ban:
sudo yum install fail2ban -y
启动并启用Fail2Ban服务:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
编辑Fail2Ban配置文件/etc/fail2ban/jail.local
,添加以下内容:
[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/secure maxretry = 3 bantime = 600
7. 定期审计和监控
定期检查SSH日志文件/var/log/secure
,监控异常登录尝试。
sudo tail -f /var/log/secure
8. 使用SELinux
如果启用了SELinux,确保它正确配置以增强安全性。
sudo setenforce 1 sudo vi /etc/selinux/config
将SELINUX=enforcing
设置为SELINUX=enforcing
。
9. 定期更新SSH
确保SSH软件包是最新的,以修复已知的安全漏洞。
sudo yum update openssh-server -y
通过以上步骤,可以显著提高CentOS系统上SSH的安全性。