cronを使用してSSHを有効/無効にできますか?

cronを使用してSSHを有効/無効にできますか?

ssh一日の特定の時間にサーバーを無効にしたいと思います。私は最近無差別代入によるクラッキングを経験したので、これをやりたかったですsshcrontabSSHを有効/無効にするために使用できますか?

sshそうでない場合は、1日の特定の時間に無効にする他の方法はありますか?

答え1

もちろん、適切な時間にSSHデーモン(および/etc/init.d/ssh stop)を停止して開始するには、初期化スクリプトを実行してください/etc/init.d/ssh start

ただし、最も安全な方法はもちろん、Fail2ban、ポートノッキング、パスワード認証の無効化、およびSSHキーのみの使用方法を確認することをお勧めします。2つの要因認証とイディ私のパスワード

答え2

特定の時間にSSHサーバーをシャットダウンするのではなく、次のものを使用することをお勧めします。pam_time代わりに、モジュールは1週間の特定の時間に認証を拒否します。これはハッキングではなく、cronに依存せず、認証ルールセットを定義するためのより柔軟性を提供します。

  • UsePAM yesあなたのsshd_config
  • モジュール/etc/pam.d/sshdを挿入するには編集してください。pam_time
  • にタイムアウトルールを作成してください/etc/security/time.conf

答え3

選択できるさまざまなオプションがあります。

  1. cron次のようにサーバーの電源を入れたり切ったりsshできます。
  2. ポートのブロックiptablesとブロック解除に使用できます。ssh
  3. ssh別のポートで実行すると、これらすべての問題を解決できます。
  4. ポートノッキングを実装できます
  5. 外部アクセスを完全に無効にsshし、VPNを強制的に使用できます。

利用可能な他の解決策があると確信していますが、5つで停止しました。

答え4

timeiptablesモジュールがあります:

iptables ... -m time --timestart TIME --timestop TIME --days DAYS -j ACTION

-p tcp -j REJECT --reject-with tcp-rstポートが閉じたふりをするために使用されます(デフォルトの動作REJECTはICMPパケットです)。

ESTABLISHEDまた、開いている接続が機能し続けるようにするには、接続を通過させる別の規則を前に追加します。

これは、スクリプトを使用して特定の時間に特定のタスクを実行するソリューションに比べて大きな利点があります。これは、静的構成であり、アクセスを永久にブロックするなどの障害モードが発生する可能性が低いためです。

関連情報