我正在寻找一个日志文件或任何服务来报告由于用户名/密码不匹配而失败的最新登录尝试。 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"