INDEX
OpenBSD SSHサーバ
OpenBSDのサーバ sshd の設定 (2010-07-08 OpenSSH 5.5 at OpenBSD 4.7 ベースに)
セキュアシェルサーバ(sshd)の設定
/etc/ssh/sshd_config に設定する。
デフォルトのままでもそこそこ使える設定にはなっている。コメントアウトされて書かれている内容がデフォルト値になる。
- 関連 man → sshd(8) , sshd_config(5)
- 関連 → OpenSSH 日本語マニュアルページ (新山氏 個人訳)
設定内容(方針)
重要そうな・変更した設定項目だけ。詳しくはマニュアル参照のこと。
デフォルトでは 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' へ追加する。
- 関連 man → ssh-keygen(1)
最終更新時間:2021年09月20日 15時54分22秒 指摘や意見などあればSandBoxのBBSへ。