我们买了服务器后,最好立即修改ssh端口做好安全防护,避免被密码被暴力破解导致服务器被黑,接下来我以 Ubuntu 24 系统为例,跟着我的操作来加固服务器安全:
- 通过
last 命令查看登录成功日志,确认只有自己的ip登录
- 通过
lastb -n 30 命令可以看到很多ip在不停试错的登录失败记录
- 修改配置文件,将
#Port 22 改为高位端口,不建议改为 22222 这种常见 ssh 高位端口,也容易被不停试错,最好是随机一点,例如我这里改为 Port 20827
1
| sudo vim /etc/ssh/sshd_config
|
- 写 ssh.socket 覆盖配置
1 2 3 4 5 6 7 8
| sudo mkdir -p /etc/systemd/system/ssh.socket.d
sudo tee /etc/systemd/system/ssh.socket.d/override.conf > /dev/null <<'EOF' [Socket] ListenStream= ListenStream=0.0.0.0:20827 ListenStream=[::]:20827 EOF
|
- 重新加载 systemd
1
| sudo systemctl daemon-reload
|
- 检查 SSH 配置语法, 如果没有输出,就是正常
- 重启 ssh.socket
1
| sudo systemctl restart ssh.socket
|
- 重启 ssh
1
| sudo systemctl restart ssh
|
- 确认是否切到高位端口 20827
1 2
| sudo systemctl status ssh.socket --no-pager -l sudo ss -lntp | grep ssh
|
- 安装 ufw 防火墙
1 2
| sudo apt update sudo apt install -y ufw
|
- 放行需要的端口, 一定要放行刚才配的ssh端口
1 2 3
| sudo ufw allow 20827/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp
|
- 启用防火墙, 提示确认按 y
- 查看防火墙状态, 此时记得新开一个 ssh 连接查看是否能连上
- 安装 fail2ban 防止暴力破解 ssh 密码
1 2
| sudo apt update sudo apt install -y fail2ban
|
- 写入本地配置 (10分钟内试错3次锁 ip 一年, 可以在 ignoreip 后加空格自己的 ip 设置白名单)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| sudo tee /etc/fail2ban/jail.local > /dev/null <<'EOF' [DEFAULT] bantime = 1y findtime = 10m maxretry = 3 backend = systemd banaction = ufw ignoreip = 127.0.0.1/8 ::1
[sshd] enabled = true port = 20827 logpath = %(sshd_log)s EOF
|
- 测试语法是否有误, 启动并设置开机自启
1 2 3 4
| sudo fail2ban-client -t
sudo systemctl enable fail2ban sudo systemctl restart fail2ban
|
- 检测配置是否生效
1 2 3
| sudo systemctl status fail2ban --no-pager -l sudo fail2ban-client status sudo fail2ban-client status sshd
|
做完这些你的服务器基本不会被暴力试错破解密码了,但是你的密码信息仍可能通过社工手段被偷走,如果希望更加安全,可以通过禁用密码登录,通过密钥凭证登录等的手段来保证服务器安全