Astra linux pam авторизация

Настройка PAM авторизации в защищенном Apache

Как уже упоминалось в одной из наших предыдущих заметок, в состав Astra Linux Special Edition входит защищенный комплекс программ гипертекстовой обработки данных, в качестве веб-сервера туда включен Apache2, который доработан с целью улучшения безопасности. В данной заметке мы коротко опишем как настроить данный веб-сервер с использованием PAM авторизации.

  1. Ставим пакеты
  2. Проверяем, что в файле /etc/apache2/ports.conf содержатся следующие строки (если конечно Вы собираетесь использовать стандартный 80, а не какой-нибудь другой порт):
  3. Создаем конфигурацию виртуального хоста (в примере сайтик из одной стандартной страницы It works!):
  4. Включаем PAM авторизацию и наш виртуальный хост:
  5. Для корректного функционирования авторизации через PAM пользователю, от которого работает веб-сервер (по-умолчанию — www-data), необходимо выдать права на чтение информации из БД пользователей и сведений о мандатных метках, для этого выполняем следующие команды:
  6. Затем для пользователя под которым будем заходить, выполняем команду настройки (по-сути просто сбрасываем в 0) минимальный и максимальный наборы мандатных категорий (мы их и не настраивали):
  7. Открываем браузер обращаемся по именисервера, который указали в конфигурационном файле виртуального хоста, и должны увидеть сперва окно с предложением ввести логи\пароль и после успешного ввода данных Вам откроется страница c текстом «It works!», как на картинке ниже:

На очереди рассказ про настройку kerberos авторизации. Stay tuned!

Смотрите также нашу статью «Веб-приложения в защищённой среде» и вопросы посетителей, касающиеся Apache.

Похожие статьи

Сборка Mono для Debian и Astra Linux

Команда Лаборатории 50 подготовила сборку Mono для Debian Buster и Astra Linux Special Edition 1.6. Состав В сборку входит: Mono 6.12; LibGdiPlus 6.0.6; Entity Framework 6; драйвер Npgsql Entity Framework.

ГосJava 2020.3

Изменения по сравнению с версией 2020.2 Java Runtime Environment Импортированы исправления из OpenJDK 8u262. Закрыты уязвимости: CVE-2020-14583: incomplete interface type checks in Graal compiler (Hotspot, 8236867). CVE-2020-14664: out-of-bounds write in.

Запуск нескольких экземпляров Tomcat

Запуск нескольких экземпляров Apache Tomcat Если есть необходимость запуска нескольких экземпляров сервера Apache Tomcat, то стандартные настройки и скрипты запуска не подходят. Ниже приведена инструкция и примеры скриптов для решения.

39 Comments

Интересная заметка. Проверил, действительно работает. Значит ли это, что в качестве аутентификации можно использовать пользователей домена. И, есть ли возможность использовать эту аутентификацию на PHP?

Пользователей ALD не получится использовать, по крайней мере без танцев с бубном, если нужно ходить ald’шными, то тут самое оно это керберосная авторизация… постараюсь написать в ближайшее время.
Про php:
1. Повторяем пункты из статьи
2. aptitue install libapache2-mod-php5
3. nano /var/www/test.php
4. вводим, например:
# test. php

Читайте также:  Rus tv player ��� linux

5. вводим в браузере имясервера/test.php
6. профит

А если имелся ввиду php-auth-pam…то это скучная история.

Здравствуйте.
Какие репозитории используются? libapache2-mod-php5 нет на диске с astra linux se 1.4

Проверил, в наличии (пакетlibapache2-mod-php55.4.4−2astra2_amd64.deb)

А можно ли выключить авторизацию вообще или проводить авторизацию по ip адресам, а не используя парольную защиту.

Источник

Как использовать PAM-модули для локальной аутентификации в Linux по ключам ГОСТ-2012 на Рутокене

Простые пароли не защищают, а сложные невозможно запомнить. Поэтому они так часто оказываются на стикере под клавиатурой или на мониторе. Чтобы пароли оставались в головах “забывчивых” пользователей и надёжность защиты не терялась – есть двухфакторная аутентификация (2ФА).

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

Кроме того, в госучреждениях бывает, что хотят, чтобы всё работало по ГОСТу. О таком варианте 2ФА для входа в Линукс и пойдёт речь. Начну издалека.

PAM-модули

