Skip to main content

Установка 3proxy на CentOS 7 и CentOS 8

Установка

Устанавливаем репозиторий EPEL:

yum -y install epel-release


Устанавливаем прокси сервер 3proxy:

yum -y install 3proxy

 

Настройка

После установки открываем файл конфигурации любым текстовым редактором. Я буду использовать редактор Nano, Вы можете использовать свой.

nano /etc/3proxy.cfg

 

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

Ищем блок с dns:

# We can configure nservers to avoid unsafe gethostbyname() usage
#nserver 10.1.2.1
#nserver 10.2.2.2

 

Добавляем ниже записи dns, я добавил dns от Cloudflare, Вы можете добавить любые свои.

nserver 1.1.1.1
nserver 1.0.0.1

 

В результате получаем блок такого вида:

# We can configure nservers to avoid unsafe gethostbyname() usage
#nserver 10.1.2.1
#nserver 10.2.2.2
nserver 1.1.1.1
nserver 1.0.0.1

 

Теперь ищем строку создания пользователей.

users 3APA3A:CL:3apa3a "test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1"

 

Пользователей можно задавать как в одну строчку так и делать несколько строчек users, например:

users 3APA3A:CL:3apa3a
users test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1

 

Строчка из себя представляет следующее:

users логин:ТИП_ПАРОЛЯ:пароль

 

Типы пароля:

  • CL — пароль в открытом тексте
  • CR — пароль в формате crypt() (только MD5)
  • NT — пароль в формате NT в шестнадцатеричной кодировке
  • NT и crypt пароли могут быть использованы для импорта учетных записей из Windows/Samba и Unix соответственно (для Windows можно использовать утилиты семейства pwdump).

 

Ищем строчку в которой необходимо указать адрес внешнего интерфейса.

#external 10.1.1.1
external 0.0.0.0

 

Далее будет строчка где необходимо указать адрес внутреннего интерфейса.

#internal 192.168.1.1
internal 192.168.1.1

Если у вас 1 сетевой интерфейс, например на VPS/VDS сервере, то в обоих строчках необходимо указать адрес данного единственного интерфейса.

 

Дальше находим блок где указывается тип авторизации и пользователи для SOCKS прокси:

auth strong
flush
allow 3APA3A,test
maxconn 20
socks

# for socks we will use password authentication and different access control -
# we flush previously configured ACL list and create new one to allow users
# test and 3APA3A to connect from any location

 

Тип авторизации устанавливается командой auth в файле конфигурации.

Отсутствие какой-либо авторизации. Списки доступа не проверяются.

auth none

 

Будет идти проверка по списку доступа с использованием IP клиента, IP и номера порта назначения.

auth iponly

 

Перед проверкой по списком доступа будет произведена попытка получить NetBIOS имя клиента. Для этого используется NetBIOS код службы messager (0x03). Если имя определить не удалось (служба messager для Windows NT/2000/XP или WinPopUP для 95/98/ME не запущена), то имя будет считаться пустым.

Далее следует проверка по спискам доступа. Данный тип авторизации не зависит от платформы сервера (т.е. прокси сервер, запущенный под Unix, сможет определять NetBIOS имена). Его рекомендуется использовать в однородных сетях, где у всех клиентов установлена Windows NT/2000/XP и пользователи не имеют доступа к привелегированным учетным записям.

auth nbname

Этот вид авторизации не является надежным.

 

Проверяется имя и пароль, переданные пользователем при подключении к прокси. Данный вид авторизации работает только с proxy и socks. Необходимо задание списка пользователей (см Как создать список пользователей). Соединения от неизвестных пользователей не принимаются. После проверки имени пользвоателя и пароля происходит проверка списков доступа.

auth strong

 

Для разных служб можно установить различные типы авторизации, например:

auth none pop3p auth iponly proxy auth strong socks

Не накладывает ограничений на использование POP3 Proxy, производит проверку по спискам доступа для пользователей HTTP Proxy и требует авторизации с именем и паролем для SOCKS.

 

С версии 0.6 возможно использовать двойную авторизацию, например:

auth iponly strong allow * * 192.168.0.0/16 allow user1,user2 proxy

Будет использовать авторизацию только в том случае, если не удалось пропустить пользователя с авторизаций iponly, т.е. для доступа к ресурсам 192.168.0.0/16 авторизация не требуется.

 

Приводим блок с авторизацией к виду:

auth ТИП_АВТОРИЗАЦИИ  //Указываем тип авторизации
flush
allow ИМЯ_ПОЛЬЗОВАТЕЛЯ_1,ИМЯ_ПОЛЬЗОВАТЕЛЯ_2 //Указываем пользователей которым разрешен доступ если вы выбрали тип авторизации STRONG
maxconn 20  //количество соединений
socks

# for socks we will use password authentication and different access control -
# we flush previously configured ACL list and create new one to allow users
# test and 3APA3A to connect from any location

Изменение данных настроек достаточно для запуска Вашего http/https/socks прокси сервера.

 

Теперь можно запускать наш прокси сервер:

systemctl start 3proxy

 

Добавить сервис в автозапуск:

systemctl enable 3proxy

 

Настройка Firewall

Открываем необходимые порты:

firewall-cmd --zone=public --add-port=3128/tcp --permanent
firewall-cmd --zone=public --add-port=3128/udp --permanent

 

Применение изменений:

firewall-cmd --reload