Монтирование криптованого раздела при входе пользователя в систему.
Эта задача актуальна для защиты информации как на мобильных
компьютерах, так и для стационарных компьютерах, находящихся в
общедоступных помещениях. Идея навеяна пестрящими новостями о том, что
на украденом ноутбуке какого-то важного служащего было куча
конфиденциальной информации и пр. В данной схеме даже в случае
попадания компьютера в чужие руки доступ к информации получен не будет.
Описанное решение реализовано на базе Gentoo Linux.
Установка необходимых пакетов
Отдельные пакеты находятся в нестабильном дереве, потому предварительно необходимо добавить их в список разрешенных
# echo "sys-auth/pam_mount">>/etc/portage/package.keywords
Теперь можно установить
# emerge sys-auth/pam_mount sys-fs/cryptsetup
Создание раздела
Важно: пароль на криптованый раздел и пароль пользователя в системе должны совпадать!
Шифрование раздела:
# cryptsetup luksFormat /dev/sda3
WARNING!
========
This will overwrite data on /dev/sda3 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
Открываем раздел:
$ cryptsetup luksOpen /dev/sda3 homeD
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
Форматирование:
# mkfs.ext3 /dev/mapper/homeD
mke3fs 1.39-WIP (09-Apr-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2432 inodes, 9724 blocks
486 blocks (5.00%) reserved for the super user
First data block=1
2 block groups
8192 blocks per group, 8192 fragments per group
1216 inodes per group
Superblock backups stored on blocks:
8193
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override
Закрываем раздел:
# cryptsetup luksClose homeD
Настройка
Правим конфигурационный файл /etc/security/pam_mount.conf.xml под комментарием Volume definitions
<volume fstype="crypt" user="anviar" path="/dev/sda3" mountpoint="/home" cipher="aes-cbc-essiv:sha256" />
Разберем что значит эта запись:
fstype - тип раздела
user - применять правило только для указаного пользователя
path - наше устройство
mountpoint - точка монтирования
cipher - алгоритм шифрования
Для примера конфигурация для EncFS выглядит следующим образом:
<volume user="anviar" fstype="fuse" path="encfs#/home/anviar/.crypt" mountpoint="/home/anviar/crypt" options="nonempty" />
Для EncFS обязательно следует указывать полные, а не относительные пути.
Gentoo
Подключаем модуль к системе авторизации в файле /etc/pam.d/system-auth
auth required pam_env.so
auth required pam_unix.so try_first_pass likeauth nullok
auth optional pam_mount.so
account required pam_unix.so
password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password required pam_unix.so try_first_pass use_authtok nullok sha512 shadow
session required pam_limits.so
session required pam_env.so
session required pam_unix.so
session optional pam_permit.so
session optional pam_mount.so
GNU/Debian
Подключаем модуль к системе авторизации добавлением строки @include
common-pammount в конец файла авторизации. К примеру, если используется
GDM, то требуется отредактировать файл /etc/pam.d/gdm
#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
auth optional pam_gnome_keyring.so
@include common-account
session required pam_limits.so
@include common-session
session optional pam_gnome_keyring.so auto_start
@include common-password
@include common-pammount
Таким образом при входе в систему пользователя anviar, и только
него, будет происходить доступ к шифрованому разделу /dev/sda3, его
монтирование в точку /home. При выходе из системы пользователя anviar
будет происходить отмонтирование и закрытие раздела.