SCROLL

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

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

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

 

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

doveadm expunge -A mailbox INBOX ALL

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

doveadm expunge -u example@domain.com mailbox INBOX ALL

[stextbox id=’info’]ИНФОРМАЦИЯ. Тут очищается папка «Входящие» — INBOX, для «Отправленные» надо заменить на SENT.[/stextbox]

 

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

doveadm expunge -A mailbox INBOX savedbefore 2w

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

doveadm expunge -A mailbox INBOX before 1d

PKI (Public Key Infrastructure) — это система, которая использует цифровые сертификаты для проверки подлинности и шифрования данных между устройствами и службами.

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

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

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

Рассмотрим как настроить Kerberos Single Sign-On (SSO) с GSSAPI в Apache веб-сервере на Debian 11 Bullseye.

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

  • Windows домен — jakonda.local
  • Доменная служебная учетная запись — svc.web
  • Linux машина — Debian 11

 

Сперва необходимо создать сервисную учетную запись (в моем случае это будет svc.web) и сгенерировать для нее KEYTAB-файл на домен контроллере Windows.

Делается все это командой ниже, не забываем подставить свои данные вместо моих.

ktpass -princ HTTP/web.jakonda.ru@JAKONDA.LOCAL -mapuser svc.web@JAKONDA.LOCAL -pass 3T2XgYCz2IFcBUo0altu -crypto ALL -ptype KRB5_NT_PRINCIPAL -out C:\Keytabs\svc.web.keytab

[stextbox id=’info’]ИНФОМАЦИЯ. где web.jakonda.ru — это имя веб-сервера на котором должна работать Kerberos SSO аутентификация, а JAKONDA.LOCAL это имя домена. Важно соблюдать регистр написания имени домена.[/stextbox]

Передаем сгенерированный KEYTAB-файл на Debian любым удобным способом и размещаем его в каталоге /etc, либо в любом другом безопасном месте месте.

 

Назначим права и уровень доступа к файлу:

chown root:www-data /etc/svc.web.keytab
chmod 640 /etc/svc.web.keytab

 

Устанавливаем пакеты веб-сервера apache, модуль аутентификации gssapi для него и kerberos.

apt-get install apache2 apache2-utils libapache2-mod-auth-gssapi krb5-user

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

В продакшене используется связка Nginx + Apache, где Nginx выступает в роли прокси-сервера для Apache. Рассмотрим как передавать реальный IP-адрес клиента в Apache с прокси Nginx, для отображения правильной информации в логах Apache, в противном случае в логах Apache будет по каждому запросу будет значится адрес прокси-сервера Nginx.

 

Nginx

В файле конфигурации вирутального хоста в секцию location необходимо добавить следующие параметры:

location / {
     ...
     proxy_set_header Host            $host;
     proxy_set_header X-Real-IP       $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     ...
}

 

Apache

В Apache 2.4 входит модуль mod_remoteip, который может перезаписывать удаленный IP-адрес. Настроим его чтобы он принимал проброс IP-адреса клиента с прокси-сервера Nginx.

 

Создаем конфигурацию для модуля mod_remoteip. Выполняем команду:

cat << EOF > /etc/apache2/conf-available/remoteip.conf
<IfModule remoteip_module>
        RemoteIPHeader X-Forwarded-For
        RemoteIPTrustedProxy 127.0.0.1
        RemoteIPInternalProxy 127.0.0.1
</IfModule>
EOF

[stextbox id=’warning’]ИНФОРМАЦИЯ. В случае если у вас проси-серве Nginx и Apache разнесены по разным серверам, то в параметре RemoteIPInternalProxy необходимо указать IP-адрес прокси-сервера.[/stextbox]

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

[stextbox id=’info’]Тестировалась работоспособность на deb-like Linux системах, думаю на rpm тоже будет работать.[/stextbox]

 

Скачиваем скрипт в любую директорию и распаковываем

wget -O hzcd.zip https://sysos.ru/download/1711
unzip hzcd.zip

Выполняем установку

