Browse Source

Revert "123"

This reverts commit 6e9eb8454342bf3eeafd1d63729a30f15c6db1fa.
Sindzi 2 năm trước cách đây
mục cha
commit
28535ec4f9

+ 0 - 100
ЭАСвЗИ/Лекции/П2.5.200_Защита_входа_в _систему/README.md

@@ -1,100 +0,0 @@
-# Защита входа в систему (идентификация и аутентификация пользователей)
-
- Подключаемые модули аутентификации (pluggable authentication modules, PAM) являются основной системой аутентификации в ОС семейства Unix, в т.ч. GNU/Linux. PAM пришел на смену встраиваемым механизмам аутентификации в различных приложениях (например, ранее в login была встроена собственная процедура аутентификации, проверяющая введенный пароль с паролем из /etc/passwd или хешем из /etc/shadow). 
-
-![](01.jpg)
-
-## CentOS 7
- Если брать для примера одну из ОС семейства unix - CentOS 7, то она  включает в себя управлениe идентификацией (Identity Management, IdM) — набор функций, предоставляющих централизованный и простой способ управления идентификаторами пользователей, машин и сервисов в больших Linux/Unix корпоративных инсталляциях. IdM предоставляет способ определения политик безопасности доступа для управления этими идентификаторами. 
-
- Основа управления идентификацией была разработана в рамках открытого проекта FreeIPA, объединяющего стандартные сетевые сервисы общего назначения в единую систему управления: PAM, LDAP, Kerberos, DNS, NTP и сервисами сертификации. Это позволяет системам на CentOS работать в качестве контроллеров доменов в среде Linux. Из-за того, что функция управления идентификацией встроена в CentOS – достаточно просто добавить управление политиками и идентификацией в ваш рабочий процесс.
-
- Для многих организаций, Active Directory (AD) – центр управления идентификационными данными пользователей внутри предприятия. Все системы, к которым могут получать доступ пользователи AD, должны уметь работать с AD для выполнения аутентификации и проверки идентификационных данных.
-
--- Прямая интеграция
-
- Linux системы могут быть соединены с Active Directory напрямую с помощью компонента System Security Services Daemon (SSSD). Компонент выступает в качестве шлюза аутентификации и проверки идентификационных данных в центральное хранилище идентификаций.
-
-![](02.png)
-
--- Непрямая интеграция
-  Прямая интеграция ограничена использованием только аутентификации и идентификационных данных, относящихся к пользователям. Система не получает политики и данные, контролирующие доступ в корпоративных окружениях. Системы Linux могут получать политики (например на sudo), правила контроля доступа хоста, automount, netgroups, SELinux и другие возможности из центрального сервера идентификации. Сервер управления идентификацией обеспечивает централизованное управление системами Linux, давая им идентификаторы, права и предоставляя централизованно управляемые политики для Linux, перечисленные выше. В большинстве корпоративных окружений, пользователи Active Directory должны иметь доступ и к Linux ресурсам. Это может быть достигнуто с помощью установки доверенных отношений между серверами IdM и AD. Диаграмма ниже показывает как пользователи из леса Active Directory получают доступ к системам Linux, входя в домен IdM.
-
-![](03.png)
-
-## Идентификация и аутентификация пользователей при работе подсистемы разграничения доступа в ОС Linux
-
- При построении подсистемы разграничения доступа в Linux важным этапом в процессе загрузки ОС является этап после загрузки системы по завершению процесса init при запуске системной утилиты login - т. е. этап непосредственно и/а пользователя в ОС. При этом саму подсистему разграничения доступа удобно строить на базе загружаемого модуля ядра Linux, этот модуль должен загружаться в ядро ОС на одном из последних этапов работы init, но до монтирования корневой файловой системы на запись.
- После завершения работы процесса init модуль ядра будет находиться в состоянии ожидания каких-либо внешних воздействий (например, вызова какого-либо системного вызова и/или обращение к модулю из usermode-утилит) - при этом для правильной регистрации пользователя необходимо аутентифицировать его в т.ч. в модуле ядра (чтобы в нужный момент модуль ядра мог знать совершал ли вход в систему тот или иной пользователь и можно ли выполнять какие-либо процессы в ОС с его правами).
- Для этого необходимо создать PAM-модуль аутентификации, а логика работы процедуры и/а должна стать следующей:
-
-- запускается утилита login
-
-- утилита login делегирует функции и/а внешнему PAM-модулю, при этом:
-
- конкретный PAM-модуль предварительно должен быть прописан в соответствующем конфигурационном файле (как правило /etc/pam.d/common_auth или /etc/pam.d/login в зависимости от ОС, PAM-модуль обычно должен прописываться вместо штатного модуля pam_unix.so);
- 
- PAM-модуль предварительно должен быть записан в каталог к другим PAM-модулям(/etc/security/).
-
-- PAM-модуль запрашивает у пользователя login (или аппаратный идентификатор) и пароль;
-
-- PAM-модуль рассчитывает хеш от предъявленных пользователем значений login (аппаратного идентификатора) и пароля и передает его модулю ядра по протоколу взаимодействия usermode-приложений с ядром ОС (протокол netlink);
-
-- Модуль ядра ищет в своих структурах пользователя по login (аппаратному идентификатору) и сравнивает полученное от PAM значение хеша со значением в своей БД, при этом:
-
- Если хеш совпадает - PAM-модулю по netlink от модуля ядра должно возвращаться имя пользователя, которому соответствует хеш в БД пользователей. Данного пользователя PAM-модуль пропускает и запускает его shell;
- Если хеш не совпадает - PAM-модулю по netlink от модуля ядра возвращается указание вывести ошибку (код ошибки) и не аутентифицировать пользователя в системе (не запускать его сессию и shell в рамках этой сессии);
- В любом из описанных случаях в модуле ядра в соответствующие структуры должны заноситься данные о:
-состоянии аутентифицированности в данный момент определенного пользователя
-событиях во время процедуры и/а (успешная/неудачная попытка и/а и т.п..)
-
-
- Также необходимо понимать, что наиболее важным элементов всей подсистемы разграничения доступа является наличие аппаратного компонента, с помощью которого на ранних этапах загрузки будет осуществляться:
-
- контроль целостности важных объектов, используемых в дальнейшем подсистемой разграничения доступа (модуль ядра, БД пользователей, PAM-модули и прочие утилиты, взаимодействующие в модулем ядра);
-
- контроль целостности файлов, в которых прописывается порядок загрузки ОС и вставлена загрузка модуля ядра до монтирования корневой файловой системы на запись (например, /boot/initrd, порядок загрузки записывается в initrd в файл init);
-
- контроль целостности ядра ОС (например, /boot/vmlinux);
-
- контроль целостности настроек загрузчика (например, /boot/grub/grub.cfg) и самого загрузчика, записанного в загрузочный сектор раздела.
-
- Без таких контрольных процедур при использовании существующих штатных средств защиты в ОС всегда существует возможность обхода или отключения этих средств защиты на ранних этапах загрузки, что нивелирует любые механизмы защиты, реализуемые с помощью подсистемы разграничения доступа в ОС, т. к. появляется возможность данную подсистему просто отключить.
-
-## Регистрация в системе
-
- В правильно установленной операционной системе Linux должна существовать как минимум одна учётная запись для обычного пользователя. Во всех дальнейших примерах у нас будет участвовать Мефодий Кашин, владелец учётной записи "methody" в системе "Some Linux". Вы можете пользоваться для выполнения примеров любой учётной записью, которая создана в Вашей системе (естественно, кроме root).
-
-` Welcome to Some Linux / tty1
-localhost login: bebra
-
-Password:
-Login incorrect
-
-login: `
-
-В ответ на это система запрашивает пароль
-
-` login: bebra
-Password:
-[bebra@localhost bebra]$ `
-
- В этот раз регистрация прошла успешно, о чём свидетельствует последняя строка примера - приглашение командной строки. Приглашение -- это подсказка, выводимая командной оболочкой и свидетельствующая о том, что система готова принимать команды пользователя. Приглашение может быть оформлено по-разному, более того, пользователь может сам управлять видом приглашения, но почти наверняка в приглашении содержатся входное имя и имя хоста -- в нашем примере это "bebra" и "localhost" соответственно. Заканчивается приглашение чаще всего символом "$".  
-
-## Идентификация 
-
- Когда система выводит на экран приглашение командной строки после того, как правильно введены имя пользователя и пароль, это означает, что произошла идентификация пользователя (authentication, "проверка подлинности"). Пароль может показаться излишней сложностью, но у системы нет другого способа удостовериться, что за монитором находится именно тот человек, который имеет право на использование данной учётной записи.
-
-
-
-## Литература
-[okbsapr](https://www.okbsapr.ru/library/publications/kanner_2012_3/)
-[Хабр](https://habr.com/ru/company/infobox/blog/230781/)
-[studref](https://studref.com/334328/informatika/identifikatsiya_autentifikatsiya)
-
-## Вопросы
-1. [Что такое аутентификация]    ** Это процедура проверки подлинности, док-ва что пользователь именно тот, за кого себя выдает**
-2. [Что такое Авторизация]    ** Процедура предоставления субъекту определенных прав доступа к ресурсам системы после прохождения им процедуры аутентификации. **
-3. [Что такое PAM модуль]     ** основная система аутентификации в ОС семейства Unix**
-4. [Что такое идентификатор пользователя]    **Уникальное число, однозначно идентифицирующее учётную запись пользователя в Linux**
-5. [Что такое входное имя и имя хоста]    **доменное имя, назначенное хост-компьютеру; имя, используемое при создании учетной записи**

+ 0 - 0
ЭАСвЗИ/Лекции/П2.5.200_Защита_входа_в _систему/01.jpg → ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/01.jpg


+ 0 - 0
ЭАСвЗИ/Лекции/П2.5.200_Защита_входа_в _систему/02.png → ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/02.png


+ 0 - 0
ЭАСвЗИ/Лекции/П2.5.200_Защита_входа_в _систему/03.png → ЭАСвЗИ/Лекции/П2_5_200_Защита_входа_в _систему_(идентификация_и_аутентификация_пользователей)/03.png