2 OpenSSHサーバーの構成

SSHサーバーを設定するには、opensshパッケージとopenssh-serverパッケージをインストールし、sshdサービスを有効にします。その後、/etc/sshディレクトリにある構成ファイル内の設定を変更できます。

OpenSSHサーバーのインストールおよびsshdの有効化

デフォルトのOracle Linuxインストールにはopensshおよびopenssh-serverパッケージが含まれていますが、sshdサービスはデフォルトでは有効になっていません。

  1. パッケージがインストールされていない場合は、次のコマンドを実行します。

    sudo dnf install openssh openssh-server
  2. sshdサービスを開始して、システムの再起動後に開始するように構成します。

    sudo systemctl start sshd
    sudo systemctl enable sshd

/etc/ssh/sshd_configファイルでは、Kerberos認証、X11転送、ポート転送などの機能に対するsshd構成オプションを設定できます。詳細は、sshd(8)およびsshd_config(5)のマニュアルページを参照してください。

OpenSSHサーバー構成ファイルの使用

特定のOpenSSH設定を構成するには、/etc/sshディレクトリ内のグローバル構成ファイルを編集します。これらのファイルを次に示します。

  • moduli

    セキュアな接続を設定するために使用するキー交換情報が含まれます。

  • ssh_config

    ユーザーの~/.ssh/configファイルの設定でオーバーライド可能なデフォルトのクライアント構成が含まれます。

  • ssh_host_rsa_key

    SSH2のRSA秘密キーが含まれます。

  • ssh_host_rsa_key.pub

    SSH2のRSA公開キーが含まれます。

  • sshd_config

    sshdサービスの構成設定が含まれています。

/etc/sshディレクトリ内のその他のファイルを構成できます。詳細は、sshd(8)マニュアル・ページを参照してください。

Oracle Linux 8以降では、/etc/ssh/sshd_config.dディレクトリに保存されているファイルは、/etc/ssh/sshd_config構成ファイル内で定義されている設定より優先されます。

詳細は、ssh_config(5)sshd(8)およびsshd_config(5)の各マニュアル・ページを参照してください。

SSH接続へのアクセスの制限

セキュア・シェル(SSH)を使用すると、他のシステムとの保護された暗号化通信が提供されます。SSHはシステムへのエントリ・ポイントであるため、不要な場合はSSHを無効にします。オプションで、/etc/ssh/sshd_configファイルを編集してその使用を制限することもできます。

重要:

構成ファイルに変更を加えた後は、sshdサービスを再起動して変更内容を有効にする必要があります。

rootアクセスの制限

rootがSSHを使用してログインできないようにするには、PermitRootLoginnoに設定します。次に、ログイン後にユーザーの権限を高めます。

PermitRootLogin no

特定のユーザーの制限

AllowUsersAllowGroupsDenyUsersおよびDenyGroups設定を指定して、特定のユーザーおよびグループへのリモート・アクセスを制限できます。たとえば:

DenyUsers carol dan
AllowUsers alice bob

ユーザーおよびグループの構成の詳細は、『Oracle Linux 8 システム・ユーザーおよび認証の設定』または『Oracle Linux 9 システム・ユーザーおよび認証の設定』を参照してください。

タイムアウト時間の設定

ClientAliveIntervalおよびClientAliveCountMax設定により、SSHクライアントは一定の非アクティブな期間後に自動的にタイムアウトします。

# Disconnect client after 300 seconds of inactivity
ClientAliveCountMax 0
ClientAliveInterval 300

パスワード認証の無効化

PasswordAuthenticationおよびPubkeyAuthentication設定では、SSHクライアントがユーザーに対して実装する認証方法(パスワードまたはSSH公開キーのいずれかを使用)を定義します。デフォルトでは、OpenSSHは認証にパスワードを使用します。ただし、よりセキュアなキー・ベースの認証を構成している場合は、オプションでその機能を無効にできます。

PasswordAuthentication no
PubkeyAuthentication yes

詳細は、sshd_config(5)マニュアル・ページを参照してください。

ユーザー・アクセスに関するOpenSSHサーバーの構成

接続のサーバー側でのユーザー固有の構成は、$HOME/.sshディレクトリにあり、次のファイルを含んでいます。

  • authorized_keys

    ユーザー用の認可済公開キーが含まれています。サーバーは、このファイルにある署名された公開キーを使用してクライアントを認証します。

  • environment

    環境変数の定義が含まれます。このファイルはオプションです。

  • rc

    ユーザーのログイン時に、ユーザーのシェルまたはコマンドが実行される前にsshで実行するコマンドが含まれています。このファイルはオプションです。

詳細は、ssh(1)およびssh_config(5)の各マニュアル・ページを参照してください。

関連トピック

特定のコマンドへのSSHキー・アクセスの制限

$HOME/.ssh/authorized_keyファイルを編集することで接続のサーバー側でユーザー固有の構成を追加できます。ユーザーが認証に使用できるSSHキーのリストに加え、必要に応じて、ユーザーがこれらの各キーで実行できる内容にさらなる制限を課すこともできます。

たとえば、commandオプションを使用すると、あるキーを使用して実行されたすべての接続を、単一のコマンドを実行した直後に終了するように構成できます。

command=command ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6OabJhWABsZ4F3mcjEPT3sxnXx1OoUcvuCiM6fg5s...

セキュリティを重視するユーザーは、このcommandオプションを使用することで、繰返し操作を省くために使用される特定のキー、およびパスフレーズで保護されていない特定のキーで実行可能にするシステム・アクセスを制限できます。

また、fromオプションを使用してIPv4アドレスの許容範囲を設定することで、インバウンド接続が内部ネットワークから発生した場合にのみキーが受け入れられるようにすることもできます。たとえば、192.0.2.0/24の範囲外からのIPアドレスをSSHキーを使用して接続しないようにするには、次の行を、正しいkey値にして$HOME/.SSH/authorized_keyファイルに追加します。

from=192.0.2.0/24 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6OabJhWABsZ4F3mcjEPT3sxnXx1OoUcvuCiM6fg5s...

詳細は、sshd(8)マニュアル・ページを参照してください。

OpenSSHサーバーの構成に関するお薦めの慣例

最も一般的なリモート・エクスプロイトからOpenSSH構成を保護するために、次のガイドラインをお薦めします。

  • リモートでのSSH経由のrootユーザーのログインを無効にします。

  • キー・ベースの認証を正しく構成した後、SSHパスワード認証を無効にします。

  • インターネットに接続するシステム用に標準以外のSSHポートを設定することを検討してください。

詳細は、SSH接続へのアクセスの制限を参照してください。