如何在 Ubuntu 10.04 下通过 SOCKS 代理保护 Firefox 流量(+DNS)?

如何在 Ubuntu 10.04 下通过 SOCKS 代理保护 Firefox 流量(+DNS)?

我正在使用 Ubuntu 10.04,并使用“ssh -D”启动 SOCKS 代理,并将 Ubuntu 设置为通过“系统 -> 首选项 -> 网络代理”使用它。Firefox 使用代理,当我访问类似这样的网站时,代理的 IP 就会出现http://www.whatismyip.com/

我的问题是,Firefox 是否通过此代理解析 DNS 请求?我的网页浏览真的安全吗?(也就是说,直到我退出代理的另一端。我知道此后它就不安全了。)(而且我已经验证了密钥,我没有被中间人攻击)(而且——去他的。你知道我的意思。它是否通过代理解析 DNS 请求?)

我不知道如何亲自验证这一点。使用其他硬件(例如另一个调试代理)并不是一个选择。

如果 Firefox 无法通过 SOCKS 代理解析我的 DNS 请求,我该如何修复它?

答案1

Firefox 有一个about:config设置,用于控制 DNS 是否通过代理进行路由。默认情况下,该设置处于关闭状态。我忘记了设置名称,但如果您使用过滤器,应该不难找到它。

答案2

您可以通过查看来自计算机的数据包来验证所有流量是否都通过 SSH 代理。这可以通过将您的 NIC 或无线网卡置于混杂模式并使用 TCPDump 或 Wireshark(我推荐 wireshark)等程序来完成。

使用这些程序,您可以查看网络流量并过滤特定协议的数据包(例如 DNS)。如果您在代理开启时过滤 DNS 并收到任何数据包(标记为 DNS),则至少某些 DNS 请求不会通过代理。原因是如果它们通过 SSH,您将看到的唯一流量将是 SSH。

您需要注意一些事项,某些插件可能不使用代理设置访问互联网,从而泄露信息。Firefox 有许多出色的插件,可帮助确保所有内容都通过代理,请查看这些插件。

祝你好运!

答案3

[编辑:tsocks 对此不起作用,抱歉。它有一个编译时选项,可以强制 DNS 请求使用 TCP,但这并不优雅。]

proxychains 拦截 getaddrinfo,这样应该可以更好地工作。

在 ./proxychains.conf、~/.proxychains/proxychains.conf 或 /etc/proxychains.conf 中:

strict_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5  127.0.0.1 <your ssh -D port>

答案4

Firefox 现在可以通过可视化方式启用远程 DNS,而不必依赖系统 DNS。它是 SOCKS v5 代理选项旁边的一个复选框,称为远程 DNS

该图显示了远程 DNS 复选框

相关内容