iptables на узле выхода tor

9

Я хочу запустить открытый маршрутизатор Tor .

Моя политика выхода будет похожа на ReducedExitPolicy .

Но я также хочу усложнить использование ресурсов сети tor.

Случаи, которые я хочу запретить клиентам делать через Tor:

  • Забивает один сайт с очень большим количеством пакетов.
  • Агрессивные нетсканы целых блоков IP

Случаи, которые я НЕ хочу помешать клиентам делать через Tor:

  • загрузка нескольких сотен файлов изображений в облако
  • сеять торрент

У меня вопрос, можно ли вообще это сделать и как?

Моей первой мыслью был какой-то брандмауэр (Linux / iptables или * BSD / ipfw / pf) - но это, вероятно, будет бесполезно из-за внутренних свойств маршрутизатора Onion.

Есть ли какие-либо текущие разработки команды torproject на эту тему?

Я также прошу общие советы по защите узлов выхода Tor.

Обновление (сентябрь 2012 г.)

Из полезных ответов и некоторых других исследований я думаю, что это не может быть сделано.

Лучшее, что вы можете сделать, чтобы помешать людям злоупотреблять выходным узлом для участия в DDOS, - это обнаруживать очень частые пакеты, направленные на один IP.

«Очень частый» порог зависит от общей пропускной способности узла ... Если он неправильный, будут ложные срабатывания, блокирующие законный трафик приложений TCP в реальном времени и трафик, получаемый от очень многих клиентов к одному месту назначения.

Обновление (декабрь 2014 г.)

Мои прогнозы, очевидно, были верны - у меня было несколько жалоб на злоупотребления в сети от моего интернет-провайдера.

