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


29

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

我的第二个问题,更一般而言,我需要一个渗透尝试到我的服务器的日志文件。理想情况下,此日志应包含所有尝试,包括登录,httpd活动和其他常规打开的端口。


2
回答第二个问题:看一下OSSEC
量子

1
我在Serverfault中提出问题后,该线程已从Stackoverflow中移出。是讨论第二个问题的话题。
lashgar

Answers:


61

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

lastb命令记录所有错误的登录尝试。两者共享同一个man页面,但是区别是last读取二进制/var/log/wtmp文件,并且默认情况下lastb读取/var/log/btmp文件。

这些文件的范围取决于您的日志轮换时间表,但应跨几个星期。大多数分发都会/var/log/wtmp每月轮换一次,因此您可以阅读以前的记录,通常/var/log/wtmp.1通过使用-f参数指定文件来列出...last -f /var/log/wtmp.1


17
+1lastb
lashgar 2012年

3
这应该是选定的答案
编码员,

@acoder,已完成:thumb:
lashgar

14

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


这实际上是我第一个问题的答案。我将在ServerFault中询问第二个。谢谢。
lashgar

1

这是一个旧线程,但是我得到了类似的任务,所以在我的情况下,这是一个日志条目

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"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.