筆者は何十年も前からセキュアシェル(SSH)を使用している。このリモートログインツールを使用すると、リモートマシンがログインを安全かつ効率的に受け入れるようになるので、安心できる。その一方で、ネットワークに接続されたデバイスにおいて、完璧なセキュリティなどあり得ないことも理解している。筆者が使用するすべてのコンピューターで、必ずSSHのセキュリティを強化するようにしているのは、そのためだ。
セキュリティの「層」をいくつか追加することがいかに簡単であるかを知って、驚く人もいるかもしれない。以下で説明するように、「Linux」デスクトップおよびサーバーマシンのセキュリティを簡単に強化できるヒントがいくつかある。これらのヒントを実践すれば、不要なログインをより効果的に阻止することが可能だ。
それでは、具体的なヒントを解説していこう。
1. 「fail2ban」をインストールする
(特にサーバー上で)最初に実行すべきことの1つは、fail2banのインストールだ。fail2banは、悪意あるブルートフォースログイン攻撃を防止できるほか、SSH以外のネットワークプロトコル(HTTP、SSH、FTPなど)の監視に使用することも可能だ。
fail2banでは、jailを作成する。jailはシステムに対して、特定の出来事(SSHログイン試行の失敗など)の発生時に何をすべきかを指示する設定だ。jailファイル(通常、jail.localという名前が付けられている)は/etc/fail2ban/に格納されており、以下のような内容が記述されている。
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 findtime = 300 bantime = 28800 ignoreip = 127.0.0.1
fail2banを「Debian」ベースのシステムにインストールする場合は、以下のコマンドを使用する。
sudo apt-get install fail2ban -y
「Fedora」ベースのシステムでは、コマンドは以下のようになる。
sudo dnf install fail2ban -y
2. デフォルトのポートを変更する
デフォルトでは、SSHは受信接続にポート22を使用する。このことはよく知られており、トラブルにつながる可能性がある。筆者は、重要なシステムでは、必ず別のポート(2124など)に変更するようにしている。その際は、別のシステムで使用されていないポート番号に変更する必要がある。
ポートは、/etc/ssh/sshd_configファイルの#Port 22の行で設定される。
#記号を削除して、ポート番号を22から、使用したい番号に変更する。変更を完了したら、必ず以下のコマンドでSSHを再起動してほしい。
sudo systemctl restart ssh
Fedoraベースのシステムの場合、そのコマンドは以下のようになる。
sudo systemctl restart sshd
3. 空のパスワードを使用するユーザーをブロックする
読者の皆さんのシステム上に、空のパスワードを使用するユーザーはいないと思うが、このヒントは「用心するに越したことはない」カテゴリーに該当する。空のパスワードを使用するユーザーがいて、そのことを悪意ある攻撃者に知られたら、簡単にマシンにアクセスされてしまうおそれがある。そうした状況を防ぐには、/etc/ssh/sshd_configファイルを開いて、以下の行を探す必要がある。
#PermitEmptyPasswords no
その行を以下のように変更する。
PermitEmptyPasswords no
ファイルを保存して閉じた後、SSHを再起動する。
4. ログインを特定のIPアドレスに制限する
もう1つの非常に便利な小技は、SSHアクセスを特定のIPアドレスに制限することだ。例えば、マシンにアクセスする必要があるユーザーが1人だけで、そのユーザーのIPアドレスが192.168.1.11である場合、/etc/hosts.allowファイルから、SSHアクセスを制限することが可能だ。お気に入りのテキストエディター(「nano」など)でそのファイルを開いて、以下の行を最後に追加する。
sshd: 192.168.1.62, 192.168.1.11
許可したいIPアドレスが複数ある場合は、以下のように、各アドレスをカンマで区切って、必要なだけ追加できる。
sshd: 192.168.1.62, 192.168.1.11, 192.168.1.12, 192.168.1.13, 192.168.1.14
ファイルを保存して閉じる。
5. SSH鍵認証を使用する
SSH鍵認証の重要性は、いくら強調してもしすぎることはない。この機能の設定方法については、すでに別の記事で説明済みなので、必ずその記事に目を通して、SSH鍵認証を使用してほしい。fail2banとSSH鍵認証を組み合わせるのは、不要なSSHログインを防ぐ非常に効果的な方法だ。
LinuxデスクトップおよびサーバーでSSHのセキュリティを強化する5つの簡単なヒントの紹介は、以上である。SSHに「セキュア」という言葉が含まれているからといって、セキュリティを確保する手段としてみなすべきではない。いくつかの追加の設定を施せば、システムへのアクセスを求めてインターネットを徘徊する悪意ある攻撃者から、SSHログインをより効果的に保護できるようになる。
提供:David Merron Photography/Getty Images
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。