Чи можна встановити обмеження часу для активного з'єднання ssh для конкретного користувача Linux?


3

Зараз я працюю над ідеєю для веселого виклику CTF. Одне з головних перешкод цього виклику, однак, полягає у наданні користувачеві певного часу на ssh-з'єднання.

По суті, користувач повинен сш в linux VM, використовуючи виклик користувача. У них є 10 хвилин, щоб знайти 10 фрагментів прапора, які повинні бути впорядковані в певному порядку до завершення сеансу SSH, ініціюючи подію, яка міняє місце розташування прапорців навколо. У цей момент користувач повинен відкрити нове з'єднання SSH та продовжити пошук.

Основна проблема тут - обмеження кількості часу, який має користувач. Це можливо навіть із SSH? Якщо так, як я це досягти?

Заздалегідь дякую за будь-яку допомогу.


Я б запропонував запустити роботу cron, коли конкретний користувач увійде в систему VM. Потім зробіть сценарій завершенням сеансу роботи користувача через 10 хвилин. EDIT: Навіть просто запуск сценарію входу / запуску, оскільки користувачеві може бути достатньо.
Anders Gornitzka

Відповіді:


1

Гм, зробити це через СШ було б надзвичайно важко. Я думаю, що найпростішим способом було б запускати фонову програму щоразу, коли ти маєш sh-логін у певному обліковому записі, який через 10 хвилин вбиває всі ssh-з'єднання. Чесно кажучи, це було б дуже просто.

Ви можете додати щось до ~ / .profile або ~ / .bashrc, що говорить щось подібне

sleep 600
killall --user {whateverhis/herusernameis}
end

або ви отримаєте ідею.


1

Використання ForceCommandв sshd_config. Забезпечено, що він буде виконаний після входу в систему:

Match User ctfuser
  ForceCommand "(sleep 600; killall -u ctfuser)& bash"

Якщо вам потрібен лише доступ до оболонки, цього достатньо. Якщо вам також потрібен SFTP або SCP, вам потрібно його трохи налаштувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.