SSHサーバーを保護する方法

SSHサーバーを保護する方法

SSH接続を保護すると、Linux システムとデータを保護できます。システム管理者とホーム ユーザーも、インターネットに接続されたコンピュータを保護する必要があります。ここでは、 SSH サーバーを保護するための 10 の簡単な方法を紹介します。

SSH セキュリティに関する基本事項

SSH はセキュア シェルの略です。 SSH プロトコルまたはソフトウェア ツールを使用すると、システム管理者とユーザーはそのプロトコルを使用してリモート コンピュータに安全な接続を確立できます。

SSH プロトコルは、インターネットなどの安全でないネットワーク上で安全な接続を提供するために設計された暗号化されたプロトコルです。 Linux の SSH は、OpenSSH プロジェクトのポータブル バージョンに基づいて構築されています。これは、SSH クライアントからの接続を受け入れる SSH サーバーを備えた古典的なクライアント/サーバー モデルで実装されています。クライアントはサーバーに接続し、リモート ユーザーにセッションを公開するために使用されます。サーバーは接続を受け入れ、セッションを開始します。

デフォルト設定では、SSH サーバーは、伝送制御プロトコル (TCP) のポート 22 で受信接続を「リッスン」します。これは標準化され人気のあるポートであるため、攻撃者の脅威や悪意のあるボットの標的となります。

悪意のある攻撃者は、開いているポートを探してIP アドレスの範囲をスキャンするボットを起動します。次に、これらのポートに悪用可能な脆弱性がないか調査します。自分は安全だ、悪者には自分より大きくて優れた標的がたくさんいる、と考えるのは完全に間違いです。これらのボットは、何らかの基準に基づいてターゲットを選択するのではなく、システムに侵入する方法を探しているだけです。

システムを保護しないと被害者になります。

安全保障上の摩擦

セキュリティ摩擦ポイントとは、セキュリティ要件により主要なタスクが妨げられたり遅れたりする状況を指します。

セキュリティ対策を実装すると、セキュリティ上の摩擦がユーザーや他の人に(あらゆるレベルで)不快感を引き起こします。コンピュータ システムに慣れていない人は、メインフレームにログインするたびに実際にパスワードを入力する必要があるのか​​どうか心配するかもしれません。彼らにとって、これは安全保障上の摩擦の一形態でもある。

セキュリティ対策を導入すると、多くの場合、一部の人にとって何らかの摩擦が生じます。事業主はこれらの対策にかかる費用を負担しなければなりません。コンピュータ ユーザーは、習慣を変えたり、異なる認証情報を記憶したりして、正常に接続するための手順を追加する必要がある場合があります。システム管理者は、新しいセキュリティ対策を実装および維持するために追加の作業を行う必要があります。

Linux または Unix 系オペレーティング システムの強化とロックは迅速に行うことができます。ここでのセキュリティ対策は、サードパーティのアプリケーションやファイアウォールの深い介入を必要とせずに、コンピュータのセキュリティを向上させる一連の簡単な手順です。

SSHプロトコルバージョン2を使用する

2006 年に、SSH プロトコルはバージョン 1 からバージョン 2 に更新されました。これは重要なアップグレードです。特に暗号化とセキュリティに関して多くの変更と改善が行われており、バージョン 2 にはバージョン 1 との下位互換性がありません。バージョン 1 クライアントからの接続を防ぐために、バージョン 2 からの接続のみを受け入れるようにコンピューターを指定できます。

これを行うには、次のコマンドを使用して /etc/ssh/sshd_config ファイルを編集します。

sudo gedit /etc/ssh/sshd_config

SSHサーバーを保護する方法

次の行を追加します。

Protocol 2

SSHサーバーを保護する方法

ファイルを保存し、次のコマンドを使用して SSH デーモン プロセスを再起動します。

sudo systemctl restart sshd

SSHサーバーを保護する方法

別のマシンに切り替えて、テスト マシンへの SSH 接続を試行して、新しいセットアップの動作をテストします。 -1 (プロトコル 1) オプションを使用して、ssh コマンドがプロトコル バージョン 1 を使用するように強制します。

ssh -1 [email protected]

SSHサーバーを保護する方法