Чтобы избежать отключения службы, мне пришлось использовать следующий набор iptablesправил ( ONEWэто цепочка для исходящих пакетов TCP SYN (иначе):

Я не уверен, что этого будет достаточно, но вот оно:

-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
filiprem
источник

Ответы:

2

Имейте в виду, что:

  • Клиенты Tor переключают виртуальные каналы каждые 10 минут или около того, насколько я понимаю. Это означает, что IP-адрес источника меняется в течение этого периода времени. Вам вряд ли удастся предотвратить любое поведение, которое вы считаете вредоносным, дольше, чем этот срок.

  • Обратите внимание, что тот факт, что Tor использует только TCP-трафик, а не какой-либо другой протокол, ограничивает возможности злоупотребления.

iptablesможет позволить вам обрабатывать новые исходящие TCP-соединения иначе, чем существующие. Все, что есть, ESTABLISHED,RELATEDдолжно быть ACCEPTEDили помещено в цепочку «существующих TCP-соединений», и исходящий TCP, который не будет пойман, может быть ограничен по скорости. Любой исходящий трафик Tor должен быть предметом этого.

Я полагаю, что между вышеизложенным и использованием «Ограниченной политики выхода» будет лучшее, что вы можете сделать.

В идеале, не запускайте на своей коробке Tor ничего, кроме:

  • Вы, вероятно, по крайней мере, включите SSH, поместите его на порт, отличный от 22.
  • Возможно, вы захотите запустить простой веб-сервер для отображения этой страницы . mini-httpdЭкземпляр chroot должен делать. Не используйте inetd.

Не запускайте Tor на коробке, которая используется для чего-либо еще. Убедитесь, что вы прочитали раздел « Выходные реле» в FAQ по правовым вопросам Tor и полностью понимаете его последствия. Также прочитайте и сделайте все это .

LawrenceC
источник
1

Предотвратить эти атаки будет сложнее, чем обычно, поскольку исходный IP-адрес не является постоянным. Однако, насколько мне известно, маршруты в тор меняются только каждые несколько минут или около того.

Таким образом, вы все равно можете развернуть некоторые стандартные правила ограничения / фильтрации, но с более высоким порогом, поскольку вы должны предполагать, что за исходными IP-адресами существует целая сеть.

Вы можете фильтровать:

  • плохие или типичные пакеты для дактилоскопии / сканирования (плохие флаги TCP / IP, XMAS, большинство типов ICMP и т. д.)
  • НЕВЕРНЫЕ пакеты, которые не подходят для текущих или новых соединений (состояние -m)
  • НОВЫЕ соединения начинаются с довольно высокого порога

Однако следует помнить, что такие вещи обычно выполняются на входящем трафике. Вы не знаете, какие протоколы будут запускать ваши «клиенты», и вы можете ограничить их таким образом, чтобы это раздражало / неясно.

Кроме того, для НОВЫХ (или не сохраняющих состояние) пакетов с ограничением скорости вы можете рассмотреть более сложную схему, в которой отклоненные (никогда не DROP, если это явно не атака!) Пакеты рандомизированы. Таким образом, обычный пользователь может просто попытаться выполнить перезагрузку и получить удачу, даже если общая скорость в настоящее время находится на пределе, в то время как одновременный сканер портов не сможет обойти ограничение скорости.

Также спросите в списках рассылки Tor, вы, вероятно, не первый, кто думает об этом: https://lists.torproject.org/cgi-bin/mailman/listinfo

Pepe
источник
1

Прежде всего, я бы не предложил iptables для решения всего этого, действительно, идеальный выходной узел Tor будет загружать балансировочный трафик через несколько VPN-туннелей, чтобы не смотреть провайдерам в глаза на пакеты и истинное назначение, и / или использовать прокси-сервер кэширования для сохранения исходящих повторных запросов. чтобы популярный статический контент был сведен к минимуму ... при рассмотрении этих опций вот банд-ап на проблемы с жалобами на злоупотребления;

Используемые источники информации

http://www.ossramblings.com/using_iptables_rate_limiting_to_prevent_portscans

http://blog.nintechnet.com/how-to-block-w00tw00t-at-isc-sans-dfind-and-other-web-vulnerability-scanners/

Объединение двух исходных ссылок в правила, которые можно использовать, чтобы расстроить ботов, пытающихся использовать ваш выходной узел Tor для сканирования портов. Обратите внимание, что это может сделать хакеров, использующих ваш выходной узел, очень неприятными, так как эти правила приводят к зависанию Nmap

#!/bin/bash
## Network interface used by Tor exit daemon
_tor_iface="eth1"
## Ports that Tor exit daemon binds to, maybe comma or space sepperated.
_tor_ports="9050,9051"
## Time to ban connections out in secconds, default equates to 10 minutes, same as default Tor cercut.
_ban_time="600"
## How long to monitor conections in seconds, default equates to 10 minutes.
_outgoing_tcp_update_seconds="600"
## How many new connections can be placed to a server in aloted update time limits. May nead to increes this depending on exit node usage and remote servers usages.
_outgoing_tcp_hitcount="8"
## How long to monitor connections for in minuets, default is 15 minutes but could be lessoned.
_outgoing_tcp_burst_minute="15"
## Hom many connections to accept untill un-matched
_outgoing_tcp_burst_limit="1000"

iptables -N out_temp_ban -m comment --comment "Make custom chain for tracking ban time limits" || exit 1
iptables -A out_temp_ban -m recent --set --name temp_tcp_ban -p TCP -j DROP -m comment --comment "Ban any TCP packet coming to this chain" || exit 1

iptables -N out_vuln_scan -m comment --comment "Make custom chain for mitigating port scans originating from ${_tor_iface}" || exit 1
for _tor_port in ${_tor_ports//,/ }; do
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m recent --name temp_tcp_ban --update --seconds ${_ban_time} -j DROP -m comment --comment "Update ban time if IP address is found in temp_tcp_ban list" || exit 1
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --set -m comment --comment "Monitor number of new conncetions to ${_server_iface}" || exit 1
    iptables -A out_vuln_scan -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds 30 --hitcout 10 -j out_temp_ban -m comment --comment "Ban address when to many new connections are attempted on ${_tor_iface}" || exit 1
done
iptables -A out_vuln_scan -j RETURN -m comment --comment "Return un-matched packets for further processing" || exit 1

## Add rules to accept/allow outbound packets
iptables -N tor_out -m comment --comment "Make custom chain for allowing Tor exit node services" || exit 1
for _tor_port in ${_tor_ports//,/ }; do
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --set --name limit_${_tor_port} -m comment --comment "Track out-going tcp connections from port ${_tor_port}" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds ${_outgoing_tcp_update_seconds:-60} --hitcount ${_outgoing_tcp_hitcount:-8} --rttl --name limit_${_tor_port} -j LOG --log-prefix "TCP flooding port ${_tor_port}" -m comment --comment "Log atempts to flood port ${_tor_port} from your server" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m state --state NEW -m recent --update --seconds ${_outgoing_tcp_update_seconds:-60} --hitcount ${_outgoing_tcp_hitcount:-8} --rttl --name limit_${_tor_port} -j DROP -m comment --comment "Drop attempts to flood port ${_tor_port} from your server" || exit 1
    iptables -A tor_out -p TCP -o ${_tor_iface} --sport ${_tor_port} -m limit --limit ${_outgoing_tcp_burst_minute:-15}/minute --limit-burst ${_outgoing_tcp_burst_limit:-1000} -j ACCEPT -m comment --comment "Accept with conditions new connections from port ${_tor_port} from your server" || exit 1
done
iptables -A tor_out -j RETURN -m comment ---comment "Reurn un-matched packets for further filtering or default polices to take effect." || exit 1
## Activate jumps from default output chain to new custom filtering chains
iptables -A OUTPUT -p TCP -o ${_tor_iface} -j out_vuln_scan -m comment --comment "Jump outbound packets through vulnerability scaning mitigation" || exit 1
iptables -A OUTPUT -p TCP -o ${_tor_iface} -j tor_out -m comment --comment "Jump outbound packets through conditional acceptance" || exit 1

Запустите выше, bashчтобы иметь магию, предварительно сформированную по переменным с ,каммами т.е.

user@host~# bash iptables_limit_tor.sh

Вот этот список переменных снова

_tor_iface="eth1"
_tor_ports="9050,9051"
_ban_time="600"
_outgoing_tcp_update_seconds="600"
_outgoing_tcp_hitcount="8"
_outgoing_tcp_burst_minute="15"
_outgoing_tcp_burst_limit="1000"

Обратите внимание, что вы также можете отфильтровать новые исходящие соединения по -m state NEW ! --synтипам забавных бизнесов, используемых некоторыми ботами для нахождения эксплуатируемых серверов. Вот пример цепочки, в которой вы могли бы указать два выше для дальнейшей фильтрации таких искаженных разговоров.

iptables -N out_bad_packets -m comment --comment "Make new chain for filtering malformed packets" || exit 1
iptables -A out_bad_packets -p TCP --fragment -j out_temp_ban -m comment --comment "Drop all fragmented packets" || exit 1
iptables -A out_bad_packets -p TCP -m state --state INVALID -j out_temp_ban -m comment --comment "Drop all invalid packets" || exit 1
iptables -A out_bad_packets -p TCP ! --syn -m state --state NEW -j out_temp_ban -m comment --comment "Drop new non-syn packets" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL NONE -j out_temp_ban -m comment --comment "Drop NULL scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL ALL -j out_temp_ban -m comment --comment "Drop XMAS scan"|| exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL FIN,URG,PSH -j out_temp_ban -m comment --comment "Drop stealth scan 1" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL SYN,RST,ACK,FIN,URG -j out_temp_ban -m comment --comment "Drop pscan 1"|| exit 1
iptables -A out_bad_packets -p TCP --tcp-flags SYN,FIN SYN,FIN -j out_temp_ban -m comment --comment "Drop pscan 2" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags FIN,RST FIN,RST -j out_temp_ban -m comment --comment "Drop pscan 3" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags SYN,RST SYN,RST -j out_temp_ban -m comment --comment "Drop SYN-RST scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ACK,URG URG -j out_temp_ban -m comment --comment "Drop URG scans" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL SYN,FIN -j out_temp_ban -m comment --comment "Drop SYNFIN scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL URG,PSH,FIN -j out_temp_ban -m comment --comment "Drop nmap Xmas scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL FIN -j out_temp_ban -m comment --comment "Drop FIN scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags ALL URG,PSH,SYN,FIN -j out_temp_ban -m comment --comment "Drop nmap-id scan" || exit 1
iptables -A out_bad_packets -p TCP --tcp-flags RST RST -o ${_tor_iface} --sport ${_tor_port} -m limit --limit 2/second --limit-burst 3 -j out_temp_ban -m comment --comment "Mitigate Smurf attacks from excesive RST packets"
iptables -A out_bad_packets -p TCP --tcp-flags RST RST -o ${_tor_iface} --sport ${_tor_port} -m limit --limit 2/second --limit-burst 2 -j RETURN -m comment --comment "Ban Smurf attacks using excesive RST packets"
iptables -A out_bad_packets -j RETURN -m comment --comment "Return un-matched packets for further processing." || exit 1

Тем не менее, приведенная выше цепочка будет очень ограничительной, так как для любого сопоставленного пакета будет заблокирован IP-адрес (возможно, изменен -j out_temp_banна -j DROPили -j REJECTдля тестирования) на любое количество секунд, выбранных в правилах этой цепочки. Этот набор правил может также привести к ошибочному положительному результату, когда плохо закодированные приложения на стороне клиента повторно подключаются через новый сертификат Tor.

~~~~~

Программное обеспечение, которое нужно учесть для дальнейшего ограничения трафика. Проверьте firejailдля Linux, источник находится на Github и Source forge, а страницы руководства можно найти на старой домашней странице, субдомене WordPress, а DigitalOcean содержит руководство по Nginx с PHP и Firejail, которое небольшая модификация может дать вам гораздо больше информации о том, где сеть должна быть ограничена. Есть и другие инструменты , такие как KVMслишком которые могут быть использованы , чтобы spiciffic услуги в оперативном boundries так магазин Arround , чтобы найти тот , который работает лучше для вашей системы.

Еще один вариант - запускать fail2banтаким образом, чтобы, когда сумасшедший системный администратор обнаруживал соединение http или ssl с вашим IP, добавлялось правило для удаления-m state --state NEWподключения к тем, кто запрашивает вашу страницу уведомления о выходе. Это, в сочетании с нормальными временными ограничениями отмены запретов, может позволить удаленному серверу прерваться, пока их системный администратор бормотает о регистрации журнала ;-) Однако это выходит за рамки этого текущего ответа и зависит от того, какое программное обеспечение вы используете для обслуживания. страницы с уведомлением о выходе; Подсказка, и nginx, и apache будут обслуживать первый блок vhost или server в ваших конфигурациях, если теперь запрашивается URL. Если вы используете что-то другое, кроме apache или nginx, вы захотите просмотреть справочные страницы, но для меня это было так же просто, как настроить первый vhost для входа в другой файл и заставить fail2ban добавить любые IP-адреса из этого журнала в список временных банов. ; это также отлично подходит для запрета ботов на общедоступных серверах, потому что они обычно используют IP-адрес, а отсутствие запроса домена приводит к тому, что сервер обслуживает ловушку для ботов,

Я склонялся к тому, чтобы запустить ограниченную политику выхода Tor (похоже, что вы справились с этим), а затем проталкивать трафик через VPN-туннели, дополнительные кредитные баллы для балансировки нагрузки между несколькими туннелями. Потому что это приведет к меньшему нарушению сетевого трафика Tor и затуманит глаза вашего интернет-провайдера на тот факт, что вы используете выходной узел ... если только они не хотят допустить перехват и взлом вашего VPN-трафика. Это связано с тем, что выполнение правил, которые временно запрещают или разрешают самостоятельное запрещение удаленного хоста, может привести к нарушению конфиденциальности клиентов вашего узла, в то время как передача трафика в VPN (или немногие) будет способствовать обеспечению конфиденциальности вашего клиента и сохранению вашего ISP от преследования с запросами на ваши журналы сетевого трафика любым правительством, способным работать whois www.some.domain.

~~~~

Изменения / Обновления

~~~~

Я отправился в свои заметки и вытащил конфиги для публичных серверов, которые я использую

Вот неудачливая jail.localСтанса

[apache-ipscan]
enabled  = true
port = http,https
filter = apache-ipscan
logpath = /var/log/apache*/*error_ip*
action = iptables-repeater[name=ipscan]
maxretry = 1

И вот apache-ipscan.confфайл фильтра

[DEFAULT]
_apache_error_msg = \[[^]]*\] \[\S*:error\] \[pid \d+\] \[client <HOST>(:\d{1,5})?\]
[Definition]
failregex = \[client <HOST>\] client denied by server .*(?i)/.*
#^<HOST>.*GET*.*(?!)/.*
#   ^%(_apache_error_msg)s (AH0\d+: )?client denied by server configuration: (uri )?.*$
#            ^%(_apache_error_msg)s script '\S+' not found or unable to stat(, referer: \S+)?\s*$
ignoreregex = 
# DEV Notes: 
# the web server only responds to clients with a valid Host: 
# header. anyone who tries using IP only will get shunted into 
# the dummy-error.log and get a client-denied message
#
# the second regex catches folks with otherwise valid CGI paths but no good Host: header
#
# Author: Paul Heinlein

А вот iptables-repeater.confфайл действий

# Fail2Ban configuration file
#
# Author: Phil Hagen <phil@identityvector.com>
# Author: Cyril Jaquier
# Modified by Yaroslav Halchenko for multiport banning and Lukas Camenzind for persistent banning
# Modified by S0AndS0 to combine features of previous Authors and Modders
#
[Definition]
# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-BADIPS-<name>
              iptables -A fail2ban-BADIPS-<name> -j RETURN
          iptables -I INPUT -j fail2ban-BADIPS-<name>
          ## Comment above line and uncomment bello line to use multiport and protocol in addition to named jails
          #iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-BADIPS-<name>
          # set up from the static file
          #cat /etc/fail2ban/ip.blocklist.<name> |grep -v ^\s*#|awk '{print $1}' | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -s $IP -j DROP; done
          cat /etc/fail2ban/ip.blocklist.<name> |grep -v ^\s*#|awk '{print $1}' | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -d $IP -j DROP; done
          ## Comment above line and uncomment bellow line to check if there are blacklist files to load before attempting to load them
          # if [ -f /etc/fail2ban/ip.blacklist.<name> ]; then cat /etc/fail2ban/ip.blacklist.<name> | grep -e <name>$ | cut -d "," -s -f 1 | while read IP; do iptables -I fail2ban-BADIPS-<name> 1 -s $IP -j DROP; done; fi
# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-BADIPS-<name>
         iptables -F fail2ban-BADIPS-<name> 
         iptables -X fail2ban-BADIPS-<name>
# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
#actioncheck = iptables -n -L INPUT | grep -q fail2ban-BADIPS-<name>
actioncheck = iptables -n -L OUTPUT | grep -q fail2ban-BADIPS-<name>
# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
#actionban = if ! iptables -C fail2ban-BADIPS-<name> -s <ip> -j DROP; then iptables -I fail2ban-BADIPS-<name> 1 -s <ip> -j DROP; fi
actionban = if ! iptables -C fail2ban-BADIPS-<name> -d <ip> -j DROP; then iptables -I fail2ban-BADIPS-<name> 1 -d <ip> -j DROP; fi
# Add offenders to local blacklist, if not already there
        if ! grep -Fxq '<ip>,<name>' /etc/fail2ban/ip.blocklist.<name>; then echo "<ip>,<name> # fail2ban/$( date '+%%Y-%%m-%%d %%T' ): auto-add for BadIP offender" >> /etc/fail2ban/ip.blocklist.<name>; fi
# Report offenders to badips.com
#        wget -q -O /dev/null www.badips.com/add/<name>/<ip>
# Option:  actionunban
# Notes.:  command executed when unbanning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
#actionunban = iptables -D fail2ban-REPEAT-<name> -s <ip> -j DROP
actionunban = iptables -D fail2ban-REPEAT-<name> -d <ip> -j DROP
# Disabled clearing out entry from ip.blacklist (somehow happens after each stop of fail2ban)
#sed --in-place '/<ip>,<name>/d' /etc/fail2ban/ip.blacklist.<name>
[Init]
# Defaut name of the chain
# 
# Defaut name of the chain
name = BADIPS
# Option:  port
# Notes.:  specifies port to monitor
# Values:  [ NUM | STRING ]  Default:
# 
#port = ssh
# Option:  protocol
# Notes.:  internally used by config reader for interpolations.
# Values:  [ tcp | udp | icmp | all ] Default: tcp

Обратите внимание, что фильтр выше был отредактирован для блокировки OUTPUTдействий start / stop, но вы все равно захотите добавить -p TCP -m state --state NEWконфиги в каждую строку, чтобы запретить только новые исходящие соединения с зарегистрированного IP-адреса.

Последнее - это настройка конфигурации Apache vHost, которая перенаправляет тех, кто не запрашивает домен, в определенный доступ и журнал ошибок, и настройка разрешенного и запрещенного доступа таким образом, что он всегда выдает ошибки, даже петля не должна быть в состоянии поднять страницу без появления ошибок , И последнее, но не менее важное: для страницы ошибок для Apache устанавливается уведомление о выходе по умолчанию из Tor, чтобы оно отображалось вместо 503или404мягкие сообщения. Или, если вы добавили строки состояния в действия iptables для fail2ban, вы можете просто указать тот же файл журнала, который используется в вашем уведомлении о выходе. В результате ваш сервер не сможет устанавливать новые соединения с IP-адресом сервера, который проверил ваш IP-адрес, но установил, и связанные соединения все равно будут разрешены, то есть они все еще могут просматривать ваши другие страницы, но вы не можете просматривать их ,

S0AndS0
источник
Очень приветствуется, если вам понравилось, что я только что отправил большую сумму скриптов / заметок в GitHub, которые вы, возможно, захотите посмотреть. Я начал этот проект более года назад, но теперь, когда здоровье - это проблема, я обнародовал его для отладки и добавления функций на случай, если я не смогу закончить его; Это и серьезные действия, предпринятые другими на местном и глобальном уровне, побудили меня занять позицию, которая облегчит переход к личной жизни.
S0AndS0
Я написал другой проект и отправил его на GitHub . Это направлено на то, чтобы помочь администраторам серверов в защите журналов своих серверов с помощью асимметричного шифрования GnuPG. До тех пор, пока ваш выходной узел или скрытый сервис не содержат связанный закрытый ключ, вышеприведенный проект должен предотвращать утечку из предыдущих журналов IP-адресов других узлов, подключающихся к вашему собственному узлу.
S0AndS0
0

Ограниченная пропускная способность остальной части сети Tor решит эти проблемы за вас. Также, если вы беспокоитесь, запустите только реле, а не выходной узел.

Ричард Хам
источник
0

У меня есть лучшее решение: сервер кеша squid. Кеш-сервер Squid доступен для настройки определения aclи вас denyили acceptкаждого acl. Очень интересно, что команда squid, определяющая набор правил в своей вики, которые ваш вопрос нашел там iptables,PF или другие, не могут выполнять вашу работу, потому что просто работают в других слоях.

Персидский залив
источник
Я не вижу никакого разумного способа объединить Squid (который я знаю и люблю) с Tor ...
filiprem
попробуй с Zebra route.
Персидский залив
Вы имеете в виду перенаправление трафика выхода, который идет на порт 80, и передачу его через squid, чтобы добавить некоторый контроль? Это решает только небольшую часть проблемы. Настоящая причина - предотвращение злоупотребления Tor для любого DDOS на основе IP.
filiprem
Вы можете использовать дизайн своей сети в три уровня: 1. внешний уровень 2. уровень процесса. 3.user / server layer ====> Это приведет к повышению вашей безопасности.
Персидский залив