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