GNU/Linux >> Linux の 問題 >  >> Linux

[Linux]:SSHサーバーで有効にするトップ12のセキュリティ機能!

ほとんどのLinux/Unixシステムでシェル(コマンドライン)にリモートアクセスするためのいくつかの方法を見つけることができます。古い方法の1つは、telnetプログラムを使用することです。クライアントとサーバー間を通過するメッセージはプレーンテキストであるため、telnetを介してシェルにアクセスするとセキュリティ上の脅威が発生します。そのため、その間の接続を「スニッフィング」できる人なら誰でも、ユーザー名、パスワードなどを見ることができます。これらの理由から、リモートホストに接続するには、telnetよりも高度なプログラムが必要です。

Secure SHellの頭字語であるSSHは、別のコンピューターにリモートアクセスするときに最高のセキュリティを提供するように設計および作成されました。セッションを暗号化するだけでなく、より優れた認証機能、安全なファイル転送、Xセッション転送、ポート転送などの機能を提供するため、他のプロトコルのセキュリティを強化できます。 SSHを介したリモートログインを許可することは、管理目的には適していますが、サーバーのセキュリティに脅威を与える可能性があります。多くの場合、ブルートフォース攻撃の標的となるため、サードパーティがサーバーにアクセスするのを防ぐために、SSHアクセスを適切に制限する必要があります。この記事では、SSHを保護する方法を説明します。

/ etc /ssh/ディレクトリの下に2つの設定ファイル「ssh_config」と「sshd_config」があります。 ssh_configファイルには、アウトバウンドSSH接続に関連する構成が含まれています。ここで、sshd_configファイルには、サーバー自体へのインバウンドSSH接続を制御する構成パラメーターが含まれています。 〜/ .ssh / ユーザーのSSH構成ディレクトリです。

1。強力なユーザー名/パスワードを設定する方法

SSHサーバーが実行され、外部に公開されることが、ブルートフォース攻撃の主な標的になります。通常、ハッカーはポート22をスキャンして、sshが実行されているマシンを見つけ、それに対してブルートフォース攻撃を試みます。強力なパスワードを設定すると、ハッカーが成功する前にそれを拒否できます。すでに強力なパスワードを使用していることを願っていますが、そうでない場合は、以下を含むパスワードを選択してみてください。

  1. 最低8文字
  2. 大文字と小文字の組み合わせ
  3. 文字と数字の組み合わせ
  4. 英数字以外の文字(例:!”£$%^などの特殊文字)

それでもユーザーが弱いパスワードを選択する場合は、ハッカーが推測するのが難しいユーザー名を作成してください。これにより、ハッカーはユーザー名を推測するのに苦労します。これがないと、パスワードをブルートフォース攻撃することはできません(ユーザーがユーザー名を漏えいしないようにしてください)。 admin、henry、bobなどの一般的なユーザー名は避けてください。

2。空のパスワードでリモートログインを禁止する方法

この機能は、SSHサーバーに、パスワードが空のアカウントのリモートログインを禁止するように明示的に指示する必要があります。お気に入りのエディタを使用して、 / etc / ssh / sshd_configを開きます ファイルを作成し、以下の行を検索します:

#PermitEmptyPasswords no

#記号を削除し、 noを変更します はい

PermitEmptyPasswords yes

変更後は、以下に示すようにsshdを再起動することを忘れないでください:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

3。 Linuxマシンでrootユーザーのリモートログインを無効にする方法

以前の記事–Linuxマシンでrootユーザーのリモートログインを無効にする方法

をご覧ください。

4。特定のユーザーのみがSSH経由でログインできるようにする方法

前回の記事–特定のユーザーアカウントによるLinuxサーバーへのリモートログインを許可または拒否する方法をご覧ください。

5。デフォルトのSSHリスニングポートを変更する方法

デフォルトでは、SSHサーバーはポート22で接続をリッスンします。攻撃者は、nmapなどのポートスキャナーソフトウェアを使用して、開いているポートをスキャンします。ほとんどのポートスキャナーは上位のポートをスキャンしないため、SSHポートを1024より大きい数値に変更することをお勧めします。

お気に入りのエディターを使用して、/ etc / ssh / sshd_configファイルを開き、次の行を探します。

Port 22

ポート番号を次のように変更します:

Port 2222

変更後は、以下に示すようにsshdを再起動することを忘れないでください:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

SSHサーバーのポート番号を変更したら、以下に示すようにポート番号を指定してリモートログインできます:

ssh -p 2222 useranme@servername

6。 SSHプロトコル2のみを許可する

SSHサーバーは、1と2の2つのプロトコルをサポートしています。古いプロトコル1は、中間者攻撃やセキュリティの脆弱性などのセキュリティの問題が発生する可能性があります。 SSHプロトコル2は、プロトコル1と比較してより安全です。最新のOSのSSHサーバーでは、プロトコル2が有効になっています。以下に示すように複数のプロトコルを参照している場合は、以下に示すようにプロトコル2のみを有効にするように変更してください:

お気に入りのエディターを使用して、/ etc / ssh / sshd_configファイルを開き、次の行を探します。

Protocol 2,1

プロトコル2のみと表示されるように行を変更します!

Protocol 2

変更後は、以下に示すようにsshdを再起動することを忘れないでください:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

7。リモートログインを特定のIPアドレスの特定のユーザーのみに制限するにはどうすればよいですか?

確かに、SSHサーバーは非常に特定のホストのユーザーによって使用されます。例:組織のLANのユーザーのみがアクセスするSSHサーバーの場合、ユーザーが特定のホストからログインできるようにすることをお勧めします。これを行うには、以下の手順に従います:

お気に入りのエディタを使用して、/ etc / ssh / sshd_configファイルを開き、以下の行を追加します:

AllowUsers [email protected]

以下のように、さまざまなIPをブロックすることもできます:

AllowUsers [email protected].*
AllowUsers [email protected].*.*

変更後は、以下に示すようにsshdを再起動することを忘れないでください:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

8。自動化されたボットベースのSSH攻撃を阻止する方法は?

以前の記事–自動ボットベースのSSH攻撃を阻止する方法をご覧ください?

9。既知のホストファイルをハッシュする方法

以前の記事を参照してください:〜/.ssh/ディレクトリの既知のホストファイルをハッシュする方法

10。 SSHのアイドルログアウトタイムアウト間隔を設定する方法

ユーザーはしばしばリモートログインを行い、ログアウトするのを忘れます!アイドルセッションはセキュリティリスクにつながる可能性があります。管理者は、これらのアイドルセッションをログアウトするためにアイドルタイムアウト間隔を設定する必要があります。アイドルログアウトのタイムアウト間隔を設定するには、以下のガイドラインに従ってください:

お気に入りのエディターを使用して、 / etc / ssh / sshd_configを開きます。 ファイルを作成し、以下の行を検索します:

#ClientAliveInterval 0

#記号を削除し、ClientAliveIntervalを300に変更します(タイムアウト間隔は秒単位、つまり300秒=15分)。この間隔が経過すると、アイドル状態のユーザーは自動的にログアウトされます。

ClientAliveInterval 300

変更後は、以下に示すようにsshdを再起動することを忘れないでください:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

11。 SSH用にログアナライザを設定する方法

ユーザーアクティビティをログに記録すると、サーバーでのユーザーアクティビティの追加情報が常に管理者に提供されます。 LogWatchなどのツールに加えて、特定の期間のすべてのログを簡単に読み取り、ユーザーフレンドリーで読みやすい形式でレポートを作成できます。

お気に入りのエディタを使用して、 / etc / ssh / sshd_configを開きます ファイルを作成し、以下の行を検索します:

#LogLevel INFO

以下に示すように、#記号を削除してsshdサービスを再起動します:

Caution: Follow tip #12 to ensure sshd_config file is error free
/etc/init.d/sshd restart

12。 「sshd」デーモンを再起動する前にSSH構成を確認してください

sshd_configに変更を加えているとき 、エラーを残していないことを確認してください。以下のコマンドを実行して、 sshd_configかどうかを確認します。 SSHを再起動する前のエラーが含まれています サーバー。

# /usr/sbin/sshd -t

ここで、以下のようにサービスを再起動します。

# /etc/init.d/sshd restart

(または)

# service sshd restart

Linux
  1. OpenSSHセキュリティのベストプラクティス

  2. Ubuntu22.04LTSでSSHサービスを有効にする方法

  3. CentOS 8でSSHを有効にする-最良の方法は?

  1. DebianLinuxServerでSSHルートログインを有効にする

  2. CentOS 8 /RHEL8サーバーのセキュリティ強化のヒントトップ7

  3. 追加のサーバーを介して SSH X11 転送を有効にする方法は?

  1. デフォルトのSSHサーバーのポート番号を変更する

  2. ポートノッキングでSSHサービスを保護する方法

  3. SSHのトラブルシューティング