24.06.2018 - TeamViewer через proxy сервер squid
Не так давно в одной из компаний в которой мы обслуживаем парк серверов установили прокси сервер squid, поставили без проблем, настроили SARG для просмотра статистики, и все довольны, все прекрасно работает. После решили внедрить авторизацию в AD пользователей, то есть создали группу allow_internet, и все юзеры которые входят в нее могут пользоваться интернетом, а все остальные соответственно не могут (как это делать - история на отдельную статью). С этой задачей тоже справились все работает на ура, но тут возникла проблема с TeamViewer он постоянно просит ввести учётные данные для авторизации на proxy.
Стоить отметить что при работе squid без авторизации TeamViewer работает. В поля ввода имени и пароль вводить данные толку нет, введешь нажимаешь ок и он снова просить ввести их и так по кругу.
Решение проблемы
Так как TV пользуются не так много людей, нашел лишь одно решение — это разрешить сервисы TV тем ip адресам кому он нужен в обход авторизации в AD, отмечу интернет у этого пользователя по-прежнему зависит от того состоит он в группе allow_internet или нет. Ниже приведу конфиг для понимания.
# WELCOME TO SQUID 3.5.12
# OPTIONS FOR SMP
# OPTIONS FOR AUTHENTICATION
#раскомментировать ниже строки для доступа по группам
auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -s HTTP/proxy$
auth_param negotiate children 20 startup=0 idle=1
auth_param negotiate keep_alive off
# ACCESS CONTROLS
external_acl_type allow-internet ttl=300 negative_ttl=60 %LOGIN /usr/lib/squid/ex$
acl allow-internet external allow-internet
#раскомментировать строки для доступа по группам
acl SSL_ports port 443
acl SSL_ports port 4434
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#сюда писать ip которым разрешен доступ в обход групп
acl obhodgrupp src 192.168.1.179
#сюда писать ip которым разрешен доступ в обход групп
acl localnet src 192.168.0.0/22
acl social_network url_regex -i "/etc/squid/acl/social_networks"
#для работы TeamViewer через прокси
acl srcntv src 192.168.0.99
acl srcntv src 192.168.1.120
acl team_viewer dstdomain .teamviewer.com
#для работы TeamViewer через прокси
http_access allow srcntv team_viewer
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny filetypes
http_access deny social_network localnet
http_access allow obhodgrupp
#закомментировать строки для доступа по группам
#http_access allow localnet
#закомментировать строки для доступа по группам
#раскомментировать ниже строки для доступа по группам
http_access allow allow-internet
#раскомментировать строки для доступа по группам
http_access allow localhost manager
http_access deny manager
http_access deny all
# NETWORK OPTIONS
http_port 3128
# SSL OPTIONS
# OPTIONS RELATING TO EXTERNAL SSL_CRTD
# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
# MEMORY CACHE OPTIONS
cache_mem 256 MB
maximum_object_size_in_memory 512 KB
cache_dir ufs /data/var/spool/squid 1024 16 256
maximum_object_size 20 MB
# DISK CACHE OPTIONS
# LOGFILE OPTIONS
access_log daemon:/data/var/log/squid/access.log squid
logfile_rotate 31
# OPTIONS FOR TROUBLESHOOTING
coredump_dir /data/var/spool/squid
cache_log /data/var/log/squid/cache.log
# OPTIONS FOR FTP GATEWAYING
# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
Описание конфигурации Squid
Весь конфиг описывать не буду, если у вас возникла такая проблема, думаю вы все и так поймете, опишу лишь те строки, которые отвечают за работу TV в обход групп.
acl srcntv src 192.168.0.99 – создаем ACL с именем srcntv и пишем те адреса кому нужен TV
acl srcntv src 192.168.1.120
acl team_viewer dstdomain .teamviewer.com – создаем ACL с именем team_viewer и вписываем сюда сервис TV c точкой в начале так как TV при подключении постоянно обращается к разным доменный именам типа (f434g45.teamviewer.com, 234523rf.teamviewer.com, 5785hy6.teamviewer.com) ну вы поняли. Поэтому и разрешаем сразу все возможные вариации.
http_access allow srcntv team_viewer – пишем разрешающее правило, всем кто есть в АСL srcntv разрешено ходить по адресу который указан в ACL team_viewer.
Поcле внесённых изменений обязательно проверяем конфиг на правильность командой squid -k check и если она отработала без каких-либо сообщений, то выполняем команду squid -k reconfig и проверяем работу TeamViewer.
Видим все работает. Да у этого решения есть одни недостаток, то, что нужно кроме добавления пользователя в группу еще вписать его ip в ACL если ему нужен TeamViewer. А в общем ничего сложного в этом-то и нет. Если найдете другое решение, обязательно пишите в комментариях буду рад его опробовать.
Автор as@oneweb.pro | Просмотров 6858
Комментарии (0)
Есть что сказать? Пишите нам ->