Мой блог - Настройка простого SOCKS5-прокси сервера в Debian Linux

Настройка простого SOCKS5-прокси сервера в Debian Linux

Фактически, мне требовалось настроить проксирование трафика для одного браузера через удаленный хост - это задача достаточно типовая, поэтому сразу перейдем к делу и рассмотрим практическую реализацию этого кейса. 3proxy не входит в штатные пакеты Debian/Ubuntu, поэтому мы соберем его из исходных кодов. Дополнительно расскажу как можно ограничить доступ к 3Proxy-серверу по IP-адресу, если ваш роутер не поддрживает полноценные ограничения по адресам источника (Source IP).

Фотография автора

Автор: Антон Черноусов
Опубликовано: 4 месяца, 2 недели (последние правки: 0 минут назад) - 2 комментария
Категории записи: Debian, Linux, Proxy, Популярное, Системное администрирование


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

3proxy не входит в штатные пакеты Debian/Ubuntu, поэтому мы соберем его из исходных кодов. Официальная страничка проекта на GitHub расположена по адресу https://github.com/z3APA3A/3proxy.git, нам понадобится подготовить окружение для сборки и собрать приложение из исходных кодов (в общем, ничего нового):

# apt-get install -y build-essential git tar gzip
# cd /usr/src/
# git clone https://github.com/z3APA3A/3proxy.git
# cd ./3proxy/
# make -f Makefile.Linux

Собирается бинарный файл без скриптов установки и нам придется самостоятельно скопировать бинарный файл proxy-сервера и его каталог конфигурации:

# cp ./src/3proxy /usr/local/bin/
# cp ./cfg/3proxy.cfg.sample /etc/3proxy.cfg

Естественно, что запускать это приложение от имени супер-пользователя root не стоит, поэтому создадим группу и пользователя 3proxy:

# useradd 3proxy
# passwd 3proxy

Пароль пользователя я задал для тестирования на период отладки, вы можете не задавать ему пароль или вообще сделать пользователя системным. Конфигурационный файл довольно простой и мы его еще больше упростим и 3proxy будет у нас работать только как SOCKS5-прокси без авторизации, а удаленный доступ к прокси-серверу мы ограничим средствами роутера.

setgid 1001
setuid 1001
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
daemon
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
allow *
socks -p1080 -a

В конфигурации прокси-сервера setgid и setuid - это ID-пользователя 3proxy полученные командой:

# id 3proxy

Не забываем сменить владельца на каталоге с логами и конфигурационном файле:

# mkdir /var/log/3proxy
# chown 3proxy:3proxy /var/log/3proxy
# chown 3proxy:3proxy /etc/3proxy.cf

Тестовый запуск можно провести командой:

# 3proxy /etc/3proxy.cfg

Проверьте, что SOCKS5-прокси сервер принимает соединения и, в случае ошибки, проверьте лог-файлы в каталоге /var/log/3proxy. Если тестирование прошло успешно, можно остановить демон и создать сервис SystemD для автоматического запуска при старте сервера:

# killall 3proxy

Файл описания сервиса (файл /lib/systemd/system/3proxy.service) содержит следующие записи:

[Unit]
Description=3Proxy SOCKS5 Daemon
Wants=network-online.target
After=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/bin/3proxy /etc/3proxy.cfg

[Install]
WantedBy=multi-user.target

Активируем автозапуск и запускаем:

# systemctl enable 3proxy
# systemctl start 3proxy

Для проверки того, что автозапуск проходит корректно можно перезапустить весь сервер, если там ничего важного не запущено. Дополнительно расскажу как можно ограничить доступ к 3Proxy-серверу по IP-адресу, если ваш роутер не поддерживает полноценные ограничения по адресам источника (Source IP).

В этом случае, вам потребуется привести конфигурацию 3proxy к следующему виду:

setgid 1001
setuid 1001
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
daemon
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
auth iponly
allow * 178.49.118.251
socks -p3128 -a
Пожалуйста, оцените мою статью (всего оценок 1, средняя оценка 5.00):

Комментарии к статье:

Sergey 4 месяца, 1 неделя назад

А почему именно 3proxy?

Ссылка | Ответ

Anton Chernousov 4 месяца, 1 неделя назад

Заказали именного его и я первый раз настраивал, вот и решил описание на будущее сделать.

Ссылка | Ответ

Оставьте комментарий:

обязательно

обязательно (не публикуется)

необязательно

обязательно

обязательно

Последние записи

Архив

2018

Категории

Ленты

RSS / Atom