Back-home
SSH Port Forwarding
Top view / Search view / Administer

ポートフォワーディング 2003/03/23 (Sun)

Windows マシンにて SSH のポートフォワーディングを利用し、メール受信(POP3ポート),メール送信(SMTPポート)を完全暗号化するための手順です。

Tera Term Proは、安定したフリーソフトです(以下に解説)。最新 TTSSH は SSHプロトコル 1.5互換のため、SSH1 (Secure SHell protocol version 1)を利用します。
よりセキュアーなプロトコル SSH2 ( Secure SHell protocol version 2 )を利用する場合、PuTTYによるSSH接続 をご覧下さい。

クライアントPC Windowsの環境設定 :

ホームページ Tera Term Pro for Windows 95/98/Me/NT 4.0/2000/XP 日本語版 にアクセスします。

最初に、Tera Term Pro 2.3 アーカイブファイル ttermp23.zip をインストールします。ダウンロードサイトは Vector Design (HTTP) ttermp23.zip などです。

次いで、オリジナルTTSSH バージョン 1.5.4 アーカイブファイル ttssh154.zip和訳ホームページなどからダウンロードし、Tera Term Pro 2.3をインストールしたディレクトリ内に展開します。

続いて、TTSSH 1.5.4 日本語版 1.3 (build 146) ttrmp2319j.zip をダウンロード・展開し、すべてのファイルをTera Term Proをインストールしたディレクトリの中にコピーします。

ttssh.exe のショートカットを作成します。
ディレクトリ内 ttermpro.exe、プログラムメニュー内 Tera Term Pro は使用しません。また、同時起動してはいけません。

さらに、SSH1用RSA鍵 をWindowsマシン上で作成するため、PortForwarderにアクセスして、PortForwarder バージョン 1.1.1 Windows(95/98/NT/2000)用ZIPファイル PortForwarder-1-1-1_WIN.zipをダウンロードし、インストールします。ただし、登 不二雄氏(toh@fuji-climb.org)に PortForwarderのダウンロード時、メールを送ってください(メールウエア)。

PortForwarder の PF-keygen.exe のみ起動します。
      [generate new key] をラジオボタンで選択
      [identity file :] ディレクトリの PATH を指定します。
      C:\PATH\PATH\identity ⇒必ず、 identity (秘密鍵) を指定して下さい。
      OKボタンをクリックします。
      Passphrase の欄に RSA key用 Passphrase を作成・入力して、再度 OK を選択します。

      ディレクトリ、秘密鍵、公開鍵を自動生成します。

      identity.pub (RSA公開鍵) ⇒ authorized_keys にリネームします
      ファイル名 identity は RSA秘密鍵 ですので、コピーをフロッピーディスクなどで保管しておきます。


サーバー側の設定 :

% ps aux | grep sshd

sshサーバーの起動を確認します。

% ssh user@remotehost

ユーザーのホームディレクトリに ディレクトリ .ssh が作成されます。パーミッション 700 であることを確認します。.ssh 内に authorized_keys (パーミッション 600)をコピーします。

公開鍵の追加の際、authorized_keys を編集しますが、鍵ファイル間を改行します(改行 LF のみ)。また、
% chmod 600 authorized_keys

をおすすめします。


クライアントPC Windows からのアクセス :

ショートカット ttssh.exe をクリックします。

画面 [Tera Term: New Connection]
    TCP/IP 側であれば、
    Host : 接続するホスト名または IP アドレスを入力
    Service : SSH のラジオボタンをクリック
    TCP port# : 22 を確認。

次画面 [SSH Authentication]
まず、平文パスワードで ssh 接続します。
    User name: 入力
    User Passphrase: 入力
    Use plain password log inを選択して、

OK ボタンをクリックして、ssh 接続にてサーバのホームディレクトリにログインします(確認のみ)。
メニューにて、切断、終了 (logout) します。

再度接続します。
    [SSH Authentication]
    Use RSA key to login を選択し、
    Private key file : identity のPATH を入力します。
    User Passphrase: RSA key の Passphraseを入力

