SSH应用实战——安全防护(fail2ban)

ssh 安全配置

  • 端口

   ssh随机端口范围在 27000-30000,可以手动修改也要改在这个范围内,建议定时修改端口。

  • 密码

  登陆密码应包含大小写、数字、特殊字符等 10 位以上,建议定期修改密码。

  • root 登录

  默认允许 root 登录 vps,也可以新建普通用户,禁止 root 登录。

  vim /etc/ssh/sshd_config
1 # add below lines
 PermitRootLogin no
  • 密钥登录 

  如果觉得还不够安全或者非 root 登录不方便也可以设置密钥登录,然后再禁止密码登录。不过这样只能在自己电脑上登录。

  客户端生成密钥对,然后把公钥传输到服务端

  • [客户端 ~]# ssh-keygen
  • [客户端 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub -p 端口 用户名@服务器地址
  • 用户限制 

  可以设置允许登录的用户以及禁止登陆的用户

  vim /etc/ssh/sshd_config 
1 # add below lines
2 AllowUsers xxx
3 DenyUsers xxx
  • ip 限制 

  相比 iptables ,通过修改配置文件限制 ip ssh 登录更简便。

  vim /etc/hosts.allow
1 # add below lines
2 # only allow x.x.x.x login
3 sshd: x.x.x.x
4 # allow all ip login
5 sshd:all
vim /etc/hosts.deny
1 # add below lines
2 # deny x.x.x.x login
3 sshd: x.x.x.x

Centos7配置fail2ban防止ssh被暴力破解

  • 配置epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

  或者 

 yum -y install epel-release
  • 安装fail2ban
 yum install fail2ban
  • 查看当前版本
fail2ban-server -V
  • 配置
  cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  vi /etc/fail2ban/jail.local

末尾添加以下内容:

[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=22, protocol=tcp]
#sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
logpath = /var/log/secure
maxretry = 3
bantime = 300

maxretry 表示最大尝试次数达到3次,bantime 客户端300秒内禁止连接

  • 启动fail2ban服务
 systemctl start fail2ban
  • 验证
  fail2ban-client ping
  Server replied: pong                  //表示正常
  • 测试

  连接当前主机,连续输错三次密码则会拒绝连接

  查看被禁止的IP

  fail2ban-client status ssh-iptables

  此处ssh-iptables为jail.local的[ssh-iptables]名称

  可以在/var/log/fail2ban.log查看屏蔽日志

THE END
点赞0赞赏 分享
抢沙发
头像
提交
头像

昵称

取消
昵称表情

    暂无评论内容