Для чего нужен прокси? Есть много задач которые легче реализовать с помощью прокси, но не будем кривить душой, в основном мы его используем для обхода ограничений установленных провайдером. Сегодня я расскажу как поставить прокси сервер 3proxy на Debian 10, но те у кого Ubuntu могут смело делать так же, потому что ставить мы будем из исходников. С этой программой я познакомился очень давно, еще когда крепко сидел на Windows, автор ее Владимир ‘3APA3A’ Дубровин, программа очень легкая и гибкая в настройках. Про ее возможности и технические характеристики я писать не буду, кто захочет почитает на официальном сайте.
Исходный код на GitHub - https://github.com/z3APA3A/3proxy
Официальный сайт – http://3proxy.ru/
Для начала установим пару пакетов “на всякий случай”
$ sudo apt install build-essential tar gzip
Узнаем номер последней версии на официальном сайте, в моем случае это 0.9.0, затем скачиваем и распаковываем исходники программы, если после публикации статьи вышла новая версия программы, просто поправьте цифры
$ cd ~
$ wget --no-check-certificate https://github.com/z3APA3A/3proxy/archive/0.9.0.tar.gz
$ tar xzf 0.9.0.tar.gz
После распаковки заходим в только что созданную директорию и компилируем все что у нас там лежит
$ cd ~/3proxy-0.9.0
$ sudo make -f Makefile.Linux
Устанавливаем то, что только что скомпилировали
$ sudo make -f Makefile.Linux install
открываем файл настроек
sudo nano /etc/3proxy/conf/3proxy.cfg
Собственно мы уже можем работать с тем что есть, по умолчанию сервер настроен на работу через стандартные порты, мне же нужен был протокол SOCKS на нужном мне порту, по этому в родной конфиг я добавил порт для протокола SOCKS
nscache 65536
nserver 8.8.8.8
nserver 8.8.4.4
config /conf/3proxy.cfg
monitor /conf/3proxy.cfg
log /logs/3proxy-%y%m%d.log D
rotate 60
counter /count/3proxy.3cf
users $/conf/passwd
include /conf/counters
include /conf/bandlimiters
auth strong
deny * * 127.0.0.1
allow *
proxy -n
socks -p1080
flush
allow admin
admin -p8080
Стоит заметить, что 3proxy считывает конфигурационный файл построчно, так что, если вы увидели что в файле два раза прописывается auth strong то скорее всего это относится к двум разным службам (прим. автора)
Теперь добавим пользователя, это можно сделать и вручную, в файл, просто прописав его в формате
admin:CL:bigsecret
test2:CR:$1$lFDGlder$pLRb4cU2D7GAT58YQvY49
test3:NT:BD7DFBF29A93F93C63CB84790DA00E63
Данная запись имеет вид “юзер:тип_пароля:пароль”, тип пароля может принимать вид
NT – пароль формата NT в шестнадцатеричной кодировке
CL – открытый пароль
CR – зашифрованный md5 пароль
Для удобства можно использовать скрипт для добавления пользователя
sh /etc/3proxy/conf/add3proxyuser.sh admin 1234567890
Данный скрипт автоматически шифрует наш пароль и добавляет соответствующую запись в файл passwd. Пользователь admin является администратором, как ни странно, в конфиге был прописан отдельный порт для доступа к админке, -p8080, там особого ничего интересного нет, но для удобства можно и его использовать.
На этом можно закончить настройку 3proxy, о более тонкой настройке расскажу в другой статье.
Все статьи можно посмотреть на сайте или на Zen Yandex