follow me

Upside-Down-Ternet

串で遊んでみる。
無線LANをただのりする人をこらしめる「Upside-Down-Ternet」です。

SquidとhttpdとImageMagickとiptableで、httpのパケットをすべてリダイレクトさせて気がつかないうちに、画像を上下反転させたりしてみます。
画像をグレースケールにしてみたり、イロイロ愉しめます。


設定詳細は本家ページで見て頂くとして。
まずは、squidの設定は基本的な設定をした後、以下でスクリプトを経由する様に設定追加。
redirect_program /usr/lib/squid/redirect.pl
スクリプト内容はこんな感じ。
#!/usr/bin/perl
$|=1;
$count = 0;
$pid = $$;
while (<>) {
        chomp $_;
        if ($_ =~ /(.*.jpg)/i) {
                $url = $1;
                system("/usr/bin/wget", "-q", "-O","/var/www/images/$pid-$count.jpg", "$url");
                system("/usr/bin/mogrify", "-flip","/var/www/images/$pid-$count.jpg");
                print "http://<串のIP>/images/$pid-$count.jpgn";
        }
        elsif ($_ =~ /(.*.gif)/i) {
                $url = $1;
                system("/usr/bin/wget", "-q", "-O","/var/www/images/$pid-$count.gif", "$url");
                system("/usr/bin/mogrify", "-flip","/var/www/images/$pid-$count.gif");
                print "http://<串のIP>/images/$pid-$count.gifn";

        }
        else {
                print "$_n";;
        }
        $count++;
}
変換したimagesをhttpdで公開する様にして、その画像をクライアントに返します。
※httpdとsquidの実行ユーザは同じにするか、グループを同じにしてください。(画像が読み込めません。。。)
あと、画像が溜まって行くので、定期的に削除する様にcronにでも登録してください。
follow me

LaFonera(Fon) SSH有効化

オフライン状態になっていたFon復活させました。
普段使っている無線ルータのMIMOが11nとして認識できないので、ルータ側の無線は停止してしまおうかと。。。

でせっかくなので、SSH有効化して拡張ファームに変更を。
いつの間にやらファームウェアが、firmware 0.7.1 r3になってました。
はじめに、ファームウェアを0.7.1 r1に戻します。

1.LANケーブルを外し、リセットボタンを30秒以上長押しした後、電源再起動。
2.インターネットに接続できない状態で、169.254.255.1にアクセスしファームのバージョンが戻っている事を確認。
※ネットに繋がると、ファームのバージョンがアップされてしまうので、インターネットには絶対つながない。

3.次のHTMLファイルをfirst.htmlというファイル名で作成。
<html><head></head><body><center>
<form method="post" action="http://169.254.255.1/cgi-bin/webif/connection.sh" enctype="multipart/form-data">
<input name="username" value="$(/usr/sbin/iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT)" size="68" />
<input type="submit" name="submit" value="Submit" />
</form></center></body></html>

4.次のHTMLファイルをsecond.htmlというファイル名で作成。
<html><head></head><body><center>
<form method="post" action="http://169.254.255.1/cgi-bin/webif/connection.sh" enctype="multipart/form-data">
<input name="username" value="$(/etc/init.d/dropbear)" size="68" ><input type="submit" name="submit" value="Submit" />
</form></center></body></html>
5.ブラウザでfirst.htmlを開いてSubmitをクリックします。デフォルトのユーザ名とパスワードはadmin/admin。
6.second.htmlも同様に実行。
7.SSHで接続し、rootでログイン。パスワードはadmin。
8.以下を実行。
mv /etc/init.d/dropbear /etc/init.d/S50dropbear
9./etc/firewall.userの以下をコメントアウト。
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT
iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
10.自動でアップデートされない様に細工。
/bin/thinclientの以下箇所をコメント化。
. /tmp/.thinclient.sh
かわりに以下を追加。
cp /tmp/.thinclient.sh /tmp/thinclient-$(date '+%Y%m%d-%H%M')
こっちでもいいらしぃ。ファイルが増えないからコッチがいいかも。
if [ `cat /tmp/.thinclient.sh | wc -c` -le 33 ]; then
rm /tmp/.thinclient.sh
else
cp /tmp/.thinclient.sh /tmp/thinclient-$(date '+%Y%m%d-%H%M')
fi


