ysabanci/syncshield
GitHub: ysabanci/syncshield
SyncShield 是一个轻量级P2P分布式SSH蜜罐,用于自动检测和封锁入侵尝试以提升网络安全防护。
Stars: 0 | Forks: 0
# SyncShield
这是一个我在自建家庭实验室中为实践分布式架构、Docker隔离及Linux网络安全而开发的基于P2P的网络安全项目。
该系统遵循低交互性蜜罐逻辑运行。当网络中某台服务器遭受未经授权的SSH连接尝试时,系统将进入防御状态,定位攻击者位置,并通过与网络内所有服务器实时同步信息来阻断该IP地址。
## 开发动机
我设计此项目的目的并非简单地部署现成网络安全工具,而是希望通过逐行编写代码,深入理解威胁情报网络在后台的通信机制,以及如何自动化实现Linux内核层面的拦截(iptables/ipset)。
## 核心特性
* 分布式架构(P2P):当网络中某个容器在伪装端口捕获入侵尝试时,通过inotifywait和共享卷(shared volumes)机制,在毫秒级内通知其他容器。
* O(1)时间复杂度(IPSet):相较于使用iptables逐行拦截数千个IP地址造成CPU负载,我采用了符合数据中心标准的IPSet哈希表(hash table)。这确保网络数据包检查时间始终保持O(1)性能。
* GeoIP情报分析:不仅查看捕获IP地址的数字信息,还通过开放API识别其所属国家、城市及互联网服务提供商(ASN)。
* Telegram集成:将捕获的威胁信息连同地理位置和服务商详情,实时发送至手机作为NOC/SOC警报。
* 开发与生产环境兼容性:由于在基于ARM的Mac上通过Docker VM进行开发,我为iptables/ipset内核模块不受支持的情况设计了Bash脚本的备用(模拟)机制,防止系统崩溃。在生产环境(物理Linux服务器)中,系统直接通过network_mode: host模式保护物理网卡。
## 使用技术
* Python 3:通过套接字编程实现蜜罐服务。
* Bash脚本:异步文件跟踪、API集成及iptables/ipset管理。
* Docker与Docker Compose:服务隔离与虚拟网络管理。
## 运行逻辑
1. 蜜罐服务在指定伪装端口等待连接。
2. 一旦检测到未授权连接,立即将IP地址写入共享黑名单。
3. 后台运行的Watcher服务通过inotify捕获文件变更。
4. 通过API获取地理数据,更新IPSet配置并触发Telegram机器人通知。
标签:Docker容器, GeoIP定位, ipset, iptables, IP阻断, Linux网络安全, P2P分布式系统, SSH安全, Telegram通知, Web截图, 低交互蜜罐, 分布式攻击检测, 威胁情报, 容器安全, 应用安全, 开发者工具, 攻击面发现, 版权保护, 网络安全, 自动化防御, 蜜罐技术, 请求拦截, 逆向工具, 隐私保护