トップ 履歴 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

OpenBSD/sshd/47

INDEX

OpenBSD SSHサーバ

OpenBSDのサーバ sshd の設定 (2010-07-08 OpenSSH 5.5 at OpenBSD 4.7 ベースに)

セキュアシェルサーバ(sshd)の設定

/etc/ssh/sshd_config に設定する。

デフォルトのままでもそこそこ使える設定にはなっている。コメントアウトされて書かれている内容がデフォルト値になる。

 設定内容(方針)

重要そうな・変更した設定項目だけ。詳しくはマニュアル参照のこと。

デフォルトでは root がパスワード認証でログオン出来るので変更する。ブルートフォースアタックが五月蠅いので、ポート番号を変えて、公開鍵認証のみにする。

  • ポート番号を適当に変える
    • Port 123456
  • プロトコルは、バージョンは2のみ
    • Protocol 2
  • スーパーユーザ(root)のログオンは不可
    • PermitRootLogin no
  • 認証方法は、公開鍵認証のみ
    • RSAAuthentication yes
    • PubkeyAuthentication yes
    • PasswordAuthentication no
    • PermitEmptyPasswords no
    • ChallengeResponseAuthentication no
  • パーミッションチェックを行う
    • StrictModes yes
  • ホストベースド認証(rhosts)は利用しない
    • RhostsRSAAuthentication no
    • HostbasedAuthentication no
    • IgnoreRhosts yes
  • サブシステムで、sftp を利用可能にする。
    • Subsystem sftp /usr/libexec/sftp-server
    • Subsystem sftp internal-sftp
    • ※OpenBSD 4.3 または OpenSSH 4.8 から internal-sftp が使える

設定例

 chrooted sftp

条件分岐と chroot 機能(OpenSSH 4.9 以降)を利用して、特定のユーザが特定のディレクトリ以下のみを sftp のみアクセス出来るようにする。また、internal-sftp (OpenSSH 4.8 以降)を利用すると別途コマンド類を chroot したディレクトリに配置する必要がなくなる。

chroot されるユーザは、sftponly グループに所属するユーザ。自身のホームディレクトリ配下のみ参照可能で、sftp のみの利用できる。

sftponly グループを作成する。

# groupadd sftponly

/etc/group を編集して、対象のユーザを sftponly グループに所属させる。

sftponly:x:1002:user

/etc/ssh/sshd_config に設定を追加して、chroot されるようにする。(sftpのみ可能とし、ポート転送も禁止する)

# chrooted sftp
Match group sftponly
	AllowTcpForwarding no
	X11Forwarding no
	ChrootDirectory %h
	ForceCommand internal-sftp

shell も利用可能にする場合は、ForceCommand をなくす(か必要に応じた設定にする)。さらに、必要なコマンド類を chroot 後に利用できるように環境を整える必要がある。

chroot するディレクトリとそこまでのディレクトリすべてが root 所有で、他のユーザ・グループが書き込み出来ないようになっている必要がある。って、それじゃホームディレクトリに指定してるのに、直下にファイルを置けないじゃん。「%h」を指定したときは、ユーザ所有でもOKにならないかな。

 ローカルエリアからのルートログイン

Match を利用した設定例。ローカルエリア内から接続した場合のみ、保守用にルートでもログインできるようにする。

# Connection from local area
Match Address 192.168.0.*
	PermitRootLogin without-password
	#PasswordAuthentication yes

鍵ファイル

 ホスト鍵

ホスト認証用の公開鍵ペアが存在することとパーミッションを確認する。秘密鍵が他のユーザに読める状態では sshd は接続を受け付けない。

  • 公開鍵 (オーナは root, パーミッションは 644)
    • /etc/ssh/ssh_host_key.pub
    • /etc/ssh/ssh_host_dsa_key.pub
    • /etc/ssh/ssh_host_rsa_key.pub
  • 秘密鍵 (オーナは root, パーミッションは 600)
    • /etc/ssh/ssh_host_key
    • /etc/ssh/ssh_host_dsa_key
    • /etc/ssh/ssh_host_rsa_key

 個人鍵

公開鍵認証に使う個人鍵は、ssh-keygen コマンドを使って作る。ホスト鍵同様に秘密鍵のパーミッションは600として自分以外が読めないようになっている必要がある。鍵ペアを作る場合は、"ssh-keygen -t type" として実行する。また、マシンにログインに利用する鍵ペアの公開鍵は、'~/.ssh/authorized_keys' へ追加する。

最終更新時間:2021年09月20日 15時54分22秒 指摘や意見などあればSandBoxのBBSへ。