広告

検索

RSS RSSフィード

カレンダー

2018年12月
« 4月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

カテゴリー

最新のコメント

リンク

Windows Web Server 2008 R2を外部からリモートアクセスするには その3

投稿者:yasu 更新日時:2010年1月11日 0時46分05秒
カテゴリFreeSSHd, INSTALL MANIAX 3, RemoteDesktop, Windows Web Server 2008 R2
タグ

前回Windows Web Server 2008 R2のFreeSSHdの設定と鍵認証用の鍵ファイル作成をしてLAN内でSSH接続できるところまで確認しました。
Windows Web Server 2008 R2を外部からリモートアクセスするには その2 » sa-sa-ki.jpのblog

今回はSSHポートフォワードをして外部から自宅のWindows Web Server 2008 R2をリモートデスクトップで接続したいと思います。

まずは自宅ルーターのIPマスカレードの設定を行い、外部から来る22番ポート(SSH)へのアクセスをWindows Web Server 2008 R2に変換します。
ちなみに我が家のルーターMICRO RESEARCH社のNetGenesis SuperOPT-GFiveですと[WANポートの設定]-[IPマスカレードテーブル設定]をクリックし、PPPoEポート1(セッション1)登録リストに
 プロトコル:TCP
 先頭ポート番号:22
 終了ポート番号:22
 変換IPアドレス:192.168.0.101 (Windows Web Server 2008 R2のIPアドレス)
を登録します。

続いてポートフォワードの設定を行います。
そもそもポートフォワードって何?って話ですが、IT用語辞典には
ローカルコンピュータの特定のポートに送られてきたデータを、別に用意した通信経路を用いてリモートコンピュータの特定ポートに送信すること。
とあります。
ポートフォワーディングとは 【port forwarding】 - 意味/解説/説明/定義 : IT用語辞典

今回はクライアントPCの13389ポートをWindows Web Server 2008 R2の3389ポート(リモートデスクトップ)へ送信できるようにします。

クライアントのTeraTermを起動し、新しい接続ダイアログは[キャンセル]ボタンをクリックして閉じます。

TeraTermのメニューバーから[設定(S)]-[SSH転送(O)]を選択します。

SSHポート転送ダイアログが表示されますので[追加(A)]ボタンをクリックします。

ポート転送を行う向きはローカルからリモートなので上の欄に入力して[OK]ボタンをクリックします。
 ローカルのポート:13389
 リモート側のホスト:localhost
 リモート側ホストのポート:3389

注意点は「リモート側ホスト」に入力するIPアドレスを勘違いされる方が結構多いそうで恥ずかしながらyasuも最初勘違いしていたのですが、ここに入力するIPアドレスはSSHサーバーからみたリモートデスクトップのサービスが動いているサーバーのIPアドレスになります。
今回リモートデスクトップのサービスが動いているWindows Web Server 2008 R2にSSHサーバーを構築しているのでlocalhostとしています。
例えば別マシンにLinuxでSSHサーバーを構築している場合は、そのLinuxマシンからみたWindows Web Server 2008 R2の(LAN内の)IPアドレスを入力します。

ポート転送の一覧に「ローカルの 13389 からリモート側ホスト"localhost"のポート 3389」と表示されている事を確認して[OK]ボタンをクリックします。

TeraTermのメニューバーから[ファイル(F)]-[新しい接続(N)]を選択します。

新しい接続ダイアログが表示されるので接続先情報を入力します。
※ホスト名は各自の環境にあわせて入力してください。

セキュリティ警告が表示されたら[続行(C)]ボタンをクリックします。

ユーザ名とパスフレーズ、RSA/DSA鍵を使うのファイル名を選択して[OK]ボタンをクリックします。

接続できたらTeraTermはそのままほっときます。

スタートアップメニューから[プログラム]-[アクセサリ]-[リモートデスクトップ]を選択してリモートデスクトップを起動します。

コンピュータに localhost:13389 と入力して[接続(N)]ボタンをクリックすると・・・

自宅のWindows Web Server 2008 R2のログイン画面が表示されるのでパスワードを入力して[Enter]キーを押すと

自宅のWindows Web Server 2008 R2のデスクトップが表示されました。

