Как настроить работу Skype через прокси-сервер squid?

Всем добра, хабровчане! В статье расскажу как победить этот долбаный Skype и заставить его работать с Squid, но применимо к любому http(s) прокси. Будем использовать последний скайп. На данный момент это 7.40 и конечно, с упором на то, что очередной апдейт ничего не сломает, а если и сломает то надо будет чуток докрутить, а не откатывать версию. Сразу скажу, по сути описанный метод — это хак, т.к. актуальный скайп со сквидом работать не умеет, ну или мне не удалось победить, да и в интернете я не нашел решения, которое бы для меня взлетело. В общем, обо всём по-порядку и .
tl;dr
Включить QoS через GPO на клиентах для процессов Skype.exe
и SkypeBrowserHost.exe
, сказать iptables`у чтобы пропускал отмаркированный ToS`ом трафик, сказать сквиду, чтобы пускал всех на apps.skypeassets.com
и mscrl.microsoft.com

Итак, мой расклад
: все клиенты на Win7x64, AD DS 2008R2, Skype 7.40 x32, squid 2.7, настройки прокси в IE прилетают через GPO. Для начала расскажу зачем мне этот проклятый скайп стал так нужен. Где-то с полгода-год назад скайп 6й версии приказал долго жить, обновление на 7ку не помогло, ну ок, пересадил юзеров в веб-версию. Да, она глючная, но просто текст там вполне работает, а голос/видео можно и на личном смартфоне при надобности. Не так давно назрела необходимость брать и записывать интервью по скайпу и юзеры меня достали. Пришлось дать ноут с вафлей и начать разбираться. Оказалось, что слету «оно», т.е. скайп (эвфемизм) нигде не работает, если есть прокси, да еще и NAT полный хочет. Естественно, такого не бывает, всё настраивается, тут же прикинул я и решил вновь поднять тему. Разворачиваю, в надежде (чем черт не шутит), последний 7.40, запускаю скайп и опять вижу эту чертову рожу с КДПВ. Достаточно продолжительная война со сквидом и гуглеж привел на интересный комментарий в котором автор предлагает использовать QoS. Идея однозначно хороша, вот только у меня не взлетела из коробки и пришлось допиливать. В итоге порядок действий ниже.

Включаем QoS для клиентов

Маркируем пакеты скайпа. Открываем Групповые политики и идем Конфигурация компьютера
Политики
Конфигурация Windows
QoS oна основе политики
. Нужна пара правил для процессов Skype.exe и SkypeBrowserHost.exe. Думаю, из скрина ниже всё понятно. DSCP 36 я взял, фактически, от фонаря, достаточно высокий, но не слишком, всё же у нас цель не в максимальной приоретизации трафика для скайпа, а его маркировка. Далее делаем gpupdate на клиенте или перезагружаемся. Проверить корректность настройки можно так:

gpresult.exe /H d:gpresult.html

В полученном отчете ищите упоминание про QoS

Говорим iptables чтобы пускал отмаркированный трафик

