我有一个 CentOS 5.6 系统,它运行 Logwatch。
如果我对该主机执行安全扫描 (Nessus),它会在 Logwatch 输出中产生不必要的噪音。我希望定期从内部 IP 和外部 IP 运行这些安全扫描,而不会产生有关安全扫描的不必要噪音。
因为我知道这些主机的 IP,我可以阻止该输出出现在 Logwatch 输出中吗?
--------------------- pam_unix Begin ------------------------
sshd:
Authentication Failures:
root (scan1.example.org): 1 Time(s)
unknown (scan1.example.org): 1 Time(s)
Invalid Users:
Unknown Account: 1 Time(s)
--------------------- SSHD Begin ------------------------
Failed logins from:
192.168.100.1 (scan1.example.org): 1 time
Illegal users from:
X.Y.123.123 (scan2.example.org): 1 time
**Unmatched Entries**
pam_succeed_if(sshd:auth): error retrieving information about user admin : 1 time(s)
fatal: Write failed: Connection reset by peer : 1 time(s)
答案1
Logwatch 提供了共享脚本,该脚本将告诉 Logwatch在稍后处理之前*Remove
忽略包含特定字符串(例如)的行。grep -v
- 复制
/usr/share/logwatch/default.conf/services/sshd.conf
到/etc/logwatch/conf/services/sshd.conf
- 添加以下几行,告诉 logwatch 不要处理包含此字符串的行的日志条目:
# Ignore these hosts
*Remove = 192.168.100.1
*Remove = X.Y.123.123
# Ignore these usernames
*Remove = testuser
3. 现在,这些主机没有生成任何 logwatch 消息。
我无法使用 ignore.conf 来实现这一点。我无法想出一个正则表达式来允许 Logwatch 打印有关来自邪恶域的攻击的消息:
Failed logins from:
11.12.100.1 (EVILSCAN.example.ru): 1 time
隐藏友好扫描仪生成的消息时:
Failed logins from:
192.168.100.1 (friendscan.example.org): 1 time
背景:
Logwatch 中用于执行此操作的方法记录得很差,并且不太容易通过 Google 搜索到。
共享脚本/usr/share/logwatch/scripts/shared/remove
将对字符串执行逆 grep。/usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch
记录如何执行这些脚本:
您可以使用以下形式的命令:
*SharedScriptName = 参数
这将执行在 /usr/share/logwatch/scripts/shared/directory 中找到的名为“SharedScriptName”且带有参数“Arguments”的脚本。此过滤器将修改服务过滤器的输入。
答案2
您可以将正则表达式忽略日志行放入/etc/logwatch/conf/ignore.conf