| SSHサーバ(OpenSSH) |
Telnetやftp,rloginなどは、全て暗号化されないため、passwardなども暗号化されずに 通信経路をながれてしまう。 これを防ぐためにあるのがSSH(Secure SHell)である。 SSHは、全ての通信路を暗号化して通信を行なってくれる他、 トンネリングという機能を備えており、 SSHを偽装していろいろなプロトコルを暗号化して通信させる ことができる。 暗号化には秘密鍵と公開鍵を利用して行なわれます。
OpenSSHは、SSHプロトコルを フリーで実装したものである。
| ダウンロードとインストール |
下記のページのダウンロードサイトをLinux用RPMをクリックしていき、 rpmを取得する。
http://www.openssh.com/ja/portable.html
openssh-server-3.1p1-1 openssh-askpass-3.1p1-1 openssh-askpass-gnome-3.1p1-1 openssh-clients-3.1p1-1 openssh-3.1p1-1 のrpmを取得してインストールする。
$ cd /usr/local/src $ rpm -ivh openssh-server-3.1p1-1 \ openssh-askpass-3.1p1-1 \ openssh-askpass-gnome-3.1p1-1 \ openssh-clients-3.1p1-1 \ openssh-3.1p1-1
これでサーバのインストールが終了である。
| サーバの設定と起動 |
まずは、サーバ側にhost keyをつくりますが、sshdを立ち上げると 最初になければ自動的につくられる。
# /etc/rc.d/init.d/sshd start Generating SSH1 RSA host key: [ OK ] Generating SSH2 RSA host key: [ OK ] Generating SSH2 DSA host key: [ OK ] Starting sshd: [ OK ]
次回の起動からは鍵の生成は行なわれない。
続いて、接続するユーザが、サーバマシンで自分の公開鍵と秘密鍵を 生成する。そのときにpassphraseというのが必要になる。 これは、passwordみたいなものだが、空白なども使える。
まずはDSA鍵をつくる。
$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/ohmori/.ssh/id_dsa): Created directory '/home/ohmori/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ohmori/.ssh/id_dsa. Your public key has been saved in /home/ohmori/.ssh/id_dsa.pub. The key fingerprint is: 15:c0:3e:ed:1f:1e:87:aa:ce:ce:2e:58:ca:d5:cc:c5 ohmori@yari.bigforest.hn.org
つづいてRSA鍵をつくります。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/ohmori/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ohmori/.ssh/id_rsa. Your public key has been saved in /home/ohmori/.ssh/id_rsa.pub. The key fingerprint is: c7:cd:be:8f:75:15:54:8f:0a:3d:f5:ea:c6:7a:e2:73 ohmori@yari.bigforest.hn.org
これで準備完了である。
| クライアントでの設定の確認 |
Windowsをクライアントにする場合は、TTSSHを使うとよい。 WindowsのソフトでTeraTermという有名なソフトがある。 これのssh拡張したものがTTSSHというものである。
上記サイトからTeraTermとTTSSHをダウンロードしてくる。 TeraTermをインストールした後に、TTSSHをzipファイルを TeraTermをインストールしたディレクトリで展開するとできあがりである。
ttsshを立ち上げると下記のようにプロトコルを聞かれるのでSSH を選ぶ。
そのホストに初めて接続する場合は、以下のようにknown_hostに登録するか聞かれるので "Add this ..."をチェックしてContinueを押します。
続いて、下記のようにpassphraseを聞かれるので入力してOKする。
これで接続完了です。
| TTSSHによるPortFowarding |
TTSSHを使うと特定のPortをSSHを経由して 特定のリモートホストのポートにフォワードすることができる。 pop3を転送するときのイメージは以下のような感じである。
+-----------+ +-----------------+ +----------------+ +-----------+
|pop3 client|<-->|TTSSH PortForward|<-->|sshd PortForward|<-->|pop3 server|
+-----------+ +-----------------+ +----------------+ +-----------+
localhost:110<-->110 23<-->23 110<-->remotehost:110
一旦localhostのTTSSHのport 110がlocalhostの接続を受け付けてそれをSSHで remotehostのport 23に接続する。 remotehostのsshdは23を受け取ったらport 110にアクセスする。
今回は、POP3とSMTPをフォワードする。
TTSSHを起動して、メニューバーの 「Setup->SSH Forwarding...」を選択すると 下記のようにForwarding Setupダイアログが開くので「Add」ボタンをくりっくする。
次のダイアログで以下のようにpop3をmail.bigforest.hn.orgのpop3に 転送するように設定する。
smtpも同じように設定する。
メールクライアントソフト(例えば、Outlookなど)で、pop3サーバと smtpサーバをlocalhostと設定しておけばmailの送受信が暗号化されて行なわれる。
これで、TTSSHが立ち上がっている間はPortForwardingしてくれる。 TTSSHを立ち下げると設定がクリアされてしまうので、 「Setup->Save setup」でTERATERM.ini以外の名前 (例えばmail_forward.ini)で保存しておき、 次回立ち上げ時に「Setup->Restore setup」で設定をロードすればよい。
注意したいのは同じポートがそのまま違うサーバにフォワードされてしまうので、 例えば、POP3でいろいろなサーバとやりとりしたい場合は、 その度に設定を変更しなければならない。 メールソフトにポート番号を変える機能がついていて、例えば、 localhostの10000がhoge.com:pop3に10001がmoke.com:pop3に転送するという 設定ができればいいが、そのようなソフトはみたことない。