SCROLL

Статьи в категории «Linux»

Ранее я уже описывал как добавить поддержку шифрования по ГОСТ Р 34.10-2012 в OpenSSL на Debian 9, недавно возвращался к этому вопросу но уже на системе Debian 11, поэтому решил актуализировать под Debian 11.

 

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

 

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

apt-get install g++ gcc make git libssl-dev

 

Поддержу GOST-Engine будем реализовывать для OpenSSL 1.1.1p.

 

Выполняем сборку OpenSSL 1.1.1p, выполняем команды (скачиваем, распаковываем, собираем билд, устанавливаем, настраиваем):

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, должно быть так:

openssl version -v
OpenSSL 1.1.1p  21 Jun 2022

 

# Для сборки GOST Engine нужна версия CMake 3.0 и выше.

Рассмотрим как ввести систему 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

Collabora Online — это мощный офисный пакет на базе LibreOffice для совместной работы с документами в браузере. В рамках статьи будем устанавливать Collabora Online Development Edition (CODE) версию.

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

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

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

В продакшене используется связка 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]

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

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

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

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