1. Имя пользователя. Это поле просто дублируется из файла passwd.
2. Хэш пароля. Пароль в Linux никогда не хранится в открытом виде, в отличие от имени пользователя. При установке пароля до сохранения его в файле он шифруется по специальному алгоритму. По умолчанию таким алгоритмом является алгоритм одностороннего шифрования DES (Data Encryption Standard).
Использование одностороннего алгоритма шифрования исключает возможность расшифровки пароля. Остальные поля содержат различную служебную информацию. Файл паролей имеет права только на чтение и только для суперпользователя. Его содержимое является недоступным для рядовых пользователей, таким образом, исключается возможность раскрытия зашифрованного пароля.
Для изменения пароля в Linux изначально включена специальная программа passwd.
В качестве параметра в командной строке она получает имя пользователя и при запуске требует ввода пароля для этого пользователя. При вводе в целях безопасности пароль не отображается на экране монитора, существует очень высокая вероятность допустить ошибку, особенно когда пароль состоит из цифр и символов различного регистра. Поэтому ввод пароля осуществляется 2 раза для проверки правильности ввода. После подтверждения пароль шифруется и сохраняется в файле /etc/shadow.
При входе в систему процедурой получения имени и пароля пользователя управляет программа mingetty. mingetty – это программа, выдающая приглашение для ввода имени пользователя и пароля на виртуальную консоль.
После ее запуска на экране монитора появляется строка-приглашение ко вводу имени и пароля пользователя. После ввода имени и пароля программа передает управление программе login. login – это программа-посредник, которая осуществляет проверку существования, корректности и соответствия имени пользователя и его пароля в системе. Пароль с помощью механизмов аутентификации шифруется и сравнивается с хэшем из файла. После успешного завершения процедуры аутентификации программа login запускает системную оболочку для взаимодействия пользователя с операционной системой, так называемый shell (от англ. shell – "оболочка"). Путь к исполняемому файлу shell указывается в последнем седьмом поле записи файла passwd. Обычно по умолчанию используется bash (Bourne Shell). Выдается приглашение ко вводу команд с символом # или $ в конце (по умолчанию символ # используется в приглашении суперпользователя, а символ $ - в приглашении обычного пользователя). С этого момента система готова принимать от пользователя команды на выполнение. Для более удобного управления доступом к ресурсам в Linux все пользователи объединяются в группы. В данном случае группа – это множество пользователей, объединенных по каким-либо критериям. К какой группе принадлежит пользователь, говорит 4 поле регистрационной записи в файле passwd. Наличие групп позволяет создать гибкую политику безопасности, основанную на разделении доступа к ресурсам.
21. Дополнительные модули аутентификации
PAM (Pluggable Authentication Modules) – подгружаемые модули аутентификации.
PAM является набором динамически подключаемых модулей, с помощью которых привилегированный пользователь может выбирать, как приложение должно осуществлять процесс аутентификации. Такая технология оказалась очень полезна, особенно при появлении различных методов аутентификации пользователя в системе. Эта технология имеет два основных преимущества. Первым преимуществом является модульность приложений, поддерживающих PAM. Это означает, что для приложения, поддерживающего PAM, появляется возможность изменить механизм аутентификации пользователей без перекомпиляции программы, как говорят "на ходу", достаточно изменить конфигурационный файл PAM. Второе преимущество использования PAM заключается в том, что администратор системы получает полную свободу в выборе схемы аутентификации для каждого отдельного приложения, причем эта схема может быть достаточно сложной и состоящей из нескольких этапов.
Единственным неотъемлемым требованием для использования PAM является наличие изначально встроенных в приложение функций работы с библиотекой PAM.
Сейчас практически все популярные программные продукты имеют встроенную поддержку PAM.
Приложение взаимодействует с библиотекой PAM, причем приложению неизвестно, какие алгоритмы аутентификации используются при проверке подлинности пользователя. Все операции по аутентификации, то есть шифрование пароля и его проверку, производит библиотека PAM. Библиотека Linux-PAM производит чтение параметров аутентификации приложения из конфигурационного файла и загружает необходимые модули в память. Затем загруженные модули попадают в одну из четырех управляющих групп и помещаются туда в порядке появления их в конфигурационном файле. Эти модули при вызове библиотекой Linux-PAM выполняют различные задачи аутентификации для приложения. Для передачи текстовой информации, запрашиваемой у пользователя, может быть использована встроенная функция обмена. Все модули PAM по умолчанию располагаются в каталоге /lib/security, а конфигурационные файлы PAM – в каталоге /etc/pam.d. Имя каждого конфигурационного файла, расположенного в каталоге /etc/pam.d, совпадает с именем приложения, использующего его. Например, для программы login полный путь к конфигурационному файлу PAM будет иметь вид /etc/pam.d/login.
Содержимое этого файла может иметь следующий вид:
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_limits.so
session optional /lib/security/pam_console.so
Каждая строчка файла означает, что для удачной аутентификации пользователь должен пройти через указанный модуль. Формат строки любого конфигурационного файла PAM имеет вид:
тип_модуля флаг_контроля путь_к_модулю параметры_модуля
Все модули библиотеки PAM по функциональному признаку делятся на четыре типа:
auth – этот тип модулей позволяет осуществлять два аспекта аутентификации. Во-первых, он выполняет саму аутентификацию, то есть устанавливает факт того, что пользователь действительно тот, за кого себя выдает. Это может быть запрос пароля или другие методы идентификации. Во-вторых, модуль может разрешить членство в группе (независимо от файла групп пользователей group) или определить другие привилегии, основываясь на информации о пользователе.
account – этот тип модулей выполняет функции, не связанные с аутентификацией напрямую. Обычно он используется для разрешения или запрещения доступа в зависимости от определенных условий, таких как время дня, количество пользователей, одновременно запросивших ресурс, различные параметры системы и так далее.
sessions – в основном этот тип используется для определения дополнительных действий, которые необходимо выполнить до или после предоставления сервиса пользователю. Сюда можно отнести протоколирование действий по открытию определенных файлов, монтирование каталогов, удаление временных файлов и так далее.
password – этот последний тип необходим для обновления опознавательного признака (например, того же самого пароля), который идентифицирует пользователя.
Наличие четырех управляющих типов говорит о том, что сама технология аутентификации с использованием библиотеки PAM способна предоставить не только "голый" способ установления подлинности пользователя, а еще и широкий спектр дополнительных возможностей по защите системы и предоставлению доступа к сервисам.
Флаг контроля определяет, как система будет себя вести при удачном или неудачном прохождении соответствующего модуля. Поскольку модули запускаются один за другим, то специальной расстановкой флагов можно определить значимость каждого из них.
В качестве флагов могут быть использованы четыре ключевых слова:
required – этот флаг определяет, что для удачной аутентификации в целом необходимо успешное прохождение соответствующего модуля. Если при прохождении этого модуля система получила отказ, процесс аутентификации продолжается до тех пор, пока все модули не будут обработаны, и только потом выдается сообщение об ошибке.
requisite – эффект действия этого флага тот же, что и флага required, с одним различием: при получении отказа управление сразу возвращается приложению, прохождение остальных модулей не производится.
sufficient – весь процесс аутентификации считается успешным, если работа модуля с этим флагом была успешной и проверка на предшествующих модулях с флагом required не провалилась. Если работа модуля с этим флагом была неудачной, это не считается фатальной ошибкой.
optional – успешность модуля с этим флагом является необязательной и его использование не критично для аутентификации.
Путь к модулю содержит строку полного пути к модулю в файловой системе. Все модули хранятся в каталоге /lib/security, поэтому, например, путь к модулю pam_limits будет выглядеть как /lib/security/pam_limits.so.
Параметры модуля являются индивидуальным для каждого модуля и описываются в документации модуля.
Помимо основных конфигурационных файлов некоторые модули используют дополнительные файлы конфигурации, находящиеся в каталоге /etc/security.
Каждый файл в этом каталоге предназначен для конкретной группы настроек:
time.conf – в этом файле можно ограничить время доступа пользователей с
различных терминалов к различным сервисам. Эти настройки использует модуль pam_time, поэтому для вступления в силу временных ограничений необходимо добавить модуль pam_time в конфигурационный файл приложения, на которое должны распространяться эти ограничения.
pam_env.conf – с помощью этого файла можно ограничить возможность изменения некоторых переменных среды пользователями. Этот файл используется модулем pam_env.
limits.conf – этот файл дает возможность ограничить размер core-файла, максимально допустимый размер файла, максимальное количество одновременно открытых файлов, запущенных процессов, количество одновременно открытых пользовательских сессий и так далее. Используется модулем pam_limits.
access.conf – с помощью этого файла можно определить различные параметры входа пользователя в систему, например, с каких компьютеров пользователь имеет доступ в систему. Этот конфигурационный файл используется модулем pam_access.
group.conf – в этом файле можно указать, к какой группе будет принадлежать процесс, запущенный пользователем в определенное время с определенного терминала.
Файл читается модулями pam_time и pam_group.
console.perms – в этом файле имеется возможность указать права, назначаемые привилегированным пользователям при входе в систему и возвращаемые консоли при его выходе. Файл используется модулем pam_console.
Как уже неоднократно упоминалось, все модули располагаются в каталоге /lib/security. Кратко рассмотрим, какие модули входят в стандартный пакет PAM, и какие функции выполняет каждый из них:
1. pam_cracklib - password - Позволяет проверять пароль на стойкость, не является ли он, например, словом из словаря и т. д. В основном используется программами, задающими пароли. К полезным параметрам относятся:
retry=N – задает количество попыток на исправление ошибки;
diffok=N – определяет минимальное количество символов, которое должно быть изменено при смене пароля;
minlen=N – задает минимальный размер пароля в символах;
dcredit=N ucredit=N lcredit=N ocredit=N – задает минимальное количество цифр, строчных, прописных букв и других |символов, которые должны присутствовать в пароле.
pam_deny любой Основное назначение этого модуля – запрет доступа при любых условиях.
2. pam_env - auth - Контролирует сохранность переменных среды. С помощью параметра conffile=S можно указать файл конфигурации, отличный от стандартного.
3. pam_ftp - auth - Предназначен для организации анонимного доступа. Получив в качестве имени пользователя последовательность ‘anonymous’, модуль в качестве пароля требует строку, похожую на почтовый адрес. К полезным параметрам относятся:
users=XXX, XXX, … - разрешает анонимный вход для пользователей из этого списка;
ignore – позволяет не обращать внимания, похож ли пароль на почтовый адрес.
4. pam_group - auth - Определяет группу-владельца процесса, |запущенного аутентифицированным пользователем.
5. pam_lastlog - auth - Сообщает о месте и времени входа в систему. Для протоколирования используется файл wtmp, находящийся в каталоге /var/log. К полезным параметрам можно отнести:
nodate noterm nohost silent – позволяют не выводить в сообщении дату, терминал, адрес машины или вообще ничего не записывать в файл;
never – предоставляет возможность выдачи приветствия пользователя, впервые вошедшего в систему.
6. pam_limits |session |Позволяет задавать ограничения для пользователя на размер файлов, число одновременно открытых дескрипторов и т. д. Имеет параметр conf=S для указания альтернативного конфигурационного файла.
7. pam_listfile - auth - Предназначен для организации доступа на основе конфигурационных файлов наподобие /etc/ftpaccess. Возможные паарметры:
onerr=succeed | fail – задает возвращаемое значение в случае неудачного поиска;
sence=allow | deny – задает возвращаемое значение в случае удачного поиска;
file=filename – позволяет указать имя файла со списком;
item=user - tty - rhost - ruser - group
shell – определяет тип элементов в списке. Например, значение item=user означает, что в файле содержится список имен пользователей, имеющих возможность входа в систему.
8. pam_mail - auth - Позволяет уведомлять пользователя о вновь пришедшей почте. Полезные параметры:
dir=S – указывает путь к каталогу почтовых очередей;
noenv – отменяет установку переменной среды MAIL;
close – разрешает уведомлять о новых письмах в почтовых ящиках пользователей с аннулированными бюджетами;
nopen – запрещает вывод какой-либо почтовой информации для вновь заведенного бюджета.
9. pam_nologin - auth - Если файл /etc/nologin существует, в систему может войти только привилегированный пользователь root, остальным же при попытке входа выдается содержимое этого файла.
10. pam_permit - любой - Этот модуль дает доступ при любых условиях. Необдуманное использование этого модуля весьма опасно!
11. pam_pwdb - любой - Замещает модули серии pam_unix. Этот модуль использует интерфейс библиотеки libpwdb, предназначенный для работы с пользовательскими базами данных, что повышает независимость системы аутентификации от способа хранения пользовательских данных. Полезные параметры:
nullok – разрешает использование пустых паролей;
md5 shadow bigcrypt – указывает используемые алгоритмы шифрования паролей.
12. pam_radius - bsession - Позволяет осуществлять аутентификацию через сервер RADIUS.
13. pam_rhosts_auth - auth - Механизм работы этого модуля основывается на анализе содержимого файлов hosts.equiv и .rhosts, используемых для аутентификации такими службами, как rlogin и rsh. Полезные параметры:
no_hosts_equiv – позволяет игнорировать содержимое файла hosts.equiv;
no_rhosts - позволяет игнорировать содержимое файла .rhosts;
suppress – позволяет избежать запись малозначительных сообщений в системный журнал, в частности, при использовании флага sufficient.
14. pam_root_ok - auth - Позволяет организовать доступ привилегированного пользователя к сервису, минуя процедуру ввода пароля. Пользователь допускается к сервису, только если его системный идентификатор равен нулю (то есть привилегированный пользователь root).
15. pam_securetty - auth - Позволяет учитывать файл /etc/securetty. В файле /etc/securetty указаны терминалы, с которых привилегированный пользователь имеет доступ в систему.
16. pam_time - account - Накладывает временные ограничения на доступ в систему.
17. pam_warn - auth - Производит записи в системных журналах при password определенных действиях.
18. pam_wheel - auth - Этот модуль позволяет получить права привилегированного пользователя только пользователям определенной группы. Полезные параметры:
group=XXX – задает группу, пользователи которой имеют возможность получить права пользователя root;
deny – этот параметр инвертирует действие модуля, другими словами, он запрещает изменение прав на права пользователя root для указанной группы;
trust – избавляет пользователей указанной группы от необходимости ввода пароля при смене идентификатора на нулевой.
Возможно также создание собственных PAM-модулей на основе готовых шаблонов, что позволяет быстро получить необходимый метод аутентификации без особых усилий.
Выводы
В данной расчетно-графической работе была освещена тема управления учетными записями пользователей в операционной системе Linux; вопросы создания, удаления учетных записей, блокировка и администрирование доступа пользователей к ресурсам ОС, создание и удаление групп пользователей, управление паролями и работа службы теневого хранения паролей; описана работа дополнительного модуля аутентификации PAM, рассмотрены вопросы серийного добавления пользователей, создания групп и замены паролей, описана работа вспомогательных утилит mass_add и mass_passwd.
А также рассмотрены команды управления учетными записями, формат учетных записей, а также возможность временного предоставления пользователям администраторских прав пользователя Root.
... раздел данной главы «Просмотр действующих политик» расскажет Вам больше о просмотре действующих политик на локальном компьютере. Просмотр действующих политик Во время работы с политиками учетных записей и присвоением прав пользователей Вам часто бывает необходимо просмотреть политику, действующую на локальную систему. Действующей является применённая на данный момент политика и, как описано в ...
... анализ существующих подобных систем, выявлены преимущества используемой системы. Также были поставлены цели разработки и основные требования к системе. 2 АИС управления серверным программным обеспечением на базе программного комплекса Webmin/Alterator В этой главе представлены основные этапы технического проектирования системы, такие как функциональное моделирование, моделирование и ...
... ЛВС, тополи, структура, сетевое оборудование и программное обеспечение ЛВС представлены в Приложении А. 2 ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ПОДБОРА ПРОГРАММНО-ТЕХНИЧЕСКОГО КОМПЛЕКСА ЛВС ДЛЯ АВТОМАТИЗАЦИИ РАБОТЫ БУХГАЛТЕРИИ АОЗТ «ДОНЕЦКОЕ ПУСКО-НАЛАДОЧНОЕ УПРАВЛЕНИЕ № 414 «ДОНБАСЭЛЕКТРОМОНТАЖ» 2.1 Административные, технические и программные характеристики АОЗТ «Донецкое пуско-наладочное управление № ...
... что выбранный вариант является наиболее выгодным и экономически эффективным. 3.1 Анализ основных разделов бизнес-плана Данный раздел посвящён обоснованию эффективности разработки автоматизированной системы управления документооборотом ЦЗЛ. При анализе целесообразности данную разработку следует рассматривать как некоммерческий продукт в том смысле, что она не предназначена для широкого ...
0 комментариев