• Как переименовать сервер Zimbra Collaboration 8.X.

    Столкнулся с необходимость в переименовании имени почтового сервера 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, в противном случае в файлах логов будет фигурировать старое имя сервера и из за этого при построения графиков в Веб-интерфейсе будет выпадать ошибка.

    Читать далее

  • Пересоздание базы данных Logger в Zimbra Collaboration 8.X.

    После манипуляции и переименованием имени сервера 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"
    ИНФОРМАЦИЯ. По завершении инициализации служба logger будет автоматически запущена.

    Читать далее

  • Установка коммерческого (commercial) SSL-сертификата в Zimbra Collaboration 8.X.

    Опишу как установить коммерческий (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/*
    ВНИМАНИЕ! прошу обратить внимание что путь установки Zimbra может отличаться от моего, поэтому учитывайте это при копировании сертификатов.

     

    Выполняем верификацию сертификатов:

    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 5.5 с поддержкой HTTPS (ssl_bump) на Debian 10 Buster

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

    ИНФОРМАЦИЯ. Хочу сообщить что ниже описанное руководство, так же применимо к установке младших версии Squid 4, 5.x

     

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

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

    apt-get update
    apt-get install build-essential make libssl-dev libkrb5-dev libldap2-dev libk5crypto3 libsasl2-dev libpam0g libcap2-dev

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

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

    Выполняем конфигурирование с поддержкой HTTPS:

    ./configure --prefix=/usr --localstatedir=/var --libexecdir=/usr/lib/squid --datadir=/usr/share/squid --sysconfdir=/etc/squid --enable-ssl-crtd --with-openssl --enable-translation --enable-cpu-profiling --disable-dependency-tracking -enable-delay-pools --enable-icmp --enable-linux-netfilter --enable-external-acl-helpers --with-large-files --with-default-user=proxy --with-logdir=/var/log/squid --with-pidfile=/var/run/squid.pid

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

    make
    make install

    Создаем необходимые каталоги, для работы Squid и назначаем для них права доступа:

    mkdir -p /var/log/squid
    mkdir -p /etc/squid/ssl
    
    chown proxy:proxy /var/log/squid
    chown proxy:proxy /etc/squid/ssl
    chmod 700 /var/log/squid
    chmod 700 /etc/squid/ssl

    Создаем стартовый скрипт Squid — /etc/init.d/squid:

    Читать далее

  • Как отключить сетевой IPv6 интерфейс в Linux

    Периодически пытаюсь вспомнить как отключить сетевой IPv6 интерфейс в Linux, поэтому для памятки себе оставлю тут как это сделать.

    Отключать IPv6 будем через ядро системы, это наиболее правильный способ открываем на редактирование файл /etc/sysctl.conf

    # Turn off IPv6
    #
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    ИНФОРМАЦИЯ: Это отключит IPv6 на всех доступных в системе сетевых интерфейсах.

    Если необходимо отключить IPv6 на отдельном взятом интерфейсе (прим. ens192), то указывает только. Если в системе несколько интерфейсов, то добавляем по аналогии строку для каждого дополнительного интерфейса.

    net.ipv6.conf.ens192.disable_ipv6 = 1

    Для вступления изменений в силу, заставим sysctl перечитать файл /etc/sysctl.conf:

    sysctl -p

    Читать далее

  • Как установить MySQL 8.0 / 5.7 на Debian 11 / Debian 10

    # Добавляем в систему репозиторий MySQL.

    wget https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb
    dpkg -i mysql-apt-config_0.8.18-1_all.deb
    Установщик пакета предложит вам выбрать версию MySQL для создания репозитория. По умолчанию для конфигурации репозитория выбрана версия MySQL 8.0.

    # Обновляем индекс репозитория

    apt-get update
    apt-get install mysql-community-server -y
    Во время установки будет предложено ввести пароль от root пользователя, а так же в случае установки MySQL 8.0 будет предложено выбрать метод аутентификации. 

    # Выполняем настройку безопасности MySQL сервера.

    mysql_secure_installation

     

    В случае если в процессе обновления индексов репозитория вы увидите ошибку не доступности публичного ключа MySQL репозитория:

    Err:2 http://repo.mysql.com/apt/debian buster InRelease
      The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
    W: GPG error: http://repo.mysql.com/apt/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29
    E: The repository 'http://repo.mysql.com/apt/debian 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.

    # Добавляем публичный ключ MySQL репозитория и обновляем локальные индексы репозитория.

    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29 apt-get update

    Читать далее

  • Подключение к Exchange Online через PowerShell на Debian 10 Buster

    # Устанавливаем powershell c репозиториев Microsoft.

    # Download the Microsoft repository GPG keys
    wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb
    
    # Register the Microsoft repository GPG keys
    sudo dpkg -i packages-microsoft-prod.deb
    
    # Update the list of products
    sudo apt-get update
    
    # Install PowerShell
    sudo apt-get install -y powershell
    
    В Debian 10 в репозиториях версия Openssl 1.1.1 и используемые SSL библиотеки этой версии при попытке подключения к Exchange Online приводят к ошибке:

    /usr/bin/pwsh: symbol lookup error: /opt/microsoft/powershell/7/libmi.so: undefined symbol: SSL_library_init

    Для решения этой проблемы установим версию Openssl 1.0.2u.

    # Скачиваем исходник пакета Openssl 1.0.2u,

    wget https://github.com/openssl/openssl/archive/OpenSSL_1_0_2u.tar.gz
    tar -zxvf OpenSSL_1_0_2u.tar.gz
    

    # Собираем и устанавливаем пакет — Openssl 1.0.2u (устанавливаем в несистемный каталог, чтобы он не перезаписать текущую версию)

    cd openssl-OpenSSL_1_0_2u
    
    ./config --prefix=/opt/openssl/1.0.2u shared
    make test
    make clean
    make install

    # Настраиваем симлинки в /opt/microsoft/powershell/7 для libssl и libcrypto, чтобы они указывали на версии 1.0.2.

    ln -sf /opt/openssl/1.0.2u/libssl.so.1.0.0 /opt/microsoft/powershell/7/libssl.so.1.0.0
    ln -sf /opt/openssl/1.0.2u/libcrypto.so.1.0.0 /opt/microsoft/powershell/7/libcrypto.so.1.0.0
    

    Читать далее

  • Установка Imapsync на Ubuntu 20.04 & Debian 10 Buster

    # Устанавливаем необходимые пакеты зависимостей.

    apt install libauthen-ntlm-perl libcgi-pm-perl libcrypt-openssl-rsa-perl libdata-uniqid-perl libencode-imaputf7-perl libfile-copy-recursive-perl libfile-tail-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-tee-perl libhtml-parser-perl libjson-webtoken-perl libmail-imapclient-perl libparse-recdescent-perl libmodule-scandeps-perl libreadonly-perl libregexp-common-perl libsys-meminfo-perl libterm-readkey-perl libtest-mockobject-perl libtest-pod-perl libunicode-string-perl liburi-perl libwww-perl libtest-nowarnings-perl libtest-deep-perl libtest-warn-perl libdist-checkconflicts-perl libpar-packer-perl libtest-fatal-perl libtest-modern-perl libtest-requires-perl libtest-mock-guard-perl libproc-processtable-perl make time cpanminus git -y
    
    apt-get install apt-file -y
    apt-file update
    

    # Скачиваем исходник пакета Imapsync.

    cd /opt/ 
    git clone https://github.com/imapsync/imapsync.git
    cd imapsync/

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

    make
    make testp
    make install

    # Можно проверить работоспособность установленного пакета командой.

    imapsync --testslive

    # Перед миграцией убедитесь, что на обеих учетных записях запущен IMAP и они доступны из вашей системы. После этого используйте следующий синтаксис команды:

    imapsync \
    --host1 imap.source.example.com \
    --user1 user@example.com \
    --password1 S0urcePassw0rd \
    --ssl1 \
    --host2 imap.dest.example.com \
    --user2 user@example.com \
    --password2 Dest1nat10NPassw0rd \
    --ssl2

     

    Читать далее

  • Установка и настройка SMTP-клиента MSMTP на Debian

    # Устанавливаем пакет msmtp и зависимости.

    apt-get install msmtp msmtp-mta ca-certificates -y

    # Создаем файл конфигурации

    nano /etc/msmtprc

    # Пример конфигурации msmtp на примере учетной записи Exchange Online (office365)

    # ------------------------------------------------------------------------------
    # Configuration file
    # ------------------------------------------------------------------------------
    
    # A system wide configuration is optional.
    # If it exists, it usually defines a default account.
    # This allows msmtp to be used like /usr/sbin/sendmail.
    
    # ------------------------------------------------------------------------------
    # Accounts
    # ------------------------------------------------------------------------------
    
    account exchanceonline
    host smtp.office365.com
    port 587
    from no-reply@contoso.com
    auth on
    user no-reply@contoso.com
    password secret
    syslog LOG_MAIL
    
    logfile /var/log/msmtp.log
    
    # ------------------------------------------------------------------------------
    # Configurations
    # ------------------------------------------------------------------------------
    
    # Use TLS.
    tls on
    tls_starttls on
    tls_trust_file /etc/ssl/certs/ca-certificates.crt
    
    # Set a default account
    account default : exchanceonline
    
    aliases /etc/aliases
    # ------------------------------------------------------------------------------#

     

    Пример как указываются aliases для пользователей (прим. root). Если файл /etc/aliases не существует, то создайте его.

    root: admin@contoso.com

    Проверить работу и корректность настройки почтового профиля msmtp можно командой:

    echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" | msmtp --debug -t admin@contoso.com

    Читать далее

  • Установка Greenbone Vulnerability Management (GVM) 21.04 на Debian 10 Buster

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

    apt-get install build-essential curl cmake pkg-config libglib2.0-dev libgpgme-dev libgnutls28-dev uuid-dev libssh-gcrypt-dev libhiredis-dev libxml2-dev libpcap-dev libnet1-dev libldap2-dev libradcli-dev libpq-dev gcc-mingw-w64 libpopt-dev libunistring-dev heimdal-dev perl-base bison libgcrypt20-dev libksba-dev nmap python-impacket libsnmp-dev libical-dev xsltproc rsync texlive-latex-extra texlive-fonts-recommended xmlstarlet zip rpm fakeroot nsis gnupg gpgsm sshpass socat snmp gnutls-bin xml-twig-tools libmicrohttpd-dev python3-lxml python3-pip python3-setuptools python3-packaging python3-wrapt python3-cffi python3-psutil python3-lxml python3-defusedxml python3-paramiko python3-redis -y
    

    # Веб интерфейс GVM написан на JavaScript и использует фреймворк React. Для поддержки JavaScript-зависимостей установим yarn.

    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add
    echo deb https://dl.yarnpkg.com/debian/ stable main | tee /etc/apt/sources.list.d/yarn.list
    
    apt-get update
    apt-get install yarn -y
    
    yarn install
    yarn upgrade

    # Установка PostgreSQL.

    apt-get install postgresql postgresql-contrib postgresql-server-dev-11 -y

    # Настройка пользователя и базы данных PostgreSQL и настройка разрешений и расширений базы данных.

    sudo -Hiu postgres createuser gvm
    sudo -Hiu postgres createdb -O gvm gvmd
    sudo -Hiu postgres psql -c 'create role dba with superuser noinherit;' gvmd
    sudo -Hiu postgres psql -c 'grant dba to gvm;' gvmd
    sudo -Hiu postgres psql -c 'create extension "uuid-ossp";' gvmd
    sudo -Hiu postgres psql -c 'create extension "pgcrypto";' gvmd

    # Применение изменений и включение в автозагрузку службу PostgreSQL.

    systemctl restart postgresql
    systemctl enable postgresql

    # Создаем пользователя GVM от которого будет работать система.

    useradd -r -M -U -s /usr/sbin/nologin -c "GVM User" gvm

    # Скачиваем исходники пакетов входящих в состав системы GVM 21.04 и распаковываем их.

    mkdir -p /opt/gvm-source
    cd /opt/gvm-source/
    
    export GVM_VERSION=21.4.4
    export GVM_LIBS_VERSION=$GVM_VERSION
    export GVMD_VERSION=21.4.5
    export GSA_VERSION=$GVM_VERSION
    export GSAD_VERSION=$GVM_VERSION
    export OPENVAS_SMB_VERSION=21.4.0
    export OPENVAS_SCANNER_VERSION=$GVM_VERSION
    export OSPD_OPENVAS_VERSION=$GVM_VERSION
    
    curl -f -L https://github.com/greenbone/gvm-libs/archive/refs/tags/v$GVM_LIBS_VERSION.tar.gz -o gvm-libs-$GVM_LIBS_VERSION.tar.gz
    curl -f -L https://github.com/greenbone/gvmd/archive/refs/tags/v$GVMD_VERSION.tar.gz -o gvmd-$GVMD_VERSION.tar.gz
    curl -f -L https://github.com/greenbone/gsa/archive/refs/tags/v$GSA_VERSION.tar.gz -o gsa-$GSA_VERSION.tar.gz
    curl -f -L https://github.com/greenbone/gsad/archive/refs/tags/v$GSAD_VERSION.tar.gz -o gsad-$GSAD_VERSION.tar.gz
    curl -f -L https://github.com/greenbone/openvas-smb/archive/refs/tags/v$OPENVAS_SMB_VERSION.tar.gz -o openvas-smb-$OPENVAS_SMB_VERSION.tar.gz
    curl -f -L https://github.com/greenbone/openvas-scanner/archive/refs/tags/v$OPENVAS_SCANNER_VERSION.tar.gz -o openvas-scanner-$OPENVAS_SCANNER_VERSION.tar.gz
    curl -f -L https://github.com/greenbone/ospd-openvas/archive/refs/tags/v$OSPD_OPENVAS_VERSION.tar.gz -o ospd-openvas-$OSPD_OPENVAS_VERSION.tar.gz
    
    tar -xvzf gvm-libs-$GVM_LIBS_VERSION.tar.gz && mv gvm-libs-$GVM_LIBS_VERSION gvm-libs
    tar -xvzf gvmd-$GVMD_VERSION.tar.gz && mv gvmd-$GVMD_VERSION gvmd
    tar -xvzf gsa-$GSA_VERSION.tar.gz && mv gsa-$GSA_VERSION gsa
    tar -xvzf gsad-$GSAD_VERSION.tar.gz && mv gsad-$GSAD_VERSION gsad
    tar -xvzf openvas-smb-$OPENVAS_SMB_VERSION.tar.gz && mv openvas-smb-$OPENVAS_SMB_VERSION openvas-smb
    tar -xvzf openvas-scanner-$OPENVAS_SCANNER_VERSION.tar.gz && mv openvas-scanner-$OPENVAS_SCANNER_VERSION openvas-scanner
    tar -xvzf ospd-openvas-$OSPD_OPENVAS_VERSION.tar.gz && mv ospd-openvas-$OSPD_OPENVAS_VERSION ospd-openvas
    

    Читать далее