Зачем вам это? 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, после чего создаются ключи в соответствующих каталогах.
Так же хотелось бы дополнить статью тем, как сделать красивый домен в TOR Код: debian $ sudo apt-get install libssl-dev $ sudo apt-get install build-essential centos $ yum install openssl-dev $ yum groupinstall "Development Tools" -------------------------- $ git clone https://github.com/katmagic/Shallot.git Shallot $ cd ./Shallot $ ./configure && make Использование: Код: $ ./shallot -p base32 alphabet allows letters [a-z] and digits [2-7] pattern can be a POSIX-style regular expression, e.g. xxx must contain 'xxx' bar$ must end with 'bar' ^foo must begin with 'foo' b[a4]r may contain leetspeech;) ^ab|^cd must begin with 'ab' or 'cd' [a-z]{16} must contain letters only, no digits ^dusk.*dawn$ must begin with 'dusk' and end with 'dawn' Код: $ ./shallot ^xakername ----------------------------------------------------------------- Found matching domain after 9614046 tries: XAKERNAMExxxxxxxxxxxxxx.onion ----------------------------------------------------------------- -----BEGIN RSA PRIVATE KEY----- xxxxxxxxxxxxx ............................................ xxxxxxxxxxxxx -----END RSA PRIVATE KEY-----