Идентификация и аутентификация - efanov/mephi GitHub Wiki

Понятие идентификации и аутентификации

  • Идентификация, аутентификация и авторизация пользователя.

Authentication - "you are who you say you are"

Аuthorization - "you are permitted to do what you are trying to do"

Principle of least privilege

  • Руководящий документ. Защита от несанкционированного доступа к информации. Термины и определения

Идентификация Identification - Присвоение субъектам и объектам доступа идентификатора и (или) сравнение предъявляемого идентификатора с перечнем присвоенных идентификаторов

Аутентификация Authentication - Проверка принадлежности субъекту доступа предъявленного им идентификатора; подтверждение подлинности

Пароль Password - Идентификатор субъекта доступа, который является его (субъекта) секретом

Управление пользователями

Пользователи

  • Понятие бюджета пользователя.
  • Основные характеристики бюджета пользователя: входное имя, пароль, UID, GID, домашний каталог, командная оболочка.
  • Формат файла /etc/passwd (7 полей): имя:пароль:uid:gid:GECOS:домашний_каталог:оболочка.
while IFS=: read login pas uid gid name e
do
        printf "%-12s %s\n" "$login" "$name"
done < /etc/passwd
  • Вход пользователя в систему.
  • Создание, модификация, удаление бюджета пользователя.
# useradd user10
# ll /home/
...
drwx------.  3 user10  user10  4096 окт  7 22:48 user10
...
# userdel user10
# ll /home/
drwx------.  3    1010    1010 4096 окт  7 22:48 user10
...
# useradd user11
# ll /home/
...
drwx------.  3 user11  user11  4096 окт  7 22:48 user10
drwx------.  3 user11  user11  4096 окт  7 22:49 user11
...
# userdel user11
# ll /home/
...
drwx------.  3    1010    1010 4096 окт  7 22:48 user10
drwx------.  3    1010    1010 4096 окт  7 22:49 user11
...
# find /home/ -nouser -o -nogroup 2>/dev/null
/home/user10
/home/user11
# find /home/ -nouser -delete 2>/dev/null

Группы пользователей

  • Группы пользователей. Первичная группа, концепция PUG.
  • Формат файла /etc/group (4 поля): имя:пароль:gid:список,имён,пользователей.
  • Создание, модификация, удаление группы пользователей.

Пароль пользователя

  • Управление паролем пользователя. Изменение пароля (passwd). Ограничения на пароль по времени. Формат файла /etc/shadow (9 полей): имя:пароль:последняя_смена:min:max:warn:inactive:expire:резерв.

Делегирование прав

  • Выполнение команд от имени другого пользователя.
  • Идентификаторы процессов: реальные (uid, gid) и эффективные (euid, egid).

/etc/sudoers

## Syntax:
##
##      user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

Подгружаемые аутентификационные модули

  • Подгружаемые аутентификационные модули (Pluggable Authentication Modules, PAM). Стек модулей. Понятие сервиса. Сервис с именем other.
  • Формат файла /etc/pam.conf: имя_сервиса управляющая_группа управляющий_флаг имя_модуля аргументы_модуля. Файлы в каталоге /etc/pam.d/.
  • Управляющие группы: account, auth, password, session.
  • Управляющие флаги: requisite, required, sufficient, optional, include, substack.

Команды и файлы

  • Команды получения информации о пользователе: id, groups.
  • Команды добавления, модификации и удаления бюджета пользователя: useradd, usermod, userdel, passwd, chage, chfn, chsh.
  • Команды добавления, модификации и удаления группы пользователя: groupadd, groupmod, groupdel, groupmems, gpasswd.
  • Команды изменения идентификаторов пользователя: login, su, sudo, visudo, newgrp, sg.
  • Команды проверки и преобразования файлов паролей: pwck, grpck, pwconv, pwunconv, grpconv, grpunconv.
  • Файлы и каталоги: /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow, /etc/shells, /etc/login.defs, /etc/default/useradd, /etc/skel/, /etc/sudoers, /etc/pam.conf, /etc/pam.d/.

Лабораторная работа

  1. Лабораторная работа "Изучение PAM"

Ссылки:

  1. Хэширование
  2. SHA1 and other hash functions online generator
  3. Online Reverse Hash Lookup
  4. Linux-PAM
  5. https://github.com/linux-pam/linux-pam
  6. PAM Аутентификация на заказ
  7. Эксперименты c PAM, How PAM works
  8. Securing Applications on Linux with PAM
  9. Основы и настройка PAM
  10. Writing PAM Modules 1, 2, 3