id: Гость   вход   регистрация
текущее время 10:28 06/10/2024
Владелец: vps (создано 12/09/2017 11:29), редакция от 23/09/2017 01:12 (автор: vps) Печать
Категории: софт, приватность, tor, цензура
создать
просмотр
редакции
ссылки

VPS (OpenVPN + Tor bridge + obfs4 + SOCKS 5)


Оглавление документа:


Часть 1. Сервер VPS


Все действия по запуску и настройке сервера будем производить с локального компьютера с ОС Windows


Создание ключей OpenSSH и копирование публичного ключа


Сервер VPS создаем на хостинге DigitalOcean https://m.do.co/c/25950fd7d1a5


В консоли управления серверами в своем профиле
входим в раздел Settings
затем в раздел Security
и в подразделе SSH keys
нажимаем на кнопку Add SSH key


Открывается окно New SSH Key


На локальной машине запускаем утилиту puttygen.exe из пакета PuTTY


В меню Key
устанавливаем тип ключа SSH-2 RSA key


В поле ввода Number of bits in a generated key
вводим размер ключа 4096 бит
и нажимаем кнопку Generate


Когда генерация завершится, копируем в буфер обмена содержимое поля
Public key for pasting into OpenSSH authorized_keys file


Затем на хостинге в ранее открытом окне New SSH Key
вставляем его в поле SSH key content


Выглядит оно примерно так


ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAuRLE
MZxuCjiogxmWuSk79aZh4kMsRVjjOQLbRO8hk9lR
C3u9nq1PKPxG0PXoXDt3VDGsf3w3gavP4xvxpyTX
MKG6wXVlqrNhl5xcpxJwcBxsblro1D9tNrSaTHz9
irKrZQCrYSpZ9LbyQ4QQw== rsa-key-20170830

В поле Name
задаем название ключа Main PuTTY key 4096
и сохраняем открытый ключ кнопкой Add SSH Key


Теперь этот ключ будет использоваться при создании VPS, при этом доступа к VPS по паролю уже изначально не будет. Важно, что закрытый ключ был создан не на VPS, а на локальной машине и никогда не передавался по интернету


В окне PuTTY Key Generator
нажимаем на кнопку Save private key
и сохраняем секретный ключ в файле id_rsa.ppk


Создание VPS


В своем профиле в разделе Droplets
нажимаем на кнопку Create
и выбираем Droplets


В окне Create Droplets
выбираем


Choose an image
Distributions
Ubuntu 16.04.3 x64


Choose a size
Standard
$5/mo


Choose a datacenter region
Frankfurt 1
(смотрим страницу с пингами серверов,
также можно Amsterdam 2 или Amsterdam 3)


Add your SSH keys
Main PuTTY key 4096
(выбираем ранее сохраненный открытый ключ)


Finalize and create
Choose a hostname
ubuntu-512mb-fra1-01
(изменяем сгенерированное имя на server)


Через 55 секунд VPS будет создан,
но письмо с паролем root отправлено на почту не будет,
так как этот сервер изначально был создан для доступа только по ключам


Настройка PuTTY


Запускаем на локальной машине утилиту putty.exe
из пакета PuTTY


Слева в окне Category
последовательно выбираем следующие пункты


Пункт Session


Host Name (or IP address)
копируем сюда публичный IP адрес VPS
из раздела Droplets в консоли управления


Port
оставляем 22


Saved Sessions
указываем название server


Пункт Connection
подпункт Data


Auto-login username
указываем суперпользователя root
(после отключения root-доступа
это поле будет изменено на user)


Пункт Connection
подпункт SSH
подпункт Auth
указываем путь к приватному ключу
x:\id_rsa.ppk


Пункт Session


Нажимаем кнопку Save
и сохраняем сессию с именем server


Теперь нажимаем кнопку Open
и входим на server
от имени суперпользователя root
по закрытому ключу x:\id_rsa.ppk


Первым делом обновляем систему и для удобства файловых операций устанавливаем Midnight Commander


Настройка фаервола


Поставляемый в Ubuntu простой фаервол UFW по умолчанию не активирован


Status: inactive

Если не используется интернет протокол шестой версии, то нужно отключить его поддержку


заменив строку


IPV6=yes

строкой


IPV6=no

После этого задаем разрешающие правила


Разрешаем входящие подключения
к порту 22, сервер SSH
к порту 80 (HTTP), будет вторым портом для доступа к серверу SSH из-под рестриктивных фаерволов
к порту 443 (HTTPS), для подключения к Tor мосту
к порту 993 (IMAPS), для подключения к OpenVPN серверу
Порты указываем по именам служб как в файле /etc/services


Активируем фаервол и смотрим на созданные правила


Status: active
[ 1] 22 ALLOW IN Anywhere
[ 2] 80 ALLOW IN Anywhere
[ 3] 443 ALLOW IN Anywhere
[ 4] 993 ALLOW IN Anywhere

