Настройка РАМ на ограничение диапазона времени
Вот пример блокировки пользователя andrew (Ой! Это я!) с узла colossus: - : andrew : colossus
До сих пор мы рассматривали, как ограничить место, откуда пользователь сможет зарегистрироваться в системе. А как настроить модуль РАМ на ограничение диапазона времени, в который возможна регистрация? Для настройки модуля pamtime необходимо отредактировать файл /etc/security/time.conf. Формат записей этого файла благодаря возможности использования операторов NOT (!), AND (&) и OR (|) более гибкий, чем у файла access.conf. Общая форма записей в файле time, conf:
services;devices;users;times
Параметр services указывает, в отношении какой РАМ-совместимой службы действует ограничение. Полный список таких служб можно узнать, просмотрев ката-лог/etc/pam.d. Например, вот содержание /etc/pam.d в версии RedHat ОС Linux:
$ Is -I /etc/pam.d
authconfig
chfn
chsh
halt
internet-druid
kbdrate
login
neat
other
pasaftd
poweroff
FFP
reboot
redhat-config-mouse
redhat-config-network
redhat-config-network-cmd
redhat-config-network-druid
rhnregister
setup
snip
sshd
su
sudo
system-auth
up2date
up2date-config
up2date-nox vlock
Для того чтобы pamtime использовался с любой из этих служб, в файл, расположенный в /etc/pam.d, необходимо добавить такую строку:
account required /lib/security/$ISA/рam_time.sо
Параметр devices указывает терминал, с которого будет произведено обращение к службе. Для регистрации с консоли используется значение ! ttyp*, которое указывает на все TTY-устройства, за исключением псевдо-TTY. Если необходимо, чтобы запись влияла только на удаленную регистрацию, то укажите ttyp*. Для распространения ограничения записи на всех пользователей (консоль, удаленный и XII) введите tty*.
В качестве значений параметра users можно указывать одного пользователя либо список пользователей, отделяя одного от другого символом |. Параметр times используется для указания времени, в течение которого действует правило. Перед временным диапазоном указывается двухбуквенное сокращение, соответствующее дню недели. Допустимые сокращения: Mo, Tu, We, Th, Fr, Sa и Su.
Для удобства можно использовать сокращения Wk (рабочие дни), Wd (выходные) и А1 (все дни недели). Эти три сокращения обычно расширяются на набор дней, из которых состоит данный период. Важно отметить, что повторяющиеся дни вычитаются из набора дней, к которым применяется правило (например, WkSu равносильно указанию Sa). Временной диапазон указывается в 24-часовом формате без двоеточия, с дефисом в качестве разделителя (например, 0630-1345 соответствует периоду времени с 6:30 до 13:45)
Если требуется запретить пользователю andrew доступ с локальной консоли по выходным и в будни в нерабочее время, введите:
system-auth;!ttyp*;andrew;Wkl700-0800 WdOOOO-2400
Если требуется ограничить возможность удаленной регистрации с SSH во время обслуживания системы, выполняющегося с 19:00 пятницы до 7:00 субботы, но разрешить регистрацию для sysadmin, введите:
sshchttyp*; landrew; Frl900-0700
Как можно отметить, благодаря использованию логических операторов можно задавать любые интервалы. Просто не забудьте при создании записей в /etc/security/ time.conf настроить файл службы в /etc/pam.d на использование модуля pam_time.