これで外部から安全に自宅のWindows Web Server 2008 R2を操作できるようになりました。

次回はVNCをインストールして外部のMac OS XやLinuxからも安全に自宅のWindows Web Server 2008 R2を操作できるようにしたいと思います。

Windows Web Server 2008 R2を外部からリモートアクセスするには その2

投稿者:yasu 更新日時:2010年1月10日 0時43分04秒
カテゴリFreeSSHd, INSTALL MANIAX 3, Windows Web Server 2008 R2
タグ

前回はWindows Web Server 2008 R2にFreeSSHdをインストールするところまで実施しました。
Windows Web Server 2008 R2を外部からリモートアクセスするには その1 >> sa-sa-ki.jpのblog
今回はインストールしたFreeSSHdの設定を行います。

FreeSSHdのインストール時にWindowsサービスとして登録しましたのでインストール終了直後にはサービスが起動した状態になっていますが、設定変更を行うのでサービスを止めておきます。

管理ツール([スタートアップ]-[コントロールパネル]-[システムとセキュリティ]-[管理ツール])から[サービス]を起動します。

[FreeSSHDService]を選択したら右クリックして[停止(O)]をクリックします。

FreeSSHdのサービス停止が完了したら、設定画面より設定を行います。

エクスプローラを起動してFreeSSHdインストールフォルダ(C:\Program Files (x86)\freeSSHd)にある FreeSSHDService.exe ファイルを右クリックし[管理者として実行(A)]をクリックします。

デスクトップ右下のタスクトレイにFreeSSHdのアイコンが表示されるので、ダブルクリックするか右クリックして[Settings]をクリックします。

FreeSSHdの設定画面が表示されたら[SSH]タブをクリックします。
Listen addressを0.0.0.0(All interfaces)からWindows Web Server 2008 R2のIPアドレスに変更します。

RSA Keyの[New]ボタンをクリックし、2048bitを選択します。

公開鍵ファイルの名前をSSH接続ユーザーと同じ名前にして(ここでは仮にsshuserとします)FreeSSHdインストールフォルダに保存します。

[適用(A)]ボタンをクリックするとSSHサーバー再起動ダイアログが表示されるので[はい(Y)]ボタンをクリックします。

次に[Authentication]タブをクリックします。
Password authentication のオプションを[Disabled]に変更して[適用]ボタンをクリックします。

※ちなみにPublic key folderのパスは公開鍵ファイルを格納しているフォルダを指定します
 今回はFreeSSHdインストールフォルダに公開鍵ファイルを保存しているので変更の必要はありませんが、もし別のフォルダに公開鍵ファイルを保存した場合はこのパスも変更してください

[Tunneling]タブをクリックします。
Allow local port forwarding のチェックをして[適用(A)]ボタンをクリックします。

[Logging]タブをクリックします。
[Log events]のチェックと[Resolve IP addresses into hostnames]のチェックをして[適用(A)]ボタンをクリックします。

[Users]タブをクリックします。
[Add]ボタンをクリックし、User propertiesダイアログにログイン情報を入力して[OK]ボタンをクリックします。
Login: sshuser
Authorization: Public key(SSH only)
User can use: Shell、SFTP、Tunnelingにチェックをします。

入力したログインユーザーが反映されている事を確認して[OK]ボタンをクリックします。

タスクトレイのFreeSSHdのアイコンを右クリックして[Unload]をクリックし、停止してあったFreeSSHdのサービスを再び開始してください。

次に秘密鍵と公開鍵を作成します。
先ほどFreeSSHdの設定画面で作成した公開鍵はペアにある秘密鍵がないのとパスフレーズも含まれていないと思われるため、別途秘密鍵と公開鍵を作成する必要があります。
もしMac OS XやUbuntu、Fedora、CentOSなどLinux環境がある場合は以下のようにコマンドを入力して秘密鍵と公開鍵を作成できます。
※Ubuntuで実施した例になります