ボタン OK をクリックしてログインして、メニューバーの[設定]を選び
    SSH Forwarding...をクリックします。

[Port Forwarding] ダイアログが立ち上がりますので、「Add」ボタンを押します。
    Forward local port : smtp
    to remote machine : サーバのホスト名
    port : smtp

OKをクリック後、
    Forward local port : pop3
    to remote machine : サーバのホスト名
    port : pop3

OKを再度クリックします。
    設定 TERATERM***.ini を別名保存します。接続状態で、

MUA メールクライアント(OS Windows で使用中のメールソフト)の設定を変更します。

    SMTP サーバ : localhost
    POP3 サーバ : localhost

メール送受信ができれば成功です。
メール、パスワードをすべて暗号化した状態 ( ssh によるポートフォワーディング) で安全にサーバとの交信が完了しました。
    TTSSH を終了します(logout)。

ローカルポート:8000(任意) リモートポート:80(Webポート)などと設定すれば、WWWサーバーのフォワーディングも可能です。ローカルポートの番号は TTSSH で選択して下さい。ポート 8000 などの選択は任意ですが、特権ポート(1024未満のポート番号)を指定するためには、接続元マシンに root としてログインしている必要があります。




PuTTYによるSSH接続 (SSH2 による Port forwarding) 2003/03/26 (Wed)

SSH2 による Port forwarding のために、OS Windows 環境では PuTTY: A Free Win32 Telnet/SSH Client を利用します。

      PuTTY: putty.exe
      Pageant: pageant.exe
      PuTTYgen: puttygen.exe

をダウンロードします。

(Putty では "Port forwarding" ではなく、 "トンネル" Tunneling と名づけています) 最新バージョンは 0.53b (03/03/25 現在)です。


まず、キーペアを作成するため、puttygen.exe を起動します。

PuTTY Key Generator トップ画面にて、
[parameters] SSH2 DSA を選択して、[Actions Generate] をクリックします。
Key 生成中は、PuTTY画面の指定部位でマウスを絶えず動かすようにします。

Key が自動生成された後、
[Public key for pasting into authorized_keys file :] 内に表示されている公開鍵をコピーして、テキストエディタ上に「貼り付け」ます(ペースト)。[Save public key] をクリックして得られる公開鍵は、authorized_keys2 として認識されないフォーマットですので、この作業は必ず行います。

Key passphrase, Confirm passphrase(再入力)にパスフレーズを入力します。sshサーバにアクセスする時、パスフレーズを要求されないようにする方法として、

      1) パスフレーズ "空白" の秘密鍵を作成する。
      2) 使用する秘密鍵を pageant に登録し、pageant.exe
       を実行し、サーバ接続する。

があります。2) を推奨します。

[Save private key] をクリックして、拡張子 PPK のファイルを作成します。これは、秘密鍵です(コピーを作成し保管しておきます)。

テキストエディタ上に貼り付けた公開鍵:

ssh-dss AAAAB3NzaC1kc3・・・中略・・・cdzJe9JdimPZPKgH1UvzKFot01UMBeKKYIhMnzO2Ccu2NaVI+h53+O・・・中略・・・ntmGcfo6I3CvlTVbAujwYbIhkLift+irUVVIk/C1gmt8o+fvtBCFdT・・・中略・・・l1HoyuFXdy5U00JPfRkV+4Qfbqo7HWB dsa-key-20030325

必ず、authorized_keys2 の名前で保存します。改行は LFのみとします。
ファイル authorized_keys2 をASCIIモードでサーバの ホームディレクトリ .ssh 内に転送し、パーミッションを 600 とします。ディレクトリ .ssh のパーミッションは 700 であることを確認します。sshd サーバのチェック、設定は、以前の関連記事をご覧下さい。


Sessions の登録のため、putty.exe を実行します。

TTSSH の設定例と同じく、ポート pop3(110) およびポート smtp(25) について ssh のポートフォーワディング機能を利用して暗号化することとします。TTSSH はプロトコル 1.5 (SSH1) のみの対応ですが、PuTTY では SSH2 も利用できます。

