Недавно обратил внимание на старый добрый 3proxy от Владимира Дубровина
В версии 0.96 (у меня была 0.93) прокси научился в прозрачном режиме как squid работать
В логах видит домены и ip по 443 порту без MTMI (подмена сертификата) режима через SNI
(в начале TLS-рукопожатия (Client Hello) браузер открыто указывает имя хоста, к которому подключается)Может так и раньше работало, но tlspr добавлен недавно.
У меня на 3proxy при нагрузке инет подвисал в отличии от squid, причину пока я не определил, но зато корректно websocket -ы проксировал. Пробуйте.
Установка 3proxy:Скачать 3proxy исходники:
# apt-get install gitРелизы в пакетах (rpm,deb)
https://github.com/3proxy/3proxy/releases(требуется некоторая ручная доводка с созданием каталогов и прав на них только p11)
# git clone https://github.com/z3apa3a/3proxy(позволяет скомпилировать рабочую версию проверено на p9-p11)
Перейти в корень каталога :
# cd 3proxy----------------------------------------------------------------------------------------------------------
Спойлер
Прежде чем компилировать в ОС должны быть установлены следующие пакеты:
# rpm -qa | grep ^gcc.*
gcc-common-1.4.27-alt1.x86_64
gcc9-9.3.1-alt3.x86_64
# rpm -qa | grep libssl
libssl1.1-1.1.1l-alt1.x86_64
Если нет установить пакеты:
# apt-get install gcc libssl-devel libssl-devel-static
libssl-devel - OpenSSL include files and development libraries
libssl-devel-static - OpenSSL static libraries
или для x32:
i586-libssl-devel - OpenSSL include files and development libraries
i586-libssl-devel-static - OpenSSL static libraries
------------------------------------------------------------------------------------------------------------
Собираем:
# ln -s /usr/bin/x86_64-alt-linux-gcc-9 /usr/bin/x86_64-alt-linux-gcc - по необходимости
# ln -s Makefile.Linux Makefile
# make
# make installСпойлер
# ls /etc/3proxy/ -l
итого 4
-rwxr-xr-x 1 root root 84 авг 21 09:54 3proxy.cfg
lrwxrwxrwx 1 root root 27 авг 21 09:54 conf -> ../../usr/local/3proxy/conf
# cat /etc/3proxy/3proxy.cfg
#!/bin/3proxy
#daemon
chroot /usr/local/3proxy proxy proxy
include /conf/3proxy.cfg
# chown -R proxy:proxy /usr/local/3proxyСпойлер
# ls /usr/local/3proxy/ -l
итого 16
dr-xr-x--- 2 proxy proxy 4096 авг 21 10:25 conf
drwxr-x--- 2 proxy proxy 4096 авг 21 10:05 count
dr-xr-x--- 2 proxy proxy 4096 авг 21 09:54 libexec
drwxr-x--- 2 proxy proxy 4096 авг 21 10:05 logs
Правим конфигурационный файл
# nano -b /usr/local/3proxy/conf/3proxy.cfg
Спойлер
#------------------------------- START CONF --------------------------
## /usr/local/3proxy/conf/3proxy.cfg
internal 192.168.111.75
nserver 77.88.8.8
nserver 77.88.8.1
nscache 65536
logformat "L%C %I %O - %U [%d/%o/%Y:%H:%M:%S %z] ""%T"" %E %N/%R:%r"
log /logs/3proxy_u.log D
rotate 30
monitor /conf/3proxy.cfg
counter "/count/3proxy.3cf" D "/usr/local/3proxy/traf/traf"
countin 101/day D 1000000 *
# Для прозрачного режима аутентификация не нужна
auth none
# Разрешаем всё (для начала)
allow *
# Прозрачный HTTP прокси
# -a - анонимный (скрывает информацию о клиенте)
# -n - не использовать NTLM
proxy -i0.0.0.0 -p3128 -a -n
flush
# Для прозрачного режима аутентификация не нужна
auth none
# Разрешаем всё (для начала)
allow *
# SNI прокси для HTTPS
# -P НЕ УКАЗЫВАЕМ, потому что порт определит TransparentPlugin
tlspr -i0.0.0.0 -p3130
flush
#------------------------------- END CONF --------------------------
# Создать правило перенаправления портов 80 → 3128 и 443 → 3130
# iptables -t nat -A PREROUTING -i enp7s0 -p tcp --dport 80 -j REDIRECT --to-port 3128
# iptables -t nat -A PREROUTING -i enp7s0 -p tcp --dport 443 -j REDIRECT --to-port 3130enp7s0 - интерфейс смотрящий в локальную сеть
остальное во вложении