查找 CentOS 服务器的最新成功登录和失败尝试

查找 CentOS 服务器的最新成功登录和失败尝试

我正在寻找一个日志文件或任何服务来报告由于用户名/密码不匹配而失败的最新登录尝试。 CentOS 是否有这样的实用程序?(最好是内置的)

我的第二个问题,更一般地讲,我需要一个记录对我的服务器的入侵尝试的日志文件。理想情况下,此日志应包含所有尝试,包括登录、httpd 活动和其他常规开放端口。

答案1

在 Linux 中,该last命令显示成功的登录尝试并显示会话信息(pts、源、日期和长度)。

lastb命令记录所有错误的登录尝试。两者共享同一个man页面,但不同之处在于last读取二进制/var/log/wtmp文件,而默认lastb读取文件。/var/log/btmp

这些文件的范围取决于您的日志轮换计划,但应该会持续几周。大多数发行版将/var/log/wtmp每月轮换一次,因此您可以读取以前的记录,通常/var/log/wtmp.1通过使用参数指定文件来列出-f...last -f /var/log/wtmp.1

答案2

这里的问题是题外话,但答案很简短:也许你应该只检查 /var/log/secure(例如 grep 查找“失败”)。

答案3

这是一个老帖子,但我有类似的任务,所以在我的情况下,这是一个日志条目

Nov 15 17:14:47 megatron sshd[4768]: Failed password for git from 192.168.122.1 port 49227 ssh2

所以我们可以这样做,如果我们确定用户是静态的

#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for git"
grep -i "$MESSAGE" "$LOG

如果我们根据每个用户的情况进行了解

#!/bin/bash
LOG=/var/log/secure
if [ -n "$1" ]
then
NEWUSER="$1"
else
NEWUSER="root"
fi
MESSAGE="Failed password for $NEWUSER"
grep -i "$MESSAGE" "$LOG"

所以脚本应该像这样执行

[root@megatron bash1]# ./failedlogin.sh git

或者更简单的方法

#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"

相关内容