OpenSSH 3-4p1 の注意事項

SETUP


SSH

SSH とは、Secure Shell の略で、セキュリティによって保護された通信間で操作できる Shell のことです。

telnet と違い、通信が暗号化されるため、盗聴されにくいという利点があります。SSH は SSL ( Secure Socket Layer ) という技術を使って、通信を暗号化しています。

 

今回は、OpenSSH 3.4p1 を、Linux Slackware 7.1 へインストールしてみたのですが、以前に書いた OpenSSH 2.5.1p1 のお話 EZ-NET: OpenSSH による ssh サーバ構築 とは若干異なる部分があったので、そのあたりを記載することにしました。

 

ソフトウェアの入手

OpenSSH を使用するためには、OpenSSH のソースファイルを入手します。そのほかに、OpenSSL も必要となってきますが、これはすでに OpenSSL 0.9.6 がインストールされているものとして、今回は特にそのあたりには触れていません。

 

OpenSSH 3.4p1 の入手は、現時点では ftp://ftp.jp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ から入手することができます。ここから現時点での最新版である、openssh-3.4p1.tar.gz をダウンロードします。

 

sshd 3.4p1 のインストール

sshd のインストールを行います。

ssh 3.4p1 では Privilege Separation (特権分離) という機能がディフォルトで有効になるようで、まずはこのあたりで必要なアカウントを登録する必要があります。

 

chroot 用ディレクトリの準備

まずは、chroot によって ssh が使用する / ディレクトリの設定です。ディフォルト設定では /var/empty/ ディレクトリが使用されるとのことなので、まずはそのディレクトリを作成します。

mkdir /var/empty/

既にこのディレクトリが出来上がっている場合は改めて作成する必要はありませんが、もしそのディレクトリが空ではない (何かに使用されている) ようであれば、新たに別のフォルダを作成したほうがいいかもしれません。

その場合はたとえば、--with-privsep-path=/home/sshd/root/ のような感じで ./configure 時に指定する必要があります。

 

chroot 用アカウントの準備

続いて、Privilege Separation が使用するアカウント情報を登録します。

まずはアカウントの所属するグループを作成します。特に限定されているわけではなさそうなので、とりあえず sshd-priv というグループを作成しておきます。

groupadd sshd-priv

 

続いて、アカウントの登録です。

アカウント名はディフォルトでは sshd となるようなので、今回はそれにあわせてみることにします。無効なシェルが望ましいとのことなので、次のような感じにしてみました。

useradd -g sshd-priv -d /dev/null -s /bin/false sshd

もし sshd 以外のアカウント名にした場合は、./configure 時に --with-privsep-user=privuser のような感じで、明示的に指定する必要があります。

 

sshd のインストール

以下では上記で集めたファイルが /usr/src にあるものとして話を進めます。まずは cd /usr/src として、/usr/src/ ディレクトリへ移動します。

 

tar xvzf openssh-3.4p1.tar.gz

と入力して展開後、openssh-3.4p1/ というディレクトリに cd コマンドで入ります。

そして次の手順でコンパイルとインストールを行います。

./configure

make
make install

 

これでインストール完了です。

もしも Linux Slackware 7.0 などで、うまくログオンできなかったりした場合には、./configure --with-md5-passwords を実行してから再び make しなおしてみるとうまくいくかも知れません。

また、Privilege Separator の各種設定をディフォルト以外のものにした場合は、--with-privsep-user や --with-privsep-path を使って、それらを指定する必要があります。

 

また、起動時に次のようなメッセージが出るようですけど、特に問題なく sshd を利用することができるようです…。

This platform does not support both privilege separation and compression Compression disabled

一応かんたんに確認してみたところ、従来の sshd では常に root 権限にて動作しているところ、今回の sshd だと、ログオンしたユーザで動いているようです。