でSSH有効化完了。
BusyBox v1.1.3 (2006.11.21-19:49+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

 _______  _______  _______
|   ____||       ||   _   |
|   ____||   -   ||  | |  |
|   |    |_______||__| |__|
|___|

 Fonera Firmware (Version 0.7.1 rev 1) -------------
  *
  * Based on OpenWrt - http://openwrt.org
  * Powered by FON - http://www.fon.com
 ---------------------------------------------------
root@OpenWrt:~#
follow me

La Fonera 2.0届いた

La Fonera 2.0買いました。5,980円。
USB搭載で、Torrentダウンロードなども出来るオモチャ。
ストレージになるのは便利ですね。
ルータとしてではなく、簡易ファイルサーバ兼ダウンロード機には便利。
Amazonならすぐ届きますしw


follow me

La Fonera 2.0

La Fonera 2.0が日本でも販売するそうな。
今回は、USB搭載でHDDをつないでネットワークストレージとして利用可能です。
PC間でちょっとデータを移動したい時に便利かもしれません。
プラグインで機能追加が可能なので、iTunes鯖なんてことも可能かもw

価格は、6,980円と少し高くなってしまいましたが、十分遊べるオモチャではないでしょうか。
25日よりAmazon.co.jpを通じて販売予定(大手量販店でも取扱の予定)との事。

6月25日~7月9日の期間中は特別価格5,980円。
また、同期間中は「La Fonera+」を2,980円、「La Fontenna」を980円で販売するとの事なので、なんとしてでもこの期間に入手しなくては!
follow me

Networkの勉強は仮想マシンで

Ciscoルータの勉強用には、Dynamips
Cisco PIXの勉強用には、PEMU
Juniperの勉強用には、Olive(JEMU)
なにやら、Cisco IDS/IPSをVMwareで動かす方法もあるらしいです。

本物のIOSを使用したりするので、実機を持っていないとライセンス問題がありますが、中古の爆音ルーターで勉強するより良いですよ。
とあるサーバルームでは、中古のルーターは部屋の隅で眠っていて、吸い出したIOSでDynamipsを起動しています。

昔に比べれば、勉強しやすい環境になってきてるんですかね~。
follow me

Fon (Linusになりました)

悩みながら、Linusになりました。(登録の仕方ぐらいマニュアル読めよ。。。
これで、私も本当のFonユーザー。

MyPlaceから入って、Fonルータを登録するのが手順らしい。
個人情報書き換えて、表示をTochiroに変えるのに、また一苦労。
結局、地図の位置まったく合わないし。。。

とりあえずは、登録できた訳だしOKとしよう。
アンテナ買えば200mは飛ぶらしいので、それも面白ろそうですね~。

この画面出すのにひたすらイロイロと操作をウリウリと。。。


follow me

Fon (La Fonera)

かんなり前に、500円で購入したLa Foneraをひっぱりだしました。
私もLinusになります。

でFoneraには2パターンありまして、他のFoneraと無料で帯域をシェアしあう「Linus」、自分の帯域を有料で提供する「Bill」なんですが。
名前の由来がLinuxカーネルとWindowsという2つのOSの設計者のファーストネームらしく。
気に入りました。

まぁ、FirmwareをOpenWrtに書き換えるまでの間ですが。。。
Fonの機能は無くしたくないし、FreeWLANぐらいの方がいいのかな?

follow me

dynamips-0.2.7 for CentOS5

dynamips(Cisco 7200 Simulater)のCentOS5用RPM用意しました。
ついでに、dynagenも。
dynamips起動して、dynagenでconfig喰わせて、telnetでCisco Simulaterに接続がやりやすいっぽいです。
使い方もろもろは次回。

dynamips-0.2.7-1.i386.rpm
dynamips-0.2.7-1.i686.rpm
dynamips-0.2.7-1.athlon.rpm
dynagen-0.9.3-1.noarch.rpm
follow me

PEMU

Cisco Pix Firewall Emulator
探せば色々ありますね。

PIXは一度触って見たいのですがね。
ネットワーク屋さんでは無いですが、どちらかと言うとサーバ構築系ですが。。。
まだ試せてないので、情報だけ。
なんか、QEMUを元に作っているらしいです。
まぁ使っても実用ではなく、勉強用にしかならないと思われますが(笑)

本家サイトがどれやら良くわからなかったので、ソースファイルのリンクのあったサイト。
http://www.dynamips.cn/category/pemu/
follow me

dynamips-0.2.7 for CentOS4

dynamips-0.2.7 for CentOS4導入メモ
Cisco 7200 Simulatorである「dynamips」のビルド手順。
今回は、とりあえずビルドまで、CentOS4ではPcapが古い為、次回CentOS5でやり直し弄っていく予定。

libpcapを追加
# yum install libpcap
ビルド
# make
Linking rom2c
cc: /usr/lib/libelf.a: そのようなファイルやディレクトリはありません
cc: /usr/local/lib/libpcap.a: そのようなファイルやディレクトリはありません
rom2c.c:16:20: libelf.h: そのようなファイルやディレクトリはありません
rom2c.c: In function `main':
rom2c.c:25: error: `Elf32_Ehdr' が宣言されていません (この関数内で最初に利用)
rom2c.c:25: error: (未宣言の各変数については、それが最初に現われたそれぞれの関数
rom2c.c:25: error:  に対して一度だけ報告されます。)
rom2c.c:25: error: `ehdr' が宣言されていません (この関数内で最初に利用)
rom2c.c:26: error: `Elf32_Phdr' が宣言されていません (この関数内で最初に利用)
rom2c.c:26: error: `phdr' が宣言されていません (この関数内で最初に利用)
rom2c.c:27: error: `Elf' が宣言されていません (この関数内で最初に利用)
rom2c.c:27: error: `img_elf' が宣言されていません (この関数内で最初に利用)
rom2c.c:42: 警告: 関数 `elf_version' の暗黙の宣言
rom2c.c:42: error: `EV_CURRENT' が宣言されていません (この関数内で最初に利用)
rom2c.c:42: error: `EV_NONE' が宣言されていません (この関数内で最初に利用)
rom2c.c:47: 警告: 関数 `elf_begin' の暗黙の宣言
rom2c.c:47: error: `ELF_C_READ' が宣言されていません (この関数内で最初に利用)
rom2c.c:49: 警告: 関数 `elf_errmsg' の暗黙の宣言
rom2c.c:49: 警告: 関数 `elf_errno' の暗黙の宣言
rom2c.c:49: 警告: フォーマット引数がポインタではありません (引数 3)
rom2c.c:53: 警告: 関数 `elf32_getphdr' の暗黙の宣言
rom2c.c:55: 警告: フォーマット引数がポインタではありません (引数 3)
rom2c.c:64: 警告: 関数 `elf32_getehdr' の暗黙の宣言
rom2c.c:75: 警告: value computed is not used
make: *** [rom2c] エラー 1
パッケージ追加
# yum install elfutils-libelf-devel

libpcapのライブラリ保存位置が、Makefile内で固定記述されている為、修正。
Makefileの43行目編集
PCAP_LIB=/usr/local/lib/libpcap.a
↓
PCAP_LIB=/usr/lib/libpcap.a
CentOS4では、pcapのバージョンが古く失敗する為、pcapを使用しない様に修正。
本当は、pcapの新しいのを入れるべきだが。
Makefileの13行目編集
HAS_PCAP?=1
↓
HAS_PCAP?=0