Скачать
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
Распаковать
tar xzf 0.9.3.tar.gz
Установить компилятор
sudo apt-get install make
sudo apt-get install gcc
Откомпилировать
cd ~/3proxy-0.9.3
sudo make -f Makefile.Linux
Скопировать откомпилированный файл в нужный каталог
sudo mkdir /etc/3proxy
cd ~/3proxy-0.9.3/bin
sudo cp 3proxy /usr/bin/
Создать административный логин
sudo adduser --system --no-create-home --disabled-login --group proxy3
id proxy3
Получится что-то вроде
uid=109(proxy3) gid=115(proxy3) groups=115(proxy3)
Создать файл настроек
sudo nano /etc/3proxy/3proxy.cfg
Заполнить его следующим кодом (в setgid и setuid поставить полученные только что значения)
# Запускаем сервер от пользователя proxy3
# (возможно в вашей ОС uid и gid пользователя proxy3
# будут другими. Для их определения воспользуйтесь командой id proxy3)
setgid 115
setuid 109
#
# Пропишите правильные серверы имен посмотрев их
# на своем сервере в /etc/resolv.conf
nserver 188.93.16.19
nserver 188.93.17.19
#
# Оставьте размер кэша для запросов DNS по умолчанию
nscache 65536
#
# Равно как и таймауты
timeouts 1 5 30 60 180 1800 15 60
#
# Если несколько IP на одном сервере, указываем тот,
# через который будем ходить во внешний мир.
# Иначе эту строку игнорируем
#external
# Тоже самое, только указываем IP, который надо слушать
# Если проигнорировать, то прокси слушает все адреса на сервере
#internal
#
# Указываем на расположение файла с пользователями и паролями
users $/etc/3proxy/.proxyauth
#
# укажите режим запуска как deamon
daemon
#
# путь к логам и формат лога, к имени лога будет добавляться дата создания
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
#
# Включаем авторизацию по логинам и паролям
auth cache strong
#
# Конфигурация http(s) proxy
# Запускаем анонимный (-a) HTTP-proxy на порту (-p) 3128 и
# c отключенной NTLM-авторизацией (-n)
proxy -n -p3128 -a
Создать файл с учетными записями 3Proxy
sudo nano /etc/3proxy/.proxyauth
Заполнить пользователями
## addusers in this format:
#user:CL:password
##see for documentation: http://www.3proxy.ru/howtoe.asp#USERS
username:CL:strongpassword
abc:CL:mysecretpassword
Поддерживаются следующие типы паролей:
CL – в открытом виде
CR – в формате MD5
NT – пароль в формате NT в шестнадцатеричной кодировке
Дать права на папки
sudo chown proxy3:proxy3 -R /etc/3proxy
sudo chown proxy3:proxy3 /usr/bin/3proxy
sudo chmod 444 /etc/3proxy/3proxy.cfg
sudo chmod 400 /etc/3proxy/.proxyauth
Настроить каталог логирования
sudo mkdir /var/log/3proxy
sudo chown proxy3:proxy3 /var/log/3proxy
Создать файл описания сервиса
sudo nano/etc/systemd/system/3proxy.service
Вставить следующий код
[Unit]
Description=3proxy Proxy Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg
ExecStop=/bin/kill `/usr/bin/pgrep -u proxy3`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target
Обновить конфигурацию сервисов
sudo systemctl daemon-reload
Добавить в автозагрузку
sudo systemctl enable 3proxy
Запустить сервис
sudo systemctl start 3proxy
Проверить статус
systemctl status 3proxy.service
Проверить наличие процесса
ps -ela | grep "3proxy"
Открыть порт
sudo iptables -I INPUT -p tcp -m tcp --dport 3128 -j ACCEPT