如何安装和使用 scanlogd

如何安装和使用 scanlogd

我想从我的 Ubuntu 16.04 机器安装并运行 scanlogd。我能够安装并运行它,apt-get install scanlogd并且它运行良好。

但我无法更改日志计数阈值或消息最大长度等参数。

我还想使用源代码中的其他参数进行扫描。我无法使用名为 scanlogd 的虚拟用户运行它。

当我在 scanlogd 正在 chrooting 的 /var/empty 中添加一个空目录时,它也不起作用。

答案1

但我无法更改日志计数阈值或消息的最大长度等参数

Scanlogd 不接受命令行或配置文件对这些参数的更改。为了更改它们,您需要修改源代码(可用这里) 并编译 scanlogd 的自定义副本。

但我无法更改日志计数阈值或消息的最大长度等参数

我还想使用源代码里面的其他参数进行扫描。

扫描参数的配置位于param.h中,例如:

/*
 * Port scan detection thresholds: at least COUNT ports need to be scanned
 * from the same source, with no longer than DELAY seconds between ports.
 */
#define SCAN_MIN_COUNT          7
#define SCAN_MAX_COUNT          (SCAN_MIN_COUNT * PORT_WEIGHT_PRIV)
#define SCAN_WEIGHT_THRESHOLD       SCAN_MAX_COUNT
#define SCAN_DELAY_THRESHOLD        3

/*
 * Log line length limit, such as to fit into one SMS message. #undef this
 * for no limit.
 */
#define LOG_MAX_LENGTH          (160 - 40)

我无法让它使用名为 scanlogd 的虚拟用户运行。

它旨在放弃 root 权限并作为 scanlogd 运行。任何简单地作为 scanlogd 运行的尝试都会失败,因为需要权限来监听网络接口,而且也是不必要的。

/* We can drop root now */
#ifdef SCANLOGD_USER
    drop_root();
#endif

当我在 scanlogd 正在 chrooting 的 /var/empty 中添加一个空目录时,它也不起作用。

代码中没有任何内容可以表明为什么会发生这种情况,除非您在过程中更改了 /var/empty 的权限...

/*
 * An empty directory to chroot to.  The directory and its parent directories
 * must not be writable by anyone but root.
 */
#define SCANLOGD_CHROOT         "/var/empty"

另外,如果您能推荐一些我可能深入研究的端口扫描检测工具,我将不胜感激。

Scanlogd 几乎是最初的端口扫描检测器,但如果您正在寻找其他检测器,请搜索以github port scan detect找到一些。我认为 scanlogd 是一个值得深入研究的好检测器,因为它的源代码简单、注释良好且布局合理。

相关内容