特定の時間にのみ SSH へのアクセスを許可するにはどうすればよいですか?

特定の時間にのみ SSH へのアクセスを許可するにはどうすればよいですか?

Ubuntu 18.04をベースに、

午前9時から午後5時までのみアクセスを許可したい(労働時間) を SSH サーバーにインストールします。(OpenSSH-serverパッケージを使用)

ユーザー管理からPAM設定まで参考になりそうな資料をGoogleで調べてみましたが、SSHタイムゾーンでアクセスを制限する情報はないようですね。

(ただし、 のようなファイアウォール関連のサービスを使用する必要はありませんufw。)

もし助けていただけることがありましたら、お知らせください。ありがとうございます。

(私は英語が得意ではないので、英語が不自然になることがあるかもしれませんが、ご了承ください。)

答え1

このpam_timeモジュールはこのために設計されています。

  1. pam_timessh pam config の最初のステートメントとして追加します。このコマンドは、行のすぐ上に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

これにより、ssh サービスは毎日 9:00 に開始され、毎日 17:00 に停止されます。

サービスが停止すると、誰も(管理者であっても)ssh 経由でログインできなくなることに注意してください。

関連情報