# 8.1p1 Privilege separation, or privsep, is method in OpenSSH by which operations that require root privilege are performed by a separate privileged monitor process. Its purpose is to prevent privilege escalation by containing corruption to an unprivileged process. More information is available at: http://www.citi.umich.edu/u/provos/ssh/privsep.html Privilege separation (特権分離) ないし privsep は root の特権を必要とする操作が 分離された特権を持つモニタプロセスによって実行される OpenSSH のやり方です. この方法の目的は, 非特権プロセスに対する改悪による特権のエスカレーションを防ぐことです. さらなる情報が http://www.citi.umich.edu/u/provos/ssh/privsep.html にあります. (訳注: http://www.unixuser.org/%7Eharuyama/security/openssh/privsep.txt もどうぞ) Privilege separation is now mandatory. During the pre-authentication phase sshd will chroot(2) to "/var/empty" and change its privileges to the "sshd" user and its primary group. sshd is a pseudo-account that should not be used by other daemons, and must be locked and should contain a "nologin" or invalid shell. 特権分離は現在必須となっています. 認証前のフェイズの間 sshd は, "/var/empty" に chroot (2) し その権限を "sshd" ユーザとその primary group (/etc/passwd に 指定されているもの) に変更します. sshd は 他のデーモンでは使われるべきでは ない偽のアカウントで, ロックされてなければならず, "nologin"ないし無効な シェルを持っているべきです. You should do something like the following to prepare the privsep preauth environment: privsep 認証前環境を準備するには次のような操作をする必要があります. # mkdir /var/empty # chown root:sys /var/empty # chmod 755 /var/empty # groupadd sshd # useradd -g sshd -c 'sshd privsep' -d /var/empty -s /bin/false sshd /var/empty should not contain any files. /var/empty は どんなファイルも置くべきではありません. configure supports the following options to change the default privsep user and chroot directory: configure は 以下のオプションで デフォルトの privsep ユーザと chroot ディレクトリを変更することをサポートしています. --with-privsep-path=xxx Path for privilege separation chroot --with-privsep-user=user Specify non-privileged user for privilege separation PAM-enabled OpenSSH is known to function with privsep on AIX, FreeBSD, HP-UX (including Trusted Mode), Linux and Solaris. PAM を有効にした OpenSSH も, AIX, FreeBSD, HP-UX (Trusted Modeを含む), Linux, Solaris で privsep が機能していることがわかっています. On Cygwin, Tru64 Unix and OpenServer only the pre-authentication part of privsep is supported. Post-authentication privsep is disabled automatically (so you won't see the additional process mentioned below). Cygwin, Tru64 Unix, OpenServer では privsep の認証前の分だけがサポートされている. 認証後の privsep は自動的に無効となる (それゆえ, 以下で述べている 追加のプロセスを見ることはない). Note that for a normal interactive login with a shell, enabling privsep will require 1 additional process per login session. privsep を有効にしていると shell を使った通常のインタラクティブ login のために, login セッションごとに 1 つのさらなるプロセスが必要になることに 注意してください. Given the following process listing (from HP-UX): (HP-UX での) 以下のプロセスのリストにおいては: UID PID PPID C STIME TTY TIME COMMAND root 1005 1 0 10:45:17 ? 0:08 /opt/openssh/sbin/sshd -u0 root 6917 1005 0 15:19:16 ? 0:00 sshd: stevesk [priv] stevesk 6919 6917 0 15:19:17 ? 0:03 sshd: stevesk@2 stevesk 6921 6919 0 15:19:17 pts/2 0:00 -bash process 1005 is the sshd process listening for new connections. process 6917 is the privileged monitor process, 6919 is the user owned sshd process and 6921 is the shell process. プロセス 1005 は 新しい接続を listen する sshd プロセスです. プロセス 6917 は 特権を持つモニタプロセス, 6919 はユーザに所有された sshd プロセス, 6921 はシェルプロセスです.