В части 3 добавим еще одно разрешающее правило для подключения к obfs4proxy, номер порта которого еще не известен, он будет сгенерирован автоматически. Можно задать его принудительно директивой ServerTransportListenAddr в файле конфигурации torrc, но разработчики это не рекомендуют, так как снижается защищенность.


Защита сервера SSH от брутфорса


Хотя сервер защищен от брутфорса, так как не используется аутентификация пользователей по паролю, но соединения от атакующих серверов все равно продолжают устанавливаться и нагружать VPS, поэтому желательно их вообще не устанавливать. Служба fail2ban реагирует на незаконные попытки доступа, автоматически изменяя конфигурацию фаервола iptables на основе предопределенного количества неудачных попыток входа в систему.


Устанавливаем fail2ban


Делаем копию файла конфигурации для внесения в нее собственных директив, попутно закомментировав в ней все строки


Пользовательские настройки из файла .local парсятся после системных настроек из файла .conf и переопределяют их, но файлы .local защищены от автоматического обновления из репозитория


Открываем файл jail.local


Вставляем в начало файла следующие директивы
(не копируем кириллические комментарии в конфиг)


[DEFAULT]
bantime = 86400 # банить на одни сутки того,
#findtime = 600 # кто в течение 10 минут
maxretry = 3 # три раза сфейлил с аутентификацией


[sshd]
enabled = true # активировать правило для сервера ssh
port = ssh,http # добавить для сервера ssh порт 80
logpath = %(sshd_log)s


[sshd-ddos]
enabled = true
port = ssh,http
logpath = %(sshd_log)s

Применяем сделанные изменения и смотрим на результат запуска службы


Ищем строку зеленого цвета


Active: active (running)

Если выдаст active (exited) – это нормально


Проверяем, создал ли fail2ban новые правила в iptables


Создал


Тестирование защиты SSH


Создаем новый временный сервер VPS и входим на него. Выполняем несколько команд подключения к тестируемому серверу от имени несуществующего пользователя (fake) по IP адресу тестируемого сервера (111.222.333.444)


В первые три попытки получаем ответ


Permission denied (publickey).

А начиная с четвертой уже


ssh: connect to host 111.222.333.444 port 22: Connection refused

Защита активирована


После этого входим на тестируемый сервер через PuTTY с правильными учетными данными и выполняем команду


Убеждаемся, что fail2ban создал в iptables новое запрещающее правило для атакующего сервера


А вот и второе правило (sshd-ddos) сработало, но вызвал его уже не наш тестовый сервер


Создание регулярного пользователя


Для усиления безопасности сервера создаем регулярного пользователя


Назначаем ему криптографически стойкий пароль


На остальные вопросы просто нажимаем клавишу Enter


Добавляем пользователя в группу sudo


Нужно разрешить ему входить на сервер по SSH, для этого копируем папку /root/.ssh в профиль user


Затем изменяем владельца и права доступа на скопированную папку и файл в ней


После этого разрешаем вход пользователей по ключу, а также подключение по SSH к порту 80, отредактировав файл sshd_config


Для этого ниже директивы Port 22 дописываем директиву Port 80, а затем удаляем символ комментария # из начала этой строки


AuthorizedKeysFile %h/.ssh/authorized_keys

Теперь останавливаем и снова запускаем службу ssh для применения изменений (текущее соединение при этом разорвано не будет). После чего выходим из сессии


Далее будем работать от имени регулярного пользователя user


Вход от имени регулярного пользователя


Запускаем утилиту putty.exe


Справа в поле сохраненных сессий выбираем server
и нажимаем на кнопку Load


В левом окне Category выбираем следующие пункты


Пункт Connection
подпункт Data


Auto-login username
имя root
изменяем на user


Пункт Session


Нажимаем кнопку Save
и сохраняем новые настройки сессии server


Затем нажимаем кнопку Open
и входим на server
от имени пользователя user
по закрытому ключу x:\id_rsa.ppk
(теперь все команды с повышением привилегий будем выполнять через команду sudo после введения пароля пользователя user)


Для усиления безопасности запрещаем вход суперпользователя root по SSH


Изменяем строку


PermitRootLogin yes

На строку


PermitRootLogin no

Для применения изменений останавливаем и снова запускаем службу ssh


Общие замечания


