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 觸發郵件告警
努力吧少年,不努力學習,你將一無所有。。。。。。。。。。。。。。。