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
Выглядит оно примерно так
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 по умолчанию не активирован
Если не используется интернет протокол шестой версии, то нужно отключить его поддержку
заменив строку
строкой
После этого задаем разрешающие правила
Разрешаем входящие подключения
к порту 22, сервер SSH
к порту 80 (HTTP), будет вторым портом для доступа к серверу SSH из-под рестриктивных фаерволов
к порту 443 (HTTPS), для подключения к Tor мосту
к порту 993 (IMAPS), для подключения к OpenVPN серверу
Порты указываем по именам служб как в файле /etc/services
Активируем фаервол и смотрим на созданные правила
[ 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
Вставляем в начало файла следующие директивы
(не копируем кириллические комментарии в конфиг)
bantime = 86400 # банить на одни сутки того,
#findtime = 600 # кто в течение 10 минут
maxretry = 3 # три раза сфейлил с аутентификацией
enabled = true # активировать правило для сервера ssh
port = ssh,http # добавить для сервера ssh порт 80
logpath = %(sshd_log)s
enabled = true
port = ssh,http
logpath = %(sshd_log)s
Применяем сделанные изменения и смотрим на результат запуска службы
Ищем строку зеленого цвета
Если выдаст active (exited) – это нормально
Проверяем, создал ли fail2ban новые правила в iptables
Создал
Тестирование защиты SSH
Создаем новый временный сервер VPS и входим на него. Выполняем несколько команд подключения к тестируемому серверу от имени несуществующего пользователя (fake) по IP адресу тестируемого сервера (111.222.333.444)
В первые три попытки получаем ответ
А начиная с четвертой уже
Защита активирована
После этого входим на тестируемый сервер через PuTTY с правильными учетными данными и выполняем команду
Убеждаемся, что fail2ban создал в iptables новое запрещающее правило для атакующего сервера
А вот и второе правило (sshd-ddos) сработало, но вызвал его уже не наш тестовый сервер
Создание регулярного пользователя
Для усиления безопасности сервера создаем регулярного пользователя
Назначаем ему криптографически стойкий пароль
На остальные вопросы просто нажимаем клавишу Enter
Добавляем пользователя в группу sudo
Нужно разрешить ему входить на сервер по SSH, для этого копируем папку /root/.ssh в профиль user
Затем изменяем владельца и права доступа на скопированную папку и файл в ней
После этого разрешаем вход пользователей по ключу, а также подключение по SSH к порту 80, отредактировав файл sshd_config
Для этого ниже директивы Port 22 дописываем директиву Port 80, а затем удаляем символ комментария # из начала этой строки
Теперь останавливаем и снова запускаем службу 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
Изменяем строку
На строку
Для применения изменений останавливаем и снова запускаем службу 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_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
Затем извлекаем в ту же директорию файл с примером конфигурации сервера
На основании файла примера нужно создать собственную конфигурацию сервера
Для этого нужно отредактировать следующие директивы
(не копируем кириллические комментарии в конфиг)
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 и протестировать приемлемость скорости соединения.
Далее настраиваем сетевую конфигурацию сервера
Для этого раскомментируем одну строку
Чтобы применить настройки к текущей сессии выполняем команду
Настройка правил фаервола
Для маскарадинга соединений клиентов нужно настроить правила фаервола
Добавляем в начало файла нижеприведенные строки, начиная со строки # START OPENVPN RULES по строку # END OPENVPN RULES.
Теперь разрешаем перенаправляемый трафик по умолчанию и применяем изменения
Затем запускаем сервер OpenVPN, указав имя файла конфигурации (/etc/openvpn/server.conf) в качестве переменной (@server) в конце имени юнита systemd, и проверяем результат
В выдаче должна присутствовать строка зеленого цвета
Если выдаст active (exited) – это нормально
Далее проверяем доступность интерфейса OpenVPN
Выдача должна содержать подобные строки
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
Теперь задаем автоматическую активацию сервиса при загрузке сервера
Настройка клиентов
Создаем инфраструктуру настройки клиентов
В базовой конфигурации отредактируем следующие директивы
(не копируем кириллические комментарии в конфиг)
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
Затем получаем файл конфигурации с сервера командой
server – имя сессии, сохраненной в PuTTY
/home/user/client-configs/files/client1.ovpn – файл источник на сервере
x:\client1.ovpn – целевой файл на локальной машине
Установка конфигурации клиента на Windows
Устанавливаем клиентский профиль OpenVPN на Windows
Название соединения OpenVPN соответствует названию .ovpn файла: client1
Клиент для работы с OpenVPN для Windows загружаем со страницы загрузок OpenVPN
Выбираем необходимую нам версию установщика
Установка OpenVPN требует администраторской учетной записи
После установки OpenVPN копируем .ovpn файл в эту директорию
При запуске 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
Содержит
Редактируем файл конфигурации клиента
Нужно раскомментировать те три строки, которые мы добавили для клиентов на Linux
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 (exited) – это нормально
А также такие строки
и
Этой командой можно дополнительно удостовериться, будет ли служба запущена после перезагрузки системы
Она должна выдавать строку
Активировать же запуск при загрузке деактивированной службы можно командой
Настройка параметров службы Tor
Далее необходимо настроить файл конфигурации для работы службы в качестве моста с обфускацией трафика
Вставляем в начало поставляемого в пакете файла следующие директивы
(не копируем кириллические комментарии в конфиг)
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 строку
Было
Стало
Чтобы применить все сделанные изменения перезагружаем систему
Примечание: баг пофиксили в версии Tor 0.3.1.7
Получение настроек обфускации
Заново входим на сервер через PuTTY и копируем файл с настройками в профиль пользователя user
Затем изменяем владельца и права доступа к этому файлу
После этого запускаем на локальной машине командный интерпретатор cmd и устанавливаем временную переменную пути к исполняемым файлам PuTTY
Файл с настройками обфускации получаем с сервера, используя утилиту pscp.exe из пакета PuTTY
server – имя сессии, сохраненной в PuTTY
/home/user/obfs4_bridgeline.txt – файл источник на сервере
x:\obfs4_bridgeline.txt – целевой файл на локальной машине
После получения копии файла удаляем файл источник из домашней директории на сервере
Затем находим в логе номер порта обфускатора
Строка выдачи содержит искомый случайно сгенерированный номер порта 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 в этой директиве
и при необходимости скорректируйте его.
комментариев: 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. Нужно обсудить необходимость.
комментариев: 450 документов: 10 редакций: 13
Основная проблема бриджей – то, что они используются не в дополнение к гуарду, а вместо него. Если обычный гуард смешивает входящий трафик сотен и тысяч клиентов, а полупубличный бридж – значительно меньшее их число, то приватный никому неизвестный бридж, котрым пользуются полтора анонима, фактически, с точки зрения анонимности (а не обохода цензуры) равноценен его отсутствию в цепочке. Считайте, что на нём висит метка с вашим реальным IP. Это значит, что эффективная длина тор-цепочки сокращается с трёх до двух, где три – минимальное число, обеспечивающее анонимность. При двух узлах миддлман видит вас и трафик от вас, а также знает ваш текущий эксит. Даже если эксит не кооперируется в слежке, можно легко вести атаки пресечения и подтверждения, например, сопоставляя время вашего использования конкретного эксита и время логинов на разные сайты с этого эксита. Короче, неправильно вы, дядя Фёдор, цензуру обходите...
Правильнее было бы купить 2 VPS, один из которых используется только для вывода трафика в нейтральную юрисдикцию и соединения с собственным приватным HS, поднятым на втором VPS и оплаченным анонимно. На локальной машине поднимаются 2 тор-клиента, первый из которых пересылает трафик до HS и больше не делает ничего, а второй соединяется с тор-сетью так, будто запущен на самом HS. Это тор-через-тор, где приватный VPS с HS на нём играет роль промежуточного узла: ваш IP -> тор-1 -> приватный HS на втором VPN -> тор-2 -> сеть. На HS не расшифровывается полностью трафик, он безопасен к изъятию.
Помимо всего прочего, не стоит в одно руководство кучей валить совершенно разные задачи. Безопасная настройка SSH – одно, тор-бридж – другое, VPN – третье. Они у вас никак не связаны между собой, их можно читать по отдельности, так зачем им быть в одном тексте? Разделите по разным документам.
комментариев: 271 документов: 0 редакций: 0
Если дяде Федору нужно свершить что такое, что привлечет такое внимания и проведение в отношение него такого вида атак, то ДА. В противном случае, который подходит 9 из 10 пользователей, подобный способ подойдет.
Причем, 9 из этих 9 подойдет решение – ТВ/tor -> VPN, т.е. достаточно будет реализовать часть 2 этого руководства.
Так мы ж не против реализовать ваше предложение, которое будет опубликовано в виде подробного руководства. Все однозначно, скажут спасибо.. ну или подумают об этом :-)
Ставим:
$ sudo apt-get install tor-arm
При первом запуске arm будет предложено настроить мост или релей.
комментариев: 450 документов: 10 редакций: 13
Я хотел сказать только то, что пользователь бриджей платит за это тем, что получает меньшую анонимность по сравнению с обычными тор-клиентами. Это плата за сокрытие факта пользования тором.
Направлять трафик из тора в VPN? Более бредовую идею сложно придумать.
комментариев: 271 документов: 0 редакций: 0
Страно задавать вопрос и отвечать на него самому. На https://trac.torproject.org/pr...../wiki/doc/TorPlusVPN посмотрите "You -> VPN/SSH -> Tor" (tor через vpn).
комментариев: 9 документов: 2 редакций: 90
Интересный способ. Тогда возникает три вопроса:
1) Version 1.4.5, released 4/28/12. Имеет ли смысл? В этом розливе пять звездочек, как никак :)
2) Вы имели ввиду ставить arm на VPS или на рабочую станцию?
3) Вы это использовали или предполагаете?
В один из первых разов я пытался его ставить, правда не для того чтобы он вместо меня что-то там мне сам понастроил, а для визуализации. Он легко установился, и даже запустился, но сразу не заработал даже на отображение трафика. Если правильно помню, то он высказался про проблему с правами. Я не стал вникать. Архитектура ОС за эти годы изменилась, структура torrc тоже изменилась, поэтому я решил не решать проблему с приложением пятилетней давности.
Ставил я его тогда не на VPS, а на физический сервер. Но, думаю, это не принципиальное различие и на VPS можно ожидать того же.
Если у вас arm работает исправно, поделитесь опытом.
Еще меня смущает сама цель его использования на VPS. Сервер находится черти где, физического доступа нет, инстанс собран и поддерживается инженерами хостинга по их представлениям об эффективности ведения их бизнеса. Чем меньше программ мы сами туда установим (еще и не свежих) тем нам же проще жить будет.
комментариев: 9 документов: 2 редакций: 90
комментариев: 271 документов: 0 редакций: 0
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 запросов очень полезнаю вещь.
комментариев: 450 документов: 10 редакций: 13
http://www.prianichnikov.info/.....ther-vpn-debian.html
Может есть иной способ (чем в SoftEther VPN) маскировки трафика под Https, dns, sstp, icmp (встречал в некоторых проприетарных приложениях).
Кто имеет опыт, поделитесь.
комментариев: 9 документов: 2 редакций: 90
О'рлы???
комментариев: 450 документов: 10 редакций: 13
Рукалицо.jpg. Найдите одно важное отличие.
Проблем запустить нет, если дать ему нужные права и доступ к ControlPort, но отставание от текущей версии чувствуется. Для получения полного функционала трубется добавить небезопасные опции в torrc, что не очень правильно, но даже при этом продолжают сыпаться разные предупреждения в логах arm.
Сейчас в тренде другой метод – написать свой скрипт на питоне, пользуясь общедоступной библиотекой stem. Ленивые могут написать обычный скрипт на бэше, который будет подрубаться к ControlPort с командной строки и получать все нужные данные, причём в более полном и кастомизированном виде, чем их даёт arm, без нужны добавлять небезопасные torrc-опции и без всяких странных предупреждений. Есть готовые примеры для смены цепочек.
комментариев: 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)
комментариев: 271 документов: 0 редакций: 0
Нашел когда убрали с 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
комментариев: 300 документов: 33 редакций: 12
https://nyx.torproject.org/
комментариев: 271 документов: 0 редакций: 0
http://www.spy-soft.net/configuring-openvpn-stunnel/