接続要求が拒否されました。プロトコル 2 に接続できることを確認してください。テストには -2 (プロトコル 2) を使用します。

ssh -2 [email protected]

SSHサーバーを保護する方法

SSH サーバーがパスワードを要求しているという事実は、接続が確立され、サーバーと対話していることを示す肯定的な兆候です。最新の SSH クライアントはデフォルトでプロトコル 2 を使用します。クライアントが最新であれば、プロトコル 2 を指定する必要はありません。

ssh [email protected]

SSHサーバーを保護する方法

接続が受け入れられました。

ゲート22を避けてください

ポート 22 は SSH 接続の標準ポートです。別のポートを使用すると、システムに Security Through Obscurity (STO) が少し追加されます。曖昧さによるセキュリティは、実際のセキュリティ対策とは決して考えるべきではありません。実際、一部のより賢い攻撃ボットは、通常、ポートの単純な検索リストに依存してサービスを提供していると想定するのではなく、開いているすべてのポートを調査し、実行しているサービスを決定します。ただし、標準以外のポートを使用すると、ポート 22 上の不良トラフィックを減らすことができます。

非標準ポートを構成するには、上記のように SSH 構成ファイルを編集します。

SSHサーバーを保護する方法

Port行の先頭にある # を削除し、22 を選択した番号に置き換えます。設定ファイルを保存し、SSH デーモンを再起動します。

別のコンピューターでは、ssh コマンドを使用してサーバーに接続します。デフォルトの ssh コマンドはポート 22 を使用します。

ssh [email protected]

SSHサーバーを保護する方法

接続拒否。もう一度試して、-p (ポート) オプションを使用してポート 470 を指定します。

ssh -p 479 [email protected]

SSHサーバーを保護する方法

接続が確認されました。

TCP ラッパーを使用してフィルターを接続する

TCP ラッパーは、わかりやすいアクセス制御リストです。 IP アドレスやホスト名などの接続要求の特性に基づいて接続を拒否または許可できます。 TCP ラッパーは、適切に構成されたファイアウォールの代わりにではなく、と一緒に使用する必要があります。

TCP ラッパーは、Ubuntu 18.04 LTSマシンにプリインストールされています。 Manjaro 18.10 および Fedora 30 にインストールする必要があります。

Fedora にインストールするには、次のコマンドを使用します。

sudo yum install tcp_wrappers

SSHサーバーを保護する方法

Manjaro にインストールするには、次のコマンドを使用します。

sudo pacman -Syu tcp-wrappers

SSHサーバーを保護する方法

2 つのファイルが含まれており、1 つのファイルは許可リストを保持し、もう 1 つのファイルは拒否リストを保持します。次のコマンドを使用して拒否リストを編集します。

sudo gedit /etc/hosts.deny

SSHサーバーを保護する方法

上記のコマンドは、ファイルのロードを拒否した状態で gedit エディターを開きます。

SSHサーバーを保護する方法

次の行を追加する必要があります。

ALL : ALL

そしてファイルを保存します。この行はすべての不正アクセスをブロックします。ここで、受け入れたい接続にアクセス許可を付与する必要があります。これを行うには、アクセス許可ファイルを編集する必要があります。

sudo gedit /etc/hosts.allow

SSHサーバーを保護する方法

上記のコマンドは、ダウンロード可能なファイルを含む gedit エディターを開きます。

SSHサーバーを保護する方法

SSH デーモン名、SSHD、および接続を許可するコンピューターの IP アドレスを追加しました。ファイルを保存し、制限とアクセス許可が有効かどうかを確認します。

まず、hosts.allow ファイルにないコンピューターから接続を試みます。

SSHサーバーを保護する方法

接続拒否。 IP アドレス 192.168.4.23 のマシンから接続を試みます。

SSHサーバーを保護する方法

接続が受け入れられました。

この例では、1 台のマシンのみの接続が許可されています。 TCP ラッパーは非常に柔軟で、IP アドレス範囲からの接続を受け入れるためにホスト名、ワイルドカード、サブネット マスクをサポートしています。

パスワードなしの接続要求を拒否する

あまり良いことではありませんが、Linux システム管理者はパスワードなしでユーザー アカウントを作成できます。つまり、このアカウントからのリモート接続にはパスワードは必要ありません。これらの接続は受け入れられますが、認証はされません。

SSH のデフォルト設定では、パスワードなしで接続要求が受け入れられます。これは簡単に変更でき、すべての接続が認証されていることを確認できます。

SSH設定ファイルを編集する必要があります。

SSHサーバーを保護する方法

#PermitEmptyPasswords noという行が表示されるまで、ファイル内を下にスクロールします。行頭の # を削除してファイルを保存します。 SSH デーモンを再起動します。

パスワードの代わりに SSH キーを使用する

SSH キーは、SSH サーバーに安全にログインする方法を提供します。パスワードは解読されたり、推測されたり、総当たり攻撃されたりする可能性があります。 SSH キーは、この種の攻撃に対して脆弱ではありません。

SSH キーを生成するときは、キー ペアを作成します。 1 つは公開キーで、もう 1 つは秘密キーです。公開キーは、接続するサーバーにインストールされます。秘密キーはコンピュータ上に安全に保管されます。

SSH キーを使用すると、パスワードなしで接続できるため、パスワード認証を使用した接続よりも安全です。

接続要求を行うとき、リモート コンピュータは公開キーのコピーを使用して暗号化されたメッセージを作成し、コンピュータに送り返します。公開鍵で暗号化されているため、コンピュータは秘密鍵を使用して復号化できます。

次に、コンピューターはメッセージから一部の情報を抽出し、暗号化してサーバーに送り返します。サーバーが公開キーのコピーを使用して復号化できる場合。メッセージ内の情報がサーバーから送信された情報と一致する場合、接続が確認されます。

ここでは、ユーザーが SSH キーを使用して 192.168.4.11 のサーバーに接続します。パスワードの入力は求められないことに注意してください。

ssh [email protected]

SSHサーバーを保護する方法

パスワード認証を完全に無効にする

SSH キーを使用する場合は、パスワード認証を完全に無効にすることができます。 SSH 設定ファイルを編集する必要があります。

SSHサーバーを保護する方法

#PasswordAuthentication yesで始まる行が表示されるまで、ファイルを下にスクロールします。行頭の # を削除し、yes を no に変更してファイルを保存します。 SSH デーモンを再起動します。

X11 転送を無効にする

X11 転送により、リモート ユーザーは SSH セッション経由でサーバーからグラフィカル アプリケーションを実行できるようになりますが、悪意のある者によって簡単に悪用されてしまいます。 SSH 設定ファイルを編集して無効にすることをお勧めします。

SSHサーバーを保護する方法

#X11Forwarding no という行が表示されるまでファイルを下にスクロールし、行の先頭にある# を削除してファイルを保存します。 SSH デーモンを再起動します。

アイドルタイムアウト値を設定する

コンピュータとの SSH 接続が確立され、一定期間そのコンピュータ上でアクティビティがなかった場合、セキュリティ リスクが生じる可能性があります。

したがって、タイムアウト制限を設定する必要があります。制限時間内に操作がなかった場合、SSH 接続は切断されます。もう一度、SSH 構成ファイルを編集する必要があります。

SSHサーバーを保護する方法

#ClientAliveInterval 0で始まる行が表示されるまで、ファイルを下にスクロールします。行の先頭にある # を削除し、数値 0 を希望の値に変更します。通常は 300 秒、つまり 5 分に設定します。ファイルを保存し、SSH デーモンを再起動します。

パスワード入力数の制限を設定する

確認の数に制限を定義すると、パスワードの推測やブルート フォース攻撃を防ぐことができます。指定された回数の認証要求が完了すると、ユーザーは SSH サーバーから切断されます。デフォルトでは、パスワードの試行回数に制限はありませんが、SSH 構成ファイルで編集できます。

SSHサーバーを保護する方法

#MaxAuthTries 0で始まる行が表示されるまで、ファイルを下にスクロールします。行の先頭にある # を削除すると、数値が目的の値に変更されます。 3 に設定できます。変更する場合はファイルを保存し、SSH デーモンを再起動します。

接続を試みて間違ったパスワードを入力することで、これをテストできます。

SSHサーバーを保護する方法

