Пример настройки сайта для onion в Ubuntu

  • Автор темы Admin

Admin

#1
Администратор
Регистрация
31.12.2019
Сообщения
6,871
Реакции
24
Пример настройки сайта для onion в Ubuntu (Копипаста)

Общие рекомендации по соблюдению анонимности:
1. Не запускайте более ничего на данном сервере.
2. Используйте начисто установленную операционную систему.
3. Не используйте более никаких сервисов у данного сервис провайдера.
4. Оплаичвайте услуги провайдера через PayPal или лучше через Bitcoin.
5. Не предоставляйте сервис провайдеру никакой идентифицирующей Вас информации.
6. Не запускайте Tor-relay на данном сервисе, потому как публичный адрес данного сервера будет публичным адресом Tor-relay.
7. Не отправляйте почту с данного сервера.
8. Используйте безопасное программное обеспечение запущенного сайта и стойкие пароли.
9. Избегайте програмного обеспечения которое использует скрипты, такие как javascript например.
10. Убедитесь, что Ваше приложение не выводит информацию об ошиках способную нарушить анонимность сервера.
11. Убедитесь, что код сайта не использует какие либо элементы со сторонних сайтов, таких как jquery.com или google fonts.
12. Устанавливайте своевременно обновления безопасности на сервер.

Основные шаги:
1. Выбрать хостинг для сайта с учётом географического распределения пользователей.
2. Установить и настроить операционную систему Ubuntu.
3. Установить и настроить веб сервер Nginx.
4. Установить и настроить Tor Hidden Services.
После проделанных шагов, сайт будет доступен по своему onion адресу в сети Tor.

Будем исходить из того, что хостинг мы выбрали и у нас установлена операционная система Ubuntu.

Настройка Ubuntu:
1. Удаляем приложения которые могут повлиять на анонимность:

Код:
sudo apt-get remove --purge rsyslog exim postfix sendmail wget curl

2. Оптимизируем настройки для работы системы с нагруженным сайтом - открываем /etc/sysctl.d/100-nginx.conf
Код:
sudo vi /etc/sysctl.d/100-nginx.conf
и приводим значения к:
Код:
fs.file-max = 2097152
    net.core.netdev_max_backlog = 65536
    net.core.optmem_max = 25165824
    net.core.rmem_default = 16777216
    net.core.rmem_max = 31457280
    net.core.somaxconn = 65536
    net.core.wmem_default = 16777216
    net.core.wmem_max= 31457280
    net.ipv4.ip_local_port_range= 2000 65000
    net.ipv4.tcp_congestion_control = cubic
    net.ipv4.tcp_fin_timeout= 7
    net.ipv4.tcp_keepalive_intvl = 15
    net.ipv4.tcp_keepalive_probes = 3
    net.ipv4.tcp_keepalive_time = 90
    net.ipv4.tcp_max_orphans = 262144
    net.ipv4.tcp_max_syn_backlog = 2048
    net.ipv4.tcp_max_syn_backlog = 65536
    net.ipv4.tcp_max_tw_buckets = 1048576
    net.ipv4.tcp_mem = 8388608 8388608 8388608
    net.ipv4.tcp_orphan_retries = 0
    net.ipv4.tcp_rfc1337 = 1
    net.ipv4.tcp_rmem = 8192 87380 16777216
    net.ipv4.tcp_slow_start_after_idle = 0
    net.ipv4.tcp_syn_retries = 2
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_wmem = 8192 65536 16777216
    vm.dirty_background_ratio = 2
    vm.swappiness = 10
    vm.dirty_ratio = 60
Код:
sudo sysctl -p /etc/sysctl.d/100-nginx.conf

Открываем /etc/security/limits.conf
Код:
sudo vi /etc/security/limits.conf
и приводим значения к:

Код:
*           soft    nofile  1048576
    *           hard   nofile   1048576
    root       soft    nofile   1048576
    root       hard   nofile   1048576

