Tor Relay за п'ять хвилин

Безпека і працездатність мережі Tor безпосередньо залежить від кількості вузлів, що відповідають за пересилку трафіку, — relay nodes. Організація EFF навіть відкрила змагання Tor Challenge з метою простимулювати якомога більше число користувачів налаштувати і запустити такі вузли. Власне кажучи, саме цьому нехитрому дії і присвячена стаття.
 
Нам буде потрібно сервер — машина, на якій Tor Relay буде працювати. Можна скористатися своїм домашнім комп'ютером, можна переналаштувати розумний роутер. Я пропоную інший спосіб — використовувати VPS (Virtual Private Server). Програмне забезпечення Tor досить невибагливо і легко уживається навіть на VPS з мінімальною конфігурацією. Вистачає 256 Mb пам'яті, швидше за все вистачить і 128Mb. Дискові вимоги також мінімальні: менше гігабайти. Вартість такого сервера в місяць близька до вартості чашки кави в якій-небудь кав'ярні.
 
Отже, реєструємо собі VPS. Для нас головне, щоб у неї був чесний зовнішній IP адресу. Мені подобається Yourserver , але можна використовувати будь-який інший VPS з Linux або * BSD на борту. Як правило, після покупки ви отримуєте сервер, на який уже встановлений один з дистрибутивів Linux. Вибирайте самі, який вам до душі. Я буду розповідати на прикладі Debian.
 
Спочатку на VPS треба встановити Tor:
 
 
# aptitude install tor

 
За замовчуванням Tor буде працювати в режимі клієнта мережі: ви можете ним скористатися для роботи з мережею, але для для інших цей екземпляр буде марний. Чужий трафік через нього йти не буде. Необхідно включити режим Tor Relay (пересилання пакетів). Ще ми включимо Directory Service &mdsah; сервіс каталогів, відповідальний за поширення інформації про інших tor серверах. В принципі, ніщо не заважає використовувати для пересилання і для каталогу довільні порти. Конфігураційний файл за умовчанням пропонує використовувати порт 9001 для пересилання пакетів і 9030 для сервісу каталогів. Але, оскільки цей VPS більше ні для чого використовуватися не буде, ми можемо трохи схитрувати і полегшити життя людям, що сидять за строгими міжмережевими екранами. Ми зробимо наш сервер доступним по портах 443 і 80 — по портах, які зазвичай використовуються для www трафіку.
 
Відкриваємо / 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 — це тема окремої статті.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.