Закрытый ключ доступа к серверу желательно хранить на зашифрованной флешке/разделе.
Также желательно иметь доверенное лицо, имеющее доступ к профилю на хостинге, которое сможет уничтожить ваш сервер если вы внезапно заболеете, или уедете, или будете как то иначе ограничены в свободе действий. В противном случае счета будут продолжать выставляться. Если вдобавок к этому вы не создадите криптографически стойкий пароль к своему профилю и не включите двухфакторную аутентификацию, и по этой причине его смогут взломать, то за время вашего вынужденного отсутствия успеют создать целый кластер мощных серверов и ваши счета могут увеличиться до десятков тысяч долларов https://geektimes.ru/post/247794/
Если провайдерский или корпоративный фаервол блокирует выход в интернет со всех портов, кроме 80 и 443, то придется использовать либо один из них для OpenVPN сервера, а второй для Tor моста, либо поднимать для каждого сервиса свой отдельный VPS и на каждом использовать порт 443, но это удвоит затраты на обеспечение доступа к интернету.
Если 22 порт тоже заблокирован, то можно назначить 80 для доступа по SSH. Но тогда если сразу создать VPS с доступом только по сертификату, то придется дополнительно запросить сброс пароля root, чтобы по нему войти на сервер из консоли управления на хостинге и изменить порт SSH с 22 на 80. Либо нужно создавать VPS с доступом по паролю root, а потом из консоли управления на хостинге производить смену порта и настройку доступа по сертификату.
Добавляя порт 80 для подключения по SSH, можно не отключать порт 22, а указать его вторым портом, добавив директиву Port 80 ниже директивы Port 22 в файле sshd_config и впоследствии иметь доступ из разных мест.


Часть 2. Сервер OpenVPN


Теперь установим и настроим первый сервис для приватного доступа к интернету


Установка сервера OpenVPN


Сначала устанавливаем пакет OpenVPN и пакет easy-rsa


Затем создаем в профиле пользователя user директорию центра сертификации и перемещаемся в нее


Далее настраиваем переменные центра сертификации


Для этого отредактируем некоторые строки файла vars следующим образом (можно использовать иные значения переменных, но не следует оставлять их пустыми)


export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York City"
export KEY_ORG="DigitalOcean"
export KEY_EMAIL="admin@example.com"
export KEY_OU="Community"
. . .
export KEY_NAME="server"

После этого создаем центр сертификации


На все вопросы отвечаем нажатием клавиши Enter


Далее создаем сертификат, файлы шифрования и ключ для сервера. На все вопросы также отвечаем нажатием клавиши Enter, challenge password задавать не будем, а на вопросы о подписании и подтверждении создания сертификата вводим y и нажимаем клавишу Enter


Теперь все готово и можно создавать сертификат и пару ключей для первого клиента


Настройка сервиса OpenVPN


Выполняем копирование созданных в профиле файлов ключей и сертификатов в директорию /etc/openvpn


Затем извлекаем в ту же директорию файл с примером конфигурации сервера


На основании файла примера нужно создать собственную конфигурацию сервера


Для этого нужно отредактировать следующие директивы
(не копируем кириллические комментарии в конфиг)


port 993 # изменяем порт по умолчанию
push "redirect-gateway def1 bypass-dhcp" # раскомментируем строку
push "dhcp-option DNS 208.67.222.222" # раскомментируем строку
push "dhcp-option DNS 208.67.220.220" # раскомментируем строку
tls-auth ta.key 0 # This file is secret # раскомментируем строку
key-direction 0 # добавляем строку
cipher AES-128-CBC # раскомментируем строку
auth SHA256 # добавляем строку
user nobody # раскомментируем строку
group nogroup # раскомментируем строку

OpenVPN по умолчанию работает на порту 1194 по протоколу UDP. Если есть опасение о возможном его блокировании провайдером или корпоративным фаерволом, то можно выбрать другой порт. Желательно использовать распространенные порты, изначально предназначенные для зашифрованного соединения


HTTPS 443
POP3S 995
SMTPS 465
IMAPS 993
IMAP4 585


Менее предпочтительны распространенные порты, не предназначенные для зашифрованного соединения


HTTP 80 (дополнительный 8080)
POP3 110
SMTP 25
IMAP 143
IMAP3 220


Порты, используемые Apple Podcast Capture


HTTPS 8170
HTTP 8171


Поискать подходящие порты можно по этим ссылкам


https://ru.adminsub.net/tcp-udp-port-finder/imap


При необходимости можно изменить протокол на TCP (директива proto tcp), но он добавит в трафик избыточность и несколько замедлит скорость соединения. При выборе TCP также нужно изменить директиву dev tun на dev tap, но этот вариант я не тестировал, поэтому ищите информацию отдельно. Если обеспечение высокой скорости соединения не является критически важным, то можно последовать рекомендациям сообщества OpenVPN и изменить в директиве cipher AES-128-CBC значение на 256 и протестировать приемлемость скорости соединения.


Далее настраиваем сетевую конфигурацию сервера


Для этого раскомментируем одну строку


net.ipv4.ip_forward=1

Чтобы применить настройки к текущей сессии выполняем команду


Настройка правил фаервола


Для маскарадинга соединений клиентов нужно настроить правила фаервола


Добавляем в начало файла нижеприведенные строки, начиная со строки # START OPENVPN RULES по строку # END OPENVPN RULES.


Теперь разрешаем перенаправляемый трафик по умолчанию и применяем изменения


Затем запускаем сервер OpenVPN, указав имя файла конфигурации (/etc/openvpn/server.conf) в качестве переменной (@server) в конце имени юнита systemd, и проверяем результат


В выдаче должна присутствовать строка зеленого цвета


