Dec 27, 2009

書きかけ、usb linux から、遠隔PCへのアクセス

■シナリオ 軽量・安価なデバイスを持ち歩き、出先のPCで自分のPCに安全にアクセスして、ワークを達成する。

■課題
・USBのサイズ。起動OSにもよるが、最低1GBのUSBが必要と述べているサイトが多い。価格はこなれてきているが、手元の256MBの物は使えなさそう。
・最適ディストリビューションは何か。
・USBのデバイス認証。USBを落として、他人にコピーされた後、USB自体は見つかった、という場合を想定。購入したUSBデバイスであることを確かめた上で、自宅PCに接続するシステム化ができたらベター
・USBのコピープロテクト。落としても、USBの内容を容易には見えなくできないか。
・暗号化通信
・使用PCのUSB起動。PCによってはUSB起動をサポートしていなかったり、サポートしていてもUSB起動のオペレーション手順がまちまち。確実にUSB起動したいが。。。
・使用PCのハードウェア認識。ネットワークカードが認識できないことには使えないかもしれない。
・ホテルなどでの利用申請。ポータルに誘導されて料金を支払う仕組みの場合に、うまく使えるか。
・PC側での認証。上記をクリアできるなら、PC認証(or ゲートウェイ認証)は手軽な仕組みがよい。
・操作簡略化と見えない化。一連の操作を簡単に、かつLinuxの操作を意識しなくても良いように。
・遠隔メンテナンス。
・セキュリティアップデート


■デバイス、OS 近所で、4GBのUSBを \1,280で入手した。OSはLinux系 1. KNOPPIX, 2. Ubuntu を試すことにする。

■USBでのLinux起動、KNOPPIX

独学Linux

USBフラッシュメモリ用Linuxディストリビューションの比較 (1/4)

http://ja.wikipedia.org/wiki/Linux%E3%83%A9%E3%82%A4%E3%83%96%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E6%AF%94%E8%BC%83 Wiki
は知らないディストリビューションが多すぎる。

KNOPPIXでの起動を念頭に、以下のサイトを参考に、USB起動を試みたが、
syslinux.exe -a d: (d:はUSBのドライブ文字)で did not successfully update the MBR となり、失敗。
Ubuntu で試すことにする。
------------------------------
USBメモリでKNOPPIX v5.01を起動
USBメモリーから起動するLinux USB-KNOPPIX - 特選フリーソフト:ITpro
------------------------------

■USBでのLinux起動、Ubuntu
VMwareで、予めUbuntuの稼働環境を構築しておく。
USBを挿入し、VMwareでデバイス割り当て許可した上で、
System > Administration > USB Startup Disk Creator
10分程は、たっただろうか。
Ubuntu LinuxをUSBメモリにインストールする方法《9.04対応》
できあがったらUSB起動サポートPCに挿入して、私の場合、起動時にESCまたはF12キーを押しまくり、USB起動を選択。Ubuntu起動した。

■遠隔操作
・VNCはVista/Windows7 は有料!
・やむなく、Linuxでの Remote Desktop を探す。
 linux版、remote desktopをダウンロード
%configure && make してみると、"undefined reference to `ssl_md5_*` が多発。
 やむなく
# apt-get install rdesktop
その後、メッセージに従い、
# apt-get autoremove

 %rdesktop 192.168.1.101 (接続先のIP)

Dec 25, 2009

ペネトレーション ツール、リンク


http://casey.jp/article.php?story=20090831235242762
無線LANのWEPキーを解読する - aircrack-ng



メンテナンス終了と思っていた Knoppixが
K N O P P I X 6.2日本語版 として aist.go.jp で継続されていた。

こちらには、 
knoppix-std
というのがある。knoppixとの関係を後で調べることにする。

KNOPPIX活用いろいろ紹介されていて興味深い。後で読んでみる。

Dec 23, 2009

memo ... make openssh

solaris 9
へのパッケージインストール。スクリーンショットが豊富で分かりやすい。
起動スクリプトに、 LD_LIBRARY_PATH を入れている。

竜谷大
zlib, configure, -s オプションをつけて、shared library を構築

※ prngd ?

openssl のインストールの際、すでにrpmパッケージであらかじめインストールされているopensslとの混在に注意。(他のモジュールとの依存関係や、lib, headerファイルが保存される場所に注意)。

依存関係の事前調査は rpm -qa | grep パッケージ名; ldd ファイルパス/ファイル名 で慎重に。

