加固SSH,防止被封,以及被攻击破解
一、前因
偶然看到运营商可能把 22 端口也封掉,远在天边的树莓派当是被挨了一枪。都半个月没有连上了,shit&@#$!()。 于是网罗了一番加固 ssh 的教程,特此记录。
二、修改配置
加个用户
useradd -m xxx # 加xxx用户
passwd xxx # 设置xxx密码
root 虽爽,对别人也爽
修改配置
打开 /etc/ssh/sshd_config
添加以下内容
Port 2222
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
AllowUsers xxx
使用 systemctl restart sshd
重启
三、建立密钥对
本地 window 电脑使用命令 ssh-keygen -t ed25519
新建,回车后第一个输入文件名,第二个输入密码(只是用来加密生成的文件的,算二重保护),第三个确认密码。正常操作三个回车就行。
打开生成的.pub后缀文件,复制内容到服务器上的 ~/.ssh/authorized_keys
中。
继续重启,重新登录,选择电脑上的私钥即可。
四、进阶
配置 fail2ban 监控 ssh,防止暴力破解。
安装
apt install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置
vi /etc/fail2ban/jail.local
加入或者修改内容。
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log # Debian/Ubuntu系统
maxretry = 6 # 允许失败的最大尝试次数
bantime = 600 # 被禁止的时长(秒)
启动
systemctl start fail2ban # 启动
systemctl enable fail2ban # 自启
systemctl status fail2ban # 状态
fail2ban-client ping # 测试,正常应显示 "Server replied: pong"
tail -f /var/log/fail2ban.log # 实时查看日志
五、总结
到底哪个高手觊觎我的玩具,整挺好,不然我也学不会这些!!下次别整了。