SCROLL

Посты автора «jakonda»

По производственной необходимости понадобилось вычислять хеши файлов по ГОСТ 34.11-2012.

 

Сделать это можно утилитой которая предоставляет КриптоПРО (Вычисление хэшей с использованием КриптоПро CSP 4.0 по ГОСТ 34.11-2012). Она прекрасно справляется со своей задачей, но она консольная, т.е. рядовому пользователю будет проблематично и не удобно ей пользоваться.

 

Дабы снять с себя постоянные просьбы пользователей, о помощи в вычислении хешей нужных им файлов, решил написать графическую обертку для этой консольной утилиты.

 

Принцип работы программы простой, по кнопке «Open» выбираете файлы для которых необходимо вычислить хеш сумму и дожидаетесь результата. Результат вычисления будет отображен ниже. По кнопке «CopyToClipboard» можно скопировать все содержимое в буфер обмена.

В работе имеется связка 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()

[stextbox id=’warning’]UPD 1 Выпущена версия 1.0.0.2. Добавлена возможность выбора нескольких файлов, возможность выбора изменять только дату или время[/stextbox]

Время от времени, на работе сталкиваюсь с просьбами от коллег в помощи изменении информации о дате и времени создания файла. Поэтому для пользователей написал простую утилитку по смене сведений в файле о «Создании», «Изменении» и последнего «Доступа» к нему.

 

Принцип работы утилиты прост, как рубль двадцать — открываем необходимый файл (Open File), выставляем требуемую дату и время, отмечает галочками интересующие нас пункты и нажимаем «Change timestamp»:

Скачать “Timestamp Changer” chg_timestamp_v.1.0.0.2.zip – Загружено 452 раза – 664,82 КБ

На блейд-сервер Dell PowerEdge M620 входящий в состав шасси VRTX, установил VMware ESXi 6.5. После установки в vSphere не обнаружились не одного дискового хранилища, которые имеются в шасси VRTX.

 

Проблема заключается в отсутствие необходимого драйвера для контроллера Shared PERC 8 Mini. Для решения проблемы, нужно всего навсего уставить отсутствующий драйвер в систему VMware ESXi 6.5

 

Скачиваем драйвер:

Скачать “VMW-ESX-6.5.0-dell_shared_perc8-06.806.90.00-6990897.zip” VMW-ESX-6.5.0-dell_shared_perc8-06.806.90.00-6990897.zip – Загружено 1 раз – 191,64 КБ

[stextbox id=’warning’]Либо с официального сайта VMWare, в случае если имеется учетная запись там.[/stextbox]

 

Копируем из скачанного архива VIB (dell-shared-perc8-06.806.90.00-1OEM.650.0.0.4598673.x86_64.vib) или автономный пакет (VMW-ESX-6.5.0-dell_shared_perc8-06.806.90.00-offline_bundle-6990897.zip) на сервер VMware ESXi в папку (/tmp). Для примера как это можно сделать, посмотрите статью

Не редко случается когда после заведения нового пользователя в Exchange, остальные пользователи жалуются что они не могут найти нового в своей адресной книге Outlook. Это случается потому что Автономная адресная книга (OAB) обновляется в течении суток и поэтому новый пользователь и не появляется в адресной книге у других пользователей.

 

Рассмотрим как принудительно обновить автономную адресную книгу (OAB) на Exchange 2010 SP3.

 

Заходим в Консоль управления Exchange — Конфигурация организации — Почтовый ящик — Автономная адресная книга. Обновляем Автономную адресную книгу (OAB):

Или через консоль Exchange:

Get-OfflineAddressBook | Update-OfflineAddressBook

Обратил внимание что не обновляется автономная адресная книга в Exchange 2010 SP3.

Маленькая заметка для себя, как включить доступ root пользователя по ssh в Linux.

 

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

 

Чтобы включить ssh вход для пользователя root в Linux, необходимо в файле /etc/ssh/sshd_config изменить строку:

PermitRootLogin without-password
или 
#PermitRootLogin prohibit-password

на строку:

PermitRootLogin yes

 