Active: active (running)

Если выдаст active (exited) – это нормально


Далее проверяем доступность интерфейса OpenVPN


Выдача должна содержать подобные строки


3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever

Теперь задаем автоматическую активацию сервиса при загрузке сервера


Настройка клиентов


Создаем инфраструктуру настройки клиентов


В базовой конфигурации отредактируем следующие директивы
(не копируем кириллические комментарии в конфиг)


remote 111.222.333.444 993 # Указываем IP адрес VPS и порт 993
user nobody # раскомментируем строку
group nogroup # раскомментируем строку
;ca ca.crt # закомментируем строку
;cert client.crt # закомментируем строку
;key client.key # закомментируем строку
cipher AES-128-CBC # добавляем строку как в файле /etc/openvpn/server.conf
auth SHA256 # добавляем строку как в файле /etc/openvpn/server.conf
key-direction 1 # добавляем строку
;script-security 2 # добавляем закомментированную строку (для клиентов на Linux)
;up /etc/openvpn/update-resolv-conf # добавляем закомментированную строку
;down /etc/openvpn/update-resolv-conf # добавляем закомментированную строку

Далее создаем скрипт для генерации файлов конфигурации


Вставляем в созданный файл скрипта следующие строки
(nano подсветит его синтаксис)


Теперь делаем файл скрипта исполняемым файлом


Сгенерируем конфигурацию для своего первого клиента
(можно последовательно генерировать для нескольких клиентов, задавая им новые имена)


Доставку конфигурации с сервера клиенту осуществляем, используя утилиту pscp.exe из пакета PuTTY


Запускаем на локальной машине командный интерпретатор cmd


И устанавливаем временную переменную пути к исполняемым файлам PuTTY


Затем получаем файл конфигурации с сервера командой


pscp – команда трансфера файлов
server – имя сессии, сохраненной в PuTTY
/home/user/client-configs/files/client1.ovpn – файл источник на сервере
x:\client1.ovpn – целевой файл на локальной машине

Установка конфигурации клиента на Windows


Устанавливаем клиентский профиль OpenVPN на Windows


Название соединения OpenVPN соответствует названию .ovpn файла: client1


Клиент для работы с OpenVPN для Windows загружаем со страницы загрузок OpenVPN


Выбираем необходимую нам версию установщика


Установка OpenVPN требует администраторской учетной записи


После установки OpenVPN копируем .ovpn файл в эту директорию


C:\Program Files\OpenVPN\config

При запуске OpenVPN клиент должен автоматически увидеть наш профиль


Клиент OpenVPN требует запуска с правами администратора


Установление VPN соединения


Запуск клиента OpenVPN просто помещает приложение в системный трей, при этом само соединение не устанавливается автоматически


Для установки соединения делаем щелчок правой кнопкой мыши на иконке OpenVPN в системном трее


В открывшемся контекстном меню выбираем client1 (это наш профиль client1.ovpn) и нажимаем Connect


Открывается окно статуса, которое будет отображать лог соединения


При завершении соединения отображается соответствующее сообщение


Закрыть VPN соединение можно так же: сделать щелчок правой кнопкой мыши на иконке OpenVPN в системном трее, выбрать профиль клиента и нажать Disconnect


Установка конфигурации клиента на Ubuntu 16.04.3 Desktop


Монтируем флешку на рабочей станции и копируем с нее в домашнюю папку пользователя user полученный с сервера второй файл конфигурации клиента client2.ovpn


Обновляем систему и устанавливаем программное обеспечение OpenVPN


Проверяем, содержит ли дистрибутив скрипт /etc/openvpn/update-resolv-conf


Содержит


update-resolve-conf

Редактируем файл конфигурации клиента


Нужно раскомментировать те три строки, которые мы добавили для клиентов на Linux


script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Соединяемся с сервером OpenVPN


Окно терминала сворачиваем, но не закрываем; либо переходим для дальнейшей работы на второй рабочий стол


Тестирование VPN соединения


Без установки соединения с VPN открываем браузер и заходим на сайт https://www.dnsleaktest.com/


Этот сайт возвращает IP адрес, назначенный нашим интернет провайдером


Для того чтобы проверить, какие DNS серверы используются, нажимаем на Extended Test


Потом устанавливаем соединение, используя VPN клиент, и обновляем страницу в браузере


Теперь возвращаемый IP адрес соответствует нашему VPS


Нажимаем Extended Test ещё раз и видим, что мы используем DNS серверы нашего VPN


Отзыв клиентских сертификатов


Для предотвращения доступа клиента к серверу VPN необходимо отозвать клиентский сертификат


Для этого заходим в директорию центра сертификации на сервере и выполняем команды


Далее используем команду revoke-full с именем клиента, сертификат которого хотим отозвать


Вывод результатов работы этой команды будет оканчиваться ошибкой 23. Это нормально. В результате работы будет создан файл crl.pem в директории keys с необходимой для отзыва сертификата информацией