ファイルが混在しないように、mv /usr/lib/ssl.so /usr/lib/ssl.so.original; ln -s /usr/local/ssl/lib/ssl.so /usr/lib/ssl.so などとしても良いが、依存関係の影響が小さいと判断できるなら、
rpm -ev で強制eraseする方が楽か。

以下、SSHコンパイルオプションの参考リンク
コンパイルオプション(1)
コンパイルオプション(2)
>コンパイルオプション(3)

Dec 15, 2009

UStream

I'm broadcasting, from my iPhone, live on Ustream.
Come watch! http://ustre.am/9gnV

http://Ustream.com/

Dec 9, 2009

VMWareのSSD化の効果を計ってみた

■実験1.まず、私の環境(Host OS=Vista)で、ドライブ(デバイス)ごとのI/Oスループットを計測し、どのような使い方が適しているのか考えてみた。

■方法:
4GBほどのファイルを以下のようにコピー(マイコンピュータでctrl+c, ctrl+v)。時間を計測し、スループットを計算。

■結果:
a) HDD → HDD : 19MB/sec
b) HDD → SSD : 24MB/sec
c) SSD → HDD : 45MB/sec
d) SSD → SSD : 25MB/sec

■結論:
a), d) から、SSDは期待したほどには速くなかった。SSDの書き換え可能回数に上限があったり、書き換えのパフォーマンスが構造上ボトルネックになりうる事から、WikiPediaの言う通り「ページファイル、キャッシュ等には向かない」という事が分かりました。すこしがっかり。

一方c)からは、ディスクからの読み出しに時間の掛かる巨大なプログラムをSSDにインストールし、そのプログラムのワーク領域をHDDにする事が私の環境では最適と言えそうです。

----------------------------------------------------------------

■実験2.先の実験結果を受けて、以下の環境を作り、速度を比較してみました。
アプリケーション、VMware server 2.0 (インストール用のファイルは230MB程度)を HDD/SSDにインストールし, さらに
仮想マシン、w2k pro をHDD/SSDにインストールし,
あらかじめPower on しておき、open the console / open the virtual machine をクリックしてから OSのログイン画面が表示されるまでの時間(以下、オープン時間と記します)を2,3度計測・比較して、SSD化の効果を検証します。

■結果:
a) HDD VMware
a-1) HDDのw2k オープン時間 約40秒
a-2) SSDのw2k オープン時間 約30秒

b) SSD VMware
b-1) HDDのw2k オープン時間 6, 30, 190秒
b-2) SSDのw2k オープン時間 6, 20, 70秒

b-1), b-2) では、オープン時間にばらつきがありました。
仮想マシンの power on 後、十分に待って、ホストOSのHDDアクセスが完全に無くなった状態で、オープンする場合(左)と、仮想マシンの power on 後、すぐにオープンする場合(右)、その中間で差がありました。

今になってみると、実験a)HDD VMwareの計測でも、同様にじっくり時間をおいたらどうなるか、しっかりみとかないと駄目じゃん。確か、HDD VMwareは 比較的早くディスクアクセスが無くなったような、でもそれじゃ説明がなりたたない。いや、ディスクアクセスは やっぱり無かったのだ、ということにして、以下結論。

■結論:
・ power on済みのw2kのオープンには、従来30~40秒掛かっていたが、6秒程度に短縮されました。SSD化による、明らかな効果というか、これなら起動時間を十分我慢できます。
・ a)に比べて、b)は、5~6倍のパフォーマンスで、実験1から想像していたHDD/SSDパフォーマンス比以上の効果がありました。オープンってコンソールへの接続だけですから、今まで時間が掛かりすぎていたとも言えますね。
SSDにインストールしたプログラムファイル(複数。全体で540MB程度)は、実験1で使用した単一の4GB程度のファイルに比べて、一つ一つは小さく、分散配置されていて、SSDがランダムアクセスに強いことの表れと思います。また、小さい多数のファイルにアクセスする事で、実験1に比べてドライブ、機器のキャッシュデバイス効果があった、と推察します。誰か詳しい方、丁寧に教えてください。

//

Dec 8, 2009

delegate + SSL

以下は、古い内容ですが、DGBeeconの実験趣旨に賛同し、あえて昔のメモを載せておきます。
SSLを実装する方は、あくまでも最新版OpenSSLを実装するようにしてください。

ソース
    http://www.delegate.org/delegate/download/ からGETする