Перезапускаем ssh службу:

/etc/init.d/ssh restart

В почтовом сервере Exchange 2010 при запуске тестовых команд, таких как Test-OutlookWebServices или Test-EcpConnectivity, требуется учетная запись Exchange Test.

 

Создается при помощи скрипта New-TestCasConnectivityUser.ps1 из каталога скриптов Exchange 2010 C:\Program Files\Microsoft\Exchange Server\V14\Scripts.

 

При попытке выполнить скрипт New-TestCasConnectivityUser.ps1, я получил ошибку Mailbox could not be created. Verify that OU ( Users ) exists and that password meets complexity requi rements., которая означает, что не может быть найден OU Users, либо бы заданный пароль не соответствует требованиям сложности:

[PS] C:\Program Files\Microsoft\Exchange Server\V14\scripts>.\new-TestCasConnectivityUser.ps1

Введите временный безопасный пароль для создания тестовых пользователей. Если установлен диспетчер SCOM, в целях обеспе
чения безопасности будет регулярно производиться автоматическое изменение пароля. Если диспетчер SCOM не установлен, па
роль необходимо изменять вручную.
Ввести пароль: **********
Создать тестовых пользователей: CAS1.domain.local
Нажмите сочетание клавиш CTRL+Break для выхода или клавишу ВВОД для продолжения.:
CreateTestUser : Mailbox could not be created. Verify that OU ( Users ) exists and that password meets complexity requi
rements.
C:\Program Files\Microsoft\Exchange Server\V14\scripts\new-TestCasConnectivityUser.ps1:267 знак:31
+ $result = CreateTestUser <<<< $exchangeServer $mailboxServer $securePassword $OrganizationalUnit $UMDialPlan $
UMExtension $Prompt
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,CreateTestUser

 

Столкнулся с проблемой доступа из локальной сети к развернутому экземпляру MSSQL Server Express. Рассмотрим как настроить доступ к экземпляру SQL.

 

Запускаем SQL Server Configuration Manager. Переходим в Сетевая конфигурация SQL Server - Протоколы для SQLEXPRESS (где SQLEXPRESS — имя экземпляра SQL Server).

 

Включаем протокол TCP/IP и переходим в его свойства, во вкладку IP-адреса. Опускаемся к пункту IPAll. Удаляем значение в поле TCP Dynamic Ports, оставляем поле пустым, а в TCP Port пишем 1433:

Случилось так что появилась необходимость переименовать компьютер на котором развернут MSSQL Server. Рассмотрим как выполнить эту процедуру корректно.

Частенько сталкиваюсь с необходимостью конвертирования сертификата .crt, .ca-bundle в формат PFX. И каждый раз пытаюсь вспомнить как это сделать в Linux посредством OPENSSL.

 

Ниже представленной командой можно легко выполнить конвертацию:

openssl pkcs12 -export -out doman_com.pfx -inkey doman_com.key -in doman_com.crt -certfile doman_com.ca-bundle

[stextbox id=’warning’]

.pfx — это выходной файл PFX
.key — это файл ключа, используемый для создания запроса (CSR)
.crt — это файл сертификата (CRT, PEM), полученный от центра сертификации
.ca-bundle — это сертификат от центра сертификации, который мы конвертируем в PFX

[/stextbox]

Используя утилиту SMSTOOLS3 (развернутую по этой статье) для отправки/приема SMS сообщений, я столкнулся со сложностью отправки SMS сообщений с разных подключенных GSM модемов.

 

По-умолчанию в SMSTOOLS3, имеется скрипт отправки SMS сообщений (/usr/local/bin/sendsms), который отправляет SMS сообщения с первого устройства указанного в файле конфигурации.

Ниже рассмотрим как исправить изъян скрипта в отсутствие выбора GSM модема для отправки SMS сообщения, путем доработки его.

 

Рассмотрим как настроить два GSM модема (прим. GSM1, GSM2), для возможности отправки с обоих SMS сообщений. В конфигурационном файле (/etc/smsd.conf), указываем используемые GSM модемы через запятую (devices = GSM1, GSM2), добавляем секцию описания очередей ([queues]) для каждого GSM модема и в каждую секцию описания GSM модема указываем какая очередь используется для того или иного GSM модема.

