我有一台运行在 Ubuntu 16.04 上的 Linux 服务器。今天我安装了入侵检测系统 PSAD。
PSAD 通过分析 iptables 的日志文件来工作。因此,使用 PSAD 之前要做的第一件事是启用 iptables 的日志记录。
sudo iptables -A INPUT -j LOG
sudo iptables -A FORWARD -j LOG
我运行了端口扫描,然后调用了 PSAD 状态。它应该显示发生了端口扫描,但没有显示任何内容。只是还没有进行端口扫描。
过了一段时间我才意识到,iptables 没有记录日志。没有日志文件包含 iptables 日志。我查看了
/var/log/messages
,默认情况下它们应该位于其中,但文件是空的/var/log/kern.log
/var/log/syslog
什么都没有。也许值得注意的是,我使用 UFW。我遵循了关于 PSAD 和 UFW 的教程,但仍然没有任何反应。在教程中创建的新文件中也没有日志。
原因可能是什么?我还没有自己设置服务器。最重要的安全措施已经在我之前完成了。也许他们删除了一些软件包。如果你能帮助我那就太好了,服务器必须是安全的。
答案1
IP 表中的规则从上到下应用。
任何时候规则适用于包,它都会按照规则定义进行处理,并且(如果没有配置不同)会导致离开规则链。
这意味着如果您的 LOG 规则放在其他规则之下,它将仅适用于之前未被规则处理的包。
如果您想要记录每个包,请将 LOG 规则放在相应的规则链的顶部。
顺便说一句:iptables 的默认日志文件位于/var/log/kern.log
答案2
可能是 (r)syslog 中的内核日志记录被禁用了。在 /etc/rsyslog.conf 文件中添加以下内容: kern.warn /var/log/firewall.log
并重新加载 syslog。
之后,制定一些规则,例如,iptables -A -p tcp --dport 22 -j LOG --log-prefix " ALERT " --log-level=warning
并扫描您的 SSH 端口。
答案3
取消注释以下行/etc/rsyslog.conf
:
module(load="imklog") # provides kernel logging support
然后运行
service rsyslog restart
使用检查日志
tail -f /var/log/syslog
或者:
date; stat /var/log/syslog