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.)