ubuntu@ubuntu-desktop:~$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
秘密鍵の保存場所を入力します
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): 何も入力せず[Enter]キーのみ押す
パスフレーズを登録します
Enter passphrase (empty for no passphrase): sshuserユーザーに付与したいパスフレーズを入力
Enter same passphrase again: sshuserユーザーに付与したいパスフレーズを再度入力
Your identification has been saved in /home/ubuntu/.ssh/id_rsa.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub.
The key fingerprint is:
5b:d9:c7:7f:ae:ca:31:00:46:d0:18:24:74:14:05:71 ubuntu@ubuntu-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|   .ooXXE        |
|     o.o.        |
|        o        |
|       . . o .   |
|        S + . o  |
|         o . . . |
|        .   o   o|
|           . o ..|
|            o....|
+-----------------+

秘密鍵と公開鍵を確認します
ubuntu@ubuntu-desktop:~$ ls -l .ssh
合計 12
-rw------- 1 ubuntu ubuntu 1751 2010-01-07 11:52 id_rsa ←秘密鍵
-rw-r--r-- 1 ubuntu ubuntu 403 2010-01-07 11:52 id_rsa.pub ←公開鍵
-rw-r--r-- 1 ubuntu ubuntu 2418 2010-01-04 17:35 known_hosp
Thd

Linuxの環境がない場合やLinuxの操作がよくわからない場合はWindowsのTeraTermを使って秘密鍵と公開鍵を作成する方法をご紹介します。
ここではTeraTermのインストール方法は割愛します。
以前、flashcastのブログに自宅サーバー構築時に書いたブログを参考にしてください。
flashcast:フリーで働くITエンジニア集団のブログ: 自宅サーバー再構築 その3 インストールしたCentOS 5.2 にリモート接続準備
またTeraTermはクライアント用Windowsにインストールした前提で話を進めます。

TeraTermのインストールが終わったらTeraTermを起動します。

新しい接続ダイアログが表示されるかと思いますが[キャンセル]ボタンをクリックしてダイアログを閉じます。

TeraTermのメニューバーより[設定(S)]-[SSH鍵生成(N)]を選択します。

TTSSH: 鍵生成ダイアログが表示されたら鍵の種類RSA、ビット数 2048 にして[生成(G)]ボタンをクリックします。

鍵の生成が終わると鍵のパスフレーズを入力できるようになるので登録したいパスフレーズを入力し、[公開鍵の保存(C)]ボタンと[秘密鍵の保存(P)]ボタンをそれぞれクリックして公開鍵ファイルと秘密鍵ファイルをそれぞれ保存します。

公開鍵ファイルと秘密鍵ファイルを保存したら[キャンセル]ボタンをクリックします。

秘密鍵(id_rsa)と公開鍵(id_rsa.pub)ができあがったら、秘密鍵はSSHサーバーに接続するクライアント側へ公開鍵はSSHサーバーへそれぞれ移動します。
※公開鍵(id_rsa.pub)はファイル名をsshuserに変更して、Windows Web Server 2008 R2の C:\Program Files (x86)\freeSSHd に上書きコピーしてください。

■2011/08/16追記
手順通り設定したけどSSHサーバーに接続できませんというご指摘をTwitterでいただきましたので、Windows Server 2008 R2を余っているPCにインストールして確認したところ別のPCからの接続ができない事を確認いたしました。
原因はWindows ServerのファイアウォールでSSHポートの接続許可設定の手順が漏れていた事によるものでした。
@s2homepageさん、ご指摘ありがとうございます。
それではファイアウォールの接続許可設定の手順をご紹介いたします。

スタートアップメニューから[コントロールパネル]を選択します。

[ファイアウォールの状態の確認]を選択します。

[詳細設定]を選択します。

左ペインの[受信の規則]を選択したら、右ペインの[新しい規則]を選択します。

[ポート]を選択して[次へ]ボタンをクリックします。

[TCP]と[特定のローカルポート]を選択し、ポート番号22を入力して[次へ]ボタンをクリックします。

[接続を許可する]を選択して[次へ]ボタンをクリックします。

[次へ]ボタンをクリックします。

規則の名前と説明を入力して[完了]ボタンをクリックします。
※何でもよいのですがSSHポートの接続許可設定なので名前欄にSSHと入力しておきます

受信の規則の一覧に設定した規則名(この例ではSSH)が登録されていれば設定完了です。

TeraTermのメニューバーより[設定(S)]-[端末(T)]を選択します。

端末の設定ダイアログが表示されたら「漢字-受信(K)」および「漢字-送信(J)」を[SJIS]に変更して[OK]ボタンをクリックします。

TeraTermのメニューバーより[ファイル(F)]-[新しい接続(N)]を選択します。

新しい接続ダイアログが表示されたらTCP/IPのホストにWindows Web Server 2008 R2のIPアドレスを入力して[OK]ボタンをクリックします。

セキュリティ警告が表示されたら[続行(C)]ボタンをクリックします。

SSH認証の認証情報として
ユーザ名:sshuser
パスフレーズ:登録したパスフレーズ
RSA/DSA鍵を使う:作成した秘密鍵ファイル
を入力/選択して[OK]ボタンをクリックします。

接続できました。

接続できない場合はWindows Web Server 2008 R2を再起動するといいらしいのですが、再起動しなくても接続できたって人もいるしどっちが正しいのでしょうか・・・。
yasuは設定しながら何度かWindows Web Server 2008 R2を再起動しちゃっていて、再起動しなくても接続できるかわかんなくなっちゃいました。

次回はポートフォワードしてリモートデスクトップ接続します。

Windows Web Server 2008 R2を外部からリモートアクセスするには その1

投稿者:yasu 更新日時:2010年1月9日 0時30分47秒
カテゴリFreeSSHd, INSTALL MANIAX 3, RemoteDesktop, Windows Web Server 2008 R2
タグ

今回はWindows Web Server 2008 R2を外部からリモートアクセスできるようにしたいと思います。

Windowsをリモートアクセスしようとした場合、まずぱっと思いつくのがWindows標準のリモートデスクトップです。
でもリモートデスクトップのサービスをそのまま公開してしまうと誰でもyasuの家のWindows Web Server 2008 R2のログインページにアクセスできてアタックの危険があるし、じゃあファイアウォールで接続可能なIPアドレスを限定しようにもIPアドレスが変動してしまうこともあるしその度に接続可能なIPアドレスを変更するのは正直厳しいです。
そこでSSHをインストールして鍵認証方式かつポートフォワードを利用してリモートデスクトップ接続したいと思います。
この方法なら秘密鍵を持っていないと認証できないし、かつSSHポートを使った接続になるので通信が暗号化されていて盗聴の心配もありません。

リモートデスクトップ接続許可設定

Windows Web Server 2008 R2をリモートデスクトップで接続できるよう設定を行います。

スタートアップメニューから[コントロールパネル]を選択します。

[システムとセキュリティ]をクリックします。

[リモートアクセスの許可]をクリックします。

「リモートデスクトップを実行しているコンピューターからの接続を許可する(セキュリティのレベルは低くなります)(L)」を選択します。

リモートデスクトップ接続ダイアログが表示されたら[OK]ボタンをクリックします。

[OK]ボタンをクリックします。

念の為、他のWindowsマシンからWindows Web Server 2008 R2にリモートデスクトップで接続可能か確認しておくといいかもしれません。

FreeSSHdをインストール

次にWindows Web Server 2008 R2へFreeSSHdをインストールします。

FreeSSHdのサイト
freeSSHd and freeFTPd - open source SSH and SFTP servers for Windows

FreeSSHdのダウンロードは下記リンクの[freeSSHd.exe]リンクをクリックします
freeSSHd and freeFTPd - open source SSH and SFTP servers for Windows

freeSSHd.exe のダウンロードが完了したら実行してインストーラーを起動します。

インストーラーが起動したら[Next]ボタンをクリックします。

インストールフォルダを指定して[Next]ボタンをクリックします。

インストールオプションを選択して(Full installationしか選択できないが・・・)[Next]ボタンをクリックします。

スタートアップメニューに登録する名前を入力して[Next]ボタンをクリックします。

デスクトップにアイコンを作成するか選択して[Next]ボタンをクリックします。

[Install]ボタンをクリックします。

他製品の紹介ダイアログが表示されたら[Close]ボタンをクリックします。

プライベートキーを作成するかの確認ダイアログが表示されたら[はい(Y)]ボタンをクリックします。

FreeSSHdをWindowsサービスに登録するかの確認ダイアログが表示されたら[はい(Y)]ボタンをクリックします。

インストールが終了したら[Finish]ボタンをクリックします。

次回はFreeSSHdの設定を行います。