MaxAuthTries の数は、ユーザーに許可されている試行回数を超えていることに注意してください。試行が 2 回失敗すると切断されます。これは、MaxAuthTries が 3 に設定されていることを意味します。

rootログインを無効にする

root としてログインせず、Linux 上で通常のユーザーとして使用し、root 権限が必要なアクションを実行するには sudo を使用することをお勧めします。また、root に SSH サーバーへのログインを許可しないでください。通常のユーザーのみが接続を許可されます。管理レベルのタスクを実行する必要がある場合は、sudo を使用することもできます。 root ユーザーにログインを許可する必要がある場合は、SSH キーの使用を強制できます。

設定ファイルを編集して root ログインを無効にします。

SSHサーバーを保護する方法

#PermitRootLogin禁止パスワードで始まる行が表示されるまでファイルを下にスクロールし、行の先頭にある # を削除します。

  • root がログインできないようにするには、禁止パスワードを no に置き換えます。
  • root にログインを許可するが SSH キーの使用を強制する場合は、禁止パスワードをそのままにしておきます。

変更を保存し、SSH デーモンを再起動します。

最後のステップ

もちろん、コンピューター上で SSH を実行する必要がない場合は、次のコマンドを使用して SSH をオフにします。

sudo systemctl stop sshd
sudo systemctl disable sshd

成功を祈っています!


Windows 10で欠落しているデフォルトの電源プランを復元する方法

Windows 10で欠落しているデフォルトの電源プランを復元する方法

このガイドでは、Windows 10でデフォルトの電源プラン(バランス、高パフォーマンス、省電力)を復元する方法を詳しく解説します。

Windows 10 で BlueStacks 5 の仮想化 (VT) を有効にする方法

Windows 10 で BlueStacks 5 の仮想化 (VT) を有効にする方法

仮想化を有効にするには、まず BIOS に移動し、BIOS 設定内から仮想化を有効にする必要があります。仮想化を使用することで、BlueStacks 5 のパフォーマンスが大幅に向上します。

WiFi接続に接続する際のドライバーの切断を修正

WiFi接続に接続する際のドライバーの切断を修正

WiFi 接続に接続するときにドライバーが切断されるエラーを修正する方法を解説します。

Windows での DIR コマンドの使用方法

Windows での DIR コマンドの使用方法

DIR コマンドは、特定のフォルダーに含まれるすべてのファイルとサブフォルダーを一覧表示する強力なコマンド プロンプト コマンドです。 Windows での DIR コマンドの使用方法を詳しく見てみましょう。

ソフトウェアを使わずに Windows 10 アプリをバックアップおよび復元する方法

ソフトウェアを使わずに Windows 10 アプリをバックアップおよび復元する方法

ソフトウェアなしで Windows 10 アプリをバックアップし、データを保護する方法を説明します。

Windows でローカル グループ ポリシー エディターを開くための 11 のヒント

Windows でローカル グループ ポリシー エディターを開くための 11 のヒント

Windows のローカル グループ ポリシー エディターを使用して、通知履歴の削除やアカウントロックの設定を行う方法を説明します。

最高の IP 監視ツール 10 選

最高の IP 監視ツール 10 選

重要なリソースを簡単に監視及び管理できる<strong>IP監視</strong>ソフトウェアがあります。これらのツールは、ネットワーク、インターフェイス、アプリケーションのトラフィックをシームレスに確認、分析、管理します。

AxCrypt ソフトウェアを使用してデータを暗号化する方法

AxCrypt ソフトウェアを使用してデータを暗号化する方法

AxCrypt は、データの暗号化に特化した優れたソフトウェアであり、特にデータ セキュリティに優れています。

Windows 10 Creators Updateのアップデート後にシステムフォントを変更する方法

Windows 10 Creators Updateのアップデート後にシステムフォントを変更する方法

システムフォントのサイズを変更する方法は、Windows 10のユーザーにとって非常に便利です。

Windows 10で機内モードをオフにできないエラーを修正する方法

Windows 10で機内モードをオフにできないエラーを修正する方法

最近、Windows 10にアップデートした後、機内モードをオフにできない問題について多くのユーザーから苦情が寄せられています。この記事では、Windows 10で機内モードをオフにできない問題を解決する方法を説明します。