Help us understand the problem. What is going on with this article?

セキュアなSSHサーバの設定

More than 1 year has passed since last update.

概要

 前回の「Amazon Linux 2のsshサーバをよりセキュアに!」に続き、SSHサーバ全体の設定を残したいと思います

 以下の項目値がsshd_configに設定されていない場合はデフォルト値で動作するので、項目値を追加することで動作を制限することができます。なお、OpenSSHのバージョンによっては設定できないものもありますので、マニュアルを確認してから設定してください
 また、設定したことによって、古いSSHクライアントが接続できなくなったり、SSHサーバに接続できなくなることもありますので、事前に確認してから設定を行ってください!

プロトコルのバージョン(必須)

Protocol 1は中間者攻撃に問題があるため、Protocol 2を使用しましょう
OpenSSH 7.6以上はデフォルトで2になっています(Protocol 1はサポートされていない

/etc/ssh/sshd_config
Protocol 2

パスワード認証を無効(必須)

どうしてもパスワード認証しなければならない場合は、安全なパスワードを設定してください
IPAのチョコっとプラスパスワードや日本語パスワードなどが参考になります

/etc/ssh/sshd_config
PasswordAuthentication no

チャレンジ/レスポンス認証を無効(必須)

チャレンジ/レスポンス認証

パスワード認証を安全に行えるようにするための仕組みですが、パスワード認証を無効にするのが前提なので、こちらも無効とする

ChallengeResponseAuthentication no

空パスワードを無効(必須)

開発中はいいが、本番環境はNG

/etc/ssh/sshd_config
PermitEmptyPasswords no

rootユーザのログインを禁止(必須)

基本rootユーザで操作しないのが原則なので、rootユーザのログインから禁止

/etc/ssh/sshd_config
PermitRootLogin no

ログレベル(必須)

ログインに関するログ(成功、失敗)が出力されるようにする
問題が発生した時に状況をトレースしやすくするため

/etc/ssh/sshd_config
SyslogFacility AUTHPRIV
LogLevel VERBOSE

※あわせてrsyslogのログテンプレートを設定しておくと情報が過不足にならずに済みます

接続できるユーザを制限する(任意)

/etc/ssh/sshd_config
AllowUsers work_user

特定のユーザからの接続を拒否する(任意)

AWS EC2のようにデフォルトユーザ(ec2-user)が知れ渡っているような場合は、
デフォルトユーザを削除したり、接続禁止設定しとくと安全でしょう

/etc/ssh/sshd_config
DenyUsers ec2-user

SSH接続ポートの変更(任意)

デフォルト22番ポート以外の任意のポートに割り当てることで攻撃を遅らせることができます
※割り当て予定のポートを事前にファイアウオールで許可するようにしてください!

/etc/ssh/sshd_config
Port 1022

SSHポートフォワードの禁止(任意)

SSH接続を経由して、他のサーバに転送通信(トンネリング)をできなくする

/etc/ssh/sshd_config
AllowTcpForwarding no
AllowStreamLocalForwarding no
GatewayPorts no
PermitTunnel no

参考

https://www.ssh.com/ssh/sshd_config/

comefigo
自社クラウドサービスの開発・運用をやっています。 ここには日々のアウトプットを残したいと思います。 [Katacoda](https://www.katacoda.com/comefigo7)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away