Открываем /etc/pam.d/su
Код:
sudo vi /etc/pam.d/su
и приводим значения к:
Код:
session       required       pam_limits.so

Открываем /etc/pam.d/common-session
Код:
sudo vi /etc/pam.d/common-session
и приводим значения к:
Код:
session       required       pam_limits.so


Установка и настройка Nginx:
1. Устанавливаем nginx
Код:
sudo apt-get install nginx

2. Сохраняем оригинальный конфиг:
Код:
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig

3. Создаём конфиг /etc/nginx/nginx.conf
Код:
sudo vi /etc/nginx/nginx.conf
с конфигурацией для высоко нагруженного сайта:

Код:
    user www-data;
    worker_processes auto;
    pid /run/nginx.pid;

    worker_rlimit_nofile 2129952;

    events {
            worker_connections 81920;
            multi_accept on;
            use epoll;
    }

    http {

            ##
            # Basic Settings
            ##

            open_file_cache max=200000 inactive=20s;
            open_file_cache_valid 30s;
            open_file_cache_min_uses 2;
            open_file_cache_errors on;
           
            sendfile on;
            tcp_nopush on;
            tcp_nodelay on;
            keepalive_timeout 30;
            reset_timedout_connection on;
            send_timeout 2;
            client_max_body_size 32k;
            client_body_buffer_size 32k;
            client_body_in_single_buffer on;
            client_body_timeout 10s;
            client_header_timeout 10s;
            client_header_buffer_size 8k;
            large_client_header_buffers 4 32k;
            types_hash_max_size 2048;
            server_tokens off;

            # server_names_hash_bucket_size 64;
            # server_name_in_redirect off;

            include /etc/nginx/mime.types;
            default_type application/octet-stream;

            ##
            # Logging Settings
            ##

            access_log off;
            error_log off;

            ##
            # Gzip Settings
            ##

            gzip on;
            gzip_disable "MSIE [1-6]\.";
            gzip_comp_level 6;
            gzip_buffers 16 8k;
            gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

            ##
            # Limits
            ##
            limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
            limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=30r/s;

            ##
            # Server configuration
            ##
    server {
            listen 127.0.0.1:8080 default_server backlog=65536;
            server_name localhost _ "";

            root /usr/share/nginx/html;
            index index.html;

    #        error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 420 422 423 424 426 428 429 431 444 449 450 451 500 501 502 503 504 505 506 507 508 509 510 511 = /index.html;

    #       limit_conn conn_limit_per_ip 20;
    #       limit_req zone=req_limit_per_ip burst=50 nodelay;

            location / {
                    expires 1h;
                    allow 127.0.0.1;
                    deny all;
            }
    }
    }

4. Перегружаем Nginx:
Код:
sudo service nginx restart
Установка и настройка Tor:
1. Для установки Tor подключаем репозитории указанные на страничке проекта:
Код:
sudo vi /etc/apt/sources.list
и добавляем значения:
Код:
deb http://deb.torproject.org/torproject.org trusty main
deb-src http://deb.torproject.org/torproject.org trusty main

Код:
gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

2. Устанвливаем Tor:

Код:
sudo apt-get update
sudo apt-get install tor deb.torproject.org-keyring

3. Выполняем настройки Tor Hidden Service.
Код:
sudo vi /etc/tor/torrc
и приводим значения к:
Код:
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080

4. Перезапускам Tor:
Код:
sudo service tor restart

5. Узнаём свой Tor onion адрес:
Код:
sudo cat /var/lib/tor/hidden_service/hostname


Теперь наш сайт доступен по адресу который указан в данном файле.

За это имя отвечает файл содержащий приватный ключ: /var/lib/tor/hidden_service/private_key

Устанавливаем и настраиваем файервол.
1. Устанавливаем файервол:
Код:
sudo apt-get install ufw

2. Настраиваем файервол:
Код:
sudo ufw allow ssh

3. Разрешаем доступ к серверу через ssh
Код:
sudo ufw enable
 

Members, viewing this thread

Сейчас на форуме нет ни одного пользователя.