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

成功を祈っています!


ActivateWindowsSearch とは何ですか?無効にする必要がありますか?

ActivateWindowsSearch とは何ですか?無効にする必要がありますか?

ActivateWindowsSearch は、Windows 7、Windows 8.1、および Windows 10 で使用できる Windows Search 機能のスケジュールされたタスクの一部です。 ActivateWindowsSearch タスクは、検索機能の重要な部分です。

究極のパフォーマンスを有効にして Windows 10/11 のパフォーマンスを最適化する方法

究極のパフォーマンスを有効にして Windows 10/11 のパフォーマンスを最適化する方法

Microsoft は、2018 年 4 月に Windows 10 Update に Ultimate Performance と呼ばれる機能を追加しました。これは、システムを高パフォーマンス動作モードに切り替えるのに役立つ機能であることがわかります。

Windows 10 Sun Valley のような新しいファイル エクスプローラー アイコン セットをインストールする方法

Windows 10 Sun Valley のような新しいファイル エクスプローラー アイコン セットをインストールする方法

Windows 10 Sun Valley のようなファイル エクスプローラーの新しいアイコンが気に入った場合は、以下の記事に従ってファイル エクスプローラーのまったく新しいインターフェイスを変更してください。

Windows 10 Webカメラをテストする方法

Windows 10 Webカメラをテストする方法

Web カメラが Windows コンピューターで適切に動作するかどうかを確認するのは、迅速かつ簡単です。以下は、カメラを確認するための手順です。

Windows 10 でマイクをテストする方法

Windows 10 でマイクをテストする方法

おそらく高品質のヘッドフォンが接続されているのに、何らかの理由で Wi​​ndows ラップトップがひどい内蔵マイクを使用して録音しようとし続けます。次の記事では、Windows 10 マイクをテストする方法について説明します。

右クリックメニューから「Malwarebytesでスキャン」を削除する方法

右クリックメニューから「Malwarebytesでスキャン」を削除する方法

不要になった場合は、右クリックのコンテキスト メニューから [Malwarebytes でスキャン] オプションを削除できます。その方法は次のとおりです。

ボーダー ゲートウェイ プロトコル (BGP) について学ぶ

ボーダー ゲートウェイ プロトコル (BGP) について学ぶ

ボーダー ゲートウェイ プロトコル (BGP) は、インターネットのルーティング情報を交換するために使用され、ISP (異なる AS) 間で使用されるプロトコルです。

独自の Windows レジストリ ハック ファイルを作成する方法

独自の Windows レジストリ ハック ファイルを作成する方法

ヒントを読んでいると、レジストリ ハック ファイルを使用して Windows コンピュータをカスタマイズしたり微調整したりする人がよく見かけますが、その作成方法を疑問に思っています。この記事では、独自のレジストリ ハック ファイルを作成する基本的な手順を説明します。

Windows 10で自動レジストリバックアップを有効にする方法

Windows 10で自動レジストリバックアップを有効にする方法

Microsoft は以前はレジストリを自動的にバックアップしていましたが、この機能は Windows 10 では密かに無効になっています。この記事では、Quantrimang.com がレジストリをフォルダーに自動的にバックアップする手順を説明します。 RegBack (Windows\System32\config \RegBack) Windows 10 では。

Windows PCでアクションを元に戻す方法

Windows PCでアクションを元に戻す方法

コンピューターを使用していると、間違いを犯すのはごく普通のことです。