OpenSSL/OpenSSH

 リモートのUnixマシンへ接続してそのコンピュータを操作するのに以前はTELNETやRLOGIN、RSHなどを使うのが一般的であったが、いずれも送信するメッセージはネットワーク上を平文のまま流れるため、パスワードなどを第三者に盗み見られる可能性がある。これらに変わって登場したのがSSHである。SSH(Secure Shell)はその名のとおりセキュリティに強いシェルで、TELNETとは違い送信するすべてのデータやコマンドが暗号化される。
  最近のUnixではすでにSSHプログラムの初期インストールが標準となっているが、一昔前のバージョンではインストールされていないこともある。もしTELNET等しか使えない場合は早急にインストールしたほうがよいだろう。なおOpenSSHをインストールするためには、事前にzlibとOpenSSLのインストールが必要である。zlibはほとんどインストールされていることが多いので、ここではOpenSSLとOpenSSHのインストール方法を紹介する。
 なおLinux等で古いバージョンのアプリケーションがはじめからインストールされている場合は、必要に応じて消去・上書きする。rpmコマンドを使用してアンインストールを行うとき、依存関係のエラーが出る場合は先にそちらのパッケージから消去する必要があるが、OpenSSLやOpenSSHは多くのアプリケーションがこれらのプログラムを使っていることもある。よほど古いバージョンでなければインストールされているものを使ってもよい。

OpenSSL
DefaultPort : 22 (SSH)

1)「/usr/local/src/」以下でOpenSSLのアーカイブを解凍し、展開されたディレクトリ内に移動する。

# cd /usr/local/src/
# tar zxvf openssl-0.9.6c.tar.gz
# cd openssl-0.9.6c/

2)コンパイル&インストール。以下の例では「/usr/local/openssl」以下にOpenSSLがインストールされる。インストール後、実行ファイルは「/usr/local/sbin/」以下にシンボリックリンクを張り、パスを通しておく。

# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
# make
# make test
# make install
# ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl
# cd ../apache_1.3.26/
# make
# make install

3)OpenSSHのインストールの前に、起動に必要なユーザとグループを作成する。

# groupadd -g 44 sshd
# useradd -u 44 -g sshd -d /usr/local/openssh -s /bin/false sshd

4)OpenSSHのアーカイブを解凍し、展開されたディレクトリへ移動する。

# cd ../
# tar zxvf openssh-3.4p1.tar.gz
# cd openssh-3.4p1/

5)OpenSSHのコンパイルにはzlibとOpenSSLが必要なため、configureでインストールディレクトリを指定する。その後コンパイル、インストール。

# ./configure --prefix=/usr/local/openssh
--without-pam --with-zlib=/usr \
--with-ssl-dir=/usr/local/openssl --with-md5-passwords
# make
# make install

6)(4)のユーザ作成後のホームディレクトリ(インストールディレクトリ)のパーミッションを読み取り、実行許可にする。その後sshクライアントプログラムにパスを通す。

# etc/sshd_config
     PermitRootLogin no
     PermitEmptyPasswords no

7)SSHDの設定ファイルを書き換える。ここでは「リモートからのrootログインを禁止」し、また「空パスワードのユーザのログインを禁止」する設定である。

# openssl req -new -days 365 -key ssl.key/server.key
-out ssl.csr/server.csr

8)SSHDを起動し、SSHコマンドで動作を確認する。無事に一般ユーザ(以下の例では「user」というユーザ名)でログインできることを確認できたら、自動起動の設定を行う(起動スクリプト)。

# sbin/sshd
# ssh -l user localhost
# exit
TOP OF PAGE