必須の入力項目のみお伝えします。

[PuTTY Configuration]
[Session] Host Name ⇒ user@example.com
      Port    ⇒ 22
      Protocol: ⇒ SSH
[Connection]
   [SSH] Preferred SSH protocol version: ⇒ 2 only

      Encryption cipher selection policy:
      OpenSSH 3.4p1 であれば暗号化方式として SSH 1, Blowfish 以外を選択した方がよいようです( 3DES など) 。

   [SSH]
   [Auth]
   Authentication methods
   Attempt "keyboard-interactive" authentication [SSH2] チェック確認(デフォルトでオン)
   Allow agent forwarding チェック不要
   Allow attempted changes of username in SSH2 チェック不要
     Private key file for authentication: Browse...
Browse.をクリックして秘密鍵ファイル(拡張子 PPK)を指定します。

   [Tunnels] Add new forwarded port:

      Source port 110
      mail.example.com:110 ← ホスト名は、メールソフトの設定時に使用する pop3サーバ名

      入力後、一番下にある[Local] ボタンがON状態を確認して、Add をクリックすると、

      Forwarded ports: L110 mail.example.com:110 と表示されます。

      Source port 25
      mail.example.com:25 ← ホスト名は、メールソフトの設定時に使用する pop3サーバ名

      入力後、Add をクリックすると、

      Forwarded ports: L25 mail.example.com:25 と表示されます。

[Session]
      Load, save or deletea stored session
      Saved Sessions
      適宜、登録名を入力して Save をクリックして登録保存します。


pageant.exe

pageant.exeを起動すると(ダブルクリックまたはファイル実行)、OS Windows デスクトップのタスクバー(タスクトレイ)に常駐します。

タスクバーのアイコンを マウスで右クリックして、Saved Sessions >登録名 を確認します(ここでは未だ登録名をクリックしない)。

PuTTY Configuration で登録したファイル名があれば、Add Key をクリックして、必要な秘密鍵 "identity.PPK" を追加します。
正しく起動するようであれば、
pageant.exe のショートカットをスタートメニューに追加し、プロパティを編集します。ショートカットのリンク先を
C:\PATH\PATH\pageant.exe C:\PATH\PATH\identity.PPK に変更します。

マウスの右クリックで [Saved Sessions]>登録名をクリックすると、自動的にサーバのホームデイレクトリに ssh 接続し、別ウインドウ (xterm terminal emulator) で表示されます。

      Welcome to FreeBSD!

      ・・・・
      ・・・・
      ・・・・
      % []

後ほど、ssh 経由でメール送受信後 xterm terminal emulator に logout と入力すると、接続を切断できます。


MUA (メールソフト) のSMTPサーバ, POP3サーバを指定ホスト名から localhost に変更します。

メール送受信します。

------

ftp では、認証などのコントロールコネクションとデータ転送を2つのポート(ポート21,ポート20)に分けて行いますが、SSHではコントロールコネクションだけポートフォーワーディングできます。よって、データも暗号化したい場合には、WinSCP, scpコマンド, sftpコマンドをご使用ください。

他のポートフォーワーディングでは、putty.exe [Source port] に、ローカルホストがアクセス可能なポート番号を入力します。通常、特権ポート(1024以下の既に割り当てられている番号)以外の未使用ポート番号を使用します。

PuTTY で ISO 2022 による日本語入力・表示を可能にするパッチ も発表されています。




SQL Injection Attacks について 2003/04/9 (Wed)

