我想从我的 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 是一个值得深入研究的好检测器,因为它的源代码简单、注释良好且布局合理。