Безопасный SOCKS5 прокси для Telegram за 1 Евро и 10 минут

в 10:13, , рубрики: JaCarta PKI, JAS, linux, proxy, Блог компании Аладдин Р.Д., информационная безопасность, личный опыт, Настройка Linux, Серверное администрирование

Не все прокси одинаково полезны. На волне новостей о блокировке мессенджера Телеграмм стало актуально поднимать свой SOCKS5 прокси, так как чужой использовать не безопасно — неизвестно, кому принадлежат серверы, какое ПО на них используется, и какие в нем присутствуют уязвимости. Кроме того, публичные прокси часто очень медленные, поскольку большое число клиентов одновременно «пытаются» его использовать, перегружая ресурсы сервера. Под катом инструкция по быстрой настройке приватного SOCKS5 прокси с аутентификацией за 1 евро и 10 минут времени и возможностью в дальнейшем расширить защиту сервера при помощи усиленной аутентификации.

Решил проверить предложение итальянского хостинг-провайдера Aruba , который предлагает VPS за 1 евро в месяц с белым IP, входящим в эту цену. За 1 евро получил боевой сервер с 1 ядром. 1 Гб памяти, 20 Гб хранилища, 250 Гб трафика в месяц. В качестве операционной системы я выбрал свою любимую 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 https://demo.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. Статью об этом можно найти здесь .

Автор: doctorblack

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js