четверг, 3 августа 2017 г.

Настройка отправки почты через gmail с помощью php и msmtp.

В настройках аккаунта Google разрешаем доступ для "менее безопасных" приложений!
Ставим msmtp. Создаем файл конфига /usr/local/etc/msmtprc:
account default
host smtp.gmail.com
port 587
from user@gmail.com
user user@gmail.com
password my_password
auth on
tls on
tls_certcheck off
keepbcc on

Пишем в php.ini:
sendmail_path = "/usr/local/bin/msmtp -t"

Пример кода на PHP:
<?php
$BODY = "Body is here";

$to = 'user@mail.ru';
$subject = '=?utf-8?b?' . base64_encode("Subject is here") . '?=';
$message = "$BODY";.
$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8'."\r\n";
$headers .= 'From: '.'=?utf-8?b?' . base64_encode("My Name") . '?='.' <user@gmail.com>'."\r\n";

if(!mail($to, $subject, $message, $headers)){
    die('error');
}
?>

вторник, 1 августа 2017 г.

Установка sipcapture сервер (HOMER) на FreeBSD.

Если не распознается логин/пароль при входе в UI, то проверяем две вещи:
1) доступность API, выполнив вызов http://ip_adress/homer/api/v1/test/. Если вызов не прошел, проверяем настройку mod_rewrite в Апаче.
2) наличие модуля php pdo_mysql. Без него не идут запросы в базу.

EEP поддерживает sngrep (надо собирать из портов с поддержкой EEP). Пример команды:
# sngrep port 5060 -H udp:192.168.2.216:9060 -d em1 -N -q

пятница, 19 мая 2017 г.

Установка chan_dongle на FreeBSD 10, Asterisk 13

Подключаем драйвера umodem и u3g.
Не забываем добавить загрузку в loader.conf.

Скачиваем chan_dongle для asterisk 13. Распаковываем.
Ставим autotools.
# pkg install autotools-20130627
Далее сносим внешний libiconv, если ставился (для mc, например). Для chan_dongle нужен родной.
# pkg delete -f libiconv-1.14_9
Переходим в папку распакованного chan_dongle.
Выполняем:
# aclocal
# autoconf
# automake -a
# ./configure --with-astversion=13.13.1 (например)
Открываем Makefile и комментируем последние 3 строки:
ifneq ($(wildcard .*.d),)
   include .*.d
endif

Далее:
# make install
# cp etc/dongle.conf /usr/local/etc/asterisk
Ставим обратно libiconv
# pkg install libiconv-1.14_10

Модем можно взбодрить командой AT^SYSCFG=2,2,3FFFFFFF,1,2.

По мотивам.
Использование.

Update:
Собираем компилятором gcc46
# make install gcc46-4.6.4_8,1
Далее в Makefile правим:
CC = gcc46
LD = gcc46

После подключения модема убеждаемся в наличие устройств cuaUx.x.
Включаем asterisk в группу dialer:
# pw groupmod dialer -m asterisk

Update2:
Для CentOS и Asterisk 15 берем отсюда https://github.com/wdoekes/asterisk-chan-dongle
# ./bootstrap
# DESTDIR="/usr/lib64/asterisk/modules" ./configure --with-astversion=15

вторник, 4 апреля 2017 г.

Генерация сертификата "Let`s Encrypt".

Для JIRA используем acme.sh.
Лежит в /root/.acme.sh.
CSR генерируем и заливаем по этой статье.
Создаем папку с именем домена в ~root/.acme.sh.
Сначала пересоздаем контейнер(старый предварительно удаляем).
#keytool -genkey -keysize 2048 -keyalg RSA -alias tomcat -keystore /home/jira/keystore
Генерируем CSR
#keytool -certreq -alias tomcat -keyalg RSA -file certreq.csr -keystore /home/jira/keystore
Кладем certreq.csr в созданную папку.
Подписываем сертификат из CSR.
#acme.sh  --signcsr  --csr /root/.acme.sh/домен/certreq.csr -w /root/.acme.sh/домен
Импортируем в контейнер сертификат CA
#keytool -import -tructcacert -alias rootca -file /root/.acme.sh/домен/ca.cer -keystore /home/jira/keystore
Импортируем личный сертификат (полную цепочку!)
#keytool -importcert -alias tomcat -file /root/.acme.sh/домен/fullchain.cer -keystore /home/jira/keystore
Алиас должен быть такой же, как при создании контейнера!
Проверяем сертификаты командой
#keytool -list -keystore /home/jira/keystore

