です。
http://nattoumaruo.sakuratan.com/e148.html
普通、AirH"や@FreedなどPHS定額サービスは、グローバルアドレスをDHCPでリースしてくれるのですが、出先用のWindow2000を入れたPCはLibrettoL1 128MBといった非力マシンなので、personal firewallやantivirus系のapplicationを入れると更に遅くなって耐えがたい状態に...。そこで、リナザウをナローバンドルータ化して安心モバイルインターネットをしようといった試みである。 Linuxはkernel2.4系からiptable(昔はipchain)を使ったkernel(module)でのルーティングをサポートしている。要は、OSの中心部で電文を拾うか捨てるかといったことができるのです。 例えば、アプリケーションレイヤやデバイスドライバレイヤでフィルタリングをかけると、それよりも下位レイヤでの脆弱性を突かれてしまった場合どうにもならない(hotfixを待つしかない)といったことになってしまいます。 とにかく打たれ強いリナザウを楯にしてネットに繋ごうといった計画です。
C760〜C860は、標準カーネルでNETFILTERが有効化されているので、カーネルの入れ替えは不要です。 C700,B500は、カーネルを入れ替える必要があります。 tetsuさんのホームページ http://tetsu.homelinux.org/zaurus/kernel/ からスペシャルカーネルのv13b以降を持ってきて、カーネルの入れ替えを行う。
http://insel.heim.at/malediven/351901/zaurus/ から
iptables_1.2.9_arm.ipk iptables-modules_2.4.18-rmk7-pxa3-embedix.ipk
の2つをインストールする。
必要なモジュールを組み込みます。#はrootで作業すること。
# modprobe iptable_nat # echo 1 > /proc/sys/net/ipv4/ip_forward # modprobe ip_conntrack_ftp ;#必要に応じて # modprobe ip_nat_ftp ;#必要に応じて # modprobe ipt_MASQUERADE # lsmod ;#モジュールが組み込まれたか確認
とりあえず、IPマスカレードのみ設定。
# /usr/local/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # /usr/local/sbin/iptables -t nat -L ;#iptables設定の確認。 # /usr/local/sbin/iptables-save > /etc/sysconfig/iptables
一度/etc/sysconfig/iptablesを作ったら、次からは
# /usr/local/sbin/iptables-restore /etc/sysconfig/iptables
で、以前の状態に戻せる。 =========
Zaurus側の設定は、とりあえず完了です。
クライアント側設定をする。 ネットワークインターフェースが"SL series ...(NDIS 5)"の TCP/IPの設定で、デフォルトゲートウェイをザウルスのusbd0側のIP (通常は192.168.129.201)を設定して、DNSは、ブロバイダの指示のあるDNSを設定。
以上でとりあえず、ルータ化できます。クライアント端末からインターネットアクセスできるかやってみましょう。 うまくいかないようでしたら コマンドプロンプトで
> ipconfig /all > route print
などで正しく設定されているか確認してください。
Zaurusを再起動すると元の状態に戻ってしまいますので、毎回3,4の作業が必要です。 面倒なので、自動で処理するようにシェルスクリプト化しましょう。
</etc/rc.d/rc.firewall> #!/bin/sh MODPROBE=/sbin/modprobe #モジュールをロードする $MODPROBE iptable_nat echo 1 > /proc/sys/net/ipv4/ip_forward $MODPROBE ip_conntrack_ftp $MODPROBE ip_nat_ftp $MODPROBE ipt_MASQUERADE #テーブルの条件を復元する /usr/local/sbin/iptables-restore /etc/sysconfig/iptables #--------------------------
実行属性をつける。
# chmod 700 /etc/rc.d/rc.firewall
自動実行するように、 /etc/ppp/ip-upにでも次の一行を追加する。
/etc/rc.d/rc.firewall
再起動の後確認。
# lsmod # /usr/local/sbin/iptables -t nat -L
参考)チェインの概要図
┌─────────┐
│ PREROUTING │
└────┬────┘
↓
┌─────────┐
│ROUTEING DECISION │
└────┬────┘
┌────┴───┐
│ ↓
│ ┌──────┐
│ │ FORWARD │
│ └──┬───┘
↓ ↓
┌───┐ ┌──────┐
│INPUT │ │POSTROUTING ├→
└─┬─┘ └──────┘
│ ↑
│ ┌──┴───┐
│ │ OUTPUT │
│ └──────┘
↓ ↑
┌──────────┴───┐
│ LOCAL PROCESS │
└──────────────┘