Хабрахабр

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

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

За 1 евро получил боевой сервер с 1 ядром. Решил проверить предложение итальянского хостинг-провайдера Aruba , который предлагает VPS за 1 евро в месяц с белым IP, входящим в эту цену. В качестве операционной системы я выбрал свою любимую Ubuntu server 16. 1 Гб памяти, 20 Гб хранилища, 2 Тб трафика в месяц. В качестве прокси сервера — Dante. 04.

Спустя 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 будет необходимо запустить вручную.

Вводим наш IP, 1080 порт, логин и пароль для созданного пользователя. Теперь необходимо подключить прокси в настройках Мессенджера: Настройки > Данные и диск -> Использовать прокси -> SOCKS5. Настройка доступна для всех десктопных приложений Телеграмм в разделе Расширенные настройки -> Тип соединения -> TCP с прокси.

Для этого рекомендую заменить традиционный подход к защите доступа с помощью традиционной пары «логин-пароль» на специализированные устройства для обеспечения защищенного доступа на основе ассиметричной криптографии, в нашем примере это USB-токены JaCarta PKI. Как и положено в мире информационной безопасности, сразу после настройки нужно потратить еще немного времени на защиту своего сервера, а именно доступа к консоли по SSH. Как это сделать, описано в этой статье. При таком сценарии вы будете входить на сервер по сертификату, закрытый ключ от которого находится в самом устройстве JaCarta PKI и не может быть извлечен.

Статью об этом можно найти здесь . Если у вас нет желания использовать устройства для усиленной аутентификации на основе ассиметричной криптографии, вы можете настроить вход по одноразовым паролям (OTP) с сервисом JaCarta Authentication Server.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть