• Защищено: Как настроить DU.ae SIP Trunk в FreePBX


    Данная статья доступна только для моих подписчиков на Boosty

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

    После оформления подписки, в приветственном сообщении будет указан пароль для доступа к закрытым статьям на блоге.

     

    Для его просмотра введите, пожалуйста, пароль:

  • Обновление Greenbone Vulnerability Management (GVM) на Debian 11 Bullseye

    Опишу порядок действий по обновлению Greenbone Vulnerability Management (GVM) до актуальной версии.

    Обновление GVM буду производить с версии 22.4.1 до 22.7.3 (самая актуальная на дату написания статьи). Все действия ниже будут выполняться от root.

     

    Сперва останавливаем службы GVM:

    systemctl stop notus-scanner
    systemctl stop ospd-openvas
    systemctl stop gvmd
    systemctl stop gsad
    

     

    Greenbone Security Assistant (GSA) требуется установленная версия NodeJS >= v18.x. В моем случае NodeJS была установлена версии v14.x., если у вас так же, то выполняем обновление NodeJS до v18.x.:

    export NODE_VERSION=node_18.x
    export KEYRING=/usr/share/keyrings/nodesource.gpg
    export DISTRIBUTION="$(lsb_release -s -c)"
    
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee "$KEYRING" >/dev/null
    gpg --no-default-keyring --keyring "$KEYRING" --list-keys
    echo "deb [signed-by=$KEYRING] https://deb.nodesource.com/$NODE_VERSION $DISTRIBUTION main" | sudo tee /etc/apt/sources.list.d/nodesource.list
    echo "deb-src [signed-by=$KEYRING] https://deb.nodesource.com/$NODE_VERSION $DISTRIBUTION main" | sudo tee -a /etc/apt/sources.list.d/nodesource.list
    
    apt-get update && apt-get upgrade
    node -v
    

     

    Для удобства создадим каталог для размещения актуальных версий пакетов входящих в состав GVM и скачиваем исходников пакетов и распаковываем их:

    mkdir -p /opt/update
    cd /opt/update/
    
    export GVM_LIBS_VERSION=$(curl -s https://api.github.com/repos/greenbone/gvm-libs/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export GVMD_VERSION=$(curl -s https://api.github.com/repos/greenbone/gvmd/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export PG_GVM_VERSION=$(curl -s https://api.github.com/repos/greenbone/pg-gvm/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export GSA_VERSION=$(curl -s https://api.github.com/repos/greenbone/gsa/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export GSAD_VERSION=$(curl -s https://api.github.com/repos/greenbone/gsad/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export OPENVAS_SMB_VERSION=$(curl -s https://api.github.com/repos/greenbone/openvas-smb/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export OPENVAS_SCANNER_VERSION=$(curl -s https://api.github.com/repos/greenbone/openvas-scanner/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export OSPD_OPENVAS_VERSION=$(curl -s https://api.github.com/repos/greenbone/ospd-openvas/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    export NOTUS_VERSION=$(curl -s https://api.github.com/repos/greenbone/notus-scanner/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | awk '{print $2}' | sed  's/^..\(.*\)..$/\1/')
    
    echo $GVM_LIBS_VERSION
    echo $GVMD_VERSION
    echo $PG_GVM_VERSION
    echo $GSA_VERSION
    echo $GSAD_VERSION
    echo $OPENVAS_SMB_VERSION
    echo $OPENVAS_SCANNER_VERSION
    echo $OSPD_OPENVAS_VERSION
    echo $NOTUS_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/pg-gvm/archive/refs/tags/v$PG_GVM_VERSION.tar.gz -o pg-gvm-$PG_GVM_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
    curl -f -L https://github.com/greenbone/notus-scanner/archive/refs/tags/v$NOTUS_VERSION.tar.gz -o notus-scanner-$NOTUS_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 pg-gvm-$PG_GVM_VERSION.tar.gz && mv pg-gvm-$PG_GVM_VERSION pg-gvm
    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
    tar -xvzf notus-scanner-$NOTUS_VERSION.tar.gz && mv notus-scanner-$NOTUS_VERSION notus-scanner

    Читать далее

  • Как очистить почтовые ящики Dovecot из командной строки.

    При использовании Postfix и Dovecot, в какой-то момент столкнулся с проблемой, что некоторые почтовые ящики пользователей заполнились настолько, что попытки удалить почту через web-клиент приводили к его зависанию. В папках было огромное количество спам-писем.

    Ниже приведу примеры как выполнять очистку почтовых ящиков пользователей.

     

    Для полной очистки папки INBOX для ВСЕХ пользоватлей, команда:

    doveadm expunge -A mailbox INBOX ALL

    Для полной очистки папки INBOX конкретного пользователя, команда:

    doveadm expunge -u example@domain.com mailbox INBOX ALL
    ИНФОРМАЦИЯ. Тут очищается папка «Входящие» — INBOX, для «Отправленные» надо заменить на SENT.

     

    Для очистки папки INBOX писем стерше 2х недель, выполним команду:

    doveadm expunge -A mailbox INBOX savedbefore 2w

    Для очистки папки INBOX писем стерше 1го дня, выполним команду:

    doveadm expunge -A mailbox INBOX before 1d

    Читать далее

  • Как ввести Debian в домен Windows (Active Directory) с помощью realmd, SSSD.

    Рассмотрим как ввести систему Debian в домен Windows с помощью realmd, SSSD.

    Realmd (Realm Discovery) – сервис D-Bus, позволяющий производить настройку сетевой аутентификации и членства в домене (Active Directory) без сложных настроек. Информация о домене обнаруживается автоматически. Для аутентификации и проверки учетных записей realmd использует SSSD (через Kerberos и LDAP) или Winbind.

    SSSD (System Security Services Daemon) — это клиентский компонент централизованных решений для управления идентификацией, таких как Microsoft Active Directory, Kerberos, OpenLDAP  и других серверов каталогов. SSSD обслуживает и кэширует информацию, хранящуюся на удаленном сервере каталогов, и предоставляет услуги идентификации, аутентификации и авторизации хост-машине.

     

    Исходные данные:

    • Контроллер домена (DC1) на Windows Server 2019, домен JAKONDA.LOCAL (IP — 192.168.1.100)
    • Linux система (debian) на Debian 11 Bullseye (IP — 192.168.1.10)

     

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

    # Обновляем информацию о репозиториях и обновляем установленные пакеты:

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

     

    Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле /etc/hostname:

    debian.jakonda.local

    Файл /etc/hosts приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP хоста:

    127.0.0.1	localhost
    192.168.1.10	debian.jakonda.local debian

     

    Настраиваем клиент DNS на хосте. Файл /etc/resolv.conf приводим к виду с учетом ваших данных:

    domain jakonda.local
    search jakonda.local
    nameserver 192.168.1.100

     

    Настройка синхронизации времени

    Очень важно для корректной работы чтобы разница во времени между хостом и домен контроллером была минимальная или не превышала более 5 минут, в противном случае не возможно получить билет от Kerberos. Настроим синхронизацию времени с контроллером домена.

     

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

    apt-get install ntp ntpdate

    В файле /etc/ntp.conf, указываем контроллер домена в качестве точки синхранизации, остальные комментируем :

    # You do need to talk to an NTP server or two (or three).
    server dc1.jakonda.local
    
    # pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
    # pick a different set every time it starts up.  Please consider joining the
    # pool: <http://www.pool.ntp.org/join.html>
    # pool 0.debian.pool.ntp.org iburst
    # pool 1.debian.pool.ntp.org iburst
    # pool 2.debian.pool.ntp.org iburst
    # pool 3.debian.pool.ntp.org iburst
    
    

    Выполняем единовременную синхронизацию времени с контроллером домена и запускаем службу:

    /etc/init.d/ntp stop
    ntpdate -bs jakonda.local
    /etc/init.d/ntp start

    Читать далее

  • Установка из исходников OpenConnect VPN-сервера (ocserv) на Debian 11 Bullseye

    Разберем как установить из исходников актуальную (на момент написания статьи) версию VPN-сервера OpenConnect 1.2.2 на Debian 11 Bullseye.

    # Все ниже действия будут производится из под root.

     

    # Обновляем информацию о репозиториях и обновляем установленные пакеты:

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

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

    apt-get install build-essential make pkg-config libgnutls28-dev libev-dev libpam0g-dev liblz4-dev libseccomp-dev libreadline-dev libnl-route-3-dev libkrb5-dev libradcli-dev libpcl1-dev libcjose-dev libjansson-dev liboath-dev libprotobuf-c-dev libtalloc-dev libhttp-parser-dev libcurlpp-dev libssl-dev libmaxminddb-dev libbsd-dev libsystemd-dev libwrap0-dev libuid-wrapper libpam-wrapper libnss-wrapper libsocket-wrapper gss-ntlmssp tcpdump protobuf-c-compiler iperf3 lcov ssl-cert libpam-oath

     

    # Скачиваем и распаковываем исходники OpenConnect (на момент написания статьи последняя версия 1.2.2):

    wget -P /opt/ https://www.infradead.org/ocserv/download/ocserv-1.2.2.tar.xz
    tar -xvf /opt/ocserv-1.2.2.tar.xz -C /opt/ 
    
    cd /opt/ocserv-1.2.2
    

    # Собираем и устанавливаем — OpenConnect:

    ./configure --prefix= --enable-oidc-auth
    
    make && make install

     

    # Создаем рабочий каталог для ocserv и копируем примеры файлов конфигурации в него:

    mkdir -p /etc/ocserv/
    
    cp doc/sample.config /etc/ocserv/ocserv.conf
    cp doc/sample.passwd /etc/ocserv/
    cp doc/sample.otp /etc/ocserv/
    cp doc/profile.xml /etc/ocserv/

     

    # Создаем пользователя ocserv от которого будет работать служба:

    useradd -r -M -U -s /usr/sbin/nologin ocserv

    Читать далее

  • Центр сертификации OpenSSL (Root и Intermediate CA certificates) на Debian 11 Bullseye

    Разберем как поднять двухуровневую PKI (Root и Intermediate CA) инфраструктуру на базе OpenSSL в Debian 11 Bullseye.

    Схема PKI (Root и Intermediate CA) инфраструктуры:

     

    Используемые сервера и их обозначения в инструкции ниже:

    • Корневой ЦС — rootCA
    • Промедуточный ЦС — intermidiateCA
    • OCSP Responder — intermidiateCA
    • Веб-сервер — webCA

     

    Устанавливаем OpenSSL на оба сервера (rootCA, intermidiateCA):

    apt-get install openssl -y
    ИНФОРМАЦИЯ. Если необходима поддерка шифрования по ГОСТ Р 34.10-2012 в OpenSSL, то установку OpenSSL следует выполнять по этой статье — Шифрование по ГОСТ Р 34.10-2012 в OpenSSL 1.1.1 на Debian 10 Buster 

     

    Корневой центр сертификации (Offline Root CA)

    Структура каталогов и файлов

    Создадим структуру каталогов для хранения файлов ЦС, сертификатов и закрытых ключей:

    mkdir -p /opt/CA/rootCA/{certs,crl,newcerts,private,csr}
    cd /opt/CA/rootCA
    
    

    где:

    certs Этот каталог содержит сертификаты, сгенерированные и подписанные ЦС.
    crl Каталог списка отзыва сертификатов (CRL) содержит списки отзыва сертификатов, сгенерированные ЦС.
    newcerts В этом каталоге хранится копия каждого сертификата, подписанного ЦС, с серийным номером сертификата в качестве имени файла.
    private Этот каталог содержит закрытые ключи для ЦС, включая закрытые ключи корневого ЦС и промежуточного ЦС. Эти ключи используются для подписи сертификатов и CRL.
    csr В этом каталоге хранится копия каждого запроса сертификата.

    Читать далее

  • Как изменить размер раздел диска Linux

    Рассмотрим как на виртуальной машине Linux увеличить раздел диска без LVM.

    Исходные данные

    • Debian 11
    • Исходный размер /dev/sda — 20G
    • Необходимо увеличить размер /dev/sda — 25G

     

    Исходные данные

    В системе один диск /dev/sda размером 20G, отобразим информацию по нему:

    fdisk -l
    
    Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x73000288
    
    Device Boot Start End Sectors Size Id Type
    /dev/sda1 * 2048 39942143 39940096 19G 83 Linux
    /dev/sda2 39944190 41940991 1996802 975M 5 Extended
    /dev/sda5 39944192 41940991 1996800 975M 82 Linux swap / Solaris
    df -h
    
    Filesystem Size Used Avail Use% Mounted on
    udev       944M 0     944M   0% /dev
    tmpfs      192M 500K  192M   1% /run
    /dev/sda1   19G 990M   17G   6% /
    tmpfs      960M    0  960M   0% /dev/shm
    tmpfs      5.0M    0  5.0M   0% /run/lock
    tmpfs      192M    0  192M   0% /run/user/1000

     

    Увеличение размера диска

    Увеличиваем размер жесткого диска в ВМ, в моем случае я увеличиваю до 25G. После расширения диска в ВМ, принудительно выполним рескан дисков, командой:

    echo 1 > /sys/block/sda/device/rescan

    Проверяем изменения. В случае если после рескана размер диска не увеличился в системе, то выполняем перезагрузку и проверяем повторно.

    fdisk -l
    
    Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x73000288
    
    Device     Boot    Start      End  Sectors  Size Id Type
    /dev/sda1  *        2048 39942143 39940096   19G 83 Linux
    /dev/sda2       39944190 41940991  1996802  975M  5 Extended
    /dev/sda5       39944192 41940991  1996800  975M 82 Linux swap / Solaris
    ВНИМАНИЕ. Рекомендуется перед последующими действиями сделать резервную копию ВМ.

    Читать далее

  • Не освободилось место после удаления файла в Linux

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

     

    К примеру мы имеем большой файл /var/log/mysql/error.log и мы его удалили:

    rm -rf /var/log/mysql/error.log

     

    Теперь проверим удалился ли файл или все еще фактически остался на диске и используется каким либо процессом, выполним команду:

    lsof | grep deleted | grep error.log
    
    COMMAND   PID  TID TASKCMD   USER   FD   TYPE   DEVICE   SIZE/OFF  NODE   NAME
    mariadbd  641  768 mariadbd  mysql  6u   REG    8,1      178689523 917524 /var/log/mysql/error.log (deleted)

    Видим что файл /var/log/mysql/error.log с пометкой (deleted) занят процессом mariadbd и не может быть удален. Можно конечно перезагрузить сервер и тогда файл удалится, но не всегда перезагрузка возможна, поэтому мы освободим удаленный файл от процесса, тем самым высвободим занимаемое им место.

     

    Зная PID процесса (641) найдем номер файлового дескриптора удаленного файла, командой:

    ls -l /proc/641/fd | grep error.log
    
    l-wx—— 1 root root 64 Dec 25 10:00 10 -> /var/log/mysql/error.log

    Читать далее

  • Полезные команды по работе с SSL-сертификатами при помощи OpenSSL

    Иногда приходится работать с SSL-сертификатами и каждый раз приходится вспоминать, либо искать информацию как сделать то или иное действие с сертификатами при помощи OpenSSL.

    Поэтому решил создать дополняему статью на тему полезных команд по работе с SSL-сертификатами при помощи OpenSSL.

     

    Проверка на валидность сертификата

    Проверка .pem, .crt — сертификата.
    Проверка .key — приватного ключа.
    Проверка .csr — ключ запроса сертификата.

    MD5 у всех должен совпадать. Важно чтобы MD5 были одинаковые только у приватного ключа (.key) и сертификата (.pem, .crt), .csr нужен в случае если понадобится продлевать данный сертификат.

    openssl x509 -noout -modulus -in server.crt | openssl md5
    openssl rsa -noout -modulus -in server.key | openssl md5
    openssl req -noout -modulus -in request.csr | openssl md5

    Пример.

    root@openssl:~/intermediate# openssl rsa -noout -modulus -in private/server.key | openssl md5
    (stdin)= f6647d0867087e0adae0d65d5451a994
    root@openssl:~/intermediate# openssl x509 -noout -modulus -in certs/server.crt | openssl md5
    (stdin)= f6647d0867087e0adae0d65d5451a994
    root@openssl:~/intermediate# openssl req -noout -modulus -in csr/server.csr | openssl md5
    (stdin)= f6647d0867087e0adae0d65d5451a994
    

    Читать далее

  • Как извлечь файлы .crt и .key из файла .pfx

    Файл .pfx, который находится в формате PKCS#12, содержит сертификат SSL (открытые ключи) и соответствующие закрытые ключи. Иногда необходимо извлечь сертификат и закрытый ключ в незашифрованный текстовый формат, чтобы использовать их в другой системе.

    Рассморим как преобразовать файл .pfx в отдельные файлы .crt и .key.

     

    Извлечение .crt и .key из файла .pfx

    Команда чтобы извлечь закрытый ключ:

    openssl pkcs12 -in [yourfile.pfx] -nocerts -out [encrypted_key.key]

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

     

    Команда чтобы расшифровать закрытый ключ:

    openssl rsa -in [encrypted_key.key] -out [decrypted_key.key]

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

     

    Команда чтобы извлечь сертификат:

    openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [certificate.crt]

    Читать далее