Перемешаем этот файл в директорию /etc/openvpn


Затем открываем файл конфигурации сервера OpenVPN


И добавляем в конец файла строку


Теперь сервер OpenVPN будет проверять список отозванных сертификатов каждый раз, когда кто-то устанавливает соединение с сервером


Перезапускаем OpenVPN для завершения процесса отзыва сертификата


Теперь клиент не сможет устанавливать соединение с сервером OpenVPN, используя старый сертификат


Для отзыва дополнительных сертификатов выполняем следующее


Генерируем новый список отозванных сертификатов, используя команду source vars в директории /openvpn-ca и выполняя команду revoke-full с именем клиента


Копируем новый список отозванных сертификатов в директорию /etc/openvpn, перезаписывая им старый список


Перезапускаем сервис OpenVPN


Эта процедура может быть использована для отзыва любых созданных ранее сертификатов


Часть 3. Tor мост с обфускацией трафика


Организуем еще один канал для приватного доступа к интернету


Установка пакетов Tor и obfs4proxy


Сначала нужно добавить открытый ключ Torproject с сервера ключей


Затем добавляем репозитории Torproject


Для этого вставляем в конец файла такие строки


После чего обновляем список пакетов, а затем систему


Далее устанавливаем последнюю стабильную версию Tor и obfs4proxy


Теперь служба Tor установлена и уже работает


Проверяем состояние службы


В выдаче должна присутствовать одна строка зеленого цвета


Active: active (running)

Если выдаст active (exited) – это нормально


А также такие строки


enabled; vendor preset: enabled

и


status=0/SUCCESS

Этой командой можно дополнительно удостовериться, будет ли служба запущена после перезагрузки системы


Она должна выдавать строку


enabled

Активировать же запуск при загрузке деактивированной службы можно командой


Настройка параметров службы Tor


Далее необходимо настроить файл конфигурации для работы службы в качестве моста с обфускацией трафика


Вставляем в начало поставляемого в пакете файла следующие директивы
(не копируем кириллические комментарии в конфиг)


BridgeRelay 1
Nickname eki0tl4w6nr1yxa38p2 # рандомная строка до 19 символов
ContactInfo RandomPerson
ExitPolicy reject *:*
PublishServerDescriptor 0
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
SocksPort 0
ORPort 443
ExtORPort auto
Log notice file /var/log/tor/log
TruncateLogFile 1
AvoidDiskWrites 1
HeartbeatPeriod 24 hours

Для ORPort также как и для OpenVPN сервера будем использовать распространенные порты, изначально предназначенные для зашифрованного соединения


PublishServerDescriptor 0 означает не публиковаться нигде, это наш личный мост


Для фиксации одного бага нужно настроить AppArmor


В файле абстракции изменяем 27 строку


Было


/usr/bin/obfs4proxy PUx,

Стало


/usr/bin/obfs4proxy ix,

Чтобы применить все сделанные изменения перезагружаем систему


Примечание: баг пофиксили в версии Tor 0.3.1.7


Получение настроек обфускации


Заново входим на сервер через PuTTY и копируем файл с настройками в профиль пользователя user


Затем изменяем владельца и права доступа к этому файлу


После этого запускаем на локальной машине командный интерпретатор cmd и устанавливаем временную переменную пути к исполняемым файлам PuTTY


Файл с настройками обфускации получаем с сервера, используя утилиту pscp.exe из пакета PuTTY


pscp – команда трансфера файлов
server – имя сессии, сохраненной в PuTTY
/home/user/obfs4_bridgeline.txt – файл источник на сервере
x:\obfs4_bridgeline.txt – целевой файл на локальной машине

После получения копии файла удаляем файл источник из домашней директории на сервере


Затем находим в логе номер порта обфускатора


Строка выдачи содержит искомый случайно сгенерированный номер порта 36842 (он кэшируется в системе для дальнейшего использования и возобновляется после перезагрузки, но при первоначальной установке или переустановке генерируется заново, чтобы пользователи мостов в сети имели максимально различные порты)


Registered server transport 'obfs4' at '[::]:36842'

Открываем в фаерволе этот порт для входящих подключений, добавив новое правило к правилам, созданным в части 1. Затем применяем сделанные изменения


Использование моста и обфускатора


Запускаем Tor Browser


В окне Tor Status нажимаем кнопку Open Settings


В окне Tor Network Settings нажимаем кнопку Configure


На вопрос, имеется ли цензура, отвечаем Yes


В окне конфигурации моста в поле ввода Enter custom bridges вводим IP адрес VPS и порт 443


Если локальный прокси отсутствует, то нажимаем Connect (если используется, то указываем его)


Заходим на https://pgpru.com/ и проверяем созданную цепочку


Первым хопом значится Unknown country (IP unknown)


Теперь открываем ранее полученный с сервера файл с настройками обфускации obfs4_bridgeline.txt


Вместо масок <IP ADDRESS>:<PORT> вписываем IP адрес VPS и порт обфускатора 36842


