Как разрешить доступ к SSH только в определенное время?

Как разрешить доступ к SSH только в определенное время?

На основе Ubuntu 18.04,

Я хочу разрешить пользователям доступ только с 9 утра до 5 вечера(рабочее время) на SSH-сервере. (используемый OpenSSH-serverпакет)

Я просмотрел все материалы, которые, по моему мнению, могут вам помочь, от управления пользователями до настроек PAM в Google, но не думаю, что там есть какая-либо информация об ограничении доступа по часовому поясу SSH.

(Но мне не нужно использовать службы, связанные с брандмауэром, такие как ufw.)

Если вы можете мне помочь, пожалуйста, дайте знать. Спасибо.

(Пожалуйста, поймите, что мой английский может быть неестественным, поскольку я не очень хорошо говорю по-английски.)

решение1

Модуль pam_timeпредназначен именно для этого.

  1. Добавить pam_timeкак первый accountоператор в ssh pam config. Эта команда вставит оператор account required pam_time.soпрямо над строкой @include common-account.
sed -i -e '/^.include common-account/i account required pam_time.so' /etc/pam.d/sshd
  1. настроить /etc/security/time.confпо желанию. Эта команда добавит конфигурацию sshd;*;*;Wk0900-1700. Это ограничит ssh-подключения для всех пользователей будними днями с 9:00 до 17:00.
echo 'sshd;*;*;Wk0900-1700' >> /etc/security/time.conf

Смотрите также

решение2

Используйте cron job для остановки и запуска ssh-сервера в определенное время. Например, создайте файл /etc/cron.d/start-stop-sshсо следующим содержимым:

0 9 * * * root /usr/sbin/service ssh start
0 17 * * * root /usr/sbin/service ssh stop

Это позволит запускать службу ssh каждый день в 9:00 и останавливать ее каждый день в 17:00.

Обратите внимание, что после остановки службы никто (даже администратор) не сможет войти в систему через SSH.

Связанный контент