Подключаемые модули аутентификации (Pluggable Authentication Modules, PAM) — это модули со стандартным API и реализациями различных механизмов аутентификации в приложениях.
Все утилиты и приложения, умеющие работать с PAM, подхватывают их и могут использовать для аутентификации пользователя.
На практике это работает примерно так: команда login обращается к PAM, который выполняет все необходимые проверки с помощью указанных в конфигурационном файле модулей и возвращает результат обратно команде login.

librtpam

Разработанный компанией «Актив» модуль добавляет двухфакторную аутентификацию пользователей по смарт-картам или USB-токенам с помощью асимметричных ключей по последним стандартам отечественной криптографии.

Рассмотрим принцип его работы:

  • на токене хранится сертификат пользователя и его закрытый ключ;
  • сертификат сохранён в домашнем каталоге пользователя как доверенный.

Процесс аутентификации происходит следующим образом:

  1. На Рутокене выполняется поиск личного сертификата пользователя.
  2. Запрашивается PIN-код токена.
  3. Происходит подпись случайных данных на закрытом ключе непосредственно в чипе Рутокена.
  4. Полученная подпись проверяется с помощью открытого ключа из сертификата пользователя.
  5. Модуль возвращает вызвавшему приложению результат проверки подписи.

Можно аутентифицироваться по ключам ГОСТ Р 34.10-2012 (длины 256 или 512 бит) или устаревшему ГОСТ Р 34.10-2001.

За безопасность ключей можно не беспокоиться – они генерируются непосредственно в Рутокене и никогда не покидают его память во время криптографических операций.

Рутокен ЭЦП 2.0 сертифицирован ФСБ и ФСТЭК по НДВ 4, поэтому может применяться в информационных системах, обрабатывающих конфиденциальную информацию.

Практическое использование

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

sudo apt-get install libccid pcscd opensc
Если хотите добавить блокировку рабочего стола скринсейвером – дополнительно установите пакет libpam-pkcs11 .

2) Добавляем PAM-модуль с поддержкой ГОСТов

Загружаем библиотеку с https://download.rutoken.ru/Rutoken/PAM/
Копируем содержимое папки PAM librtpam.so.1.0.0 в системную папку
/usr/lib/ или /usr/lib/x86_64-linux-gnu/ или /usr/lib64

Читайте также:  Astra linux minimal install

3) Устанавливаем пакет с librtpkcs11ecp.so

Загружаем и устанавливаем DEB- или RPM-пакет по ссылке: https://www.rutoken.ru/support/download/pkcs/

4) Проверяем, что Рутокен ЭЦП 2.0 работает в системе

В терминале выполняем
$ pkcs11-tool —module /usr/lib/librtpkcs11ecp.so -T
Если увидите строку Rutoken ECP – значит всё хорошо.

5) Считываем сертификат

Проверяем, что на устройстве есть сертификат
$ pkcs11-tool —module /usr/lib/librtpkcs11ecp.so -O
Если после строчки:
Using slot 0 with a present token (0x0)

  • выводится информация о ключах и сертификатах, то необходимо считать сертификат и сохранить на диск. Для этого выполните следующую команду, где вместо нужно подставить ID-сертификата, который вы увидели в выводе предыдущей команды:
    $ pkcs11-tool —module /usr/lib/librtpkcs11ecp.so -r -y cert —id —output-file cert.crt
    В случае если файл cert.crt создан переходим к пункту 6).
  • нет ничего, значит устройство пустое. Обратитесь к администратору или создайте ключи и сертификат самостоятельно, следуя следующему пункту.

5.1) Создаём тестовый сертификат

Внимание! Описанные способы создания ключей и сертификатов подходят для тестирования и не предназначены для применения в боевом режиме. Для этого нужно использовать ключи и сертификаты, изданные доверенным центром сертификации вашей организации или аккредитованным удостоверяющим центром.
PAM-модуль создан защищать локальные компьютеры и подразумевает работу в небольших организациях. Поскольку пользователей немного, Администратор может сам следить за отзывом сертификатов и вручную блокировать учетные записи, как и за сроком действия сертификатов. PAM-модуль пока не умеет проверять сертификаты по CRL и строить цепочки доверия.

Простой путь (через браузер)

Для получения тестового сертификата используйте веб-сервис «Центр регистрации Рутокен». Процесс займёт не более 5 минут.

Путь гика (через консоль и, возможно, компилятор)

Проверьте версию OpenSC
$ opensc-tool —version
Если версия меньше чем 0.20, то обновитесь или соберите ветку pkcs11-tool с поддержкой ГОСТ-2012 из нашего GitHub-а (на момент выхода этой статьи релиз 0.20 ещё не выпущен) или из ветки master основного проекта OpenSC не позднее коммита 8cf1e6f

