配置安全的SSH连接涉及多个方面,包括使用强密码、配置SSH服务器、使用SSH密钥认证等。以下是一些关键步骤和最佳实践:
确保你的Linux系统和OpenSSL都是最新的,以防止已知的安全漏洞。
sudo apt update && sudo apt upgrade -y
编辑SSH服务器的配置文件 /etc/ssh/sshd_config
。
sudo nano /etc/ssh/sshd_config
进行以下配置:
禁用root登录:
PermitRootLogin no
使用强密码策略:
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
限制用户登录:
AllowUsers your_username
更改默认SSH端口:
Port 2222
启用公钥认证:
PubkeyAuthentication yes
禁用不必要的服务:
UsePrivilegeSeparation sandbox
X11Forwarding no
Subsystem sftp /usr/lib/openssh/sftp-server
配置SSH密钥认证:
AuthorizedKeysFile .ssh/authorized_keys
保存并退出配置文件后,重启SSH服务以应用更改。
sudo systemctl restart sshd
如果你还没有SSH密钥对,可以使用以下命令生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
按照提示操作,通常会将密钥存储在 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
。
将生成的公钥 (id_rsa.pub
) 添加到服务器的 ~/.ssh/authorized_keys
文件中。
ssh-copy-id user@server_ip -p 2222
确保防火墙允许SSH连接。
sudo ufw allow 2222/tcp
sudo ufw enable
现在你可以使用SSH密钥认证登录服务器:
ssh -p 2222 user@server_ip
定期检查SSH日志文件 /var/log/auth.log
或 /var/log/secure
,以便及时发现异常活动。
sudo tail -f /var/log/auth.log
Fail2Ban可以防止暴力破解攻击。安装并配置Fail2Ban:
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
编辑Fail2Ban配置文件 /etc/fail2ban/jail.local
,添加以下内容:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
定期更新系统和软件,进行安全审计,确保没有未授权的访问和潜在的安全风险。
通过以上步骤,你可以配置一个安全的SSH连接,保护你的服务器免受未经授权的访问。