оригинальная статья:
Отключаем SElinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
Установка 3proxy
- Установим необходимые пакеты, которые понадобятся в процессе сборки.
dnf groupinstall 'Development Tools
wget https://github.com/z3APA3A/3proxy/
tar -xvzf 3proxy.tgz
cd 3proxy
make -f Makefile.Linux
mkdir /usr/local/3proxy
mkdir /usr/local/3proxy/logs
mkdir /usr/local/3proxy/stat
copy 3proxy/src /usr/local/3proxy
copy 3proxy.cfg.sample /usr/local/3proxy/3proxy.cfg
chown -R nobody:nobody /usr/local/3proxy
- Конфигурационный файл /usr/local/3proxy/3proxy.cfg
daemon
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
users roman:CL:roman
users "test:CR:$1$kf3$4c2AOGcRWsc74kMNZyRzi0"
#include /usr/local/etc/3proxy/users.conf <<-- Можем подключить файл с логинами/паролям.
log /dev/null
auth strong
auth strong
flush
allow test,roman
maxconn 64
socks -p51105 -n -a -u2
proxy -p12732 -n -a
dnspr
setgid 99 # надо узнать корректные id nobody
setuid 99
- Список пользователей задается с помощью команды users.
С помощью одной команды можно задать несколько пользователей, можно давать несколько команд users. USERDESC - описание пользователя.
Описание пользователя состоит из трех полей разделенных двоеточием - имени, типа пароля и пароля. Например:
users admin:CL:mysecret test:CL:yourpassword test1:CL:password1
users "test:CR:b771$b8745ed1295840eca15e55feb9e"
users test3:NT:BD7DFBF29A93F93C63CB84790DA00E63
Обратите внимание на двойные кавычки - они необходимы для второго пользователя, т.к. в его пароле встречается знак $, который для файла 3proxy.cfg означает включение другого файла.
Поддерживаются следующие типы паролей:
тип не указан - использовать системную авторизацию для данного пользователя (пока не реализовано). CL - пароль в открытом тексте CR - пароль в формате crypt() (только MD5) NT - пароль в формате NT в шестнадцатеричной кодировке NT и crypt пароли могут быть использованы для импорта учетных записей из Windows/Samba и Unix соответственно (для Windows можно использовать утилиты семейства pwdump). Учетные записи удобно хранить в отдельном файле (в таком случае можно хранить их построчно в формате, типичном для файлов паролей).
Создать пароль можем командой:
openssl passwd -1 -salt xyz yourpass
- Сохраняем конфигурационный файл /etc/systemd/system/3proxy.service:
[Unit]
Description=Start 3proxy
[Service]
ExecStart="/usr/local/3proxy/3proxy /usr/local/3proxy/3proxy.cfg"
Restart=always
RestartSec=60s
[Install]
WantedBy=multi-user.target
- Запуск сервиса:
service 3proxy start
- Добавляем в автозапуск:
chkconfig 3proxy on
- Настройка фаейрвола
# Открываем порт для socks-прокси:
firewall-cmd --permanent --zone=public --add-port=51105/tcp
# Открываем порт для http-прокси:
firewall-cmd --permanent --zone=public --add-port=12732/tcp
# Блокируем ICMP трафик для того, чтоб наш сервер не отвечал на пинги:
firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
firewall-cmd --reload