这是一组用于搭建 DShield 传感器的脚本。
当前使用自动化安装程序的设计目标与前提条件:
当前版本仅在 Raspberry Pi OS(64 位)和 Ubuntu 24.04 LTS Server 上测试过,未在其他发行版上测试,抱歉。 如果需要支持其他发行版,“某人”必须检查并维护安装脚本。
请参考以下文件获取针对特定操作系统的安装说明: Raspberry Pi OS(推荐)、 Ubuntu、 openSUSE 和 AWS
install.sh此脚本将:
日志由 cron 任务 /etc/cron.d/dshield 每小时向 dshield 门户 发送两次,可通过 'My Account' -> 'My Reports' 进行验证
查看状态脚本的输出:/srv/dshield/status.sh
如果在安装或更新期间遇到奇怪的 Python 或 pip 相关错误,请以 root 身份尝试以下命令:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
查看我们的 故障排除指南,以帮助识别问题。
在您的“dshield”目录(即上面运行 git clone 时创建的目录)中,运行
cd install/dshield
sudo git pull
sudo bin/install.sh --update
--update 参数将自动使用现有配置,不会提示用户输入任何配置选项。
API Key 等配置参数将被保留。要编辑配置,请编辑 /etc/dshield.ini;要配置防火墙,请编辑 /etc/network/iptables(注意:也会使用 nat 表)。
已引入一项新功能,专门用于自动更新。在安装结束时,install.sh 脚本将查找文件 /root/bin/postinstall.sh,如果该文件存在,则执行其内容。如果你需要对新安装的文件做一些额外更改,这就是放置这些更改的位置。此文件需要具有执行权限。
请确保及时更新特殊端口和网络配置(例如,在防火墙配置中手动配置最近添加的 telnet/web 端口),例如 no-log 配置、no-honey 配置……遗憾的是,目前还无法自动完成此操作。如果不确定,请删除 /etc/dshield.ini 中的相应行,然后重新运行安装脚本。
此 DShield 传感器和蜜罐仅用于分析互联网相关流量,即来自公共 IP 地址的流量:
因此,你必须将 Pi 放置在能够暴露于互联网的网络中(并且不会从内部网络连接它,管理任务除外)。为了获得最大的传感器效益,理想情况下应将 Pi 暴露于互联网路由到某个公共 IP 的全部流量(而不仅仅是选定的端口)。
对于 SoHo 用户,DSL 或电缆路由器中通常有一个选项,可以将路由器使用的公共 IP(即由 ISP 分配的 IP)上的所有流量定向到内部 IP。该内部 IP 必须是 Pi。此功能例如名为“暴露主机”、“DMZ”(在此你可能需要启用进一步配置,以确保 所有 流量都被路由到 Pi 的内部 IP 地址,而不仅仅是例如端口 80)。
对于企业,受保护的 DMZ 是合适的位置(受保护:如果传感器/蜜罐被入侵,此事件会被隔离,不会影响 DMZ 中的其他主机)。请注意——如果使用静态 IP——你正在将针对你 IP 的攻击/扫描暴露给 DShield 项目和社区,这些可以通过 whois 追踪到你的公司。
要测试你的设置,你可以使用公共端口扫描器并将其指向路由器的公共 IP(该 IP 随后会在内部转发到 Pi)。此端口扫描应直接显示在 /var/log/dshield.log 中,随后显示在可通过你的 DShield 账户访问的在线报告中。请仅用于快速且有限的测试目的,以免 DShield 数据被伪造。
install.sh 中的注释status.sh)移动到 /srv 目录结构中sitecopy.py 将复制任何站点,并使用 web.py 脚本提供该站点,只需使用:
python sitecopy.py http://www.yoursite.com
web.py - 无需运行 sitecopy,但它会提供一个非常基础的页面,可以接受输入和文件。 待办:
欢迎任何意见 - 请通过 github 提交错误报告 / 问题 - 谢谢!
Slack 群组邀请链接:https://www.dshield.org/slack/