「Linux」でSSHのセキュリティを強化するヒント
今回は「「Linux」でSSHのセキュリティを強化するヒント」についてご紹介します。
関連ワード (Linuxノウハウ、特集・解説等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
筆者は何十年も前からセキュアシェル(SSH)を使用している。このリモートログインツールを使用すると、リモートマシンがログインを安全かつ効率的に受け入れるようになるので、安心できる。その一方で、ネットワークに接続されたデバイスにおいて、完璧なセキュリティなどあり得ないことも理解している。筆者が使用するすべてのコンピューターで、必ずSSHのセキュリティを強化するようにしているのは、そのためだ。
セキュリティの「層」をいくつか追加することがいかに簡単であるかを知って、驚く人もいるかもしれない。以下で説明するように、「Linux」デスクトップおよびサーバーマシンのセキュリティを簡単に強化できるヒントがいくつかある。これらのヒントを実践すれば、不要なログインをより効果的に阻止することが可能だ。
それでは、具体的なヒントを解説していこう。
(特にサーバー上で)最初に実行すべきことの1つは、fail2banのインストールだ。fail2banは、悪意あるブルートフォースログイン攻撃を防止できるほか、SSH以外のネットワークプロトコル(HTTP、SSH、FTPなど)の監視に使用することも可能だ。
fail2banでは、jailを作成する。jailはシステムに対して、特定の出来事(SSHログイン試行の失敗など)の発生時に何をすべきかを指示する設定だ。jailファイル(通常、jail.localという名前が付けられている)は/etc/fail2ban/に格納されており、以下のような内容が記述されている。
fail2banを「Debian」ベースのシステムにインストールする場合は、以下のコマンドを使用する。
「Fedora」ベースのシステムでは、コマンドは以下のようになる。
デフォルトでは、SSHは受信接続にポート22を使用する。このことはよく知られており、トラブルにつながる可能性がある。筆者は、重要なシステムでは、必ず別のポート(2124など)に変更するようにしている。その際は、別のシステムで使用されていないポート番号に変更する必要がある。
ポートは、/etc/ssh/sshd_configファイルの#Port 22の行で設定される。
#記号を削除して、ポート番号を22から、使用したい番号に変更する。変更を完了したら、必ず以下のコマンドでSSHを再起動してほしい。
Fedoraベースのシステムの場合、そのコマンドは以下のようになる。
読者の皆さんのシステム上に、空のパスワードを使用するユーザーはいないと思うが、このヒントは「用心するに越したことはない」カテゴリーに該当する。空のパスワードを使用するユーザーがいて、そのことを悪意ある攻撃者に知られたら、簡単にマシンにアクセスされてしまうおそれがある。そうした状況を防ぐには、/etc/ssh/sshd_configファイルを開いて、以下の行を探す必要がある。
その行を以下のように変更する。
ファイルを保存して閉じた後、SSHを再起動する。
もう1つの非常に便利な小技は、SSHアクセスを特定のIPアドレスに制限することだ。例えば、マシンにアクセスする必要があるユーザーが1人だけで、そのユーザーのIPアドレスが192.168.1.11である場合、/etc/hosts.allowファイルから、SSHアクセスを制限することが可能だ。お気に入りのテキストエディター(「nano」など)でそのファイルを開いて、以下の行を最後に追加する。
許可したいIPアドレスが複数ある場合は、以下のように、各アドレスをカンマで区切って、必要なだけ追加できる。
ファイルを保存して閉じる。
SSH鍵認証の重要性は、いくら強調してもしすぎることはない。この機能の設定方法については、すでに別の記事で説明済みなので、必ずその記事に目を通して、SSH鍵認証を使用してほしい。fail2banとSSH鍵認証を組み合わせるのは、不要なSSHログインを防ぐ非常に効果的な方法だ。
LinuxデスクトップおよびサーバーでSSHのセキュリティを強化する5つの簡単なヒントの紹介は、以上である。SSHに「セキュア」という言葉が含まれているからといって、セキュリティを確保する手段としてみなすべきではない。いくつかの追加の設定を施せば、システムへのアクセスを求めてインターネットを徘徊する悪意ある攻撃者から、SSHログインをより効果的に保護できるようになる。