Полезные команды по работе с SSL-сертификатами при помощи OpenSSL
Иногда приходится работать с SSL-сертификатами и каждый раз приходится вспоминать, либо искать информацию как сделать то или иное действие с сертификатами при помощи OpenSSL.
Иногда приходится работать с SSL-сертификатами и каждый раз приходится вспоминать, либо искать информацию как сделать то или иное действие с сертификатами при помощи OpenSSL.
Файл .pfx, который находится в формате PKCS#12, содержит сертификат SSL (открытые ключи) и соответствующие закрытые ключи. Иногда необходимо извлечь сертификат и закрытый ключ в незашифрованный текстовый формат, чтобы использовать их в другой системе.
В один момент перестала работать Kerberos/SSO аутентификация на сайте размещённом на веб-сервере Apache, в логах значатся ошибки вида.
Рассмотрим как настроить Kerberos Single Sign-On (SSO) с GSSAPI в Apache веб-сервере на Debian 11 Bullseye.
Исходные данные:
Сперва необходимо создать сервисную учетную запись (в моем случае это будет 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
В продакшене используется связка Nginx + Apache, где Nginx выступает в роли прокси-сервера для Apache. Рассмотрим как передавать реальный IP-адрес клиента в Apache с прокси Nginx, для отображения правильной информации в логах Apache, в противном случае в логах Apache будет по каждому запросу будет значится адрес прокси-сервера 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 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]
Рассмотрим как обрабатывать HTTP 404 в логах веб-сервера Nginx и блокировать злоумышленников которые пытаются найти уязвимости на опубликованных сайтах с помощью Fail2Ban.
Опишу как выполнить установку последний версии Ansible из исходников на Debian 11 Bullseye.
Официальный репозиторий Ansible — https://github.com/ansible/ansible
ODBC (Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, разработанный компанией Microsoft. ODBC предоставляет унифицированные средства взаимодействия прикладной программы (клиента) с сервером — базой данных.
Clam AntiVirus — пакет антивирусного ПО, работающий во многих операционных системах, включая Unix-подобные ОС, OpenVMS, Microsoft Windows и Apple macOS.
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]
Для памятки как настроить LDAP аутентификацию в Greenbone Vulnerability Management.
Для памятки себе и другим опишу ниже процесс удаления 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
JSON-C реализует объектную модель подсчета ссылок, которая позволяет вам легко создавать объекты JSON на C, выводить их в виде строк в формате JSON и анализировать строки в формате JSON обратно в представление объектов JSON на языке C.
Python — это высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью.
Clam AntiVirus — пакет антивирусного ПО, работающий во многих операционных системах, включая Unix-подобные ОС, OpenVMS, Microsoft Windows и Apple macOS.
Опишу для памятки как реализовать поддержку шифрования по ГОСТ Р 34.10-2012 (GOST2012) в OpenSSL 1.1.1 на Debian 10 Buster.
Реализация криптоалгоритмов российского ГОСТа для OpenSSL — https://github.com/gost-engine/engine
Устанавливаем необходимые зависимости для сборки пакетов:
apt-get install g++ gcc make
Скачиваем исходники, распаковываем их:
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
Для корректной сборки 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