Генерируем ключевую пару с параметрами:
—key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)

—id: идентификатор объекта (CKA_ID) в виде двузначных номеров символов в hex из таблицы ASCII. Используйте только ASCII-коды печатных символов, т.к. id нужно будет передать OpenSSL в виде строки. Например, ASCII-кодам “3132” соответствует строка «12». Для удобства, можно воспользоваться онлайн-сервисом конвертации строки в ASCII-коды.

$ ./pkcs11-tool —module /usr/lib/librtpkcs11ecp.so —keypairgen —key-type GOSTR3410-2012-512:A -l —id 3132

Далее будем создавать сертификат. Ниже будет описано два пути: первый через УЦ (мы будем использовать тестовые УЦ), второй – самоподписанный. Для этого сначала надо установить и настроить OpenSSL версии 1.1 или новее для работы с Рутокен через специальный модуль rtengine используя руководство Установка и настройка OpenSSL.
Например: для ‘- -id 3132 ’ в OpenSSL надо указывать » pkcs11:id=12 «.

Можно воспользоваться услугами тестового УЦ, коих много, например, вот, вот и вот, для этого создадим запрос на сертификат

Другой вариант – можно поддаться лени и создать самоподписанный
$ openssl req -utf8 -new -keyform engine -key «pkcs11:id=12» -engine rtengine -out req.csr

Загружаем сертификат на устройство
$ openssl req -utf8 -x509 -keyform engine -key «pkcs11:id=12» -engine rtengine -out cert.cer

6) Регистрируем сертификат в системе

Убедитесь, что ваш сертификат выглядит как base64 файл:

Если ваш сертификат выглядит так:

то нужно сконвертировать сертификат из формата DER в PEM-формат(base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Снова проверяем, что теперь все в порядке.

Добавляем сертификат в список доверенных сертификатов
$ mkdir

/.eid
$ chmod 0755

/.eid
$ cat cert.pem >>

/.eid/authorized_certificates
$ chmod 0644

/.eid/authorized_certificates
Последняя строка защищает список доверенных сертификатов от случайного или намеренного изменения другими пользователями. Это исключает ситуацию, когда кто-то добавит сюда свой сертификат и сможет входить в систему от вашего имени.

7) Настраиваем аутентификацию

Настройка нашего модуля PAM совершенно стандартна и делается точно также, как и настройки других модулей. Создаём в файл /usr/share/pam-configs/rutoken-gost-pam содержащий полное имя модуля, включен ли он по умолчанию, приоритет модуля и параметры аутентификации.
В параметрах аутентификации есть требования к успешности операции:

  • required (требуемый): такие модули должны вернуть положительный ответ. Если результат вызова модуля содержит отрицательный ответ, это приведёт к ошибке аутентификации. Запрос будет сброшен, но остальные модули будут вызваны.
  • requisite (необходимый): похож на required, но сразу же приводит к сбою аутентификации и игнорирует остальные модули.
  • sufficient (достаточный): если перед таким модулем ни один из модулей required или sufficient не вернул отрицательного результата, то модуль вернёт положительный ответ. Оставшиеся модули будут проигнорированы.
  • optional (дополнительный): если в стеке нет модулей required и ни один из модулей sufficient не вернул положительного результата, то хотя бы один из модулей optional должен вернуть положительный ответ.

Полное содержание файла /usr/share/pam-configs/rutoken-gost-pam :
Name: Rutoken PAM GOST
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

сохраняем файл, после этого выполняем
$ sudo pam-auth-update
в появившемся окне ставим звёздочку около Rutoken PAM GOST и нажимаем OK

8) Проверяем настройку

Чтобы понять что всё настроено, но при этом не потерять возможность входа в систему введите команду
$ sudo login
Введите имя пользователя. Всё настроено правильно, если система потребует PIN-код устройства.

9) Настраиваем блокировку компьютера при извлечении токена

В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.
Для настройки pkcs11_eventmgr служит файл конфигурации: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Для различных дистрибутивов Линукс, команда которая вызывает блокировку учетной записи при извлечении смарт-карт или токена будет отличаться. См. event card_remove .
Пример файла конфигурации представлен ниже:

После этого добавьте приложение pkcs11_eventmgr в автозагрузку. Для этого отредактируйте файл .bash_profile:
$ nano /home/ /.bash_profile
Добавьте в конец файла строку pkcs11_eventmgr и перезагрузитесь.

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

Источник

Читайте также:  Линукс для нетбука что выбрать
Оцените статью