На системных дисках пользовательских ПК, закончилось место. В ходе анализа куда пропало свободное место, обнаружилось что все свободное место было занято, большим количеством файлов cab_xxxx в папке C:\Windows\Temp. Если удалить их, то через какое то время они снова там появляются и съедают все свободное место на диске.

 

Проблема оказалась в утилите makecab.exe, которая архивирует логи из C:\Windows\Logs\CBS и не умеет работать с файлами больше 2 Гб. После неудачной попытки утилиты заархивировать большой лог-файл, остается временный файл cab_xxxx и каждые 30-60 минут появляется новый, после каждой попытке архивации. В итоге этот бесконечный цикл приводит к переполнению диска.

 

Для решения просто удаляем старые логи из каталога C:\Windows\Logs\CBS и после этого очищаем C:\Windows\Temp.

Недавно столкнулся с интересной проблемой при отправке сообщения на внешний e-mail из OTRS (Open-source Ticket Request System) при использовании почтового сервера на базе MS Exchange 2010 SP3.

 

На почтовом сервере MS Exchange 2010 для OTRS создан отдельный Соединитель получения (HubTransport), в котором разрешены анонимные подключения.

 

Все отлично работает при отправки сообщений из OTRS на внутренние e-mail адреса, но при попытке отправить сообщение на какой либо внешний e-mail (к примеру мне понадобилось подключить агента к OTRS, у которого нет внутри корпоративного e-mail) я получаю ошибку 550, 5.7.1 Unable to relay!.

Однажды при попытке посмотреть какие «Виртуальные хосты» сейчас активны на Веб-сервере apache, я получил следующие ошибки в выводе:

В очередной раз после миграции ВМ Debian Linux с одного хоста VMWare на другой, при загрузке системы наблюдал множественные ошибки:

blk_update_request: I/O error, dev fd0, sector 0
hv_vmbus: probe failed for device vmbus_10 (-19)

 

Ошибка связана с попытками подключить Floppy дисковод, который в ВМ отсутствует. Решается все довольно просто, путем отключения драйвера Floppy в системе.

 

Выполняем следующие команды в терминале:

echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklist-floppy.conf
sudo rmmod floppy
sudo update-initramfs -u

 

Для применения изменений перезагружаем систему.

Задался недавно вопросом, как можно из консоли Linux, подключится к удаленной машине с ОС Windows на борту и выполнить на ней какую либо команду (прим. «ipconfig») или запустить за ранее написанный скрипт (*.bat, *.ps1).

 

В ходе поиска решения данного вопроса, был найден инструмент Winexe, который по сути является аналогом psexec под Windows. Winexe работает в связке с Samba, поэтому последняя должна присутствовать в системе.

 

Из замеченных неудобств работы с Winexe, хочу отметить что для корректного отображения «кириллицы», необходимо конвертировать вывод в UTF-8 из cp866/cp1251. Так же в случае запуска на удаленной машине «cmd», «powershell» не работают клавиши курсора, «backspace» и возможен задвоенный ввод символов.

 

