本地DNS防火墙
dns-firewall的Python项目详细描述
DNS防火墙
用于检查和混合本地生成的DNS查询的代理。 可选托盘图标GTK接口。
基本原理
检查和过滤桌面应用程序生成的dns流量可能很棘手。 tcpdump之类的工具无法判断哪个运行进程生成了dns查询。 此外,netfilter无法按域名过滤流量,许多域解析为经常更改的IP地址。
一个典型的用例是监视浏览器、浏览器插件和扩展,以发现可疑的家庭呼叫或恶意/跟踪javascript,或通过dns查询泄漏数据的其他应用程序。
dns防火墙充当转发dns解析器。它在端口53上本地侦听,并只将允许的查询转发给外部解析器。
它检测试图解析域名的进程的名称,并基于此应用筛选规则。
功能
- 按应用程序和域阻止DNS查询,或返回可配置的IP地址
- 带有活动指示灯的托盘图标
- 查看最近活动的日志窗口
- 可以选择使用Tor网络解析名称
使用量
从conf.yaml.example创建conf.yaml
需要绑定到udp端口53。您可以以根用户身份运行该进程或安装 并配置authbind:
sudo apt-get install authbind sudo touch /etc/authbind/byport/53 authbind --depth 2 ./dns_firewall/main.py conf.yaml # or sudo ./dns_firewall/main.py conf.yaml
添加-托盘以启用托盘图标和GTK界面。左键单击托盘图标以显示日志窗口。
用“nameserver 127.0.0.1”更新/etc/resolv.conf
发展状况
正在开发中。欢迎测试和贡献!