SSH應用實戰——安全防護(fail2ban)


ssh 安全配置

  • 端口

   ssh隨機端口范圍在 27000-30000,可以手動修改也要改在這個范圍內,建議定時修改端口。

  • 密碼

  登陸密碼應包含大小寫、數字、特殊字符等 10 位以上,建議定期修改密碼。

  • root 登錄

  默認允許 root 登錄 vps,也可以新建普通用戶,禁止 root 登錄。

  vim /etc/ssh/sshd_config

1 # add below lines
2 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

  末尾添加以下內容

1 [ssh-iptables]
2 enabled = true
3 filter = sshd
4 action = iptables[name=SSH, port=22, protocol=tcp]
5 #sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
6 logpath = /var/log/secure
7 maxretry = 3
8 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查看屏蔽日志

 

下一篇姊妹篇之——fail2ban 觸發郵件告警

 

 努力吧少年,不努力學習,你將一無所有。。。。。。。。。。。。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM