Настройка SOCKS5 прокси на CentOS7
В свете последних событий, понадобился SOCKS5 прокси с авторизацией.
Поискав в интернете остановил свой выбор на 3proxy от z3APA3A, как наиболее легковесном, функциональном и активно развивающемся, последний релиз которого состоялся 18.04.2018.
К сожалению актуальной версии пакета в репозиториях CentOS не нашлось, поэтому пришлось переписать spec-файл для текущей версии 0.8.12.
Для начала необходимо скачать 3proxy, после чего можно приступать к его установки.
yum localinstall 3proxy-0.8.12-1.el7.centos.x86_64.rpm
Так как меня интересует именно SOCKS-прокси, то конфигурационный файл будет иметь следующий вид. Если нужен дополнительный функционал, то можно почитать 3proxy.cfg.example или wiki проекта на github.com
vim /etc/3proxy/3proxy.cfg
daemon
setgid 99
setuid 99
nscache 65536
nserver 127.0.0.1
timeouts 1 5 30 60 180 1800 15 60
external 0.0.0.0
internal 0.0.0.0
config /etc/3proxy/3proxy.cfg
monitor /etc/3proxy/3proxy.cfg
monitor /etc/3proxy/counters
monitor /etc/3proxy/passwd
monitor /etc/3proxy/bandlimiters
log /var/log/3proxy/3proxy.log
logformat "L%o %d %H:%M:%S %U | %C | %R:%r | %O | %I | %n"
archiver gz /bin/gzip %F
rotate 7
users $/etc/3proxy/passwd
include /etc/3proxy/counters
include /etc/3proxy/bandlimiters
auth strong
flush
socks -p81080
Теперь добавляем пользователей, для этого выполним скрипт add3proxyuser.sh
/etc/3proxy/add3proxyuser.sh username password day_limit bandwidth
где:
username — имя пользователя
password — пароль
day_limit — лимит трафика в Мегабайтах в день
bandwidth — полоса пропускания в битах в секунду
Для примера заведем пользователя с логином и паролем admin, лимитом трафика в 100 Мегабайт в день и полосой пропускания в 1 Мегабит.
/etc/3proxy/add3proxyuser.sh admin admin 100 1048576
Теперь в файле, /etc/3proxy/passwd, появилась запись с логином и MD5-хешем пароля
admin:CR:$1$10216$EvIj9vLnQi/zydUXJXYa60
Активируем и запускаем сервис
systemctl enable 3proxy
systemctl start 3proxy
Добавляем правило в Firewall разрешающее внешнее подключение к прокси
firewall-cmd --permanent --zone=external --add-port=81080/tcp
Теперь можно применять настройки прокси перейдя по ссылке следующего содержания:
https://t.me/socks?server=my.server.org&port=81080&user=admin&pass=admin
Для страждущих паранойей src.rpm пакет, для самостоятельной сборки, можно скачать здесь.