А вместо маски <FINGERPRINT> вписываем fingerprint (40 символов) своего моста, который получаем этой командой в терминале сервера (значение fingerprint копируем правой кнопкой мыши в окне терминала PuTTY, предварительно выделив протяжкой мыши по строке)


В окне конфигурации моста в поле ввода Enter custom bridges заменяем ранее введенные IP адрес VPS и порт 443 на управляющую строку, полученную в результате описанной выше модификации файла obfs4_bridgeline.txt


После этого перезапускаем Tor Browser


Заново входим на https://pgpru.com/ и проверяем созданную цепочку


Теперь первым хопом значится Bridge: obfs4 (Germany)


Обфускация трафика используется нашим мостом


Создаем отдельные копии Tor Browser'а: одну для соединения через обычный мост, вторую для соединения через мост с дополнительной обфускацией трафика


Часть 4. OpenSSH туннель в роли SOCKS 5 прокси


Если все, что вам нужно – это сокрытие вашего серфинга в интернете, то есть простая альтернатива: туннель SOCKS 5 прокси


SOCKS прокси представляет собой SSH туннель, через который конкретные приложения направляют свой трафик на сервер, а затем прокси сервер перенаправляет их трафик далее в интернет


В отличие от VPN, SOCKS прокси должен быть настроен в приложении на клиентской машине и может быть настроен без каких-либо специальных клиентских агентов


Настройка туннеля


Запускаем PuTTY и загружаем ранее сохраненную сессию подключения к своему VPS по SSH


Слева в меню выбираем пункт Connection
подпункт SSH
подпункт Tunnels


Справа в разделе Add new forwarded port
в поле Source port
вводим порт из диапазона 1025-65536,
например, 1080


Активируем радиокнопку Dynamic


Затем нажимаем кнопку Add


В поле Forwarded ports
отобразится значение D1080


Возвращаемся в пункт Session
и сохраняем новую сессию с именем socks


Нажимаем кнопку Open
и устанавливаем соединение с сервером


Сворачиваем окно PuTTY, но не закрываем его. Оно должно оставаться открытым на протяжении всего сеанса. В этом неудобство данного метода


Использование туннеля


Теперь мы имеем установленный SOCKS 5 туннель через SSH и должны настроить браузер для его использования


Открываем сетевые настройки Firefox и в ручном режиме указываем, что соединяемся с SOCKS 5 сервером, где адрес сервера 127.0.0.1 (или localhost) и порт 1080


Отмечаем галочку Отправлять DNS запросы через прокси при использовании SOCKS 5


В завершение заходим на сайт https://www.dnsleaktest.com/, который возвращает IP адрес нашего VPS


ПРИМЕЧАНИЯ:


1) На pgpru.com (цитата):


Автоматический корректор, встроенный в wiki, самостоятельно подгоняет сохраняемый текст под нормы форматирования, избавляя авторов от излишне детальной правки. Вот какие изменения он вносит:
. . .
Минус – превращает в тире
Два минуса — в длинное тире
. . .


Меня он тоже кое-где "избавил от излишней правки", так что если какая команда или конфиг вместо своих законных "минусов" получили какое-либо тире и поэтому не срабатывают, то, прежде всего, проверьте именно это.


2) В силу различия в инстансах на разных хостингах мануал может не сработать на 100%, допустим на Амазоне или Азуре. Но на DO все шаги и команды прогнаны как минимум 3 раза. На других хостингах обратите внимание на название

дефолтного сетевого интерфейса eth0 в этой директиве

и при необходимости скорректируйте его.


 
На страницу: 1, 2 След.
Комментарии [скрыть комментарии/форму]
— Гость_ (12/09/2017 22:39, исправлен 12/09/2017 22:44)   профиль/связь   <#>
комментариев: 450   документов: 10   редакций: 13

Проверил настройку Openvpn. Рабочее руководство.
Особо нужно быть внимательным при замене переменных на свои имена. Отражается на путях.


Немного по существу:


1. ./build-key-server server
Отвечаем "Y"
NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/user1/openvpn-ca/keys


Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y


2. Если хочется создать сертификаты с паролями:


cd /openvpn-ca
source vars
./build-key-pass client1


3. Конфиги есть смысл делать чистыми (без редактирования образцов), ибо в глазах рябит.


4. После sudo ufw default allow forward
нужно перезапустить файер
sudo ufw disable
sudo ufw enable


5. При настройке файера встеки рекомендовал бы добавть
sudo ufw allow 22


6. Без @server:
sudo systemctl start openvpn@server
sudo systemctl status openvpn@server


или


sudo service openvpn enable/stop/start/restart/status


7. Есть смысл поставить из репозитория dnscrypt-proxy. Нужно обсудить необходимость.

— Гость_ (16/09/2017 20:13, исправлен 16/09/2017 20:14)   профиль/связь   <#>
комментариев: 450   документов: 10   редакций: 13