В GP указывается DSCP, а iptables оперирует ToS`ом. Подробнее про QoS тут . Но в двух словах, эти значения отличаются ровно в 4 раза. Чтобы получить tos умножаем значение DSCP на 4 и получаем 144. Разрешающее правило для транзита трафика с tos 144 из своей подсети куда угодно будет выглядеть как-то так:

iptables -I FORWARD 2 -s localnet/24 -m tos —tos 144 -j ACCEPT

iptables запишет tos как 0х90, т.е. в hex формате. Выбирем жертву для теста и пытаемся зайти в скайп. На шлюзе можно глянуть, что там идет с клиента, например через tcpdump

tcpdump -i eth0 -v host 192.168.0.71

получим что-то типа tos 0x90 — то, что надо. Видно что с клиента пришел пакет с нужным флагом. Вот только скайп по прежнему не работает.

Позволяем ходить на пару сайтов всем

Фишка в том, что Skype смотрит в настройки IE. Отключить использование прокси в этом чудесном мессенджере невозможно (лучи добра тому, кто это придумал). А у нас настройки прокси из определения выше прилетают в IE через GPO. Короче, добавляем разрешающее правило для всех в сквид на сайты apps.skypeassets.com
и mscrl.microsoft.com
. В противном случае я ловил TCP_DENIED/407 и скайп не подключался. Ну где-то так: не забудьте reload сквида Не вздумайте схитрить, обойтись изменением GPO настройки IE «Не использовать прокси сервер с адресов, начинающихся с:» для упомянутых адресов. Отвалится куча сервисов МС. и web skype в первую очередь. Снова идем тестить на жертве и получаем то, что требовалось. Скайп подключился, работает, можно писать и звонить. Ура, блин 🙂Кстати
, вы можете заметить, что есть варианты поиграть с правилами сквида, чтобы кое как пропустить хотя бы подключение к скайпу, но это не наш метод, в ключевой момент не состоявшийся звонок для нас критичен.

Как развернуть Skype через WSUS. Постскриптум, до кучи

Не знаю чем думал МС, но скайп через WSUS не обновляется, можно только 1 раз установить с нуля или обновить версию из exe. При чем не то, чтобы штатно не обновляется, а даже через LUP/WPP версия в msi не прилетает. Да, я знаю, что у всех версий скайпа один Product ID, но в итоге несколько часов убил пытаясь колдовать с правилами. В итоге глянул на онлайн-каталог апдейтов и обнаружил только
(WAT!?) бизнес-версию, понял, что это фича — сделать скайп в msi, но даже не раздавать его и убрать вообще возможность автоматического деплоя. Да, думаю можно было взять ORCA и наколдовать, но ну его, каждый раз что ли трансформации делать при обновлении версии… Вариант, что только у меня лыжи не едут, но короче, взял на www.skype.com/ru/get-skype классическую версию в exe и развернул через LUP. Подробности здесь. За сим всё, надеюсь статья была полезной, жду ваших вопросов и дополнений.

96

22.1k


96

Потребовалось выпустить скайп наружу.Пришлось сделать исключения для беспарольного доступа:=== squid.confacl SSL_ports port 443 33033# 33033 — for Skype
acl Safe_ports port 80# httpacl Safe_ports port 81# httpacl Safe_ports port 21# ftpacl Safe_ports port 443# httpsacl Safe_ports port 70# gopheracl Safe_ports port 210# waisacl Safe_ports port 1025-65535# unregistered ports
acl Safe_ports port 280# http-mgmtacl Safe_ports port 488# gss-httpacl Safe_ports port 591# filemakeracl Safe_ports port 777# multiling http…# https://www.opennet.ru/openforum/vsluhforumID12/7260.html# https://docs.diladele.com/faq/squid/sslbump_exlusions/skype.htmlacl micro_act2 dstdom_regex messenger.live.com$
# ip — подсети# https://support.skype.com/en/faq/FA148/which-ports-need-to-be-open-to-use-skype-for-windows-desktop# 443/TCP# 3478-3481/UDP# 49152-65535/UDP + TCP…http_access allow CONNECT localnet17 numeric_IPs Skype_IPs Skype_UA SSL_ports
http_access allow micro_act2
…===Но это еще ничего. WhatsApp не терпит вообще никаких фаерволов…

Задайте вопрос
Быстрый доступ
Общий раздел

 > 

Разное
  • Вопрос

  • Здравствуйте!

    Сотрудникам из локальной сети необходимо предоставить доступ к Skype. Выход в интернет организован через прокси squid на pfSense. Включал логирование для определения портов и ip-адресов. Но проблема в том, что порты используются из определенного диапазона, да и ip-адреса меняются каждый раз. Какие порты открыть на прокси-сервере? И вообще как лучше все это организовать?

    7 ноября 2016 г. 9:03

Ответы

  • Тоже с этим большая проблема.

    На Сквиде используется доменная авторизация (Basic, Kerberos/NTLM)

    Сам Скайп работает (контакты есть, чат работает), но при звонках, всегда через 10с рвет соединение.

    В логах Сквида проскакивают записи , где нет лоигна/пароля (соответственно доступ запрещен), настройки прокси с авторизацией прописаны в Скайпе и в Браузере.

    Если в Сквиде разрешиться свободный доступ по IP компа (т.е. прекращает требоваться авторизация), то все начинает работать.

    Добрый День.

    Уважаемый AngelOfMors

    Создайте новую тему.

    Тема закрыта

    Я не волшебник, я только учусь MCP, MCTS, CCNA. Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку «Предложить как ответ» или «Проголосовать за полезное сообщение». Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции работодателя. Вся информация предоставляется как есть без каких-либо гарантий. Блог IT Инженера, Twitter.

    • Помечено в качестве ответа
      29 марта 2017 г. 8:42
    29 марта 2017 г. 8:42

Все ответы

  • Порты 80 и 443 в squid открыты, иначе у меня сайты тоже не открывались бы. Порт 34249 тоже указал в ACL Safe Ports, но ничего не получается. 
    7 ноября 2016 г. 9:33
  • На какой порт? На какой ip?
    7 ноября 2016 г. 9:34
  • Самое интересное — в нынешнем состоянии skype то работает, то нет.
    7 ноября 2016 г. 10:26
  • Антон, в ссылке, которую вы указали, есть такая рекомендация: 

     Если порты 80, 443 используются другой программой (например, HTTP-сервером Apache или службой IIS), вы можете либо настроить ее на использование других портов, либо выполнить аналогичную настройку для Skype.

    Здесь имеется виду веб-сервер у меня в локальной сети или это что-то другое?

    7 ноября 2016 г. 13:08
  • Тоже с этим большая проблема.

    На Сквиде используется доменная авторизация (Basic, Kerberos/NTLM)

    Сам Скайп работает (контакты есть, чат работает), но при звонках, всегда через 10с рвет соединение.

    В логах Сквида проскакивают записи , где нет лоигна/пароля (соответственно доступ запрещен), настройки прокси с авторизацией прописаны в Скайпе и в Браузере.

    Если в Сквиде разрешиться свободный доступ по IP компа (т.е. прекращает требоваться авторизация), то все начинает работать.

    29 марта 2017 г. 8:39
Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации