对于一个超级简单的 Linux 守护进程来说,最强大的解决方案是什么?它只监听某些端口,并且每次建立连接时,它都会立即向我发送电子邮件警报?
我正在建造一个低交互蜜罐在我的生产网络中。我发现大多数开源“蜜罐”解决方案都比我需要的复杂得多。
我只想要一个简单的守护进程来监听一些“有价值的”端口(例如,,,,22
等),并在有任何连接到它时向我发送电子邮件警报。139
3389
5900
有效的解决方案可以是使用现有的开源项目,或者只是一个简单的 bash/perl/python 脚本——只要它可以守护进程为将在启动时启动的服务。
答案1
wazuh
您可以使用HIDS(基于主机的入侵检测系统)和一些防火墙规则进行配置。
第一的,安装wazuh
并将其配置为通过更新发送电子邮件警报/var/ossec/etc/rules/local_rules.xml
<email_notification>yes</email_notification>
然后,编辑 wazuh 本地规则文件,将其添加到默认组中
<rule id="100001" level="7">
<if_sid>4100</if_sid>
<description>Attempt to connect to honeypot</description>
</rule>
上述规则与防火墙规则(4100
在 中定义的规则 ID /var/ossec/ruleset/rules/0060-firewall_rules.xml
)相匹配,并在防火墙规则吐出日志时发出警报。您可以进一步完善它,但对于您的产品内联网中的低交互蜜罐,该蜜罐不能公开访问或由您的员工使用,这应该没问题。
您可能还需要更新解码器来解析该条目。将其添加到/var/ossec/etc/decoders/local_decoder.xml
<decoder name="iptables-3">
<parent>kernel</parent>
<type>firewall</type>
<prematch>^[\s*\d+.\d+] IN=</prematch>
<regex>^[\s*\d+.\d+] \.+ SRC=(\S+) DST=(\S+)</regex>
<order>id,srcip,dstip,protocol</order>
</decoder>
<decoder name="iptables-3">
<parent>kernel</parent>
<type>firewall</type>
<regex offset="after_regex">^SPT=(\d+) DPT=(\d+) </regex>
<order>srcport,dstport</order>
</decoder>
创建一个 iptables 规则,每次与端口 22 建立 TCP 连接时都进行记录。并持久化它。
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 22 -j LOG
apt-get install iptables-persistent
每次有人尝试通过 ssh 连接到您的服务器时,这都会在内核日志中记录一个条目。您可以对其他常用端口重复此操作,例如 RDP、域控制器、数据库等的常用端口。
并重新启动wazuh
systemctl status wazuh-manager
现在,只要有人通过端口 22 连接到服务器,您就会收到电子邮件警报。