22番ホームへ、いらっしゃい。

変なタイトルですみません・・・。(ちと間違いがあったので大幅に修正しました。9/2)
「ポートフォワーディング」を検索すると概念的な説明とか詳しい設定方法がいっぱいあるのでそちらを参照するほうが良いです。あくまで自分用の備忘録です。あしからず。

Webサイト構築などでサーバーの設定を自分でいじれるようになると、いろいろ触りたくなるものです。通常ホームページのデータはFTPでアップロードしてたわけですが、セキュリティーだの個人情報だの、騒がれると、このFTP経由でのアップロード手段も問題となります。FTPの何が駄目なのか、「生のデータを垂れ流す」この一点につきると思います。パスワードでさえプレーンテキストで送っちゃうんですから・・・。

というわけで、SFTPだの、SSLを利用したFTPSだのといったものが出てくるわけですが、使い慣れたFTPクライアントを変えたくない・・・というのは誰しも思うのではないでしょうか。

そこで、これらセキュリティーの問題を克服しつつ、使い慣れたFTPクライアントを使い続けたい・・・この二つの要望を叶えてくれるのが、TCP 22番ポートを利用した、ポートフォワーディングというわけです。

つい最近知りました(笑)

もともとは、DreamWeaverCS4で、秘密鍵を利用したsFTPができないことが、不満で、いろいろ検索して調べた結果、このポートフォワーディングという仕組みを知ったというわけです。なお、DreamWeaverCS4はSFTPのパスワード認証ログインのみ対応しているようです。CS5は持ってないので分かりません。

で・・・ポートフォワーディングを利用する準備です。TeraTerm(ver4.65)を使用します。

  1. サーバー側のsshd の設定を確認。
    /etc/ssh/sshd_config ファイルで、AllowTcpForwarding yes に。
  2. FTPサーバー(vsftpd) の設定ファイル(/etc/vsftpd/vsftpd.conf)に次を追記。
    pasv_promiscuous=YES
    (注)YES に設定した場合、 PASV セキュリティーチェックを無効にし、 制御用の接続と異なる IP アドレスからのデータ接続を許可する。 何をしているかを理解している場合にのみ有効にすること。 唯一の道理にかなった利用法は、安全なトンネルの中で使うか、 そうでなければ、おそらくは FXP(訳注: リモートホスト間転送) を容易にするためのものである。

    pasv_min_port=50000
    pasv_max_port=50002
    も追加します。PASVモードでデータ受信のためにランダムなポートで接続しますので、これらポートもポートフォワーディングしないといけません。ポート番号の最小値・最大値を指定してそれらのポートすべてについてポートフォワーディングする必要があります。 ※これら上記の値(50000とか)は適当につけてます。

  3. TeraTermの「設定」メニューの【ssh転送】を設定。 
      SSHポート転送2 
    「ローカルのポート」は、FTPクライアントと同じマシン(つまりlocalhost)の適当なポート。21番じゃなくてもいい。なんでも好きなの。 「リモート側ホスト」には、sshdが動作しているサーバーから見たFTPホスト。たいていsshdとvsftpdは同じマシンで動作していることが多いし、実際僕の場合もそうなので、今回はサーバーから見たFTPホストということで127.0.0.1を入力。
    また、これと同様に上記で
    pasv_min_port=50000
    pasv_max_port=50002
    と設定しているので、50000~50002までのポートも同様に転送設定を行います。
    SSHポート転送3 

    最終的には、下記のような感じになります。
    SSHポート転送 

    これらの設定で、クライアント側のマシンで21番と,50000~50002番ポートがLISTEN状態になっているはずです。コマンドプロンプトを立ち上げ、netstat –a –p TCP と入力することで確認できます。

  4. 準備完了で、次はFTPクライアントの設定変更です。
  5. FTPクライアントの設定。
    普通はFTPサーバーの接続先は、Webサーバーのアドレスを指定していると思いますが、これをlocalhost、つまり自分のマシンのループバックアドレス(127.0.0.1)を指定します。使用するポートは、上記で指定した「ローカルポート」を使うように設定します。上記の例ですと21番を指定しているので、FTPクライアントのポート番号を変更する必要はないですが。
    あと、PASVモードを有効にする必要です。
  6. これで設定終了。
    つまり、FTPクライアントは、自分のマシンの21番ポートにアクセスすると、ポートフォワーディングによって、その接続(コネクション)がリモートホスト側に転送されるってわけで。自分のマシンからリモートホストまでは当然、ssh接続なのですべてのデータが暗号化されている・・・ってわけで、これで安心・・・というわけです。。。
  7. ちなみに・・・
    FTPサーバーの設定で、ローカルアドレス(127.0.0.1)からのみ接続可のように設定しておけば、ポートフォワーディングしていない、普通の?FTP接続は拒否できると思います。たとえば、僕は /etc/xinetd.d/vsftpd に、only_from = 127.0.0.1 とかしています・・・。

FTP接続するたびに、TeraTermを立ち上げなければなりませんが、まぁ、最小化していれば問題ないしね。。。

 

で、このポートフォワーディングを利用することで、なにかとアクセス制限が多くなるファイアーウォールを超えて自由に通信が可能になります。家のブロードバンドルータの22番ポートさえ開けておけば、適切にアドレス変換などの設定を行うことで、インターネット上の経路を流れるデータを暗号化しつつ、どんなポートでも転送してくれるので非常に便利です。

あ、sshdデーモンの設定を変えれば別に22番ポートじゃなくてもいいかなと。 実際、秘密にするときは、22番ポートなんて使わないでしょうし。。。

いやぁ、Linuxのサーバー一個家に入れとくだけで、たいていのことなら全部解決してしまいますねぇ~。便利ですねぇ。

EPSON Endeavor NP11 セットアップ~

今日からお盆休み(夏休み)スタートです。道路交通情報サイトを見ると朝から渋滞がすごいですね~・・・。
グーグルマップに渋滞情報をあわせて表示されたら便利だと思うんだけど・・・やってくれないかな~。もちろんヤホーでもいいけど。

 

そんなどーでもいいことは、ともかく。

 

さっそくCentOS 5.5のインストールを開始。

せっかくだから1回だけプレインストールされているWindowsXPを立ち上げてみようかな、、、と一瞬思ったけど、暑いので?やめた。

んわけで、いきなりフォーマットです。

インストール画面

OSのインストール自体は特に問題もなく終了。モニタケーブルとキーボードを取り外し、

 

さっそくTeraTermで接続・ログイン。

TeraTerm

 

ん?メモリが880MB?あ、ビデオメモリが128MB? もメインメモリから取られているし・・・

もいっかいキーボードとモニタケーブルを接続してBIOS画面で設定項目を探すも、該当するメニューなし。設定できる項目が少なすぎ(^^;;; どうやらビデオメモリ用に128MBは固定されているみたいすね・・・ま、いいか。そんなヘビーな使い方しないし。

めんどくさ。キーボードとモニタケーブルを取り外し、再起動かけて、インストール作業終了。

 

要らんサービスを消しまくる作業へ。この辺は、VirtualPC上のCentOSで行った記録があるので、楽ちんです。

 

ちうわけで、初期設定完了。まだ、サーバー類のインストールと設定とかありますが・・・そろそろ飽きてきた(笑)ので後は時間のあるときに会社でやろう。。。というわけで終了です。

 

夏だから仕方ないかもしれませんが本体が結構熱くなります。Windows7モデルのNP12はファンがついているらしいので常時電源ONのサーバー実運用は無理かもね。しかし静かです。静音・・・・というか、まったく音が聞こえないので、不安になるときがあります(^^;;;

Virtual PC上のCentOSの時刻を同期する

備忘録(メモ)のエントリです。

会社で使用しているPC(WindowsXP SP3)にローカル・テスト環境が欲しくて、Virutal PC 2007 に CentOS5 を入れて使用しています。導入したときは、いろいろ分からないことがあり、ネット上でその都度調べたりして、Virtual Serverではないのでログオン時に手動で起動しなければならない・・・こと以外は特に問題もなく安定動作してきました。
 

いえ、安定動作していると、ちょっと前までそう思い込んでいただけのようです。。。
 

「時刻がスゲェ~ずれている・・・」 50分以上も・・・。
 

いえ、もちろん、時刻合わせのため、1時間毎に ntpdate を実行するように crond に登録済み・・・なのですが・・・それでも・・・

「時刻がスゲェ~ずれている・・・」 のです。。。
 

なんで?
 

ネットで検索したら、マイクロソフトが配布しているLinux向けの修正?を導入すると、時刻同期が取れるようです。しかも・・・これは、FAQのようです。。。お恥ずかし・・・。
でも、クリック一発でインストール・・・できるはずもなく、いろいろ試行錯誤した結果、やっと CentOS 5(on VirtualPC 2007)が正しく時を刻んでくれるようになりました。。。
 

前準備

マイクロソフトのダウンロードセンター(英語)から、下記のファイルをダウンロードする。
 

Virtual Machine Additions for Linux
 

ダウンロードしたインストーラ(msiファイル)を実行すると、%ProgramFiles%Microsoft Virtual ServerVirtual Machine Additions ディレクトリにISOファイルが出来ています。まず、それをVirtualPC 2007のメニュー >> CD >> ISOイメージのキャプチャ、する。
 

なお、このファイルは本来CentOSは動作対象外ですが、RHEL5が動作対象に入っているので問題ないでせう。

ゲストOS(CentOS)での作業

ゲストOS(CentOS5)上で、以下を実行

前準備とリンクの張りなおし?

$ su -
$ yum install gcc
$ yum install kernel-devel

$ cd /lib/modules/2.6.18-164.15.1.el5
$ rm build
$ ln -s ../../../usr/src/kernels/2.6.18-194.8.1.el5-i686 build

なにわともわれ、ルートユーザで作業です。
で、よく分からんけど、Linuxカーネルをビルドする環境が必要なんだとか。
 

真の?Linuxユーザーではないので、カーネルモジュールのビルドとか、RPMとか言われてもチンプンカンプン。
・・・で、buildっていうシンボリックリンクが、存在しないディレクトリを指していて、一旦削除して、リンクしなおしてます。
 

で、次です。

$ mount -o ro /dev/dvd /media
$ rpm -ivh vmadd-kernel-module-RHEL-2.0-1.i386.rpm
$ rpm -ivh vmadd-timesync-2.0-1.i386.rpm
$ rpm -ivh vmadd-heartbeat-2.0-1.i386.rpm
$ rpm -ivh vmadd-shutdown-2.0-1.i386.rpm

前準備でVirtualPCでキャプチャしておいたISOファイルをマウントして、その中にあるRPMパッケージをインストールします。僕の場合は、X-Window関連とSCSI関連のものは必要ないので、省いています。時刻を同期させるためだけなら、kernel-module-RHELとtimesyncだけで良さそうですが・・・なんとなく他の二つも入れときます。どういう役割かは、ググれば出てきそう。。。あんまり関係なさそうな感じもします。
 

ここまで作業終了。
起動確認します。

$ service vmadd start
$ service vmadd-timesync start
$ service vmadd-shutdown start
$ service vmadd-heartbeat start

エラーが出なかったら終了。

一応確認。

$ chkconfig --list | grep '^vmadd' 

rebootコマンドで再起動して再確認。
 

Linuxについて詳しいパワーユーザーなら、なんてことない作業だと思いますが・・・
あーでもない、こーでもない、と午前中はずっとコレばっかり調べては、トライして、失敗。
結局、午前中いっぱい昼休憩までかかりました(ーー;;
 

ですが、おかげでさまで、やっと仮想環境内のCentOSは正確に時間を刻むようになりましたとさ。
 

・・・それと、今までは、CentOSを「状態を保存して終了」してから、「再開」すると、再開するまでの間、ずっと時計が止まったままになるので(当たり前か!)、かならず poweroff コマンドで終了してたんですが、試しに・・・、

1.「状態を保存して終了」
2. 数分待つ。
3.「再開 」

すると、ちゃんと時刻の同期が取れてるぞ! お、これは便利だ・・・。これでPCの電源を落とすとき、いちいちPoweroffコマンドをうつ手間が省けます~~ぅ。