Установка будет производится на Debian 9 Stretch. В ходе установки будет использоваться Fork пакета Winexe 1.1 (https://sourceforge.net/u/mstowe/winexe/ci/v0.2/tree/), а так же версия Samba 4.5.16 из стандартные репозиториев Debian.

Рассмотрим как установить из исходников актуальную (на момент написания статьи) версию кеширующего прокси-сервера Squid 4.6 на Debian 9 Stretch.

[stextbox id=’info’]ИНФОРМАЦИЯ. Хочу сообщить что ниже описанное руководство, так же применимо к установке версии Squid 4.9.[/stextbox]

 

Подготовка системы

Обновляем систему до актуального состояния:

apt-get update && apt-get upgrade

Устанавливаем необходимые пакеты для сборки и работы squid:

apt-get install autoconf automake autopoint autotools-dev binutils build-essential cdbs comerr-dev cpp cpp-6 debhelper dh-autoreconf dh-strip-nondeterminism dpkg-dev g++ g++-6 gcc gcc-6 gettext icu-devtools intltool-debian krb5-multidev libarchive-zip-perl libasan3 libatomic1 libc-dev-bin libc6-dev libcap-dev libcc1-0 libcilkrts5 libcppunit-1.13-0v5 libcppunit-dev libcroco3 libdb-dev libdb5.3-dev libdpkg-perl libecap3 libecap3-dev libexpat1-dev libfile-stripnondeterminism-perl libgcc-6-dev libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libssl-dev libgnutls28-dev libgnutlsxx28 libgomp1 libgssrpc4 libicu-dev libidn11-dev libisl15 libitm1 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libkrb5-dev libldap2-dev liblsan0 libltdl-dev libltdl7 libmpc3 libmpfr4 libmpx2 libnetfilter-conntrack-dev libnfnetlink-dev libp11-kit-dev libpam0g-dev libquadmath0 libsasl2-dev libsigsegv2 libstdc++-6-dev libtasn1-6-dev libtimedate-perl libtool libtsan0 libubsan0 libunbound2 libxml2-dev linux-libc-dev m4 make nettle-dev patch pkg-config po-debconf zlib1g-dev

 

Установка прокси-сервера Squid

Скачиваем исходник «squid», распаковываем его:

cd /opt/
wget http://www.squid-cache.org/Versions/v4/squid-4.6.tar.gz
tar -zxvf squid-4.6.tar.gz 
cd squid-4.6

В поисках решения организации SMS шлюза, посредством GSM-модема (прим. Huawei E1550), наткнулся на пакет «smstools», который прекрасно справляется со своими обязанностями (отправка\получение SMS).

 

Рассмотрим как развернуть пакет «smstools» на Debian 9 Stretch и настроить его на GSM-модема Huawei e1550 (так же тестировал ниже описанное на e3372h с прошивкой stick).

 

Подготовка системы

Обновляем систему до актуального состояния:

apt-get update && apt-get upgrade

 

Устанавливаем необходимые для работы пакеты:

apt-get install gcc make recode usb-modeswitch minicom

 

Подключаем GSM-модем Huawei E1550, проверяем появились ли устройства ttyUSB*:

ls -al /dev | grep ttyUSB

crw-rw---- 1 root dialout 188, 0 фев 27 11:34 ttyUSB0
crw-rw---- 1 root dialout 188, 1 фев 27 11:33 ttyUSB1
crw-rw---- 1 root dialout 188, 2 фев 27 12:37 ttyUSB2

Появилась интересная задача, которая заключается в том что нужно подключить GSM-модем USB HUAWEI E1550 к Asterisk 13 работающий на Debian 8 Jessie. Настроить возможность принимать/отправлять SMS, принимать/звонить с номера находящегося в GSM-модеме.

 

Рекомендуется чтобы GSM-модем HUAWEI E1550 работал на прошивке версии: 11.608.12.00.143, а так же чтобы работал только в режиме «только модем».

 

На момент написания статьи используемая версия Asterisk — 13.25.0, который развернут на Debian 8 Jessie (как развернуть Asterisk 13 на Debian 8 Jessie, можно по этой статье)

 

Настройка системы и GSM-модема

Обновляем систему до актуального состояния:

apt-get update && apt-get upgrade -y

 

Устанавливаем необходимые пакеты для работы с USB GSM шлюзом:

apt-get install usb-modeswitch minicom

[stextbox id=’info’]usb-modeswitch необходима для автоматического переключения устройства из режима, minicom необходима для подключения к последовательным портам (COM).[/stextbox]

 

Подключаем GSM-модем HUAWEI E1550, проверяем появились ли устройства ttyUSB*:

ls -al /dev | grep ttyUSB

crw-rw---- 1 root dialout 188, 0 фев 27 11:34 ttyUSB0
crw-rw---- 1 root dialout 188, 1 фев 27 11:33 ttyUSB1
crw-rw---- 1 root dialout 188, 2 фев 27 12:37 ttyUSB2