1. 展開 & インストール
   # tar -xzvf delegate5.9.1.tar.gz
   # cd delegate5.9.1/src
   # make PATH=".:$PATH" CC=gcc
        管理者のメールアドレスなどを適宜入力。
        makeが終わると、delegated が作成されている。 /usr/local/bin あたりへコピーする
   % su
   # cp delegated /usr/local/bin
   # chown root.root /usr/local/bin/delegated

2. キャッシュ & ログ等のディレクトリを作成
   # mkdir /var/spool/delegate-nobody
   # mkdir /var/spool/delegate-nobody/cache
   # chown nobody.nogroup /var/spool/delegate-nobody
   # chown nobody.nogroup /var/spool/delegate-nobody/cache
   # chmod 777 /var/spool/delegate-nobody/cache
        上記はsolarisの場合。linuxでは、nobody:nobody

3. /etc/services の空いているポートを調べて登録する
   # more /etc/services
        .
        .
       中略
        .
        .
        dlip            7201/tcp
        dlip            7201/udp
        natd            8668/divert # Network Address Translation
        jetdirect       9100/tcp   #HP JetDirect card
        .
        .
   8080が空いているのでdelegate用に割り当てる。
   # vi /etc/services
        dlip            7201/udp
        http-proxy      8080/tcp    #DeleGate Proxy
        natd            8668/divert # Network Address Translation

4. 起動
   # delegated -P3128 SERVER=http CACHEDIR=/var/spool/delegate PROXY="gw1:80:*"

   ポート8080を使ってhttpのproxyをさせてみる
   # delegated -P8080 SERVER=http CACHEDIR=/var/spool/delegate

   ポート3456経由でtelnet proxyさせる場合、
   # delegated -P3456 SERVER=telnet

   squid を立ち上げているならあえてsquid proxyを経由させて
   # delegated -P3456 PROXY=proxy.domain.com:3128
   なんてのも面白いかも。

5. まとめ
   DeleGateは様々なプロトコルに対応しているProxyなので研究してみる価値
   がありそうだ。

---------------------------------------------------------------
各種、プロトコル変換
---------------------------------------------------------------
■POP3でmailをhttpで見る
        ※DeleGate 5.6.2以降で行うこと。

    # vi /etc/inetd.conf
    -----
    pop-proxy       8110/tcp        # DeleGate Proxy for POP3 99.05.13
    -----

    # vi /usr/local/sbin/delegate-pop.rc
    --------------------------------------
    #!/bin/sh
    /usr/local/bin/delegated -P80 \
      MOUNT="/pop/* pop://mail-gw.hogehoge.or.jp/*" \
      REMITTABLE=pop \
      VARDIR=/home/delegate \
      LOGFILE='${PORT}[date+.%d]' \
      OWNER=delegate/delegate \
      PERMIT="*:*:*"
    --------------------------------------

・オプション解説
  MOUNT=...
      ブラウザで http://delegate.hogehoge.or.jp:8110/pop/ にアクセスすると
      delegatedが、mail-gw.hogehoge.or.jpに POPでアクセスしに行ってくれる。

  REMITTABLE=pop
      POPのみで動く。

  PERMIT="*:*:*"
      どこから誰でもアクセスできる。

・実際の動作
 ブラウザでアクセスすると、アカウントとパスワードの入力を求められる。
 そのデータをもとに、delegatedは指定したmailserverにアクセスして
 mailを取ってきてくれる。そしてhtmlに変換して、ブラウザで見える
 ようにしてくれる。POPなので、mailの送信は不可能。

---------------------------------------------------------------
 99.05.13
  delegate - pop gateway
  refer to: http://www.geocities.co.jp/SiliconValley-PaloAlto/5772/delegate.html#jis
----------------------------------------------------------
99.06.15 追記

■Lotus Notesサーバへのポート転送
    delegated -P1352 SERVER=tcprelay://NotesServer(FQDN):1352
    refer to:
        http://tenjin.ics.es.osaka-u.ac.jp/delegate/digest.html

■NNTPサーバへのポート転送
    > % delegated -P119 \
    >   SERVER=tcprelay://eiwanews:119:-:news0.provider.ad.jp \
    >   SERVER=tcprelay://news1.provider.ad.jp:119:-:eiwanews \
    >   PERMIT=tcprelay:eiwanews,news1.provider.ad.jp:eiwanews,news0.provider.ad.jp

