Война в Украине

Все мы знаем, какой пиздец сейчас происходит с Украиной и одной известной вам страной-победительницей-фашизма. Если вы хотите почитать об этом, помочь актуализировать информацию или высказать свое мнение — можете сделать это в статье Война в Украине и в обсуждении.

Редактирование Участник:Xlikam/Даркнеты

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
{{Навигация|Криптоконспирология}}
 
 
{{stub|help=yes|См. TODO}}
 
 
 
Тут будет различная информация о сабжах
 
Тут будет различная информация о сабжах
  
Строка 9: Строка 5:
  
 
Что для этого необходимо:
 
Что для этого необходимо:
# Зайти в [http://127.0.0.1:7657/i2ptunnel менеджер туннелей].
+
# Зайти в менеджер туннелей [http://127.0.0.1:7657/i2ptunnel]
 
# В появившемся окне менеджера нажать кнопку создать новый серверный туннель.
 
# В появившемся окне менеджера нажать кнопку создать новый серверный туннель.
# Точка доступа: 127.0.0.1. Порт: 8118 (Для HTTP-proxy) или 9050 (прямое обращение к Tor через SOCKS).
+
# Точка доступа: 127.0.0.1 Порт: 8118 (Для HTTP-proxy) или 9050 (прямое обращение к Tor)
# Программа connect (пакет connect-proxy в Дебиане и Убунте)
+
 
# Сохраняем изменения.
 
# Сохраняем изменения.
 
# ????
 
# ????
Строка 18: Строка 13:
 
''Скриншоты потом вставлю.''
 
''Скриншоты потом вставлю.''
  
== Утилиты командной строки через TOR ==
+
== Создаём защищённый eepsite ==
Зайти по ssh на обычный сервер:
+
  ssh -o ProxyCommand='connect -5 -S localhost:9050 %h %p' user@server.com
+
 
+
Зайти по ssh на скрытый сайт:
+
  ssh -o ProxyCommand='connect -R remote -5 -S localhost:9050 %h %p' user@serverfxnnckztbn.onion
+
 
+
Скачать через TOR:
+
  curl --socks5 localhost:9050 http://www.fbi.gov/logo.png
+
 
+
Скачать через TOR (с подделкой user agent):
+
  curl --socks5 localhost:9050 -A "Opera/9.25 (Windows NT 6.0; U; en)" http://www.fbi.gov/logo.png
+
 
+
Зайти на сайт (осторожно, возможна [http://www.dnsleaktest.com/ течка DNS], так как там SOCKS4):
+
  links2 -socks-proxy localhost:9050 http://www.fbi.gov/
+
 
+
== Настройка nginx для работы в даркнете ==
+
 
В первую очередь нам понадобится веб-сервер.
 
В первую очередь нам понадобится веб-сервер.
 
''Я выбрал nginx, так как считаю его наиболее безопасным.''
 
''Я выбрал nginx, так как считаю его наиболее безопасным.''
 
Итак, понеслась:
 
Итак, понеслась:
* Скачиваем исходник последней стабильной версии [http://nginx.org/download], редактируем файл '''src/http/ngx_http_header_filter_module.c'''
+
# Скачиваем исходник последней стабильной версии [http://nginx.org/download], редактируем файл '''src/http/ngx_http_header_filter_module.c'''
Находим строчки:
+
Находим строчки<br />
  static char ngx_http_server_string[] = "Server: nginx" CRLF;
+
<code>static char ngx_http_server_string[] = «Server: nginx» CRLF;<br />
  static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
+
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;</code><br />
и меняем их, к примеру, на:
+
и меняем их, к примеру, на:<br />
  static char ngx_http_server_string[] = "Server: suckhttpd" CRLF;
+
<code>static char ngx_http_server_string[] = «Secured webserver» CRLF;<br />
  static char ngx_http_server_full_string[] = "Server: suckhttpd/1.0" CRLF;
+
static char ngx_http_server_full_string[] = «Server: Secured webserver 0.CRLF;</code>
Разумеется, вместо suckhttpd нужно подставить существующий сервер, желательно с большим количеством уязвимостей (старенький Apache или IIS самое то). Это осложнит определение настоящей версии сервера, взломщики потратят время на проверку сервера на наличие уязвимостей, которых у него может не быть.
+
Это осложнит определение настоящей версии сервера, что значительно повысит его безопасность.
 
+
# Собираем сервер, отключив ненужные модули (список всех модулей можно получить, запустив configure c флагом --help):
* Собираем сервер, отключив ненужные модули (список всех модулей можно получить, запустив configure c флагом --help):
+
## ./configure --without-http_autoindex_module --without-http_ssi_module
  # ./configure --without-http_autoindex_module --without-http_ssi_module
+
## make
  # make
+
## make install
  # make install
+
# Конфигурируем сервер
* Конфигурируем сервер
+
# Открываем файл /etc/nginx/nginx.conf и добавляем в него строчку «server_tokens off» Это скроет информацию о версии и типе сервера на страницах, отображаемых при ошибочный запросах клиента, что дополнительно повысит его безопасность.
* Открываем файл /etc/nginx/nginx.conf и добавляем в него строчку «server_tokens off». Это скроет информацию о версии и типе сервера на страницах, отображаемых при ошибочный запросах клиента, что дополнительно повысит его безопасность.
+
  
 
Теперь изменим таймаут для повышения производительности:
 
Теперь изменим таймаут для повышения производительности:
  client_body_timeout 10;
+
<code>client_body_timeout 10;<br />
  client_header_timeout 10;
+
client_header_timeout 10;<br />
  keepalive_timeout 5 5;
+
keepalive_timeout 5 5;<br />
  send_timeout 10;
+
send_timeout 10;<br /></code>
 
+
Защитимся от переполнения буфера:<br />
Защитимся от <del>переполнения буфера</del> (ЩИТО?):
+
client_body_buffer_size 1K;<br />
  client_body_buffer_size 1K;
+
client_header_buffer_size 1k; — увеличить, если сервер будет поддерживать загрузку файлов<br />
  client_header_buffer_size 1k; # увеличить, если сервер будет поддерживать загрузку файлов
+
client_max_body_size 1k;<br />
  client_max_body_size 1k;
+
large_client_header_buffers 2 1k;<br />
  large_client_header_buffers 2 1k;
+
Увеличим количество соединений с одного ip-адреса, так как обращаться к серверу будем только с адреса 127.0.0.1<br />
 
+
limit_conn slimits 40;<br />
Увеличим количество соединений с одного ip-адреса, так как обращаться к серверу будем только с адреса 127.0.0.1:
+
На всякий случай оставим только 3 метода обращения к серверу<br />
  limit_conn slimits 40;
+
if ($request_method !~ ^(GET|HEAD|POST)$) <br />
На всякий случай оставим только 3 метода обращения к серверу (кому хватит меньше, можно оставить меньше):
+
{<br />
  if ($request_method !~ ^(GET|HEAD|POST)$) {
+
return 444;<br />
    return 444;
+
}<br />
  }
+
 
Устанавливаем пароль на нужные нам папки:
 
Устанавливаем пароль на нужные нам папки:
  # mkdir /etc/nginx/htpasswd
+
<br /># mkdir /etc/nginx/.htpasswd<br />
  # htpasswd -c /etc/nginx/htpasswd/passwd user1 # создаём файл паролей для пользователя user1
+
# htpasswd -c /etc/nginx/.htpasswd/passwd user1 — создаём файл паролей для пользователя user1
 
Добавляем в nginx.conf
 
Добавляем в nginx.conf
  location /private/ {
+
<br />location /private/
    auth_basic "Restricted";
+
<br />{
    auth_basic_user_file /etc/nginx/htpasswd/passwd;
+
<br />auth_basic «Restricted»;
  }
+
<br />auth_basic_user_file /etc/nginx/.htpasswd/passwd;
 
+
<br />}
* Скрываем сервер от внешнего интернета. Для этого нужно проследить, чтобы в настройках сайта везде было <code>listen 127.0.0.1:80</code>, а не <code>listen 0.0.0.0:80</code> или <code>listen 80</code> (то же самое для порта 443). Можно дополнительно заблокировать порт 80 через iptables (эффект пропадает при перезагрузке):
+
<br />
  iptables -A INPUT -m state --state NEW -p tcp -s 127.0.0.1 --dport 80 -j ACCEPT
+
Для пущей паранойи будем использовать SSL
  iptables -A INPUT --dport 80 -j REJECT
+
<br />
Этим мы скроем наш сервер от прямых подключений.
+
Создаём сертификат:
 
+
# cd /etc/nginx
* Перезагружаем сервер:
+
# openssl genrsa -des3 -out server.key 1024
  /etc/init.d/nginx reload
+
# openssl req -new -key server.key -out server.csr
 
+
# cp server.key server.key.org
== Шифрование диска ==
+
# openssl rsa -in server.key.org -out server.key
=== Truecrypt ===
+
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Для ещё большей паранойи разместим каталог сервера на отдельном разделе диска или даже флешке, шифрованном truecrypt-ом.
+
Пишем в nginx.conf<br />
Скачиваем установщик truecrypta [http://www.truecrypt.org/downloads отсюда].
+
server {<br />
Устанавливаем, запускаем, форматируем флешку для работы с truecrypt-ом.
+
server_name localhost;<br />
Осторожно, при этом находящиеся на флешке данные будут удалены, а не зашифрованы.
+
listen 443;<br />
# Create Volume
+
ssl on;<br />
# Create a volume within a partition/drive
+
ssl_certificate /etc/nginx/server.crt;<br />
# Hidden truecrypt volume
+
ssl_certificate_key /etc/nginx/server.key;<br />
# Select drive
+
access_log /etc/nginx/logs/ssl.access.log;<br />
# Выбираем алгоритм хеширования и шифрования, лучше всего AES и SHA-512
+
error_log /etc/nginx/logs/ssl.error.log;<br />
# Задаём пароль посложнее или выбираем один или несколько ключевых файлов. Ключевой файл можно сгенерировать или выбрать в качестве такового любой файл или даже папку (в таком случае все находящиеся в ней файлы станут ключевыми).
+
}<br />
# Жмём Format и начинаем быстро двигать мышкой, чем дольше — тем лучше
+
Перезагружаем сервер:
После окончания форматирования она будет автоматически смонтирована как /dev/mapper/truecryptX, где X — число от 1 до 50
+
<br />/etc/init.d/nginx reload
 +
<br />Для ещё большей паранойи разместим каталог сервера на отдельном разделе диска или даже флешке, шифрованном truecrypt-ом
 +
<br />Скачиваем установщик truecrypta отсюда — http://www.truecrypt.org/downloads
 +
<br />Устанавливаем, запускаем, шифруем флешку (Create Volume — Create a volume within a partition/drive — Hidden truecrypt volume — ???(подробнее завтра допилю))
 
Монтируем её через Select drive — Mount, правим /etc/fstab, предварительно переместив файлы сервера
 
Монтируем её через Select drive — Mount, правим /etc/fstab, предварительно переместив файлы сервера
* /dev/mapper/truecryptX /nginx ext4 defaults, nosuid, noexec, nodev 1 2
+
<br />/dev/mapper/truecrypt1 /nginx ext4 defaults, nosuid, noexec, nodev 1 2
* [http://sf.net/projects/selinuxnginx/ Дополнительная защита из под selinux-a]
+
<br />5. Тут про запуск сервера из под KVM, допилю завтра.
  # tar -zxvf se-ngix_1_0_10.tar.gz
+
<br />6. Дополнительная защита из под selinux-a — http://sf.net/projects/selinuxnginx/
  # cd se-ngix_1_0_10/nginx
+
# tar -zxvf se-ngix_1_0_10.tar.gz
  # make
+
# cd se-ngix_1_0_10/nginx
  # /usr/sbin/semodule -i nginx.pp
+
# make
 
+
# /usr/sbin/semodule -i nginx.pp
=== LUKS ===
+
7. PHP<br />
todo
+
Если вы всё-таки решили использовать на вашем сайте язык PHP, что довольно опасно, то стоит настроить его должным образом
 
+
== PHP ==
+
Если вы всё-таки решили использовать на вашем сайте язык PHP, что довольно опасно, то стоит настроить его должным образом.
+
 
Редактируем файл /etc/php/php.ini
 
Редактируем файл /etc/php/php.ini
  disable_functions = phpinfo, system, mail, exec # отключение опасных функций
+
<br />disable_functions = phpinfo, system, mail, exec — отключение опасных функций
  max_execution_time = 10
+
<br />max_execution_time = 10
  max_input_time = 60
+
<br />max_input_time = 60
  memory_limit = 8M
+
<br />memory_limit = 8M
  post_max_size = 8M
+
<br />post_max_size = 8M
  upload_max_filesize = 2M
+
<br />upload_max_filesize = 2M
  display_errors = Off
+
<br />display_errors = Off
  safe_mode = On
+
<br />safe_mode = On
  sql.safe_mode = On
+
<br />sql.safe_mode = On
  safe_mode_exec_dir = /secured/ # путь к каталогу, из которого можно выполнять внешние команды
+
<br />safe_mode_exec_dir = /secured/ — путь к каталогу, из которого можно выполнять внешние команды
  expose_php = Off
+
<br />expose_php = Off
  log_errors = On # логи
+
<br />log_errors = On — логи
  allow_url_fopen = Off
+
<br />allow_url_fopen = Off
 
+
<br />8. Скрываем сервер от внешнего интернета
== Создаём eepsite ==
+
<br />iptables -A INPUT -m state --state NEW -p tcp -s 127.0.0.1 --dport 80 -j ACCEPT
* Теперь, когда наш сервер достаточно защищён, создаём [http://127.0.0.1:7657/i2ptunnel/ серверные туннели] к http и https.
+
<br />iptables -A INPUT --dport 80 -j REJECT
* Там же отключаем неиспользуемые туннели, если таковые имеются.
+
<br />Этим мы скроем наш сервер от всех подключений, кроме тех, что из I2P.
* Регистрация в DNS.
+
<br />Теперь, когда наш сервер достаточно защищён создаём серверные туннели к http и https [http://127.0.0.1:7657/i2ptunnel/].
Заходим на сайт [http://stats.i2p stats.i2p] и регистрируемся там.
+
Там же отключаем неиспользуемые туннели если таковые имеются.
 
+
10. Регистрация в DNS.
== Создаём onion site ==
+
Заходим на сайт [stats.i2p] и регистрируемся там.
* Устанавливаем TOR.
+
* Убедиться, что «SocksPort 0» (то есть тор работает только как сервер, а не как клиент).
+
* Редактируем /etc/tor/torrc: HiddenServiceDir и HiddenServicePort соответствуют папке с ключом к сайту и таблицей соответствия портов. По умолчанию несколько таких записей уже есть, но они закомментированы.
+
  HiddenServiceDir /var/lib/tor/hidden_service/
+
  HiddenServicePort 80 127.0.0.1:80
+
  HiddenServicePort 22 127.0.0.1:22
+
В этом примере проброшены 80 (HTTP) и 22 (SSH) порты. Для большей безопасности имеет смысл для SSH-сервера выделить отдельный onion site (на том же компьютере), дабы управление сайтом было сложнее соотнести с самим сайтом.
+
* Если есть публичный IP-адрес, имеет смысл поднять промежуточную ноду тора, чтобы запутать прослушивающих дополнительным трафиком:
+
  ORPort 9001
+
  ExitPolicy reject *:*
+
Имей в виду, что IP-адрес попадет в публичный [http://torstatus.blutmagie.de/ip_list_all.php/Tor_ip_list_ALL.csv список серверов тора]. Увеличится или уменьшится при этом риск — решать тебе.
+
* Перезапустить тор:
+
  /etc/init.d/tor reload
+
 
+
Есть [https://github.com/katmagic/Shallot программа] для создания ключей onion-сайта с именем, заданным шаблоном. Например, для «^lurkmore» может получиться «lurkmore77r3lur3.onion», если немного подождать.
+
 
+
== SSL ==
+
Для пущей паранойи можно использовать SSL (в принципе, данные так надежно шифруются, что на пути между клиентом и скрытым сайтом их невозможно прочитать или подменить). Но SSL не повредит, от греха подальше.
+
 
+
Создаём сертификат:
+
  # cd /etc/nginx
+
  # openssl genrsa -des3 -out server.key 1024
+
  # openssl req -new -key server.key -out server.csr
+
  # cp server.key server.key.org
+
  # openssl rsa -in server.key.org -out server.key
+
  # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
+
Пишем в nginx.conf:
+
  server {
+
    listen 127.0.0.1:443;
+
    server_name localhost;
+
    ssl on;
+
    ssl_certificate /etc/nginx/server.crt;
+
    ssl_certificate_key /etc/nginx/server.key;
+
    access_log /etc/nginx/logs/ssl.access.log;
+
    error_log /etc/nginx/logs/ssl.error.log;
+
  }
+
 
+
== TODO ==
+
* http://www.domains4bitcoins.com/ http://dot-bit.org
+
* VPS
+
* хостеры, принимающие [[bitcoin]]: http://www.bitvps.com/ https://en.bitcoin.it/wiki/Virtual_private_server
+
* bitcoin-анонимайзеры
+
* IRC и Jabber в даркнетах
+
* правка из hidden service
+

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии WTFPL public license (см. Urbanculture:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

Чтобы отредактировать эту страницу, пожалуйста, решите простой пример и введите ответ в текстовое поле (подробнее):

Отменить | Справка по редактированию  (в новом окне)