本文最后更新于 137 天前,如有失效请评论区留言。
本来不想写的,但是过了几天才突然发现fail2ban启动失败。。😓 提醒大家设置完以后多检查一下
更新 & 升级
sudo apt update -y
sudo apt upgrade -y
创建新用户
# 创建新用户 new_user
adduser new_user
# 把刚创建的新用户加到sudo group里
usermod -aG sudo new_user
# 查看新用户
groups new_user
测试新用户
ssh-keygen -t ed25519 -C "[email protected]"
ssh-copy-id -i ~/.ssh/mykey user@host
ssh -i ~/.ssh/mykey user@host
sudo su
SSH设置
更改 “/etc/ssh/sshd_config”加强ssh安全
Port 22222 # 更改SSH端口,这样SSH暴力破解难度稍微大一点
PermitRootLogin no #禁止root登陆,以后用新创建的用户登陆
PubkeyAuthentication yes #用pubkey登陆
PasswordAuthentication no #禁止用密码登陆
PermitEmptyPasswords no #禁止空密码
重启SSH服务, 注意:重启的时候一定要保持当前session开着,另外开一个session测试sshd登陆有没有问题。这样万一有问题,还可以用旧的session把sshd_config改回去。
sudo systemctl restart sshd
因为我们更改了SSH端口,以后用ssh的时候要加上端口
ssh -i ~/.ssh/mykey -p 22222 user@host
UFW防火墙
sudo apt install ufw
sudo ufw allow 22222 # 开放SSH端口,不然没法ssh登陆了
sudo ufw enable # 和上面一样, enable之前一定要保证有个session开着已被不时之需
sudo ufw status # 检查一下那些端口开着
Fail2Ban
防止暴力破解ssh
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status fail2ban
开篇的时候说到fail2ban启动失败就是因为启动后没检查。。检查后发现已经有相关的讨论和解决方法(fail2ban issue #3292),具体就是创建”/etc/fail2ban/jail.local”, 内容如下
[sshd]
enabled=true
backend=systemd
port=ssh,22222
重启并再次检查
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd
另外要注意的是,在一些教程里上面ssh的配置部分会提到”/var/log/auth.log”是sshd的登陆log,其实现在很多linux distr都已经不用这个文件了,所以这个文件可能默认不存在,真正的log被整合到sys journal里了,比如可以用下面的命令查看成功登陆的记录。
sudo journalctl -t sshd |grep "Accepted"