---------------------------------------------------------
参考  99.05.12
    delegate5.9.1.tar.gz
    Quoted from
        http://www2.tky.3web.ne.jp/~marlan/FreeBSD/delegate.html

    Refer to
        http://www.geocities.co.jp/SiliconValley-PaloAlto/5772/delegate.html
        http://wall.etl.go.jp/delegate/tutorial/tutorial-jp.html
        http://www.asahi-net.or.jp/~TY4S-TKHS/comp/delegated.html
        http://tenjin.ics.es.osaka-u.ac.jp/delegate/digest.html
---------------------------------------------------------
09/12/07
==============================================================
delegate + ssl
                        2002.03.16
==============================================================
delegate 9以前の場合は、sslwayをmakeする。

(1) how to make sslway
    % cd delegate*/filters

    ex1.
        % vi Makefile.go
            LIBS =          ../lib/library.a ../lib/libsubst.a
            # SSLEAY=               ../../SSL
            SSLEAY=         /usr/local/ssl/lib

        ... then make like this ...

        % make -f Makefile.go CC=gcc SSLEAY=/usr/local/ssl/lib

    ex2.
          % make -f Makefile.go CC=gcc SSLEAY=/usr/lib

         (formerly 
          ---    % ln -s /usr/local/ssl/lib ../../SSL
          ---   to use ../../SSL/libssl.a ../../SSL/libcrypto.a
          ---   ../lib/library.a ../lib/libsubst.a \
          ---   % make -f Makefile.go sslway
         )

    # cp -a sslway /usr/local/bin

--------------------------------------------------------------
(2) how to configure
    # mkdir /var/spool/delegate-nobody
    # chown -R nobody.nobody /var/spool/delegate-nobody
                             --------------------------
        ここではdelegatedのデフォルト DGROOT を作成しておいた。
    # cd /usr/local/ssl/certs
    # ../bin/req -new -newkey rsa:512 -nodes -days 365
      -x509 -out server-cert.pem -keyout server-key.pem
                 ---------------         --------------
        sslway がデフォルトで使用する証明書ファイル名
        起動スクリプトで変更しても良い。下記参照。
        [Your Name] ではサーバのFQDNを入力すると良い

(3) configure / OpenSSL (2001.12.3)
    # ../bin/openssl req -nodes -new -newkey rsa:512 -days 365 \
       -x509 -out server-cert.pem -keyout server-key.pem
     Using configuration from /usr/local/ssl/openssl.cnf
     Generating a 512 bit RSA private key
     ....++++++++++++
     ...........++++++++++++
     writing new private key to 'server-key.pem'
     -----
     You are about to be asked to enter information
     that will be incorporated into your certificate request.
     What you are about to enter is what is called a Distinguished
     Name or a DN.
     There are quite a few fields but you can leave some blank
     For some fields there will be a default value,
     If you enter '.', the field will be left blank.
     -----

--------------------------------------------------------------
# cat /usr/local/sbin/dlg-https.sh
    #!/bin/sh
    # DeleGate with SSL
    SSL_SERVER_KEY_FILE=/usr/local/ssl/certs/server-key.pem
    export SSL_SERVER_KEY_FILE;
    SSL_SERVER_CERT_FILE=/usr/local/ssl/certs/server-cert.pem
    export SSL_SERVER_CERT_FILE;
    DELEGATE=/usr/local/bin/delegated
    if [ -x $DELEGATE ]; then
        echo -n 'Staring DeleGate Server (SSL)'
        $DELEGATE \
        -P443 \
        SERVER=https \
        MOUNT="/* http://web.hoge.ac.jp/*" \
        RELIABLE=* \
        FCL="/usr/local/bin/sslway -ac"
    fi
    #    ADMIN=postmaster@hoge.ac.jp \
    #    DGROOT=/var/spool/delegate-nobody \
    #     MOUNT="sub/* http://sub-webserver/*" \
    #     REACHABLE=webserver,sub-webserver \
    #     DELEGATE=pop.hoge.co.jp:995 \
    #     CONNECT=d:*:* \
    # End of Scripts
    ADMINやDGROOTはコメントアウトしておく方が確実に動作する???
    〃      は指定しないと起動時にウォーニングメッセージが出る。