データベースサーバーを利用するWebページでは、「SQL コードの注入攻撃に脆弱 SQL Injection Vulnerability 」であると、ブラウザの URL 欄やログイン欄などに(たとえば、シングルクオート(  '  )1つ入力する single quote trick )トリックを行なうだけで、データベースの顧客情報を奪取する、Webページを改竄する、などの不正アクセス行為が可能となります。

--
● 注 : 他ニュースファイルで解説中の・・・オープンポートをスキャン調査し、サーバーアプリケーションのバグや脆弱性を利用しサーバー内に侵入した後、"トロイの木馬"型バックドアを設置し、攻撃の痕跡(アクセスログ)を消し去り、リモートから不正アクセスを続ける標準的で巧妙なクラッカー行為・・・とは、全く異なる方法です。
--

SQL Injection による攻撃手順は比較的簡単で、攻撃コード exploit も公開されているものが多いので、データベースサーバを利用するサイトでは、セキュリティ対策を常に心がける必要があります。

セキュリティ チェックの方法(自社、自宅サーバーでの確認)

http://www.baselinemag.com/の解説ページがとても参考になります。
Method 1. のようにURLアドレス欄内の *.asp? *.cfm? の右末端に表示される数字(パラメーターの引数)をシングルクオート(  '  )に変更して、ブラウザの更新ボタンをクリックします。シングルクオート(  '  )を挿入する( Method 2. )、ダブルクオート(  "  )に変更する方法も試してみます。データベースが example 1. のようなエラーを表示したり、ソースで返すようであれば、"SQL Injection Vulnerability あり" と判断できますので、バグのある脆弱なスクリプト(asp,cfm,php,cgi...)箇所のみ修正、変更します(または、パッチファイルに変更したり、バージョンアップします)

SQL Injection Attacks - Are You Safe?
Mitchell Harper は、他の具体的なチェック方法についても解説していますが(SQL server の種類により異なる)、
http://www.sitepoint.com/article/794/3

URL欄に記入するのではなく、ログイン欄にて、

Username: ' ; having 1=1 ---
Username: ' ; or 1=1; drop table users; --
Password: [Anything]
などと入力します。

「ログイン」欄に(')を入力すると、サーバーが SQL の命令文を作り出すことが不可能になり、エラーメッセージが出されます。攻撃者はエラーメッセージからフィールド名などのデータ構成を読み取ることができてしまいます。次いで、

Username: ' or users.userName like 'a%' ---
Password: [Anything]

と入力すると、Usersというファイルのデータを取り出すという命令文なので、全てのユーザーのデータが表示されてしまうのです。
http://vagabond.co.jp/c2/str/strsample.htm
<セキュリティ製品レビュー> SQL Injection Walkthrough (2002.05.26)もご覧下さい。

これらの SQL Injection Vulnerability はごく初歩的なものであり、実際には様々なトリックがありますので、

たとえば、http://www.securityfocus.com/ のメニューバー UNIX (ないし、Microsoft) VULNERABILITY をクリックして、discussion (解説)   exploit(攻撃コード)   solution (対策) などを毎日チェックします。

PHP-Nuke,php関連のバグは、phpsecure(  ): もおすすめサイトです。

なお、http://www.sqlsecurity.com/ では、無料でSQLサーバーを監査チェックすることができるようです。




PHP-Nukeのバージョンアップ手順 ( ver 6.0 ⇒ ver 6.5 ) 2003/04/13 (Sun)

最新バージョン 6.9 へのアップデート手順も合わせてご一読下さい。PHP-Nuke のアップデート基本操作については以下に解説いたします。

PHP-Nuke-6.5.tar.gz ( 2.93MB 公開日 2003/4/2 )

インストール前に
必ず、データベースおよびホームページのディレクトリを丸ごとバックアップします。データーベースは admin.php にアクセスして、バックアップ( sqlファイル )を作成します。

ホームディレクトリ内などで展開します。

% tar vxzf PHP-Nuke-6.5.tar.gz

ファイル(10)、ディレクトリ( html, sql, upgrades ) が展開生成されます。

ホームページ内での PHP-Nuke 旧バージョン 6.0 のディレクトリが http://www.ドメイン.com/test/ であれば、生成ディレクトリ html をリネームします(ドキュメントルート htmlであれば、変更不要です)。

% mv html test

次に、ディレクトリ upgrades 内の upgrade60-65.php をディレクトリ test (ないし html )にコピーします。

% cd upgrades
% cp -ip upgrade60-65.php ../test/
% cd ..

丸ごと移動させるためアーカイブ nuke65.tar.gz にします。

% tar cfz nuke65.tar.gz test

PHP-Nuke 6.0 がすでにインストールされているディレクトリの1つ上位に移動し、バージョン 6.5 の全ファイルを展開(上書きインストール)します。

% tar vxzf nuke65.tar.gz

config.php を編集します。34行目から40行をバージョン 6.0と同じ設定にします。

    $dbhost = "localhost";
    $dbuname = "root"; ←データベースのユーザー名に変更
    $dbpass = "";    ←データベースのパスワードを入力
    $dbname = "nuke";
    $prefix = "nuke";
    $user_prefix = "nuke";
    $dbtype = "MySQL";

ファイル属性(パーミッション)を書込み可能にします。

% cd test
% chmod 666 config.php

ブラウザで upgrade60-65.php にアクセスします。

    http://www.ドメイン.com/test/upgrade60-65.php

データベースが新バージョンのPHP-Nukeに対応するように自動修正されると、成功のメッセージが表示されます。

セキュリティのため、必ず、config.php のパーミッションを変更し、upgrade60-65.php を削除します。

% chmod 604 config.php (または 644 )
% rm upgrade60-65.php

    http://www.ドメイン.com/test/

にアクセスできればバージョンアップ成功です。




PHP-Nuke アップグレード手順 2003/12/1 (Mon)

2003/12/1 現在の最新バージョンは Version: 6.9 です。
PHP-Nuke 6.9 Filesize: 4.32 MB Added on: 27-Sep-2003

バージョンアップ時の基本的な手順は、前 報 のとおりです。

重要な変更点 のみ列記します。

PHP-Nuke-6.9.tar.gz を展開すると、フォルダ upgrades の中に6つのフォルダが生成されます(1.x 2.x 3.x 4.x 5.x 6.x)。
6.xの中には、
     upgrade60-65.php
     upgrade65-66.php
     upgrade66-67.php
     upgrade67-68.php
     upgrade68-69.php

計5つのファイルがあります。
たとえば、現在使用中のPHP-Nukeのバージョンが 6.5 であれば、upgrade65-66.php upgrade66-67.php upgrade67-68.php upgrade68-69.php を生成フォルダ html内にコピーします(ドキュメントルート html でなければ、前 報をご参照の上、正しくコピーして下さい)。Version: 6.9 までアップグレードする場合、5つのphpファイルをブラウザのURL内に順次入力し、アクセスします。

     [upgrade65-66]

config.php 項目 $gfx_chk:が新たに追加されました。⇒ サンプル画面

     $gfx_chk:Set the graphic security code on every login screen,
     # You need to have GD extension installed:
     # 0: No check
     # 1: Administrators login only
     # 2: Users login only
     # 3: New users registration only
     # 4: Both, users login and new users registration only
     # 5: Administrators and users login only
     # 6: Administrators and new users registration only
     # 7: Everywhere on all login options (Admins and Users)
     # NOTE: If you aren't sure set this value to 0

PHPは、GDグラフィックライブラリーを使った画像生成用の関数を内蔵しています(php文を使うと、文字列から画像を作成しブラウザに表示できます)。しかしUnix系OSではGDなどの拡張ライブラリーを手動でインストールする必要がありますので、GDをコンパイル・インストールしていなければ、ここでは 数字0 を選択します。

     [upgrade68-69]

IMPORTANT ANNOUNCE:
Is VERY IMPORTANT that you now upgrade the FORUMS Module by clicking HERE, this process is now separated from the core upgrade. After the update you can safely delete the file /modules/Forums/update_to_205.php

That file will upgrade Forums, Private Messages and Members List modules...

PHP-Nuke 環境設定にて モジュール FORUMS をアクティブに変更後、
http://ドメイン名/nuke/modules.php?name=Forums&file=update_to_205
にアクセスします。本モジュールのみ自動アップデートとなります。
アップデート完了後、/modules/Forums/update_to_205.php を削除します。



Next(+0) / Back(-0) / Search view / Log view / Administer

- Harpist note ver1.02 -