Прокси-серверы используются уже много лет. Прокси-сервер — это метод подключения к веб-сайту или сервису через другой сервер. В данном руководстве мы будем использовать KVM NVMe VDS/VPS для настройки прокси-сервера Dante SOCKS5 в операционной системе Linux Ubuntu. Существуют разные типы прокси-серверов. Например, HTTP-прокси-серверы, такие как Squid, были весьма популярны. До тех пор, пока интернет не перешёл на HTTPS. В основном из-за появления бесплатных SSL-сертификатов от организаций вроде Let’s Encrypt. Прокси-серверы SOCKS пересылают TCP-пакеты. Также они позволяют пересылать UDP-пакеты. Если нужно, вы сможете защитить сервер с помощью аутентификации. То есть любой, кто попытается подключиться к прокси-серверу, должен будет авторизоваться. По умолчанию Dante слушает порт 1080. Но мы будем использовать пользовательский порт на нашем прокси-сервере.


Для запуска прокси-сервера Dante на базе Linux вам не потребуется мощный сервер. Будет достаточно 1 ядра, 20 ГБ свободного пространства на диске, 1 ГБ оперативной памяти. 
Мы планируем установить программное обеспечение для прокси-сервера на VPS с операционной системой Ubuntu 22.04, однако данное руководство подойдет и для других версий Ubuntu, включая Ubuntu 20, Ubuntu 18 и Ubuntu 16

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

apt update
apt upgrade

Установите прокси-сервер Ubuntu Dante

apt install dante-server

Прокси-сервер Dante успешно установлен на вашем сервере. Однако при первом взгляде на консоль вы можете заметить, что он еще не запущен и, возможно, даже увидите сообщение об ошибке. Давайте перейдем к настройке Dante.

Настройка Dante в Ubuntu

Файл конфигурации для Dante расположен по адресу /etc/danted.conf. Вы можете использовать следующий пример конфигурационного файла, который мы подготовили, поэтому первым делом удалите существующий файл.

mv /etc/danted.conf /etc/danted-org.conf

Теперь создайте новый файл `danted.conf` и вставьте в него следующую конфигурацию.

internal: 178.xx.xx.xxx port = 1439
external: 178.xx.xx.xxx


clientmethod: none
socksmethod: none
user.privileged: root
user.notprivileged: nobody
external.rotation: same-same
logoutput: /var/log/socks.log

client pass {
        from: 0.0.0.0/32 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
}
socks pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}
socks block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error
}

Теперь пришло время отредактировать определенные разделы в файле конфигурации Dante.

internal: 178.xx.xx.xxx port = 1439
external: 178.xx.xx.xxx

Замените IP-адрес в этом разделе на основной IP-адрес вашего прокси-сервера. Если у вас есть дополнительные IP-адреса, подключенные к вашему серверу, просто добавьте дополнительные разделы для каждого IP-адреса, как показано в примере ниже;


internal: 179.xx.xx.xxx port = 1439
external: 176.xx.xx.xxx

internal: 180.xx.xx.xxx port = 1439
external: 178.xx.xx.xxx

internal: 181.xx.xx.xxx port = 1439
external: 179.xx.xx.xxx

Ограничение доступа к прокси-серверу SOCKS5

Доступ с определенного IP-адреса

Существует несколько методов ограничения доступа к прокси-серверу. Чтобы ограничить доступ к определенным IP-адресам, отредактируйте соответствующий раздел ниже. Укажите IP-адрес, с которого вы хотите разрешить доступ.

client pass {
        from: xx.xxx.xxx.xxx/32 to: 0.0.0.0/0
        log: error connect disconnect
}

Если вы хотите разрешить доступ к целому диапазону IP-адресов, например к подсети /29, вы бы отредактировали файл следующим образом:

client pass {
        from: xx.xxx.xxx.xxx/29 to: 0.0.0.0/0
        log: error connect disconnect
}

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

Перезапуск Dante

Чтобы начать использование вашего прокси-сервера, необходимо перезапустить и включить Dante при загрузке системы.

systemctl restart danted
systemctl enable danted

Теперь у вас есть функционирующий прокси-сервер SOCKS 5, который работает только с определенными IP-адресами.