Не все прокси одинаково полезны. На волне новостей о блокировке мессенджера Телеграмм стало актуально поднимать свой SOCKS5 прокси, так как чужой использовать не безопасно — неизвестно, кому принадлежат серверы, какое ПО на них используется, и какие в нем присутствуют уязвимости. Кроме того, публичные прокси часто очень медленные, поскольку большое число клиентов одновременно «пытаются» его использовать, перегружая ресурсы сервера. Под катом инструкция по быстрой настройке приватного SOCKS5 прокси с аутентификацией за 1 евро и 10 минут времени и возможностью в дальнейшем расширить защиту сервера при помощи усиленной аутентификации.
Решил проверить предложение итальянского хостинг-провайдера Aruba , который предлагает VPS за 1 евро в месяц с белым IP, входящим в эту цену. За 1 евро получил боевой сервер с 1 ядром. 1 Гб памяти, 20 Гб хранилища, 2 Тб трафика в месяц. В качестве операционной системы я выбрал свою любимую Ubuntu server 16.04. В качестве прокси сервера — Dante.
Установка ОС производится при конфигурировании сервера из шаблона. Спустя 2-3 минуты после создания, машина будет готова к SSH по установленному паролю, либо загруженному SSH-ключу (в той же веб-админке).
Сразу оговорюсь, что аутентификация у прокси по системному пользователю не работает в пакете, предоставляемом в дистрибутиве, а открытый прокси нам не нужен. Мы воспользуемся дистрибутивом с исходниками и соберем Dante сами, благо процесс сборки на нашей ОС проходит без единой ошибки. Итак, приступим:
Регистрируемся на arubacloud, заводим сервер за 1 евро, создаем по шаблону ОС Ubuntu Server 16.
Заходим по SSH на наш сервер, скачиваем и собираем Dante.
Корректность установки можно проверить введя
Скачаем файл настроек
Конфигурация, если используется на описываемой платформе, не отличается, т. е. по умолчанию именно такая. Все необходимое уже есть.
Для запуска выполните
Бинарник лежит именно в
Для остановки
Создадим системного пользователя, которого будем использовать для нашего прокси (без возможности зайти по SSH).
Зададим ему пароль
Перезапустим Dante с нашим конфигом
Если перезагрузить сервер, Dante будет необходимо запустить вручную.
Теперь необходимо подключить прокси в настройках Мессенджера: Настройки > Данные и диск -> Использовать прокси -> SOCKS5. Вводим наш IP, 1080 порт, логин и пароль для созданного пользователя. Настройка доступна для всех десктопных приложений Телеграмм в разделе Расширенные настройки -> Тип соединения -> TCP с прокси.
Как и положено в мире информационной безопасности, сразу после настройки нужно потратить еще немного времени на защиту своего сервера, а именно доступа к консоли по SSH. Для этого рекомендую заменить традиционный подход к защите доступа с помощью традиционной пары «логин-пароль» на специализированные устройства для обеспечения защищенного доступа на основе асимметричной криптографии, в нашем примере это USB-токены JaCarta PKI. При таком сценарии вы будете входить на сервер по сертификату, закрытый ключ от которого находится в самом устройстве JaCarta PKI и не может быть извлечен. Как это сделать, описано в этой статье.
Если у вас нет желания использовать устройства для усиленной аутентификации на основе асимметричной криптографии, вы можете настроить вход по одноразовым паролям (OTP) с сервисом JaCarta Authentication Server. Статью об этом можно найти здесь .
Решил проверить предложение итальянского хостинг-провайдера Aruba , который предлагает VPS за 1 евро в месяц с белым IP, входящим в эту цену. За 1 евро получил боевой сервер с 1 ядром. 1 Гб памяти, 20 Гб хранилища, 2 Тб трафика в месяц. В качестве операционной системы я выбрал свою любимую Ubuntu server 16.04. В качестве прокси сервера — Dante.
Установка ОС производится при конфигурировании сервера из шаблона. Спустя 2-3 минуты после создания, машина будет готова к SSH по установленному паролю, либо загруженному SSH-ключу (в той же веб-админке).
Сразу оговорюсь, что аутентификация у прокси по системному пользователю не работает в пакете, предоставляемом в дистрибутиве, а открытый прокси нам не нужен. Мы воспользуемся дистрибутивом с исходниками и соберем Dante сами, благо процесс сборки на нашей ОС проходит без единой ошибки. Итак, приступим:
Регистрируемся на arubacloud, заводим сервер за 1 евро, создаем по шаблону ОС Ubuntu Server 16.
Заходим по SSH на наш сервер, скачиваем и собираем Dante.
wget https://www.inet.no/dante/files/dante-1.4.1.tar.gz
tar -xvf dante-1.4.1.tar.gz
cd dante-1.4.1
apt-get install gcc make
mkdir /home/dante
./configure --prefix=/home/dante
make
make install
Корректность установки можно проверить введя
/home/dante/sbin/sockd -v
Скачаем файл настроек
wget -O /home/dante/danted.conf http://a.a-rd.ru/danted.conf
Конфигурация, если используется на описываемой платформе, не отличается, т. е. по умолчанию именно такая. Все необходимое уже есть.
logoutput: /var/log/socks.log
internal: eth0 port = 1080 #
В качестве входящего соединения используем наш дефолтный интерфейс на порту 1080
external: eth0 #В качестве выходного также его
method: username
user.privileged: root #Рут нужен для возможности проводить аутентификацию системных пользователей
user.notprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0 #Правила оставляем как есть, для наших целей этого достаточно
log: error connect disconnect
}
client block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error connect disconnect
}
block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
Для запуска выполните
/home/dante/sbin/sockd -f /home/dante/danted.conf -D
Бинарник лежит именно в
home/dante/sbin/
Для остановки
pkill sockd
Создадим системного пользователя, которого будем использовать для нашего прокси (без возможности зайти по SSH).
useradd --shell /usr/sbin/nologin username
Зададим ему пароль
passwd username
Перезапустим Dante с нашим конфигом
pkill sockd
/home/dante/sbin/sockd -f /home/dante/danted.conf -D
Если перезагрузить сервер, Dante будет необходимо запустить вручную.
Теперь необходимо подключить прокси в настройках Мессенджера: Настройки > Данные и диск -> Использовать прокси -> SOCKS5. Вводим наш IP, 1080 порт, логин и пароль для созданного пользователя. Настройка доступна для всех десктопных приложений Телеграмм в разделе Расширенные настройки -> Тип соединения -> TCP с прокси.
Как и положено в мире информационной безопасности, сразу после настройки нужно потратить еще немного времени на защиту своего сервера, а именно доступа к консоли по SSH. Для этого рекомендую заменить традиционный подход к защите доступа с помощью традиционной пары «логин-пароль» на специализированные устройства для обеспечения защищенного доступа на основе асимметричной криптографии, в нашем примере это USB-токены JaCarta PKI. При таком сценарии вы будете входить на сервер по сертификату, закрытый ключ от которого находится в самом устройстве JaCarta PKI и не может быть извлечен. Как это сделать, описано в этой статье.
Если у вас нет желания использовать устройства для усиленной аутентификации на основе асимметричной криптографии, вы можете настроить вход по одноразовым паролям (OTP) с сервисом JaCarta Authentication Server. Статью об этом можно найти здесь .