Linuxノウハウ

「Linux」でSSHのセキュリティを強化するヒント

Jack Wallen (Special to ZDNET.com) 翻訳校正: 編集部

2024-02-29 07:45

 筆者は何十年も前からセキュアシェル(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
提供:David Merron Photography/Getty Images

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    「デジタル・フォレンジック」から始まるセキュリティ災禍論--活用したいIT業界の防災マニュアル

  2. 運用管理

    「無線LANがつながらない」という問い合わせにAIで対応、トラブル解決の切り札とは

  3. 運用管理

    Oracle DatabaseのAzure移行時におけるポイント、移行前に確認しておきたい障害対策

  4. 運用管理

    Google Chrome ブラウザ がセキュリティを強化、ゼロトラスト移行で高まるブラウザの重要性

  5. ビジネスアプリケーション

    技術進化でさらに発展するデータサイエンス/アナリティクス、最新の6大トレンドを解説

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]