Требование 8.1.8 PCI-DSS 3.0 гласит: «Если сеанс простаивал более 15 минут, потребовать от пользователя повторной аутентификации для повторной активации терминала или сеанса». То же самое было в требовании 8.5.15 PCI-DSS 2.0.
Первый и наиболее очевидный способ справиться с сеансами ssh, которые простаивают в приглашении bash, - это принудительно установить глобальный доступ только для чтения. $TMOUT
из 900. К сожалению, это касается только сеансов, находящихся в командной строке bash. Дух спецификации PCI также потребовал бы уничтожения сеансов, запускающих top / vim / etc.
Я подумал о написании * / 1 задания cron, которое анализирует вывод "/ usr / bin / w" и уничтожает связанную оболочку, но это похоже на тупой инструмент. Есть идеи для чего-то, что действительно выполняло бы то, что требует спецификация, и просто блокировало терминал? Я смотрел на away
и vlock
; они оба кажутся отличными для добровольной блокировки вашего терминала, но мне нужна задача cron / daemon, которая принудительно блокирует.
Не могли бы вы поместить «exec screen -R» в .bash_profile и «idle 900 lockscreen» в .screenrc, чтобы решить эту проблему? Это автоматически подключится к их сеансу экрана, если он все еще существует, и создаст новый, если его нет, но заблокирует экран, если он простаивает в течение 900 секунд.
Я считаю, что пользователи могут отключить режим ожидания ...
В качестве альтернативы: просто "exec screen", а также "autodetach off" в .screenrc, чтобы их сеансы умерли, если они отключатся.
Следующее, добавленное в вашу конфигурацию sshd, просто закроет SSH-соединение после 15 минут бездействия:
ClientAliveInterval 900
ClientAliveCountMax 0
Под BSD я использую на холостом ходу Майкл П. Крайдер
Цитата из описания
Idled - это демон, который запускается на машине, чтобы следить за текущими пользователями. Если пользователи слишком долго бездействовали или слишком долго входили в систему, или входили в систему слишком много раз, он предупредит их и соответствующим образом выйдет из системы.
Думаю, вы также можете найти его в репозиториях Linux.
Делает ли параметр sshd IdleTimeout то, что вы хотите? Я не тестировал его с пользователями, использующими top, но он должен работать для vim или вещей, которые не отправляют данные.
Правильный ответ здесь
экспорт TMOUT = 900
в .bash_profile
(вызов экрана не является прямым способом решения этой проблемы)