Основная проблема бриджей – то, что они используются не в дополнение к гуарду, а вместо него. Если обычный гуард смешивает входящий трафик сотен и тысяч клиентов, а полупубличный бридж – значительно меньшее их число, то приватный никому неизвестный бридж, котрым пользуются полтора анонима, фактически, с точки зрения анонимности (а не обохода цензуры) равноценен его отсутствию в цепочке. Считайте, что на нём висит метка с вашим реальным IP. Это значит, что эффективная длина тор-цепочки сокращается с трёх до двух, где три – минимальное число, обеспечивающее анонимность. При двух узлах миддлман видит вас и трафик от вас, а также знает ваш текущий эксит. Даже если эксит не кооперируется в слежке, можно легко вести атаки пресечения и подтверждения, например, сопоставляя время вашего использования конкретного эксита и время логинов на разные сайты с этого эксита. Короче, неправильно вы, дядя Фёдор, цензуру обходите...


Правильнее было бы купить 2 VPS, один из которых используется только для вывода трафика в нейтральную юрисдикцию и соединения с собственным приватным HS, поднятым на втором VPS и оплаченным анонимно. На локальной машине поднимаются 2 тор-клиента, первый из которых пересылает трафик до HS и больше не делает ничего, а второй соединяется с тор-сетью так, будто запущен на самом HS. Это тор-через-тор, где приватный VPS с HS на нём играет роль промежуточного узла: ваш IP -> тор-1 -> приватный HS на втором VPN -> тор-2 -> сеть. На HS не расшифровывается полностью трафик, он безопасен к изъятию.


Помимо всего прочего, не стоит в одно руководство кучей валить совершенно разные задачи. Безопасная настройка SSH – одно, тор-бридж – другое, VPN – третье. Они у вас никак не связаны между собой, их можно читать по отдельности, так зачем им быть в одном тексте? Разделите по разным документам.

— гыук (17/09/2017 11:38, исправлен 17/09/2017 11:41)   профиль/связь   <#>
комментариев: 271   документов: 0   редакций: 0

Если дяде Федору нужно свершить что такое, что привлечет такое внимания и проведение в отношение него такого вида атак, то ДА. В противном случае, который подходит 9 из 10 пользователей, подобный способ подойдет.
Причем, 9 из этих 9 подойдет решение – ТВ/tor -> VPN, т.е. достаточно будет реализовать часть 2 этого руководства.



Так мы ж не против реализовать ваше предложение, которое будет опубликовано в виде подробного руководства. Все однозначно, скажут спасибо.. ну или подумают об этом :-)



Ставим:


$ sudo apt-get install tor-arm


При первом запуске arm будет предложено настроить мост или релей.

— Гость_ (17/09/2017 13:02)   профиль/связь   <#>
комментариев: 450   документов: 10   редакций: 13

Я хотел сказать только то, что пользователь бриджей платит за это тем, что получает меньшую анонимность по сравнению с обычными тор-клиентами. Это плата за сокрытие факта пользования тором.


Направлять трафик из тора в VPN? Более бредовую идею сложно придумать.
— гыук (17/09/2017 13:34)   профиль/связь   <#>
комментариев: 271   документов: 0   редакций: 0

Страно задавать вопрос и отвечать на него самому. На https://trac.torproject.org/pr...../wiki/doc/TorPlusVPN посмотрите "You -> VPN/SSH -> Tor" (tor через vpn).
— vps (18/09/2017 09:58)   профиль/связь   <#>
комментариев: 9   документов: 2   редакций: 90

Интересный способ. Тогда возникает три вопроса:
1) Version 1.4.5, released 4/28/12. Имеет ли смысл? В этом розливе пять звездочек, как никак :)
2) Вы имели ввиду ставить arm на VPS или на рабочую станцию?
3) Вы это использовали или предполагаете?
В один из первых разов я пытался его ставить, правда не для того чтобы он вместо меня что-то там мне сам понастроил, а для визуализации. Он легко установился, и даже запустился, но сразу не заработал даже на отображение трафика. Если правильно помню, то он высказался про проблему с правами. Я не стал вникать. Архитектура ОС за эти годы изменилась, структура torrc тоже изменилась, поэтому я решил не решать проблему с приложением пятилетней давности.
Ставил я его тогда не на VPS, а на физический сервер. Но, думаю, это не принципиальное различие и на VPS можно ожидать того же.
Если у вас arm работает исправно, поделитесь опытом.
Еще меня смущает сама цель его использования на VPS. Сервер находится черти где, физического доступа нет, инстанс собран и поддерживается инженерами хостинга по их представлениям об эффективности ведения их бизнеса. Чем меньше программ мы сами туда установим (еще и не свежих) тем нам же проще жить будет.
— vps (18/09/2017 10:22)   профиль/связь   <#>
комментариев: 9   документов: 2   редакций: 90
Ребята, давайте не будем рассматривать этот текст как некий абсолют, удовлетворяющий всем целям и дающий правильные ответы на все возможные возникающие вопросы. Это лишь конспект моих действий. Его можно резать на части, а можно просто щелкать по оглавлению и попадать в нужную часть. Он не станет еще правильнее, если я начну его улучшать. Потому что он описывает только то, что я делал, а я это уже сделал и дописать больше ничего не могу. Если писать, как было бы лучше, то это надо тестировать, но мой сервер уже стабильно работает и мне нечего дописать. Я получил доступ к нужным мне сайтам. Если кому нужно быть анонимным на 101% и оплачивать сервер анонимной валютой, то это другая цель. Если кто-то это реализует и захочет обнародовать это будет плюс в копилку знаний. Я не могу ставить себе цель 101% анонимности и оплачивать сервер с банковской карты.
— гыук (18/09/2017 11:49)   профиль/связь   <#>
комментариев: 271   документов: 0   редакций: 0
vps (18/09/2017 09:58)

