Little Snitch Linux版:基于eBPF的进程监控防火墙
Little Snitch现已登陆Linux平台,利用eBPF技术拦截所有出站网络连接。守护进程可直接关联特定进程收集流量数据,无需修改内核。通过本地地址localhost:3031访问网页界面,实时查看活动连接、历史日志和流量统计。支持按进程名、活跃度或带宽筛选,快速识别可疑行为。单击即可阻断流量,规则将自动保存以供后续使用。
流量图表可直观展示负载峰值,并支持按时间段隔离分析。这对中高级开发者尤其重要——无论是管理服务器还是桌面环境,都能有效监控应用遥测数据的外泄情况。
自定义规则与黑名单配置
自定义规则
规则通过位于 /var/lib/littlesnitch/config/ 的TOML配置文件定义。若在 /var/lib/littlesnitch/overrides/ 中放置覆盖文件,其优先级更高,确保测试安全且不影响基础配置。示例:允许所有Firefox流量,但阻止特定命令行工具的出站连接。
黑名单列表
内置预设黑名单:Hagezi、Peter Lowe、Steven Black、oisd.nl。支持域名每行一个、/etc/hosts格式及CIDR格式。注意:macOS专用的.lsrules文件不兼容,迁移前需转换格式。
- 基于进程的拦截:绑定到PID或可执行文件,而非IP地址。
- 端口/协议控制:支持细粒度的TCP/UDP过滤。
- 历史记录与统计:追踪每个域名的传输字节数和请求频率。
- PWA支持:可在Chromium或Firefox中将界面安装为独立应用。
权衡点:在高负载下eBPF限制缓存大小,可能降低数据包归属精度——但隐私防护覆盖率仍接近100%。
架构设计与权衡取舍
内核中的eBPF程序将元数据发送至守护进程,后者聚合统计并应用过滤规则。与macOS版本不同,本版不进行深度包检测,而是聚焦于连接元数据(如进程ID、目标端口/域名)。当连接数高达数千每秒时,eBPF映射可能填满,导致部分数据包失去归属信息。
eBPF优势:零拷贝数据传输,开销极低,多核系统扩展性良好。
局限性:程序大小受限(JIT编译后最大1MB),无法检查数据载荷。开发团队强调:此工具定位为隐私保护工具,非针对定向攻击的纵深防御方案。生产环境中建议搭配nftables使用。
无头服务器部署:可通过SSH隧道(ssh -L 3031:localhost:3031)或nginx反向代理访问。无GUI依赖,守护进程后台静默运行。
许可证与定制能力
- eBPF模块:GPLv2,源码托管于GitHub。
- 网页界面:GPLv2,开源免费。
- 守护进程:专有软件,个人及商业用途均免费。
TOML配置支持脚本化操作,可借助Ansible或Chef实现规则自动化管理。对需要在CI/CD流水线或Kubernetes容器中控制遥测数据的资深开发者而言极具价值。
核心亮点总结
- eBPF实现进程感知监控,无需内核模块,性能开销极小。
- 提供网页UI与PWA应用,兼顾便捷性;支持无头模式,适用于服务器场景。
- 黑名单与自定义规则覆盖90%以上隐私保护需求——但不能替代深度包检测(DPI)。
- 完全免费,远低于macOS版的59欧元售价。
- 权衡点:极端负载下因eBPF限制导致归属精度下降。
— Editorial Team
暂无评论。