Поднимаем свой анонимный сайт в 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, после чего создаются ключи в соответствующих каталогах.
Не смотря на то что адреса генерируются случайным образом - их можно подбирать. Об этом поговорим в отдельной статье.