Для report используем acme.sh в DNS режиме с другого сервера (radius).
CSR генерируем там же, RHEL4 не умеет в SHA-2.
#openssl req -nodes -newkey rsa:2048 -keyout rep.key -out rep.csr
#./acme.sh --dns --signcsr --csr rep.csr --log
#./acme.sh --renew -d rep.directcall.ru
Перенести CA и личный сертификаты, а так же ключ в /etc/httpd/conf/cert на report.

Update: Для clients используем apache mode:
# ./acme.sh --issue --apache -d mydomen.ru

Update2:
Для тикетинга тоже используем DNS-режим.
#rm /home/jira/keystore
#keytool -genkey -keysize 2048 -keyalg RSA -alias tomcat -keystore /home/jira/keystore
#keytool -certreq -alias tomcat -keyalg RSA -file certreq.csr -keystore /home/jira/keystore
#scp certreq.csr на радиус
Удаляем слово NEW из хидера и футера certreq.csr!
#./acme.sh --dns --signcsr --csr certreq.csr --log
#scp ca.cer fullchain.cer на JIRA
#keytool -import -alias rootca -file ca.cer -keystore /home/jira/keystore
#keytool -importcert -alias tomcat -file fullchain.cer -keystore /home/jira/keystore

Update3:
Ручной режим с аутентификацией через выкладывание файла на хостинг доступен в CertBot.
Тикетинг можно прямо с сервера, acme.sh в standalone режиме.

вторник, 28 февраля 2017 г.

Не освобождается место после удаления файла.

Ищем того, кто держит файл.
# lsof | grep deleted | grep catalina.out

Получаем id процесса.
java 2963 jira 1w REG 253,0 709437 1838640 /opt/atlassian/jira/logs/catalina.out (deleted)

Ищем ссылку на файл.
# ls -l /proc/2963/fd | grep catalina.out
l-wx------. 1 jira jira 64 Feb 28 16:34 1 -> /opt/atlassian/jira/logs/catalina.out (deleted)

Обнуляем файл.
# cat /dev/null > /proc/2963/fd/1



четверг, 26 января 2017 г.

Импорт ovf с ошибкой Unsupported hardware family vmx-11

Просто меняем в ovf  vmx-11 на vmx-7, например.
Затем снимаем контрольную сумму (SHA1) файла ovf  и меняем её в файле mf.
Контрольную сумму можно получить консольной утилитой fciv от Microsoft.

понедельник, 9 января 2017 г.

Решение для SSL3_GET_CLIENT_HELLO:no shared cipher.

При подключении через vSphere Client выдает "the client could not send a complete request". В логе /var/log/rhttpproxy.log следующее:
SSLStreamImpl::DoServerHandshake (04512860) SSL_accept failed. Dumping SSL error queue
error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher

Решение отсюда:

  1. Connect to the host via SSH.
  2. Navigate to the directory:

    /etc/vmware/rhttpproxy/
  3. Backup the config.xml file. Do not skip this step.
  4. Open config.xml file using vi editor.
  5. Add the <cipherList>ALL</cipherList> parameter between the <ssl>...</ssl> section of the configuration file. Use the model below as an example: 

    <config>
    ...<vmacore>...<ssl><doVersionCheck> false </doVersionCheck><useCompression>true</useCompression><libraryPath>/lib/</libraryPath><handshakeTimeoutMs>120000</handshakeTimeoutMs><cipherList>ALL</cipherList></ssl>...</vmacore>...</config>
  6. Save and close the config.xml file
  7. Reset the rhttpproxy service for the change to take effect by running the command:

    /etc/init.d/rhttpproxy restart