1、查看當前用戶的主目錄
# 切換到主目錄
cd ~
# 查看主目錄位置 pwd
# Ubuntu # 1. 查看近期成功的密碼登錄: grep "password" /var/log/auth.log | grep -v Failed | grep -v Invalid # 2. 查看最近登錄失敗的 IP 和每個 IP 失敗次數: awk '{if($6=="Failed"&&$7=="password"){if($9=="invalid"){ips[$13]++;users[$11]++}else{users[$9]++;ips[$11]++}}}END{for(ip in ips){print ip, ips[ip]}}' /var/log/auth.log | sort -k2 -rn #3. 查看近期登錄失敗的用戶名和失敗次數: awk '{if($6=="Failed"&&$7=="password"){if($9=="invalid"){ips[$13]++;users[$11]++}else{users[$9]++;ips[$11]++}}}END{for(user in users){print user, users[user]}}' /var/log/auth.log | sort -k2 -rn
# CentOS # 1. 查看成功登錄 grep "Accepted password for" /var/log/secure # 2. 查看每個用戶名失敗的次數 grep "Failed password" /var/log/secure | awk '{if (NF==16){c[$11]++}else{c[$9]++}}END{for(u in c)print u,c[u]}' | sort -k 2 -nr | head # 3. 查看每個 IP 地址失敗的次數 grep "Failed password" /var/log/secure | awk '{if (NF==16){c[$13]++}else{c[$11]++}}END{for(u in c)print u,c[u]}' | sort -k 1 -n | head
3、服務器禁止 root 賬戶登陸
因為:自從有了一台有公網IP的Linux機器,每次登錄就會有這樣是信息:(大致意思:別人嘗試登陸你的服務器但賬戶名或者密碼不正確導致登陸失敗【詳查可以看檢查服務器是否被惡意登錄】)
There were 4899 failed login attempts since the last successful login. Last login: Thu Aug 21 15:45:34 2014 from 87.201.230.138 -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
所以:於是我選擇關閉 root 用戶(注意:禁用root用戶后使用sftp時可能一些目錄無法訪問)
(1)使用root賬戶登錄系統,添加一個普通賬戶例如test,並為其設置密碼
# 添加新賬戶 useradd test # 為test賬戶設置密碼 passwd test # 輸入密碼 # 再次輸入確認密碼
(2)編輯配置文件 /etc/ssh/sshd_config (可以使用vim,vim使用教程)修改 PermitRootLogin 后面的 yes 為 no ,並且去掉前面的注釋符,同時可以限制失敗次數。【注:這個失敗次數是對所有用戶都起作用的】
(3)最后重啟sshd服務 systemctl restart sshd.service,此時再用root用戶登錄,如果不能登陸則代表配置成功。如果需要使用root權限,可以使用su/sudo進行切換
4、Linux 刪除普通用戶步驟
(1)先用命令 cat /etc/passwd 查看一下所有的用戶 可以看到片你需要刪除的用戶名
(2)用命令 who 查詢當前登錄的用戶
(3)用命令 ps -u 用戶名 查看該用戶的pid
(4)用命令 kill pid 殺掉他的sshd或者是shell進程
(5)再用命令 userdel -r 用戶名 刪除用戶
如果此時還是刪除不了用戶,是由於還有進程沒殺完,在root用戶下,
輸入指令 ps -ef |grep 用戶名 刪掉第一個進程(可能會有其他連號的進程,不需要管),然后在執行 步驟5
博客參考:
Linux如何禁用root賬戶(There were XXXX failed login attempts since the last successful login.)