Установка прокси сервера Socks5 на Centos 7
В данной статье я хочу поднять для многих актуальную тему настройки прокси-сервера с помощью пакета Dante. На данный момент тема очень актуальна в свете блокировки Telegram. Благо Дуров предусмотрел поддержку SOCKS5-прокси.
И так начнем.
Подключаем репозиторий gf:
yum install http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
Устанавливаем dante-server:
yum --enablerepo=gf-plus install dante-server
Прописываем автозагрузку при включении системы:
systemctl enable sockd.service
Сохраняем оригинальный конфиг:
mv /etc/sockd.conf /etc/sockd.conf.orig
Создаем свой:
nano /etc/sockd.conf
internal: eth0 port = 1080
external: eth0
socksmethod: username
user.privileged: root
user.unprivileged: nobody
client pass {
from: 0/0 to: 0/0
log: error
}
socks pass {
from: 0/0 to: 0/0
log: error
}
Для понимания можно почитать оригинальный конфиг. Там все доступно. Благо мы его сохранили.
Тем не менее пара слов по конфигу:
internal: eth0 port = 1080 — указываем интерфейс и порт к которому будет идти подключение;
external: eth0 — указываем интерфейс через который пускать трафик;
socksmethod: username — указываем использовать вход по логину и паролю системных пользователей;
user.privileged: root — ставим root, потому что нам нужно читать файл /etc/passwd;
client pass — правила работы с клиентами;
socks pass — что разрешаем клиентам;
Теперь сделаем отдельного пользователя, с ключем -s /sbin/nologin, чтобы на вашем сервере не могли шариться через SSH по этому логину:
useradd test -M -s /sbin/nologin
passwd test
Создаем рабочую папку:
mkdir /var/run/sockd/
Запускаем:
systemctl start sockd.service
Добавляем правило в файрвол:
firewall-cmd --zone=public --add-port=1080/tcp --permanent
firewall-cmd --reload
Все наш прокси готов, для поключения нужно будет помнить 4 настройки: IP-адрес вашего сервера, порт (в моем конфиге 1080), логин (в моем примере test) и пароль, который вы этому пользователю указали.
Я немного перфекционист и решил сделать субдомен для прокси, чтобы моим знакомым и друзьям не нужно было запоминать странный IP-адрес. Однако столкнулся с забавной сложностью. Дело в том, что в домене я прописал A- и AAAA-записи сразу, так как сервер поддерживал IPv6. Однако изначально я настроил сервер Dante без поддержки IPv6. В итоге мой ПК пытался подключится по умолчанию через IPv6, но не получал ответа. Возможно кому-то это пригодится.
P.S. Ссылки на прокси в Телеграме можно распостранять в интересном формате: https://t.me/socks?server=IP&port=PORT&user=USERNAME&pass=PASSWORD или tg://socks?server=IP&port=PORT&user=USERNAME&pass=PASSWORD
0 комментариев