Сенсор и сервер WNAM QoW позволяют администратору сети проверить работоспособность веб-приложения через тестируемую Wi-Fi сеть, находясь за своим рабочим местом. Поддерживается передача HTTP и HTTPS трафика, однако сложные внутренние протоколы могут не работать. 

Эта возможность обеспечивается:

  • прокси-сервером на стороне сервера WNAM QoW
  • прокси-сервером на стороне сенсора

В качестве прокси-сервера выступает программное обеспечение tinyproxy. Вы должны установить его на сервере, и отредактировать его конфигурационный файл.

apt install tinyproxy

Конфигурационный файл /etc/tinyproxy/tinyproxy.conf

User tinyproxy
Group tinyproxy
Port 3128
Timeout 600
DefaultErrorFile "/usr/share/tinyproxy/default.html"
StatFile "/usr/share/tinyproxy/stats.html"
LogFile "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
PidFile "/run/tinyproxy/tinyproxy.pid"
Upstream http 172.16.255.31:3128
MaxClients 100
MinSpareServers 10
MaxSpareServers 50
StartServers 30
MaxRequestsPerChild 0
Allow 0.0.0.0/0
BasicAuth qow WnamProxy
ViaProxyName "tinyproxy"
ConnectPort 443
ConnectPort 563


На стороне сенсора необходимый пакет должен уже быть установлен. Конфигурационный файл /etc/config/tinyproxy

config tinyproxy
option enabled 1
option User nobody
option Group nogroup
option Port 3128
option Timeout 600
option DefaultErrorFile "/usr/share/tinyproxy/default.html"
option StatFile "/usr/share/tinyproxy/stats.html"
option LogFile "/var/log/tinyproxy.log"
option LogLevel Info
option MaxClients 100
option MinSpareServers 10
option MaxSpareServers 50
option StartServers 20
option MaxRequestsPerChild 0
list Allow 172.16.255.1
option ViaProxyName "tinyproxy"
list ConnectPort 443
list ConnectPort 563

Данная конфигурация позволяет пробрасывать запросы от сервера QoW в сторону заданного (одного) сенсора через механизм upstream.


Для того, чтобы переключать upstream на заданный сенсор необходимо установить специальный скрипт. Описанная ниже конфигурация применяется для удаленного изменения конфигурации прокси-сервера, поскольку сервера QoW и OpenVPN-разные.

Добавляем адрес/логин/пароль OpenVPN/tinyproxy сервера в application.properties сервера QoW:

netams.qos.proxy_host=host
netams.qos.proxy_username=tpswitcher
netams.qos.proxy_password=...
netams.qos.proxy_script=./switch_proxy_upstream.sh


На сервере OpenVPN/tinyproxy создаем пользователя, скрипт, даем нужные права:

useradd -m -U -s /bin/bash tpswitcher
passwd tpswitcher
chmod u+s /bin/systemctl 
cp /etc/tinyproxy/tinyproxy.conf /etc/tinyproxy/tinyproxy.conf.tmp 
chown tpswitcher /etc/tinyproxy/tinyproxy.*

Файл /home/tpswitcher/switch_proxy_upstream.sh :

#!/bin/bash

echo $1 >> /tmp/switch_proxy_upstream.log
cmd="Upstream http $1:3128"

sed "s/Upstream.*/$cmd/" /etc/tinyproxy/tinyproxy.conf > /etc/tinyproxy/tinyproxy.conf.tmp
cp /etc/tinyproxy/tinyproxy.conf.tmp /etc/tinyproxy/tinyproxy.conf
systemctl restart tinyproxy.service

echo $cmd

chmod +x /home/tpswitcher/switch_proxy_upstream.sh

После этого убеждаемся, что в интерфейсе сервера QoW в настройках сенсора, в его панели управление нажатие кнопки "Переключить HTTP прокси" приводит к появлению соответствующей записи upstream с туннельным адресом этого сенсора в конфигурации tinyproxy сервера OpenVPN.

Если это работает, администратор временно прописывает в своем браузере использование прокси-сервера по адресу host:3128, пробует подключение. В лог-файлах /var/log/tinyproxy/tinyproxy.log  сервера и /var/log/tinyproxy.log сенсора будут видны сделанные запросы.

По окончании работы отключать проксирование на сервере не обязательно, на рабочем месте администратора - обязательно.

  • No labels