{{category OpenBSD,OpenSSH,nolink}}OpenBSDのサーバ sshd の設定 (OpenBSD 6.8, OpenSSH 8.4, LibreSSL 3.2.2) !!!セキュアシェルサーバ(sshd)の設定 '''/etc/ssh/sshd_config''' に設定する。 デフォルトの設定でも使えるようになっている。インストール時にでっていした内容が反映され、コメントアウトで書かれている内容がデフォルト値になる。 *関連 man → [sshd(8)|http://man.openbsd.org/sshd.8] , [sftp-server(8)|http://man.openbsd.org/sftp-server.8] , [sshd_config(5)|http://man.openbsd.org/sshd_config.5] !! 設定変更例 ブルートフォースアタックが五月蠅いので、ポート番号を適当に変える。 #Port 22 Port 12345 root は、ログイン不可(インストール時に不可としてると no が設定される)。 PermitRootLogin no 一般ユーザー含め、公開鍵認証のみ(パスワード認証、チャレンジレスポンス認証 を無効にする)。 # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes PasswordAuthentication no # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes ChallengeResponseAuthentication no SFTP は、インプロセスSFTPサーバーを使用。 # override default of no subsystems #Subsystem sftp /usr/libexec/sftp-server Subsystem sftp internal-sftp !!!設定例 !!ローカルエリアからのルートログイン Match を利用した設定例。 ローカルエリア内から接続した場合のみ、保守用に root でもログインできるようにする。 # 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)|http://man.openbsd.org/ssh-keygen.1] -------------------------------- !!!設定例 !!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