メインコンテンツへスキップ
  1. ブログ/

【初心者向け】OpenSSH で確認するべきセキュリティー設定4選!!

·
Linux SSH OpenSSH
目次

【初心者向け】OpenSSH で確認するべきセキュリティー設定4選!!
【初心者向け】OpenSSH で確認するべきセキュリティー設定4選!!

初めに
#

SSH(Secure Shell) を使えば、サーバーに物理的にアクセスせずに、リモートから安全に操作することができます。

現在、多くの Linux ディストリビューションでは、SSH の実装として OpenSSH が標準で採用されています。

SSHは非常に便利な一方で、初期設定のまま利用するとセキュリティ上のリスクが潜んでいる場合もあります。

特に、初めてサーバーを扱う方にとっては「どの設定を確認・変更すればよいのか」が分かりにくいかと思います。

そこで本記事では、初心者でもすぐに実践できる OpenSSH のセキュリティ強化の基本設定を 4 つに絞って わかりやすく解説します。

リモートサーバーを安全に運用するための第一歩として、ぜひ参考にしてください。

設定ファイルの場所
#

OpenSSHは「config」ファイルに記述された設定を元に動作します。

その為、設定を変更するには、設定ファイルの場所を確認する必要があります。

多くの Linux ディストリビューションでは、デフォルトで以下のパスに配置されています。

本記事では「Rocky Linux 9」環境を利用しております。

/etc/ssh/sshd_config

このファイルを編集することで、接続ポートの変更や認証方法の設定など、さまざまなセキュリティ項目をカスタマイズできます。

なお、設定を反映させるには、サービスの再起動が必要です。

再起動方法については最終項目にて解説いたします。

パスワード認証の無効化
#

初めにご紹介するのはパスワード認証の無効化です。

SSH接続は以下の二種類の方法が利用できます。

ログイン方式 特徴 リスク
パスワード認証 ユーザー名とパスワードでログイン ブルートフォース攻撃に弱い
公開鍵認証 秘密鍵と公開鍵による認証 鍵の管理が適切であれば安全性が高い

パスワード認証は読んで字のごとく、ユーザー名パスワードを使用したログイン方法となります。

一般的に、インターネット上で公開されているサーバーでは、「公開鍵認証方式」の利用が推奨されています。

一方で、パスワード認証は、ブルートフォース攻撃(総当たり攻撃) などによって不正にログインされるリスクがあり、場合によっては短時間で突破される可能性もあります。

そのため、公開鍵認証を利用し、パスワード認証を無効にすることを強くおすすめします。

パスワード認証を無効化するには下記の設定値を変更する必要があります。

PasswordAuthentication yes

上記が「yes」となっている場合はパスワード認証が有効化されている状況となっております。

下記に「no」に変更する事でパスワード認証の無効化が可能です。

PasswordAuthentication no

ポートを変更する
#

次にご紹介するのはデフォルトのポート番号から独自のポート番号に変更する方法となります。

sshサービスでは22番ポートがデフォルトとして利用されております。

そのため、悪意のある第三者は、22番ポートを標的にスキャン攻撃を仕掛けてくるケースが非常に多いのが実情です。

特に公開サーバーでは、ポートスキャンによるアクセス試行が日常的に発生しています。

これを回避するための一つの手段として、デフォルトのポート番号を変更することが有効となります。

利用するポート番号の指定は下記のように記述する事で設定ができます。

Port 番号

以下は「7628」ポートを指定するように記述している例となります。

Port 7628

また、応用として下記のように指定する事で複数のポートを利用可能にする事も可能となっております。

Port 7628
Port 7629
Port 7630

またポートを変更する場合は「ファイヤーウォール」の設定や「SELinux」の設定が必要となります。

ご利用の環境に合わせてご変更お願いいたします。

rootログインを禁止する
#

次にご紹介するのはrootアカウントによるSSHログインを禁止する方法です。

Linux サーバーの運用において、root(特権アカウント)を使った直接ログインは推奨されていません。

セキュリティの観点からは、各ユーザーに対して適切な権限を付与し、通常は一般ユーザーとして作業を行うことが望ましいとされています。

どうしても特権操作が必要な場合には、必要に応じて sudoP 権限を付与する、あるいは一時的に rootP に昇格して操作を行う といった方法を取ることで、リスクを最小限に抑えることができます。

rootアカウントのログインを禁止するには下記の様に記述する事で設定可能です。

PermitRootLogin no

rootアカウントのパスワード認証のみを禁止し公開鍵認証の利用を許可する場合は以下の様に設定します。

PermitRootLogin prohibit-password

アクセス制限を行う
#

最後にご紹介するのはアクセス制御をかける方法です。

OpenSSH では、特定のユーザーやグループのみに接続を許可することで、不必要なアカウントからのアクセスを防ぎ、セキュリティリスクを大幅に下げることができます。

たとえば、運用に必要なユーザーのみに制限をかけることで、万が一他のアカウントが乗っ取られてもSSH経由での不正アクセスを防ぐことができます。

許可するユーザーの指定は下記の様に設定する事が出来ます。

AllowUsers user1 user2 user3

上記設定では「user1」「user2」「user3」のユーザーのみSSHを許可する設定となります。

許可するグループの指定は下記の様に設定する事が出来ます。

AllowGroups Group1 Group2 Group3

上記設定では「Group1」「Group2」「Group3」のグループに所属しているアカウントのみSSHを許可する設定となります。

サービスの再起動
#

SSHの設定変更が完了したらサービスの再起動が必要となります。

今回は「Rocky Linux 9」を利用している為、「systemctl」コマンドにより再起動を実施します。

適切な設定が行われている事を確認し下記コマンドを実行してください。

systemctl restart sshd

以上で設定完了となります。

関連記事

【初心者向け解説】OpenSSHで秘密鍵/公開鍵を作成する方法
Linux SSH OpenSSH
【保存版】Linuxでログアウト後も処理を継続させる方法
Linux コマンド
PostfixにおけるSMTPUTF8エラーとは
Postfix メール Linux
ログ取得にも便利!teeコマンドで標準出力を保存する方法
Linux コマンド
Apacheでインストール済みモジュールを確認する方法
Apache Linux
Pleskでメールアカウントのパスワードを確認する方法
Linux