1.緣由
主機系統:centos7
今天用ssh登錄vps的時候顯示以下信息:
Last failed login: Sat Sep 1 11:55:01 UTC 2018 from 112.85.42.201 on ssh:notty
There were 594 failed login attempts since the last successful login.
有594次登陸失敗,應該是被掃描了。
last
命令用於顯示用戶最近登錄信息。單獨執行last命令,它會讀取/var/log/wtmp
的文件,並把該給文件的內容記錄的登入系統的用戶名單全部顯示出來。用last
查看一下,還好,只有自己登錄過。
lastb
命令用於顯示用戶錯誤的登錄列表,此指令可以發現系統的登錄異常。單獨執行lastb
命令,它會讀取位於/var/log
目錄下,名稱爲btmp的文件,並把該文件內容記錄的登入失敗的用戶名單,全部顯示出來。執行一下:
support ssh:notty 59.41.66.141 Sat Sep 1 12:05 - 12:05 (00:00)
support ssh:notty 59.41.66.141 Sat Sep 1 12:05 - 12:05 (00:00)
paul ssh:notty 132.232.23.12 Sat Sep 1 11:57 - 11:57 (00:00)
paul ssh:notty 132.232.23.12 Sat Sep 1 11:57 - 11:57 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:55 - 11:55 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
root ssh:notty 112.85.42.201 Sat Sep 1 11:54 - 11:54 (00:00)
可怕,一直在被掃描,查看一下有多少條記錄:
# lastb > loginFuailure.log
# wc -l loginFuailure.log
1008 loginFuailure.log
已經有1008次嘗試了。
2.常用解決辦法
採用如下做法:
- 更換22端口
- 改用密鑰和公鑰配對登陸SSH,禁止密碼登錄
- 限制密碼出錯次數
- 禁止root登陸
2.1 修改22端口
參考:CentOS7增加或修改SSH端口號
1.修改配置文件:
$ vim /etc/ssh/sshd_config
找到 #Port 22
這一行,去除註釋,開放22端口,再複製一行修改爲其他端口。先保留了22端口,是爲了防止之後因爲各種權限和配置問題,導致連22端口不能訪問,那就玩脫了。等可以使用其他端口登錄了,再關閉22端口。
重啓後不要急於退出終端去嘗試能否登錄,新開一個終端去嘗試能否登錄,我就忘了修改防火牆直接退出了,於是怎麼也登錄不上,即使端口是對的。還好vultr提供有網頁的控制檯可以用密碼登陸。
2.SELinux
查看SELinux是否開啓:
# getenforce
Disabled
我這裏是關閉的,不需要做相關的配置。
3.防火牆:
# firewall-cmd --permanent --query-port=xxxxx/tcp
no
# firewall-cmd --permanent --add-port=xxxxx/tcp
success
# firewall-cmd --reload
success
# firewall-cmd --permanent --query-port=xxxxx/tcp
yes
4.重啓:
# systemctl restart sshd
# systemctl restart firewalld.service
再用默認端口是登不上的:
#ssh [email protected] -p 22
ssh: connect to host xx.xx.xx.xx port 22: Connection refused
必須要使用修改過後的端口。
2.2 禁止使用密碼登錄
注意:需要先配置好私鑰登錄,不然把密碼登錄禁用了就沒有辦法登錄了。
編輯/etc/ssh/sshd_config
將PasswordAuthentication參數值修改爲no: PasswordAuthentication no
重啓ssh服務:systemctl restart sshd
2.3 限制密碼出錯次數
#vim /etc/pam.d/sshd
#%PAM-1.0
auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root
_unlock_time=1000
禁止root登陸:
如有需要可添加用戶:
# adduser name
# passwd name
修改配置文件:
編輯/etc/ssh/sshd_config :
PermitRootLogin no //阻止root用戶登陸
AllowUsers name //允許制定用戶使用SSH登陸,name改爲你允許的用戶名
重啓服務:
#systemctl restart sshd
其他參考
我有個問題:ssh:notty
是什麼意思?
參考:
ssh端口更改後無法登錄問題