Назад | Перейти на главную страницу

Тайм-аут сеансов ssh после бездействия?

Требование 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

(вызов экрана не является прямым способом решения этой проблемы)

http://linux.die.net/man/1/bash