https://www.pgpru.com/%C1%E8%E.....F4%E8%EA%E0%F6%E8%FF
https://www.torproject.org/projects/arm
http://zenway.ru/page/arm

Сабж устанавливается в Tails и Whonix, поэтому объяснять что то о нем и рекламировать нет смысла.
Есть особенности использования, в ссылках они есть, так же создается свой torrc в ./arm

Конечно он ставится на сервер, а где ж мы делаем мост.
Я экспериментально поставил на сервак и создал бридж, но дальше ковыряться не стал, как там и что получилось. Рывками занимаюсь, по мере наличия времени.

Чего то все молчат по dnscrypt-proxy. В случае различных утечек и для защиты dns запросов очень полезнаю вещь.
— Гость_ (18/09/2017 11:55)   профиль/связь   <#>
комментариев: 450   документов: 10   редакций: 13
Недавно наткнулся на эту статью.
http://www.prianichnikov.info/.....ther-vpn-debian.html

Может есть иной способ (чем в SoftEther VPN) маскировки трафика под Https, dns, sstp, icmp (встречал в некоторых проприетарных приложениях).
Кто имеет опыт, поделитесь.
— vps (18/09/2017 13:26, исправлен 18/09/2017 13:31)   профиль/связь   <#>
комментариев: 9   документов: 2   редакций: 90

О'рлы???

— Гость_ (18/09/2017 14:05, исправлен 18/09/2017 14:08)   профиль/связь   <#>
комментариев: 450   документов: 10   редакций: 13

Рукалицо.jpg. Найдите одно важное отличие.



Проблем запустить нет, если дать ему нужные права и доступ к ControlPort, но отставание от текущей версии чувствуется. Для получения полного функционала трубется добавить небезопасные опции в torrc, что не очень правильно, но даже при этом продолжают сыпаться разные предупреждения в логах arm.


Сейчас в тренде другой метод – написать свой скрипт на питоне, пользуясь общедоступной библиотекой stem. Ленивые могут написать обычный скрипт на бэше, который будет подрубаться к ControlPort с командной строки и получать все нужные данные, причём в более полном и кастомизированном виде, чем их даёт arm, без нужны добавлять небезопасные torrc-опции и без всяких странных предупреждений. Есть готовые примеры для смены цепочек.

— гыук (18/09/2017 19:11, исправлен 18/09/2017 19:12)   профиль/связь   <#>
комментариев: 271   документов: 0   редакций: 0

Гость_ (18/09/2017 14:05, исправлен 18/09/2017 14:08)


Согласен. По разному выглядит. Нестолько оправдаться, сколько пояснить что, когда я писал "ТВ/tor -> VPN", то однозначно подразумевал что tor через vpn. Поэтому после замечания, удивился в чем проблема и привел ссылку на офресурс.


vps (18/09/2017 13:26, исправлен 18/09/2017 13:31)


Хмм. Но был же. У вас Tails 3.1?
В любом случае, сабж известный. Видимо для управления системным tor его достаточно, поэтому и не обновляется. А может, как сказал Гость_ (18/09/2017 14:05, исправлен 18/09/2017 14:08)

— гыук (18/09/2017 21:50)   профиль/связь   <#>
комментариев: 271   документов: 0   редакций: 0
vps (18/09/2017 13:26, исправлен 18/09/2017 13:31)

Нашел когда убрали с Tails пакет tor-arm:

tails (2.10) unstable; urgency=medium
...
* Minor improvements
...
– Remove tor-arm (Nyx) (Closes: #9811).
...

— Tails developers <tails@boum.org> Mon, 23 Jan 2017 113837 +0100
— cypherpunks (09/11/2017 00:23)   профиль/связь   <#>
комментариев: 300   документов: 33   редакций: 12
Welcome to Nyx
https://nyx.torproject.org/
— гыук (12/12/2017 23:37)   профиль/связь   <#>
комментариев: 271   документов: 0   редакций: 0
Предлагается доработать руководство по установке openvpn в части использования сервера stunnel.
http://www.spy-soft.net/configuring-openvpn-stunnel/
На страницу: 1, 2 След.