如何只允許在特定時間內存取 SSH?

如何只允許在特定時間內存取 SSH?

基於Ubuntu 18.04,

我想只允許用戶從上午 9 點到下午 5 點訪問(工作時間)在 SSH 伺服器上。 (二手OpenSSH-server包)

我已經在 Google 上查找了所有我認為可以幫助您從用戶管理到 PAM 設定的資料,但我認為沒有任何資訊可以透過 SSH 時區限制存取。

(但是,我不必使用與防火牆相關的服務,例如ufw。)

如果您能幫助我,請告訴我。謝謝。

(請理解我的英語可能不自然,因為我英語不好。)

答案1

pam_time模組就是為此而設計的。

  1. 新增為ssh pam 配置中的pam_time第一條語句。該指令將在該行的正上方account插入語句。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 點到下午 5 點之間。
echo 'sshd;*;*;Wk0900-1700' >> /etc/security/time.conf

也可以看看

答案2

使用 cron 作業在特定時間停止和啟動 ssh 伺服器。例如,建立一個/etc/cron.d/start-stop-ssh包含以下內容的文件:

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

這將在每天 9:00 啟動 ssh 服務,並在每天 17:00 停止。

請注意,當服務停止時,任何人(甚至管理員)都無法透過 ssh 登入。

相關內容