./hzcd.sh --install && . ~/.bashrc

[stextbox id=’info’]Установка выполнится в ~/.hzcd директорию. Будут внесены изменения в ~/.bashrc[/stextbox]

Команды консоли:

  • .-l — показать список замапленных директорий
  • .-a — добавить текущею
  • .-d — удалить текущею

Любой алиас из списка перейти в указанную директорию. Для себя алиасы так-же назначаю через точку например .work

Рассмотрим как обрабатывать HTTP 404 в логах веб-сервера Nginx и блокировать злоумышленников которые пытаются найти уязвимости на опубликованных сайтах с помощью Fail2Ban.

Опишу как выполнить установку последний версии Ansible из исходников на Debian 11 Bullseye.
Официальный репозиторий Ansible — https://github.com/ansible/ansible

Рассмотрим как защитить Postfix от попыток авторизации с использованием SASL метода аутентификации.

Когда проверка подлинности завершается неудачей, в лог-файл /var/log/maill.log записываются записи вида:

Oct 20 08:00:42 mail postfix/smtps/smtpd[23234]: warning: unknown[5.34.207.172]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Oct 20 08:00:42 mail postfix/smtps/smtpd[23234]: lost connection after AUTH from unknown[5.34.207.172]

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

 

# Создаем фильтр Fail2Ban для поиска сбоев аутентификации:

cat << EOF > /etc/fail2ban/filter.d/postfix-sasl.conf
[INCLUDES]
before = common.conf
[Definition]
_daemon = postfix(-\w+)?/\w+(?:/smtp[ds])?
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
ignoreregex =
EOF

ODBC (Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, разработанный компанией Microsoft. ODBC предоставляет унифицированные средства взаимодействия прикладной программы (клиента) с сервером — базой данных.

Greenbone — это программное обеспечение для сканирования уязвимостей и управления ими с открытым исходным кодом. Оно предоставляет набор тестов на сетевую уязвимость для поиска лазеек безопасности в системах и приложениях.

Переодически нужно обновить MariaDB до 10.5 на Debian 10 и каждый раз вспоминаю как это сделать, поэтому для памятки оставлю как MariaDB до 10.5 и выше на Debian 10 Buster.

Обновил Zabbix c 5.4 до 6.4 и обнаружил что оповещения Telegram не работают, отображается ошибка — Sending failed: ReferenceError: identifier 'CurlHttpRequest' undefined

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

apt-get install build-essential linux-headers-`uname -r` apt-transport-https gnupg2 sudo apache2 mariadb-server mariadb-client default-libmysqlclient-dev bison flex curl sox libncurses5-dev libssl-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libcurl4-openssl-dev libical-dev libneon27-dev libspandsp-dev subversion libtool-bin python-dev unixodbc dirmngr -y

[stextbox id=’warning’]ВНИМАНИЕ. Желательно перезагрузить систему и после этого продолжить установку.[/stextbox]

 

# Устанавливаем PHP версии 7.4 (для корректной работы FreePBX fwconsole):

wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
apt-get update && apt-get install php7.4 php7.4-curl php7.4-cli php7.4-common php7.4-mysql php7.4-gd php7.4-mbstring php7.4-intl php7.4-xml php-pear -y

# Устанавливаем NodeJS :

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt-get install nodejs -y

# Устанавливаем поддержку MariaDB ODBC

wget https://downloads.mariadb.com/Connectors/odbc/latest/mariadb-connector-odbc-3.1.9-debian-buster-amd64.tar.gz
tar -zxvf mariadb*
cp -v mariadb-connector-odbc-3.1.9-debian-buster-amd64/lib/mariadb/libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/

[stextbox id=’alert’]ВНИМАНИЕ. На момент написание статьи версия MariaDB ODBC — 3.1.9, поэтому обращаем внимание на случай ошибок и при необходимости корректируйте версионность. Последние версии можно посмотреть на оф. сайте — https://downloads.mariadb.com/Connectors/odbc/latest/.[/stextbox]