Безопасность и работоспособность сети Tor напрямую зависит от количества узлов, отвечающих за пересылку трафика, — relay nodes. Организация EFF даже открыла соревнование Tor Challenge с целью простимулировать как можно большее число пользователей настроить и запустить такие узлы. Собственно говоря, именно этому нехитрому действию и посвящена статья.
Нам потребуется сервер — машина, на которой Tor Relay будет работать. Можно воспользоваться своим домашним компьютером, можно перенастроить умный роутер. Я предлагаю другой способ — использовать
Итак, регистрируем себе
Сначала на
# aptitude install tor
По умолчанию Tor будет работать в режиме клиента сети: вы можете им воспользоваться для работы с сетью, но для для других этот экземпляр будет бесполезен. Чужой трафик через него идти не будет. Необходимо включить режим Tor Relay (пересылки пакетов). Еще мы включим Directory Service &mdsah; сервис каталогов, отвечающий за распространение информации о других tor серверах. В принципе, ничто не мешает использовать для пересылки и для каталога произвольные порты. Конфигурационный файл по умолчанию предлагает использовать порт 9001 для пересылки пакетов и 9030 для сервиса каталогов. Но, поскольку этот
Открываем /etc/tor/torrc и вписываем в него следующие строчки:
Nickname MyCoolNick
ContactInfo Person <somebody AT example dot com>
ORPort 443 NoListen
ORPort 9001 NoAdvertise
DirPort 80 NoListen
DirPort 9030 NoAdvertise
ExitPolicy reject *:* # no exits allowed
ExitPolicy reject6 *:* # no exits allowed
В строчке Nickname вписываем какое-нибудь имя для этого сервера. По нему мы потом сможем контролировать работу сервера через специальные сервисы на TorProject.
В строчку ContactInfo можно вписать свои контактные данные (на случай, если кому-то захочется с вами связаться). А можно ее просто опустить, тогда наш сервер тоже никому не сможет рассказать, кто его владелец.
Последние две строчки запрещают использовать наш сервер в качестве точки выхода (Exit Node) трафика. В противном случае, Tor будет пытаться использовать наш сервер для передачи исходящего трафика сети на внешние сервера. К сожалению, не все используют Tor с благими намерениями, а если трафик покидает Tor через ваш сервер, все проблемы и последствия свалятся в том числе и на вашу голову.
Кроме того, прописанная конфигурация заставляет сервер рассказать остальным участникам сети, что сервер доступен по портам 443 для пересылки пакетов и 80 для сообщения информации о других серверах сети. При этом на самом деле сервер будет ждать сообщений на портах 9001 и 9030. В Debian Tor по умолчанию работает не из-под рута и такая конфигурация позволяет избежать проблем с подключением к портам.
С помощью iptables мы сейчас настроим необходимую связь между портами.
Если в выбранном дистрибутиве есть специальные средства настройки сетевого экрана iptables, можно воспользоваться ими. Проще и нагляднее сделать все ручками.
Создаем файл /etc/iptables.save.rules такого содержания:
# Generated by iptables-save v1.4.14 on Sat Jul 5 14:15:04 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [22:1968]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9030 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Sat Jul 5 14:15:04 2014
# Generated by iptables-save v1.4.14 on Sat Jul 5 14:15:04 2014
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:104]
:POSTROUTING ACCEPT [1:104]
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 9001
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9030
COMMIT
# Completed on Sat Jul 5 14:15:04 2014
Этим мы разрешаем работу с нашим сервером tor и доступ к ssh для удаленного администрирования.
Осталось прописать загрузку этих правил. Обычно я прописываю запуск iptables-restore в /etc/network/interfaces:
auto lo
iface lo inet loopback
pre-up /sbin/iptables-restore /etc/iptables.save.rules
На Yourserver файл /etc/network/interfaces переписывается каждый раз при перезапуске, поэтому можно сделать чуть иначе.
Например, вставить загрузку правил iptables в /etc/rc.local. Для этого в конец файла перед exit 0 вставляем строчку
/sbin/iptables-restore /etc/iptables.save.rules
В заключение перезапускаем сервер tor:
# service tor restart
Проверяем, что мы все сделали правильно. Через некоторое время после перезапуска в файле /var/log/tor/log должна появиться строчки:
Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.
Tor has successfully opened a circuit. Looks like client functionality is working.
Self-testing indicates your DirPort is reachable from the outside. Excellent.
Performing bandwidth self-test...done.
Примерно через час-два, когда информация в базе данных обновится, можно зайти на globe.torproject.org/ и, набрав в строке поиска ник своего сервера, убедиться в том, что сеть Tor пополнилась еще одной точкой перераспределения данных.
Поначалу через новый сервер трафик идти не будет. Жизненный путь Tor Relay — это тема отдельной статьи.
Автор: lumag