-------------------------------------------------------------
Solaris /dev/random
    solarisには/dev/randomがはいってないので、インストール
    /dev/randomの入手先
    http://www.cosy.sbg.ac.at/~andi/ よりバイナリパッケージを入手
    ANDIrand-0.7-5.8-x86-1.pkg
    $ su
    # pkgadd -d ANDIrand-0.7-5.8-x86-1.pkg
    そのまま起動するには
    # /etc/rc2.d/S60random start
    次回起動時には起動スクリプトにて実行される

--------------------------------------------
※追加情報
sun純正の/dev/randomがpatchとして提供されました。
    x86用        112439-01
    SPARC用は    112438-01
    ダウンロード先  http://jp.sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access
    ここで検索窓から
        112439
        で検索。
    適当なところで
    $ unzip 112439-01.zip
    $ su
    # patchadd ./112439-01

--------------------------------------------
refer to
    http://www.knj.co.jp/~hidaka/working/unix/delegate.html
    http://www.denon.co.jp/j/docs/DeleGateSSL.html
    http://troi.cs.knct.ac.jp/tani-lab/install/solaris/pop_wiz_ssl.html
--------------------------------------------------------------
    info 02.07.09 ...
    http://columbia.jp/j/docs/DeleSSL/ssl.html
--------------------------------------------------------------

Dec 6, 2009

Delegated SSLwayのlinuxディストリビューション別コンパイル結果

delegateのDGbeecon実験のために、何かお役に立てないか、と過去のメモ書きから記載します。

開発用ワークステーションとしてインストールした直後の、各Linuxディストリビューションで、SSLwayのコンパイルが、手を入れないまま、どれだけ楽に出来るのか、成否結果をメモ書きしておきます。

SSLWAY make の手順、ご本家の手引書
https://www.delegate.org/delegate/ssl/

所々、自分でも意味不明。メモは丁寧に書くべし、と反省。

■Fedora 9 2.6.27.5-41.fc9.i686 #1 SMP Thu Nov 13 20:52:14 EST 2008 i686 i686
 i386 GNU/linux
 gnome 2.22.3

成功。 特にアクションは 不要だった。

------------------------------------------------------------

■Ubuntu 2.6.27-9 generic #1 SMP Thu Nov 20 21:57:00 UTC 2008 i686 GNU /linux
 Gnome 2.24.1

成功。 ただし、モジュール追加が必要だった。

以下、コンパイル試行、モジュール追加の経緯

コンパイル失敗。ネット情報等から次のモジュール追加が必要であることがわかっ
た。

>> sudo apt-get yum install
>> sudo apt-get gcc-c++ install ← この操作事態は失敗

>> sudo apt-get install build-essential

この後、再コンパイルで成功。

>> aptでzlib-devel、openssl-devel、libtermcap-develをインストール
>>しようとしても
>> KURO-BOX:/usr/local/vpnserver# apt-get install zlib-devel
>> Reading Package Lists... Done
>> Building Dependency Tree... Done
>> E: Couldn't find package zlib-devel
>> となって、インストールできません。残りの2つも同じ現象です。
>>
>>> apt-get install libssl-dev
>>> とやってみた
>>>
>> http://www.yamasita.jp/cgi-bin/BBS/eztree.cgi?action=view&view_num=3321
>>
>> OK!
>>

------------------------------------------------------------
■Kubuntu 2.6.24-21-generic #1 SMP Mon Aug 25 17:32:09 UTC 2008 i686
GNU/Linux

失敗

備考、エラーの内容等
「time.h が見つからない」等、ヘッダーファイルが存在しない旨のエラーが
 発生し、コンパイル成功しない。
C言語・開発用モジュールの インストールを行えば、コンパイル可能になるもの
 と推察されますが、面倒でしたので、諦めました。

試みたこと
sudo apt-get install linux-devel
sudo apt-get install libc6-dev
sudo apt-get install libstdc++6-4.2-dev
sudo apt-get install linux-devel
sudo apt-get install linux-devel

------------------------------------------------------------

Dec 5, 2009

Google Public DNS

GIGAZine

速くなった人も居る

うーん、時間帯やアクセス先でのばらつきが減って、幾分高速になったかな、という気がする

Dec 4, 2009

iPhone may leak the privacy!? - check with Exif Viewer

and, I tried to verify.
Information source is here

The photos of [Akasaka Mitsuke] were taken at Akasaka Sacas.
And the place can be exactly specified here

Necessary action to protect your privacy is as follows.


Turn off the location service immediately if you don't want to add Geotag information on the photo taken by iPhone.
...
Refer to My iPhone.jp. Exif Viewer is the best tool to prove.