主题
SSH 安全配置
SSH(Secure Shell)是 Linux 系统远程管理的主要工具,保障 SSH 访问的安全性是系统安全的重要环节。合理配置 SSH,可以有效防止未授权登录和暴力破解攻击。
一、禁用 root 用户直接登录
直接以 root 登录存在极大风险,应强制使用普通用户并通过 sudo 提权。
编辑 SSH 配置文件:
bash
sudo nano /etc/ssh/sshd_config修改或添加以下内容:
txt
PermitRootLogin no保存后,重启 SSH 服务:
bash
sudo systemctl restart sshd二、使用 SSH 密钥认证
密码认证易被暴力破解,推荐使用公钥认证。
1. 生成密钥对
在客户端执行:
bash
ssh-keygen -t rsa -b 4096 -C "[email protected]"2. 上传公钥到服务器
bash
ssh-copy-id username@server_ip或手动将公钥内容追加到服务器 ~/.ssh/authorized_keys。
3. 禁用密码认证
编辑 /etc/ssh/sshd_config,设置:
txt
PasswordAuthentication no重启 SSH:
bash
sudo systemctl restart sshd三、修改默认端口(可选)
默认端口 22 容易成为攻击目标,可更改为非标准端口:
txt
Port 2222注意修改后防火墙相应放行新端口。
四、限制允许登录用户
通过 AllowUsers 或 AllowGroups 指令限定可登录的用户或组:
txt
AllowUsers alice bob
# 或
AllowGroups sshusers五、配置防火墙规则
确保只允许信任的 IP 或网段访问 SSH 端口。
使用 ufw(Ubuntu)示例:
bash
sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw enable六、启用登录失败保护
安装并配置 fail2ban,自动封禁多次失败的 IP。
bash
sudo apt install fail2ban配置 /etc/fail2ban/jail.local 启用 sshd 监控。
七、其他安全建议
- 禁止空密码登录:
PermitEmptyPasswords no - 启用登录超时限制:
LoginGraceTime 30 - 禁用 X11 转发(若不使用):
X11Forwarding no - 定期查看登录日志:
sudo tail -f /var/log/auth.log
通过以上配置,可以大幅提升 Linux 服务器的 SSH 安全性,防止未经授权的远程访问,保障系统稳定运行。
