nigelhorne/sniff2ban
GitHub: nigelhorne/sniff2ban
一款基于实时流量嗅探与 ClamAV 集成的自动防火墙封禁工具,用于检测并屏蔽发送恶意软件的网络连接。
Stars: 4 | Forks: 9
Sniff2ban 通过执行对网络的实时扫描,扫描给定接口上的流量以查堵恶意流量。
网站可以被加入白名单。
用法:
sniff2ban [-d] [-k] [-s] [-t seconds] [-v] [-S program1] [-S program2...] [-w IPv4address1[/mask]] [-w IPv4address2[/mask]...] [-p pidfile] [-V] [-W] [ socket ] [ interface ]
-d: 屏蔽(iptables DROP)向我们发送恶意软件的网站
-k: 终止发送/接收恶意软件的程序(需要支持 -W 的 netstat)
-m: 当指定 --enable-dovecot-scanning 或 --enable-ssh-scanning 时,这是允许的最大密码错误尝试次数。默认值为 3。
-p: 为 monit(1) 或 puppet(1) 写入 pidfile
-S: 不要终止此程序
-s: 不要屏蔽自身(即把 "interface" 加入白名单)
-t: 指定经过此秒数的不活跃状态后,将连接视为已关闭(默认 60)。如果你在控制台上看到大量“already exists”错误,你可能需要考虑减小此值,但不要减小得太多,否则可能会导致漏报。
-T: 临时目录
-v: 详细模式,-vv 可获取更详细的信息
-V: 打印 sniff2ban 的版本
-w: 不要屏蔽(白名单)此 IP 地址
-W: 不扫描白名单中的 IP 地址
socket: 与 clamd 通信的方式:/full/path/name 或 hostname:port,如果未指定,将从 clamd.conf 确定(如果该文件存在)
interface: 监听的接口(例如 eth0),如果未指定,我们将尝试猜测
如果未指定 "socket" 和/或 "interface",程序会进行猜测,但可能会猜错,因此最好明确指定。需要 LIBPCAP 才能猜测接口。
强烈建议您将此产品保持为最新版本。最好的方法是每天一次从 GIT 仓库中检出最新版本:
git clone https://github.com/nigelhorne/sniff2ban.git
在非 Linux 系统上,您必须使用 libpcap。在 Linux 上,虽然鼓励使用它,但并非强制要求。要在 Debian Linux 上使用 LIBPCAP,您必须首先安装 libpcap-dev 包;在 Fedora 上,您必须首先安装 libpcap-devel 包。
如果不安装它,您将需要提供 interface 参数。
在 Debian 上,netstat 由 net-tools 包提供。
已在 Linux2.6、FreeBSD7.0、Solaris10、OpenBSD4.2 和 NetBSD4.0 上经过测试。
在 Linux 上,我使用过 tinycc 和 gcc。
使用 tinycc 构建:
CFLAGS="-Wall -g -bt 20" CPPFLAGS= CXXFLAGS= CC=tcc ./configure
automake --add-missing
make
sudo make install
在 Solaris10 上,我使用过 cc 和 gcc。你可以从 http://www.sunfreeware.com/ 获取 libpcap 和 lsof。
白名单中的 IP 将被追踪并报告。
我将以下内容放入了 /etc/rc.local(212.159.0.0 是我的 ISP,它托管了备用 MX,因此我不想将其列入黑名单):
sniff2ban -d -s -vv -w 212.159.0.0/19 -W /var/run/clamav/clamd.sock&
如果你使用 TCP 连接到 clamd,你需要提供 hostname:port 对,例如 localhost:3310。
与 Sanesecurity 特征码配合使用可以很好地阻止垃圾邮件发送者,参见 http://www.sanesecurity.co.uk/。很多时候,在发送了一封垃圾邮件之后,同一客户端会发送同一封邮件的副本,sniff2ban 将使用你的防火墙来阻止这种情况。
由于该软件会修改系统文件,因此您必须以 root 身份运行。
要在 Debian 上启用 HTTP 扫描:
./configure --enable-http-scanning=/etc/apache2/sites-enabled
要在 Debian 上启用 Dovecot 扫描:
./configure --enable-dovecot-scanning=/var/log/syslog
还有一个 --enable-ssh-scanning 选项,不过我建议你现在不要启用它,因为代码尚未经过强化或优化。
./configure --enable-ssh-scanning=/var/log/auth.log
要启用 SMTP 暴力破解检测(目前尚未实现)
./config --enable-smtp-scannint=/var/log/mail.log
如果你看到大量发送错误,很可能是因为 clamd 超时。在这种情况下,请将 clamd.conf 中的 ReadTimeout 和 CommandReadTimeout 增加到 86400(1 天),然后重启 clamd 和 sniff2ban。
如果由于 autoconf 问题导致 configure && make 无法正常运行,请在重新运行 configure 之前尝试以下命令:
autoscan
aclocal
autoheader
autoconf
automake
ln -s /usr/share/automake-1.16/compile .
标签:ClamAV, IP 地址批量处理, Web 安全测试, 入侵防御, 客户端加密, 网络信息收集, 网络安全, 网络流量分析, 自定义DNS解析器, 防火墙, 隐私保护