服务器开机记录0: SSH公钥免密登录与fail2ban安装
New Server, Now Booting.
 
            实在受不了之前用的服务器每逢高峰时间段就近乎失联的龟速,故停用了之前用的服务器,新开了个GIA的。然鹅开完随便登了几次服务器就看到了巨量的失败登录记录,吓得我赶紧把密码登录关了然后再装了个fail2ban。其实照理说也应该改个SSH端口,然而人就是会作死的生物啊(懒
Spec
Hostdare CN2 GIA Network @ Los Angeles
Dual-Core Processor with 1.5GB Memory
CentOS 7.6
RSA Login
- 开机
yum update								#更新yum
yum install nano						#装nano
timedatectl set-timezone Asia/Shanghai	#调整时区- 生成一对RSA密钥
ssh-keygen -t rsa默认文件生成路径在/root/.ssh/,passphrase留空。
- 用PSFTP下载私钥
cd /root/.ssh
get id_rsa- 整理密钥文件
cd /root/.ssh
rm id_rsa						#删除私钥
mv id_rsa.pub authorized_keys	#系统默认公钥名称
chmod 600 authorized_keys		#设置公钥权限- 允许密钥登录
nano /etc/ssh/sshd_config确认RSAAuthentication和PubkeyAuthentication两项皆为yes,且没有被#注释;
将PasswordAuthentication项改为no以禁用密码登录。
如果你对于是否能用RSA登录不是很自信,也可以先不禁用密码登录,成功之后再回来修改。
- 重启SSHD服务
service sshd restart- 配置PuTTY
在PuTTY的Connection >> SSH >> Auth页面最下面一栏选择刚才下载的私钥,再打开对话的时候就可以在输入用户名后直接自动用RSA登录了。(打开对话前记得先保存这个配置。)
fail2ban
- 安装fail2ban
wget https://github.com/fail2ban/fail2ban/archive/0.11.1.tar.gz
tar -xf 0.11.1.tar.gz
cd fail2ban-0.11.1
python setup.py install
cd ..
rm -rf fail2ban-0.11.1
rm 0.11.1.tar.gz
systemctl enable fail2ban	#设置自启动看到有yum install fail2ban一键安装的,但我这里试了一下并没有找到这个包。还是老实去GitHub找吧(
- 配置fail2ban
cd /etc/fail2ban/
cp jail.conf jail.local
nano jail.local取消第23行、第24行的注释#,以启用SSHD监狱:
# [sshd]
# enabled = true编辑第101行开始的封禁策略:
# "bantime" is the number of seconds that a host is banned.
bantime  = 10m		#封禁时间,如720h
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 10m		#在这个时间内达到最大重试次数会触发封禁
# "maxretry" is the number of failures before a host get banned.
maxretry = 5		#最大重试次数编辑第284行开始的SSHD监狱配置:
[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode   = normal			#取消这行的注释,可以从上述模式中选择其他方案
port    = ssh				#写你的SSH端口号
logpath = %(sshd_log)s		#写你SSHD的Log路径,如/var/log/secure
backend = %(sshd_backend)s	#写auto即可- 重载fail2ban:
fail2ban-client reload- 第一时间赶来 嘲笑查看监狱状况:
fail2ban-client status			#查看你家开的监狱总览
fail2ban-client status sshd		#巡查sshd监狱
iptables -L -n					#确认iptables和你是不是一丘之貉