• Как удалить Grafana и все ее следы из Debian 10 Buster

    # Деинсталлируем пакет 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 Buster

    Недавно разбирался как поднять почтовый сервер на Postfix в связке с Dovecot, для памяти опишу как поднять такой сервер на Debian 10. Все действия ниже будут выполняться от root.

     

    Настройка DNS записей

    # Добавляем 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
    ИНФОРМАЦИЯ: В приведенном выше примере 192.168.1.10 — это IP-адрес машины, mail — это имя локального хоста, а mail.example.com это полное доменное имя.

     

    Настройка MySQL

    Данные о пользователях почтового сервера (адреса электронной почты), доменах и псевдонимах будут хранится в базе данных 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 из исходников на Debian 10 Buster

    # Устанавливаем необходимые пакеты зависимостей. Все действия ниже будут выполняться от root.

    apt-get install gcc g++ make cmake pkg-config git doxygen valgrind -y

    # Скачиваем исходник (оф. репозиторий json-c — https://github.com/json-c/json-c#installprereq), раскаковываем его и переходим в распакованный каталог.

    cd /opt
    git clone https://github.com/json-c/json-c.git
    
    cd json-c/
    mkdir build && cd build

    # Конфигурирование сборки.

    ../cmake-configure --prefix=/usr

    # Собираем и устанавливаем пакет.

    make && make test
    make install

    Читать далее

  • Установка Python 3.9 из исходников на Debian 10 Buster

    # Устанавливаем необходимые пакеты зависимостей. Все действия ниже будут выполняться от root.

    apt-get update && apt-get upgrade -y
    apt-get install apt-get install gcc g++ make libffi-dev libnss3-dev libssl-dev zlib1g-dev

    # Скачиваем исходник, раскаковываем его и переходим в распакованный каталог (на момент написания статьи версия 3.9.14).

    cd /opt/
    wget https://www.python.org/ftp/python/3.9.14/Python-3.9.14.tgz
    tar -zxvf Python-3.9.14.tgz
    cd Python-3.9.14

    # Выполняем конфигурирование.

    mkdir build && cd build
    ../configure --prefix= --enable-optimizations

    # Собираем и устанавливаем пакет.

    make
    make install

    Читать далее

  • Установка ClamAV из исходников на Debian 10 Buster

    # Устанавливаем необходимые пакеты зависимостей. Все действия ниже будут выполняться от root.

    apt-get install -y gcc g++ make pkg-config valgrind check libbz2-dev libcurl4-openssl-dev libjson-c-dev libmilter-dev libncurses5-dev libpcre2-dev libssl-dev libxml2-dev zlib1g-dev

    # Создаем сервисный аккаунт от которого будут работать службы (freshclam, clamd).

    groupadd clamav && useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav

     

    # Скачиваем исходник, раскаковываем его и переходим в распакованный каталог (на момент написания статьи LTS версия 0.103.7).

    cd /opt
    
    wget https://www.clamav.net/downloads/production/clamav-0.103.7.tar.gz
    tar -zxvf clamav-[ver].tar.gz
    cd clamav-[ver]
    ИНФОРМАЦИЯ: оф. страница https://www.clamav.net/downloads не доступна из РФ, поэтому скачиваем исходник через VPN.

     

    # Создаем «build» подкаталог и переходим в него.

    mkdir build && cd build
    ИНФОРМАЦИЯ: Это позволит легко удалить файлы сборки, если что-то пойдет не так и потребуется перенастроить и повторить попытку.

     

    # Конфигурирование сборки.

    ../configure --prefix=/usr --sysconfdir=/etc/clamav --with-dbdir=/var/lib/clamav --with-libjson=/usr/lib/x86_64-linux-gnu/libjson-c.a --enable-milter
    ИНФОРМАЦИЯ: Разработчики рекомендуют уставноку со статической библиотекой json-c  (—with-libjson-static), но для этого необходима установленная libjson-c версии 0.15 или новее.

    Статья как установить актуальную версию библиотеки json-c — https://sysos.ru/?p=735

     

    # Собираем и устанавливаем пакет.

    make
    make check VG=1
    make install

    Читать далее

  • Установка Let’s Encrypt SSL-сертификата в Zimbra Collaboration 8.X.

    На тот случай когда по тем или иным причинам нет возможности купить сертификат, мы разберем как выпустить и установить Let’s Encrypt SSL-сертификат в Zimbra Collaboration 8.X..

     

    Установим пакет для запросов сертификатов Let’s Encrypt:

    apt-get install certbot -y

     

    Перед тем как выпустить сертификат, выполним тестовый выпуск сертификата :

    certbot certonly --dry-run --standalone -d mail.contoso.com

    Если все хорошо и ошибок нет, то выпускаем сертификат:

    certbot certonly --standalone -d mail.contoso.com

    В процессе будет запрошен email администратора (указываем свой) и пара вопросов на которые отвечаем утвердительно.

    Enter email address (used for urgent renewal and security notices) (Enter 'c' to
    cancel): admin@contoso.com
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
    agree in order to register with the ACME server at
    https://acme-v02.api.letsencrypt.org/directory
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (A)gree/(C)ancel: A
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Would you be willing to share your email address with the Electronic Frontier
    Foundation, a founding partner of the Let's Encrypt project and the non-profit
    organization that develops Certbot? We'd like to send you email about our work
    encrypting the web, EFF news, campaigns, and ways to support digital freedom.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (Y)es/(N)o: Y

     

    Переходим в каталог letsencrypt с нашим доменом (/etc/letsencrypt/live/$DOMAIN/), скачаем корневые сертификаты от Let’s Encrypt и сформируем корректную цепочку сертификатов, чтобы Zimbra ее приняла:

    cd /etc/letsencrypt/live/$DOMAIN/
    
    wget -4 -O /etc/letsencrypt/live/$DOMAIN/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt
    wget -4 -O /etc/letsencrypt/live/$DOMAIN/letsencryptauthorityx3.pem https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt
    
    cat /etc/letsencrypt/live/$DOMAIN/isrgrootx1.pem > /etc/letsencrypt/live/$DOMAIN/zimbra_chain.pem
    cat /etc/letsencrypt/live/$DOMAIN/letsencryptauthorityx3.pem >> /etc/letsencrypt/live/$DOMAIN/zimbra_chain.pem
    cat /etc/letsencrypt/live/$DOMAIN/chain.pem >> /etc/letsencrypt/live/$DOMAIN/zimbra_chain.pem

    Читать далее

  • Шифрование по ГОСТ Р 34.10-2012 в OpenSSL 1.1.1 на Debian 10 Buster

    Опишу для памятки как реализовать поддержку шифрования по ГОСТ Р 34.10-2012 (GOST2012) в OpenSSL 1.1.1 на Debian 10 Buster.

    Реализация криптоалгоритмов российского ГОСТа для OpenSSL — https://github.com/gost-engine/engine

     

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

    apt-get install g++ gcc make

     

    Установка OpenSSL

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

    wget https://www.openssl.org/source/openssl-1.1.1p.tar.gz
    tar -zxvf openssl-1.1.1p.tar.gz
    cd openssl-1.1.1p
    

    Собираем пакет и устанавливаем его:

    ./config --prefix=/usr/ssl --openssldir=/usr/ssl
    make all
    make install
    cd ..

    Вносим изменения чтобы по умолчанию использовалась установленная версия:

    rm /usr/bin/openssl
    ln -s /usr/ssl/bin/openssl /usr/bin/openssl
    echo "/usr/ssl/lib" >> /etc/ld.so.conf.d/ssl.conf
    ldconfig

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

    openssl version -v
    OpenSSL 1.1.1p  21 Jun 2022

     

    Установка Cmake

    Для корректной сборки gost-engine, установим последнюю (на момент написания статьи) версию cmake.

     

    Устанавливаем необходимые зависимости:

    apt-get install git libssl-dev

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

    wget https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2.tar.gz
    tar -zxvf cmake-3.23.2.tar.gz
    cd cmake-3.23.2

    Собираем пакет и устанавливаем его:

    ./bootstrap --prefix=/usr
    make
    make install
    cd ..

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

    cmake --version
    cmake version 3.23.2
    

    Читать далее

  • Исправление истекшего срока действия ключа public key для packages.sury.org на Debian 10 Buster.

    В один прекрасный момент при попытке обновить пакеты php через репозиторий packages.sury.org получил ошибку недействительного публичного ключа для packages.sury.org^

    Нет доверия сертификату для «packages.sury.org». ОШИБКА: Срок действия сертификата «packages.sury.org» истёк.

    apt-get update
    
    Hit:1 http://deb.debian.org/debian buster InRelease
    Hit:2 http://security.debian.org/debian-security buster/updates InRelease
    Hit:3 http://deb.debian.org/debian buster-updates InRelease
    Get:4 https://packages.sury.org/php buster InRelease [6837 B]
    Err:4 https://packages.sury.org/php buster InRelease
      The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743
    Hit:5 https://repo.zabbix.com/zabbix/5.4/debian buster InRelease
    Reading package lists... Done
    W: GPG error: https://packages.sury.org/php buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743
    E: The repository 'https://packages.sury.org/php buster InRelease' is not signed.
    N: Updating from such a repository can't be done securely, and is therefore disabled by default.
    N: See apt-secure(8) manpage for repository creation and user configuration details.

    Чтобы это исправить, выполняем команды ниже:

    sudo rm -rf /etc/apt/trusted.gpg.d/php.gpg
    sudo apt-key del B188E2B695BD4743
    sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

    Для проверки обновляем данные по репозиториям:

    apt-get update

     

    В случае если в ходе обновления ключей возникают ошибки, то скорей всего какой то из ниже пакетов отсутствует в системе:

    apt-get install -y gnupg2 ca-certificates lsb-release apt-transport-https

    Читать далее

  • Как удалить пакет после «make install» в deb-like Linux системах.

    Столкнулся с таким вопросом — как удалить пакет собранный из исходников и установленный make install.

    Для памятки оставлю для метода как это сделать, все ниже действия производится на Debian 10 (более чем уверен что все описанное ниже будет применимо для всех deb-like Linux систем).

     

    Метод #1 (make uninstall)

    В случае если каталог сборки не был удален, то можно попробовать выполнить удаление, командой:

    cd $SOURCE_DIR 
    sudo make uninstall

    В случае если каталог сборки был удален, то можно загрузить его по новой, выполнить сборку (make) и удалить пакет методом #2.

     

    Метод #2 (install_manifest.txt)

    Если файл install_manifest.txt существует в вашем исходном каталоге, он должен содержать имена файлов каждого отдельного файла, созданного установкой.

    Сначала проверяем список файлов и время их обновления:

    cd $SOURCE_DIR 
    sudo xargs -I{} stat -c "%z %n" "{}" < install_manifest.txt

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

     

    Если все в порядке, то собираем файлы в один каталог для удаления:

    cd $SOURCE_DIR 
    mkdir deleted-by-uninstall
    sudo xargs -I{} mv -t deleted-by-uninstall "{}" < install_manifest.txt

    Читать далее

  • Установка chan_sccp на Asterisk 18 + FreePBX на Debian 10.

    Для памятки опишу как установить модуль 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.

    Читать далее