2 OpenSSHサーバーの構成
SSHサーバーを設定するには、openssh
パッケージとopenssh-server
パッケージをインストールし、sshd
サービスを有効にします。その後、/etc/ssh
ディレクトリにある構成ファイル内の設定を変更できます。
OpenSSHサーバーのインストールおよびsshdの有効化
デフォルトのOracle Linuxインストールにはopenssh
およびopenssh-server
パッケージが含まれていますが、sshd
サービスはデフォルトでは有効になっていません。
-
パッケージがインストールされていない場合は、次のコマンドを実行します。
sudo dnf install openssh openssh-server
-
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を使用してログインできないようにするには、PermitRootLogin
をno
に設定します。次に、ログイン後にユーザーの権限を高めます。
PermitRootLogin no
特定のユーザーの制限
AllowUsers
、AllowGroups
、DenyUsers
および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接続へのアクセスの制限を参照してください。