Tera Term Pro を使ったセキュリティ構築法
FreeBSDでは標準でSSHが導入されている。そのため、ftpd,telnetd,rlogindは起動しない設定がディフォルト値となっている。
これらをr系コマンドと呼び、これを使わず、セキュリティ対策が施されている、s系コマンドを推奨している。
ここでは、SSHを使い、telnet,ftpの実現を試みる。
セキュリティ構築の基本方針を次のように定めた。
- SSH(Secure SHell)とRSA認証を前提とする。
- telnet,rlogin,ftp はデーモンを起動しない。
- SSHを使った接続とする。22 port のみ公開する。
- リモートホストは、UNIX・Windowsとする。
- プレーンテキストでの認証は拒否する。
- 公開鍵は、サーバーでする。
- 鍵ファイルを利用者に渡す手法とする。
標準的なtelnet,ftp はSSHに対応していない。そのためSSH対応のTOOLを用意する必要がある。PuTTY(Free
Win32 Telnet/SSH)が有名であるが、あえてここではTera Term Pro
を導入する。
導入するTOOLのリストを示す。
セキュリティを構築するには、サーバー側で行う作業意と、クライアント側で行う作業が必要となる。
最初にサーバー側の設定を行い、その後クライアント側の設定となる。ここでは、その作業の流れを記す。
- SSHサーバの設定をする。
プレーンテキストによる認証拒否などの設定を行う。
- 公開鍵を作成する。
User単位で鍵を作成する。
- 公開鍵を利用者に渡す。
メール(?)などで鍵ファイルを利用者に渡す。
- client側の設定をする。
Tera Term Pro,WinSCP2 などの設定と利用
SSHサーバーの設定は、/etc/ssh/sshd_config で行う。管理者権限で設定を行う。今回は
特に、loginパスワード認証・空のパスワードを禁止・RSA認証を使用に重点を置いた。
Protocol 2 | SSHプロトコル2での接続に限る |
PermitRootLogin no | rootユーザーからのログインを禁止する |
ChallengeResponseAuthentication no | PasswordAuthentication,PermitRootLoginの効果に影響する。
Default は yes のため、これを指定しないと、鍵なしでのログインが可能となってしまうので要注意 |
RSAAuthentication yes | RSA認証を使用できるようにする(SSH1) |
PubkeyAuthentication yes | 公開鍵方式の認証を使用できるようにする(SSH2) |
RhostAuthentication no | rhosts、/etc/hosts.equivの設定を無視する(SSH1) |
IgnoreRhosts yes | rhosts、shostsの設定を無視する(SSH1) |
RhostsRSAAuthentication no | RSAホスト間の認証で.rhosts、/etc/hosts.equivを無視する(SSH2) |
HostbasedAuthentication no | RSAホスト間の認証で.rhostsを無視する(SSH2) |
PermitEmptyPasswords no | 空のパスワードを禁止する |
PasswordAuthentication no | loginパスワード認証を使用しない |
設定が完了したら、rootになってSSHデーモンのsshdを再起動する。
FreeBSD# /etc/rc.d/sshd restart
公開鍵は、ログインユーザー単位で行う。
#su mickey
$ ssh-keygen -t "rsa1" [Enter]
Generating public/private rsa1 key pair
Enter file in which to save the key (/home/mickey/.ssh/identity): /home/mickey/.ssh/windows [Enter]
Created directory '/home/mickey/.ssh
Enter passphrase (empty for no passphrase):*********** [Enter]
Enter same passphrase again:*********** [Enter]
Your identification has been saved in /home/mickey/.ssh/windows
Your public key has been saved in /home/mickey/.ssh/windows.pub
The key fingerprint is:
9b:a9:81:24:7a:df:4c:55:c3:83:96:6a:ed:ce:a9:2e mickey@FreeBSD.micnet.or.jp
$ cd .ssh [Enter]
$ mv windows.pub authorized_keys [Enter]
この場合は、windows というファイルが公開鍵となる。
公開鍵を、ログインユーザーに渡す。
その際、属性をUID,GIDともに読み書きの権限を与える。
メールや、FDなどで直接Windows クライアントに渡す。分かりやすい名前に
変更すると、利用しやすい。ここではk_mickeyとした。
#cd ~/.ssh
#cp windows k_mickey
Tera Term Proのインストールについて記す。
Step_01 Tera Term Pro のインストール
tterm23.zip を展開してできる setup.exe を実行する。
Step_02 Tera Term Pro 日本語パッチ
ttrmp2312j.zip を展開してできる以下のファイルをすべて
Tera Term Pro をインストールしたディレクトリにコピーする。
japanize.txt
keycode.exe
ttermpro.exe
ttpcmn.dll
ttpdlg.dll
ttpfile.dll
ttpmacro.exe
ttpset.dll
ttptek.dll
Step_03 TTSSH プラグインのインストール
ttssh151.zip を展開してできる以下のファイルをすべて
Tera Term Pro をインストールしたディレクトリにコピーする。
Libeay.txt
libeay32.dll
readme.txt
ttssh.exe
ttxssh.dll
Step_04 公開鍵のインストール
入手した公開鍵を、 Tera Term Pro をインストールしたディレクトリにコピーする。
ttermpro.exe(または ttssh.exe)を実行して TTSSH を起動する。
TCP/IP を選択
Host: FreeBSD.micnet.or.jp … 接続先のホスト名
Service SSH … 接続するサービス
として OK を押し、FreeBSD.micnet.or.jpに接続する。
ホストに初めて接続する場合は未知のホストである旨の警告が表示されるので、Continue を押す。
このとき Add this machine and its key to the known hosts list を選択しておくと、次回から警告が出なくる。
TTSSH を初めて起動する場合は known_hosts ファイルが存在しないという警告が出る。 OK を押すと自動的に作成される。
Use plain password to log in は利用できない状態になっている。
(Server側の設定)
User name: mickey … ユーザ名
Passphrase: ******* … パスワード
を入力して OK を押し、ホストにログインする。
WinSCP2
のインストールおよび利用方法は、標準的なインストールで利用できるため、ここでは説明を行わない。
-
WinSCP2 を起動する。
-
WinSCP Login 画面が表示されたら必要な項目を入力し,“Login”を選択する。
- Host name FreeBSD.micnet.or.jp
- User name mickey
- Password ************
-
初めて接続するホストの場合,Warning が表示さる。
ここで表示される fingerprint を受け入れる場合には [Yes]
を選択する。
-
再度パスワードを聞かれる。
-
ログインが完了すると左にローカルホスト,右にリモートホストのファイル一覧が表示された画面が表示される。
-
作業が終了したら,“F10 Disconnect”で WinSCP2 を終了する。