Поднимаем свой анонимный сайт в TOR

Поднимаем свой анонимный сайт в TOR

Темная Сторона

TOR может скрыть реальное местоположение сайта, а это значит что его не смогут отключить, а создателя - найти и наказать/устранить (при соблюдении определённых правил). Кроме того TOR-адрес в доменной зоне .onion невозможно украсть/присвоить/отозвать до тех пор пока вы не потеряете секретный ключ от этого домена (об этом чуть позже). Все это подходит нам чуть более, чем полностью, поэтому именно об этом мы сегодня и поговорим!

Настраиваем веб-сервер

Пропускаем этот раздел и переходим к разделу настройки TOR в случае если web-сервер уже настроен.

Однострочник на Python

Если у вас статические html-файлы с сайтом (идеальный вариант для безопасности) и не очень много ресурсов, то можно просто запустить однострочник на Python, который будет отдавать пользователю контент.

Для этого перейдите в каталог с html-файлами и запустите следующую команду:

$ cd /var/www/site1
$ python -m SimpleHTTPServer 80

Можно параллельно запустить несколько сайтов, поменяв лишь каталог назначения и порт. Например:

$ cd /var/www/site2
$ python -m SimpleHTTPServer 81


Nginx

Если сайт более сложный и ресурсов хватает - можно настроить nginx.

Ставим:

$ sudo apt-get install nginx

Рекомендуется в файле /etc/nginx/nginx.conf поменять следующие значения:

http {

...

        # не предоставляем версию используемого софта
        server_tokens off;
        # отключаем ведение логов
        #access_log /var/log/nginx/access.log;
        #error_log /var/log/nginx/error.log;

        error_log /dev/null crit;
...

Далее создаём файл нового виртуалхоста:

/etc/nginx/sites-available/site1

server {
        listen 127.0.0.1:80 default_server;
        server_name localhost;

        root /var/www/site1;
        index index.html index.htm;

        location / {
                allow 127.0.0.1;
                deny all;

        }

Включаем его:

$ cd /etc/nginx/sites-enabled
$ sudo ln -s ../sites-available/site1 .

Перезапускаем nginx и добавляем его в автозагрузку:

$ sudo service nginx restart
$ sudo update-rc.d enable nginx

Создаём каталог с будущим сайтом:

$ sudo mkdir /var/www/site1

Кладём туда необходимые файлы и сменяем владельца:

$ sudo chown -R www-data:www-data /var/www/site1


Настройка TOR

Настройка TOR сводится лишь к его установке и добавлению 2 строчек в конфиг.

$ sudo apt-get install tor

Открываем /etc/tor/torrc:

HiddenServiceDir /var/lib/tor/site1 # каталог создаётся автоматически
HiddenServicePort 80 127.0.0.1:80

Перезапускаем TOR:

$ sudo /etc/init.d/tor restart

Первая строчка в конфиге указывает путь к закрытому ключу, который создаётся автоматически TOR'ом при первом запуске после модификации конфига и играет роль onion-домена. Давайте посмотрим на содержимое каталога для большего понимания:

$ sudo ls /var/lib/tor/site1
hostname  private_key

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

pigf5kfufjz63s5z.onion

Удаление/модификация файла hostname не влечёт никаких последствий, при следующем перезапуске TOR он вновь создаётся на основе ключа. Это скорее файл-подсказка для вас.

А вот ключ private_key необходимо держать в секрете. До тех пор пока вы являетесь единственным владельцем этого файла - ваш домен никто и никогда не украдёт.

Ключ имеет стандартный вид:

-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCiwfOmTC3c02kaz/BGftIXLafz4z6sTbufBpM/usaQAFdbW072
xZ0ds2ZEVbQNOjewU9QihrtA25v20ZblbEZfrLkPytKzb/ghCIEQN/mbSsnBcJ9b
JJa0OzhUy+V9uuXrO0afpk7eCB/EPNdwugfKu/G9JaBirWrRMkkAozhKjwIDAQAB
AoGBAJlFVwMzWDlN6fvy+E4a3hQvzauSRBIVPevbUE3CwX0YpSuGSE2B+Zzfth4C
K4YNXiYyO2KsSKkiZrS/2X+CQJ4WLy87VCkoF2TF5C4MKF3SOhGPorO4TCtxkhnN
7tprZFIlT7/cP45XretG+i6ZuksZtv2Oje0r1oCwxv0F4V5BAkEA0rVve2Q0x5EG
nZrBPFgsdPm6ikutuMUBFbNxv71ILbh3f+qePpH6wZIjgQ7FJXGXarC1DcyaPT52
QQWWnhGCYQJBAMW97zxTD+9klPBisZ7ClFWh88VBCPVeyz5AS2oQdNtRaJeKyiiS
JhtNIq5yPabCZ/JecqbtCoMY/pdJeJNs0u8CQFyAgG+YHz+ZYGEiRkDaqLG1zHnY
HWznN8GyJHa7fwtrVzLV6iCn74C5SlLnDA+THZkd+G4Va4UFfd6vuF6uayECQD9Q
aWFvVxLXqbiuYSDsPIKOsHbgM/YcvAban0r+qevvTQX4snH7Gah0Mj6Y5ZSXeqDo
DN3V2B/RyPK325uYpJECQQCs/Ko0Z2LIk+fDaHRsWI00DbflRK8jptnjArVTrabs
0Os5jX+UFum0kGRlNKQPV8suucP/5y6FanlmTs3RFwpt
-----END RSA PRIVATE KEY-----


Рекомендуется сделать копию ключа, предварительно зашифровав например GPG, используя криптостойкий пароль (либо ваш ключ) и куда-нибудь скопировать:

$ sudo gpg -c /var/lib/tor/site1/private_key

Если очистить каталог  /var/lib/tor/site1 от ключа, то при следующем перезапуске TOR сгенерирует новый ключ с новым случайным onion-адресом.

Вернёмся к конфигу. Вторая строчка (HiddenServicePort 80 127.0.0.1:80) задаёт какой порт будет у onion-ресурса и какой адрес и порт будем форвардить на него. В нашем случае мы берём адрес/порт 127.0.0.1:80 и форвардим его на pigf5kfufjz63s5z.onion:80.

Давайте проверим так ли это. Откройте в tor-browser, либо в любом другом браузере, но с настроенным TOR и введите адрес http://pigf5kfufjz63s5z.onion. Должна открыться страница что висит на 127.0.0.1:80.

Если сайтов нестолько, то в конфиг дописываем, например:

HiddenServiceDir /var/lib/tor/site2
HiddenServicePort 80 127.0.0.1:81

HiddenServiceDir /var/lib/tor/site3
HiddenServicePort 80 127.0.0.1:82

Перезапускаем TOR, после чего создаются ключи в соответствующих каталогах. 

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

Report Page