Работа мессанджера Whatsapp через прокси-сервер Squid 4.9
В работе имеется прокси-сервер Squid 4.9, работающий с HTTPS поддержкой. Столкнулся с проблемой в работе мессанджера Whatsapp (Web, Desktop версии) на конечных системах.
В работе имеется прокси-сервер Squid 4.9, работающий с HTTPS поддержкой. Столкнулся с проблемой в работе мессанджера Whatsapp (Web, Desktop версии) на конечных системах.
От коллеги по цеху поступила просьба помочь с реализацией интересной задачи, которая заключается во исполнении №152-ФЗ (Федеральный закон «О персональных данных») по которому необходимо блокировать исходящие звонки на номера клиентов, который дали отказ на них.
Но нужно не просто блокировать исходящий звонок на определенный номер, но перед этим необходимо оператору проиграть сообщение и если после или в процессе сообщения нажать кнопку 1, то все же совершить звонок клиенту.
Я увидел решение задачи несколькими способами, рассмотрим этим варианты реализации.
Исходные данные:
В файл конфигурации /etc/asterisk/extensions_custom.conf добавляем следующую обработку:
[from-internal-custom] exten => _89858887766/_146XX,1,GoSub(sub-marketing-block,s,1) exten => _89855554433/_146XX,1,GoSub(sub-marketing-block,s,1) exten => _89852221100/_146XX,1,GoSub(sub-marketing-block,s,1) ; -- УКАЗЫВАЕМ ОСТАЛЬНЫЕ НОМЕРА КОТОРЫЕ ПОД ЗАПРЕТОМ -- [sub-marketing-block] exten => s,1,Background(custom/message) exten => s,2,WaitExten(3) exten => 1,1,Goto(s,5) exten => i,1,Goto(s,6) exten => t,1,Goto(s,6) exten => s,5,Return() exten => s,6,Hangup()
Рассмотрим как реализовать перехват пользовательских HTTPS-запросов в сеть интернет для дальнейшего анализа и учета их. Все ниже описанные действия производятся на Debian 9 Stretch с установленным прокси-сервером Squid 4.9.
Разберем как настроить связь Squid 4.9 c Active Directory через Kerberos аутентификацию и Basic LDAP авторизацию, для предоставления доступа в интернет по доменным учетным записям и разграничение прав согласно заданным группам безопасности Active Directory.
По различными причинам, случается так что какой то файл может быть удален с файлового сервера и в этом случае он будет потерян на всегда. Для того чтобы иметь возможность восстановить удаленный файл на файловом сервере samba предусмотрен модуль VFS (Virtual File System) — recycle (сетевая корзина), рассмотрим его применение.
Как известно система лицензирования Microsoft штука не дешевая и поэтому рассмотрим как установить файловый сервер Samba 4.5 и создавать общие папки с интеграцией Active Directory на Debian.
В FreePBX 14 Dashboard в Mail Queue висит ошибка:
Mail Queue: Unknown output from mailq: [[“exim: permission denied”], 1]
Данная ошибка означает что нет доступа списку очереди exim. Чтобы исправить эту ошибку в файле конфигурации (/etc/exim4/exim4.conf.template) в секцию MAIN CONFIGURATION SETTINGS добавим параметр:
queue_list_requires_admin = false
Обновим конфигурацию exim:
update-exim4.conf
Рассмотрим как установить FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch.
Перед началом установки обновляем систему до актуального состояния:
apt-get update && apt-get upgrade -y
Устанавливаем необходимые зависимости:
apt-get install build-essential linux-image-amd64 linux-headers-* apt-transport-https bison flex curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr sudo apache2 mariadb-server mariadb-client default-libmysqlclient-dev -y
[stextbox id=’alert’]ВНИМАНИЕ. Обязательно перезагружаем систему и после этого продолжаем установку.[/stextbox]
Устанавливаем PHP версии 5.6 (для корректной работы FreePBX fwconsole):
curl https://packages.sury.org/php/apt.gpg | apt-key add - echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/deb.sury.org.list apt-get update && apt-get install php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-mbstring php5.6-gd php5.6-xml php-pear -y
Устанавливаем NodeJS :
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash - apt-get install nodejs -y pear install Console_Getopt
Устанавливаем поддержку MariaDB ODBC
wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-2.0.15/mariadb-connector-odbc-2.0.15-ga-debian-x86_64.tar.gz tar -zxvf mariadb* cp -v mariadb-connector-odbc-2.0.15-ga-debian-x86_64/lib/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/
После внеплановой перезагрузки гипервизора VMware ESXi 6.5, появилась непонятная виртуальная машина с названием «11» . При попытке ее запустить получил следующие ошибки:
Could not power VM, no swap file, failed to power on VM. VMControl error -11: No such virtual machine. A general system error occurred. The system returned on error. Communication with the virtual machine may have been interrupted
Удалить (Delete), снять регистрацию (unregister) ее через vSphere не удалось, т.к. данные пункты были не активны:
Снять регистрацию виртуальной машины можно через командную строку VMware ESXi. Подключаемся по SSH к хосту ESXi и сперва выведем список зарегестрированных виртуальных машин:
vim-cmd vmsvc/getallvms Skipping invalid VM '11' Vmid Name File Guest OS Version Annotation 2 ca-offline [Datasotre1] ca-offline/ca-offline.vmx windows8Server64Guest vmx-13 3 ca-online [Datasotre1] ca-online/ca-online.vmx windows8Server64Guest vmx-08
В качестве памятки для себя опишу как изменить порт сервера 1С Предприятия 8.3
по умолчанию и как включить отладку сервере.
В работе имеется Blade-сервер Dell VRTX на лезвиях которых используется гипервизор VMware vSphere 6.5. Так как все лезвия используют одну дисковую корзину VRTX, то перемещение\миграция виртуальных машин осуществляется путем обычного разрегистрирования на одном лезвии и регистрация на другом.
[stextbox id=’info’]Такой метод миграции VM соответственно требует обязательного выключения машины, в отличии от использования vCenter. Но vCenter дорогой и не каждая организация готова его себе позволить, как в моем случае.[/stextbox]
В очередной раз понадобилось переместить VM (webserver_1) с одного лезвия на другой и в процессе этого столкнулся с трудностями запуска VM на целевом лезвии. В качестве памятки себе опишу свою проблему и ее решение.
На исходном лезвии выполнил завершение работы на виртуальной машине, но она не выключилась. Решил принудительно завершить ее работу через консоль, но в активных процессах виртуальную машину (webserver_1) не обнаружил, а вместо нее висела виртуальная машина с названием vm.572109.
Принудительно завершил процесс vm.572109 и разрегистрировал ее из текущего лезвия. На другом лезвии зарегестрировал ее и попытался запустить, но она не запустилась.
Долго висел статус «Running…»
Столкнулся недавно с ситуацией, когда необходимо было разобрать имеющиеся файлы программных лицензии 1С (*.lic) и понять какие регистрационные данные и используемый ПИН-код на них.
Памятка себе и информация для ищущих как выполнить конвертацию файла .ovf в .ova для возможности последнего импорта в VirtualBox.
Столкнулся недавно с задачей по маршрутизации звонков между несколькими FreePBX соединенными SIP-транками. Необходимо вызов пришедший из одного SIP-транка на определенный номерной план передать в другой SIP-транк.
Имеется три АТС на базе FreePBX (13, 14) — FreePBX «A» (номерной план 1ХХ), FreePBX «B» (номерной план 2ХХ), FreePBX «C» (номерной план 3ХХ). Которые соединены между собой SIP-транками следующим образом:
FreePBX «A» <—-SIP TRUNK «A»—-> FreePBX «B» <—-SIP TRUNK «B»—-> FreePBX «C»
Для наглядности рассмотрим к примеру ситуацию когда необходимо дозваниваться с FreePBX «A» (1ХХ) до абонентов находящихся в FreePBX «С» (3ХХ) и в обратном направлении.
Можно конечно решить задачу соединив отдельным SIP-транком FreePBX «A» и FreePBX «С», но рассмотрим другой вариант, когда к примеру нет возможности соединить их на прямую, тогда в этом случае посредником для звонков будет выступать FreePBX «B», т.к. он имеет связь по SIP-транку с FreePBX «С» и FreePBX «A».
По производственной необходимости понадобилось вычислять хеши файлов по ГОСТ 34.11-2012
.
Небольшая шпаргалка, на случай если нужно выполнить какие либо действия только с папками или только с файлами в каталоге и его подкаталогах.
В работе имеется связка Asterisk 16.3.0 + FreePBX 14.0.11 и два SIP-провайдера. Задался вопросом как модифицировать/изменить номер телефона (CallerID) при входящем звонке, устанавливая префикс 8 в любом случае. Мне нужно это для удобства обратного набора, на поступивший внешний звонок.
В моем случае один SIP-провайдер отдает номер телефона с префиксом 7, прим. 7800-800-80-80 (7XXXXXXXXXX), а другой вообще без префикса, прим. 800-800-80-80.
Чтобы исправить это, нам необходимо немного модифицировать dialplan, внеся в файл конфигурации /etc/asterisk/extensions_custom.conf
следующий код:
[from-pstn-custom] exten => _X.,1,ExecIF($[${VALID_EXTEN(fix-cid,${CALLERID(num)})}]?Gosub(fix-cid,${CALLERID(num)},1)) [fix-cid] ; Входящий номер с кодом 7 exten => _7XXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num):1}) exten => _7XXXXXXXXXX,n,Return() ; Входящий номер без кода страны exten => _XXXXXXXXXX,1,Set(CALLERID(num)=8${CALLERID(num)}) exten => _XXXXXXXXXX,n,Return()
Для простого и удобного мониторинга сетевых принтеров, была написана программа «Мониторинг состояния картриджей в принтерах». Данная программа имела ряд изъянов в функциональном плане, о чём свидетельствуют комментарии в статье к программе.
Учитывая тот факт, что программа так или иначе используется не только мной, после долгих обещаний пользователям, всё-таки было найдено время и программа переписана с нуля. Теперь она позиционируется не только как опросник сетевых принтеров, но, в принципе и как опросник любых устройств поддерживающих протокол SNMP.
На данный момент выпущена тестовая версия, которая в целом уже функционирует, но необходим feedback реальных пользователей о наличии проблем в программе и расширению её функционала.
Время от времени, на работе сталкиваюсь с просьбами от коллег в помощи изменении информации о дате и времени создания файла. Поэтому для пользователей написал простую утилитку по смене сведений в файле о «Создании», «Изменении» и последнего «Доступа» к нему.
Принцип работы утилиты прост, как рубль двадцать — открываем необходимый файл (Open File
), выставляем требуемую дату и время, отмечает галочками интересующие нас пункты и нажимаем «Change timestamp
«: