
На основе Ubuntu 18.04,
Я хочу разрешить пользователям доступ только с 9 утра до 5 вечера(рабочее время) на SSH-сервере. (используемый OpenSSH-server
пакет)
Я просмотрел все материалы, которые, по моему мнению, могут вам помочь, от управления пользователями до настроек PAM в Google, но не думаю, что там есть какая-либо информация об ограничении доступа по часовому поясу SSH.
(Но мне не нужно использовать службы, связанные с брандмауэром, такие как ufw
.)
Если вы можете мне помочь, пожалуйста, дайте знать. Спасибо.
(Пожалуйста, поймите, что мой английский может быть неестественным, поскольку я не очень хорошо говорю по-английски.)
решение1
Модуль pam_time
предназначен именно для этого.
- Добавить
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
- настроить
/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.