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