3.5.1 OpenSSH

OpenSSHは、OpenSSLのライブラリを使用します。
よって、OpenSSHをインストールするためにはOpenSSLをインストールしておく必要があります。
ただし、OpenBSDに関してはOpenSSLがシステムに含まれています。
FreeBSDは4.1-RELEASEから含まれるようになりました。また、この時はCRYPTOをインストールする必要がありましたが、4.1.1-RELEASE からは本体に含まれるようになりました。
http://www.openssh.com/
http://www.openssl.org/

OpenSSHは、サーバとクライアントのモジュールに分かれています。

(1) OpenSSH Server

OpenSSHをインストールする前にOpenSSLをインストールする必要があります。
OpenSSLのインストールは、Apache-SSLの項を参照願います。

OpenSSHをインストールすると/etc/ssh/sshd_configファイルもインストールされます。 このファイルは次のようになっています。(コメント等を一部削除しています)

sshd_config例
Port 22
HostKey /etc/ssh/ssh_host_key
HostDsaKey /etc/ssh/ssh_host_dsa_key
ServerKeyBits 768
LoginGraceTime 120
KeyRegenerationInterval 3600
PermitRootLogin no
ConnectionsPerPeriod 5/10
IgnoreRhosts yes
StrictModes yes
PrintMotd yes
KeepAlive yes
SyslogFacility AUTH
LogLevel INFO
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
CheckMail yes

通常の運用であれば、これだけで使用可能になります。
sshdを起動しクライアントから接続し確認してみます。

(2) OpenSSH Client

OpenSSHをインストールすると/etc/ssh/ssh_configファイルもインストールされます。 このファイルは次のようになっています。

sshd_config例
# Host *
# ForwardAgent yes
# ForwardX11 yes
# RhostsAuthentication yes
# RhostsRSAAuthentication yes
# RSAAuthentication yes
# PasswordAuthentication yes
# FallBackToRsh no
# UseRsh no
# BatchMode no
# CheckHostIP yes
# StrictHostKeyChecking no
# IdentityFile ~/.ssh/identity
# Port 22
# Protocol 2,1
# Cipher blowfish
# EscapeChar ~

sshクライアントは、このままでも使用可能になっています。
サーバ側で特に変更が無い限りはこのままで良いでしょう。
では、試しにsshでログインしてみましょう。sshコマンドに続いてログイン先のホスト名を入力します。

sshを使用したログイン
% ssh mail.ipa-sec.com
yamada@mail.ipa-sec.com's password:
Last login: Tue Mar 6 22:23:38 2001 from www.ipa-sec.com
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 4.2-RELEASE (GENERIC) #0: Mon Nov 20 13:02:55 GMT 2000

Welcome to FreeBSD!

You have new mail.
%

(3) telnetの停止

ここまで確認できたところで、telnetは不要になります。
サーバ側のinetd.confからtelnetのエントリを削除し、inetdを再起動します。

#でtelnetのエントリをコメントアウト
# telnet stream tcp nowait root /usr/libexec/telnetd telnetd

次に、inetdにkill -HUPシグナルを送ります。
なお、赤色で示したプロセス番号は毎回またはシステムによって異なるため、 必ず事前にpsコマンド等で確認してください。

# ps -auwx | grep inetd
yamada 252 0.0 0.5 1048 620 p0 S+ 10:59PM 0:00.01 grep inetd
root 111 0.0 0.6 1032 788 ?? Is 9:38PM 0:00.01 inetd -wW
# kill -HUP 111

これでこのUNIXシステムに対してtelnetによる接続は行えなくなりました。 今後はsshコマンドまたは、Windows環境ではTTSSH を使用して接続するようにしてください。

(4) ポートフォワーディング

POP3などでは、全てが平文で通信を行うためにユーザ名やパスワード、 そして取込むメールの本文などが盗聴される可能性がありました。
パスワードに関してはAPOPを使用することで回避できます。
しかし、これにはAPOP対応のメールクライアントが必要になってきますし、 メール本文は平文のままです。
APOP以外にもSSHのポートフォワーディング機能を使用するという方法があります。
ここでは、このポートフオワーディング機能を紹介します。

たとえば、mail.ipa-sec.comのポート110(POP3のポート)をポート8110に転送し、8110との間で通信を行う場合を考えてみます。
これには、sshコマンドに-Lオプションを付けて使用します。

% ssh -L 接続ポート:相手ホスト:対象ポート 相手ホスト

それでは、mail.ipa-sec.comのポート110をポート8110に転送し通信を行う方法を見てみましょう。

% ssh -L 8110:mail.ipa-sec.com:110 mail.ipa-sec.com

このように、ポートフォーワーディング機能を使用することによって、 暗号化された通信経路を確保することができます。


    Copyright(C)  2001 Information-technology Promotion Agency, Japan.  All rights reserved.