
Как удалить Elasticsearch в Linux
Для памятки себе и другим опишу ниже процесс удаления Elasticsearch из Linux.
Для памятки себе и другим опишу ниже процесс удаления Elasticsearch из Linux.
# Деинсталлируем пакет Grafana из системы с последующей чисткой от не нужных пакетов после деинсталляции.
apt-get purge grafana grafana-enterprise apt autoremove
# Подчищаем оставшиеся после деинсталляции файлы и каталоги относящиеся к Grafana.
rm /etc/systemd/system/multi-user.target.wants/grafana-server.service rm /sys/fs/cgroup/pids/system.slice/grafana-server.service rmdir /sys/fs/cgroup/pids/system.slice/grafana-server.service rmdir /sys/fs/cgroup/devices/system.slice/grafana-server.service rmdir /run/grafana/grafana-server.pid rm /run/grafana/grafana-server.pid rmdir /run/grafana
Недавно разбирался как поднять почтовый сервер на Postfix в связке с Dovecot, для памяти опишу как поднять такой сервер на Debian 10. Все действия ниже будут выполняться от root.
# Добавляем DNS-записи для вашего почтового сервера:
@ MX 10 mail.example.com. mail A 192.168.1.10
# Задаем имя системы (mail
) в файле (/etc/hostname
):
echo mail > /etc/hostname
# Указываем в файле (/etc/hosts
) строку содержащую IP-адрес с полным доменным именем (FQDN).
127.0.0.1 localhost 192.168.1.10 mail.example.com mail
[stextbox id=’info’]ИНФОРМАЦИЯ: В приведенном выше примере 192.168.1.10
— это IP-адрес машины, mail
— это имя локального хоста, а mail.example.com
это полное доменное имя.[/stextbox]
Данные о пользователях почтового сервера (адреса электронной почты), доменах и псевдонимах будут хранится в базе данных MySQL.
# Устанавливаем MySQL сервер.
apt-get install mariadb-server -y
# Выполняем базовую настройку безопасности MySQL сервера и входим на сервер.
mysql_secure_installation mariadb
# Создаем базу данных для работы почтового сервера, пользователя для работы с базой данных и делегируем права на созданную базу данных.
CREATE DATABASE postfix; CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix'; GRANT SELECT ON postfix.* TO 'postfix'@'localhost'; FLUSH PRIVILEGES;
# Переключаемся на созданную базу данных, для создания необходимых таблиц.
use postfix;
# Создаем таблицу для доменов, которые будут получать почту:
CREATE TABLE `virtual_domains` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) );
# Создаем таблицу для всех адресов электронной почты и паролей:
CREATE TABLE `virtual_users` ( `id` int(11) NOT NULL auto_increment, `domain_id` int(11) NOT NULL, `password` varchar(106) NOT NULL, `email` varchar(100) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE );
JSON-C реализует объектную модель подсчета ссылок, которая позволяет вам легко создавать объекты JSON на C, выводить их в виде строк в формате JSON и анализировать строки в формате JSON обратно в представление объектов JSON на языке C.
Python — это высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью.
Clam AntiVirus — пакет антивирусного ПО, работающий во многих операционных системах, включая Unix-подобные ОС, OpenVMS, Microsoft Windows и Apple macOS.
На тот случай когда по тем или иным причинам нет возможности купить сертификат, мы разберем как выпустить и установить Let’s Encrypt SSL-сертификат в Zimbra Collaboration 8.X..
GOST-engine – это модуль для OpenSSL, реализующий поддержку российских криптографических алгоритмов в соответствии с ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012 и другими стандартами. Он позволяет использовать ГОСТ-алгоритмы для цифровых подписей, хэширования, симметричного и асимметричного шифрования.
В один прекрасный момент при попытке обновить пакеты php через репозиторий packages.sury.org получил ошибку недействительного публичного ключа для packages.sury.org.
Столкнулся с таким вопросом — как удалить пакет собранный из исходников и установленный make install.
Для памятки оставлю для метода как это сделать, все ниже действия производится на Debian 10 (более чем уверен что все описанное ниже будет применимо для всех deb-like Linux систем).
Для памятки опишу как установить модуль chan_sccp в FreePBX на базе Asterisk 18.
Описывать конфиги и настройку не буду (по крайней мере на момент написания статьи), вся исчерпывающая информация тут — https://github.com/chan-sccp
Устанавливаем необходимые для успешной сборки пакеты и скачиваем chan_sccp:
apt-get install git build-essential make install-headers -y cd /opt/ git clone https://github.com/chan-sccp/chan-sccp.git chan-sccp cd /opt/chan-sccp
Посмотрим какая версия Asterisk установлена, чтобы для нее сконфигурировать chan_sccp:
asterisk -rx "core show version"
Конфигурируем, компилируем и устанавливаем:
./configure --with-asterisk-version=18.7 make make install
После установки обязательно отключаем модуль chan_skinny.so и включаем chan_sccp.so в GUI FreePBX в модули Asterisk.
По умолчанию текст письма сервера Zimbra Collaboration содержит несколько заголовков из которых можно узнать много чего интересного о сервере и желательно бы эту информацию скрыть:
Чтобы скрыть эту информацию, выполним ряд действий.
Посмотрим на текущий параметр postfix_header_checks в localconfig Zimbra (вывод по-умолчанию подсвечен):
su - zimbra -c "zmlocalconfig | grep header_checks" postfix_header_checks = pcre:/opt/zimbra/conf/postfix_header_checks
Создадим файл со своими правилами /opt/zimbra/conf/custom_header_checks со следующим содержимым:
/^Received: (.*?)/ IGNORE /^Received:/ IGNORE /^X-Originating-IP:/ IGNORE /^X-Mailer:/ IGNORE /^Mime-Version:/ IGNORE /Message-Id:\s+<(.*?).JavaMail.zimbra@domain.org>/ REPLACE Message-Id: <$1@domain.org>
[stextbox id=’warning’]ВНИМАНИЕ! В Message-Id необходимо вместо domain.org указать свой домен.[/stextbox]
Для применения указанных правил, в консоли выполняем команды:
su - zimbra -c "zmprov mcf zimbraSmtpSendAddOriginatingIP FALSE" su - zimbra -c "zmprov mcf zimbraMtaBlockedExtensionWarnRecipient FALSE" su - zimbra -c "zmprov mcf zimbraMtaHeaderChecks 'pcre:/opt/zimbra/conf/postfix_header_checks pcre:/opt/zimbra/conf/custom_header_checks'" su - zimbra -c "zmlocalconfig -e postfix_header_checks='pcre:/opt/zimbra/conf/postfix_header_checks, pcre:/opt/zimbra/conf/custom_header_checks'"
Для памятки себе оставлю, как установить\обновить версии PHP 8.3, 8.2, 8.1, 8.0 / 7.4, 7.3, 7.2, 7.1 на Debian 12/11/10 (более чем уверен что все описанное ниже будет применимо для всех deb-like Linux систем).
После отключения сетевого IPv6 интерфейса на почтовом сервере Zimbra служба amavisd перестала запускаться — amavisd is not running.
Чтобы это исправить необходимо в файле /opt/zimbra/conf/amavisd.conf.in добавить в конец файла строку:
$inet_socket_bind = '127.0.0.1';
Перезапускаем службу amavis после внесения изменений:
su - zimbra -c "zmamavisdctl restart"
Замучали множественные уведомления вида — Disk /dev/loop* at 100% on mail… | Disk /snap/snapd/* at 100% on mail… которые валятся в административный почтовый ящик.
Отключить такие уведомления их можно путем исключения из мониторинга соответствующих девайсов /dev/loop*. Сперва отобразим все что есть на данный момент по файловой системе:
df -h Filesystem Size Used Avail Use% Mounted on udev 3,9G 0 3,9G 0% /dev tmpfs 796M 1,3M 795M 1% /run /dev/sda2 49G 13G 34G 28% / tmpfs 3,9G 0 3,9G 0% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup /dev/mapper/datastore1-zimbra 1,3T 1011G 207G 84% /opt/zimbra /dev/loop2 45M 45M 0 100% /snap/snapd/15904 /dev/loop4 68M 68M 0 100% /snap/lxd/22753 /dev/loop1 62M 62M 0 100% /snap/core20/1494 /dev/loop3 68M 68M 0 100% /snap/lxd/21835 tmpfs 796M 0 796M 0% /run/user/1000 /dev/loop6 62M 62M 0 100% /snap/core20/1518 /dev/loop0 47M 47M 0 100% /snap/snapd/16010 tmpfs 796M 0 796M 0% /run/user/997
Добавляем в исключения мониторинга /dev/loop*, командой:
su - zimbra -c "zmlocalconfig -e zmstat_df_excludes='/dev/loop0:/dev/loop1:/dev/loop2:/dev/loop3:/dev/loop4:/dev/loop5:/dev/loop6:/snap/snapd/16010'"
[stextbox id=’info’]ИНФОРМАЦИЯ. В случае если нужно добавить в исключение дополнительно какое либо устройство, то необходимо в команде выше нужно указывать и все предыдущие добавления, в противном случае исключения будут перезаписаны и значится будет только одно последнее.[/stextbox]
Столкнулся с необходимость в переименовании имени почтового сервера Zimbra, ниже опишу действия как это сделать, для памяти.
1. Переименовываем хост, имя указываем в формате FQDN (прим. mail.contoso.com).
hostnamectl set-hostname <новое имя сервера>
2. В файле /etc/hosts заменяем старое имя на новое.
3. Добавляем А и МХ запись с новым именем почтового сервера в DNS сервере.
4. Останавливаем сервер Zimbra:
su - zimbra -c "zmcontrol stop"
5. Переименовываем сервер Zimbra:
su - zimbra -c "/opt/zimbra/libexec/zmsetservername -n <новое имя сервера> -o <старое имя сервера>"
6. Если в выводе не наблюдается никаких ошибок, то запускаем сервер Zimbra:
su - zimbra -c "zmcontrol start"
7. Выполняем пересоздание базы данных logger, в противном случае в файлах логов будет фигурировать старое имя сервера и из за этого при построения графиков в Веб-интерфейсе будет выпадать ошибка.
После манипуляции и переименованием имени сервера Zimbra, я столкнулся с такой ошибкой в веб-интерфейсе при попытке просмотреть статистику сервера.
Сообщение: system failure: java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 Код ошибки: service.FAILURE Method: [unknown] Детали:soap:Receiver
Причина данной ошибки в том что в файлах логов присутствует старое имя сервера и при построение графика вываливается в такую ошибку.. Исправить это можно путем пересоздания базы данных логов.
Останавливаем службу logger и переходим в рабочий каталог хранения базы данных logger:
su - zimbra -c "zmloggerctl stop" cd /opt/zimbra/logger
Удаляем текущую базу данных logger:
rm -rf data
Инициализируем новую базу данных logger:
su - zimbra -c "/opt/zimbra/libexec/zmloggerinit"
[stextbox id=’info’]ИНФОРМАЦИЯ. По завершении инициализации служба logger будет автоматически запущена.[/stextbox]
Опишу как установить коммерческий (commercial) SSL-сертификат на почтовый сервер Zimbra Collaboration 8.8.15 GA Release.
В случае если у вас имеется только PFX файл сертификата, то при помощи OpenSSL можно легко извлечь закрытый ключ сертификата, сам сертификат и цепочку сертификатов CA:
openssl pkcs12 -in <filename.pfx> -nocerts -nodes | sed -ne '/-BEGIN PRIVATE KEY-/,/-END PRIVATE KEY-/p' > <clientcert.key> openssl pkcs12 -in <filename.pfx> -clcerts -nokeys | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <clientcert.cer> openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <cacerts.cer>
Копируем файлы сертификатов в каталог /opt/zimbra/ssl/zimbra/commercial/ и назначаем права доступа для них.
chown zimbra:zimbra -R /opt/zimbra/ssl/zimbra/commercial/* chmod 640 -R /opt/zimbra/ssl/zimbra/commercial/*
[stextbox id=’warning’]ВНИМАНИЕ! прошу обратить внимание что путь установки Zimbra может отличаться от моего, поэтому учитывайте это при копировании сертификатов.[/stextbox]
Выполняем верификацию сертификатов:
sudo su - zimbra -c "zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/clientcert.key /opt/zimbra/ssl/zimbra/commercial/clientcert.cer /opt/zimbra/ssl/zimbra/commercial/cacerts.cer"
прим. Успешная верификация сертификата выглядит вот так:
** Verifying '/opt/zimbra/ssl/zimbra/commercial/clientcert.cer' against '/opt/zimbra/ssl/zimbra/commercial/clientcert.key' Certificate '/opt/zimbra/ssl/zimbra/commercial/clientcert.cer' and private key '/opt/zimbra/ssl/zimbra/commercial/clientcert.key' match. ** Verifying '/opt/zimbra/ssl/zimbra/commercial/clientcert.cer' against '/opt/zimbra/ssl/zimbra/commercial/cacerts.cer' Valid certificate chain: /opt/zimbra/ssl/zimbra/commercial/clientcert.cer: OK
Squid — это программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS.