Tor出口节点上的iptables

fil*_*rem 9 linux networking firewall iptables tor

我想运行一个开放的Tor路由器。

我的退出政策将类似于ReducedExitPolicy

但我也想让 Tor 网络难以滥用我的资源。

我想阻止客户通过 Tor 进行的案例:

  • 用非常多的数据包攻击一个站点。
  • 整个 IP 块的主动网络扫描

我不想阻止客户通过 Tor 进行的情况:

  • 将数百个图像文件上传到云端
  • 播种洪流

我的问题是,这完全可以做到吗?如何做到?

我的第一个想法是一些防火墙(Linux/iptables 或 *BSD/ipfw/pf) - 但由于 Onion 路由器的固有属性,这可能没用。

是否有关于此主题的任何正在进行的 torproject 团队开发?

我还要求提供有关保护 Tor 出口节点的一般提示。

更新(2012 年 9 月)

从有用的答案和其他一些研究来看,我认为这是不可能的。

阻止人们滥用出口节点在 DDOS 中做出贡献的最好方法是检测指向一个 IP 的非常频繁的数据包。

“非常频繁”阈值取决于总节点带宽......如果错误,则会出现误报,阻止实时 TCP 应用程序的合法流量以及来自许多客户端到一个目的地的流量。

更新(2014 年 12 月)

我的预测显然是正确的 - 我的互联网供应商有几次网络滥用投诉。

为了避免服务关闭,我必须采用以下iptables规则集(ONEW是用于传出 TCP SYN(又名 NEW)数据包的链:

我不确定它是否足够,但它是:

-A ONEW -o lo -j ACCEPT
-A ONEW -p udp --dport 53 -m limit --limit 2/sec --limit-burst 5 -j ACCEPT
-A ONEW -m hashlimit --hashlimit-upto 1/second --hashlimit-mode dstip --hashlimit-dstmask 24 --hashlimit-name ONEW -j ACCEPT
-A ONEW -m limit --limit 1/sec -j LOG --log-prefix "REJECTED: "
-A ONEW -j REJECT --reject-with icmp-admin-prohibited
Run Code Online (Sandbox Code Playgroud)

小智 0

Tor 网络其余部分的有限带宽将为您解决这些问题。另外,如果您担心,请仅运行中继,而不是退出节点。