2005年11月28日

pdaXrom on ザウルス SL-C750 その6 - ルータ化とセキュリティ設定

仕事場で一時的にインターネットが使えなくなってしまったため、りなざうのルータ化に挑戦してみました。とは言っても基本的にはすでに先人の知恵が公開されておりますので、別段難しいことはありません。

- Zaurusをルータ化
http://linucha.s25.xrea.com:8080/pukiwiki.php?%5B%5BZaurus%A4%F2%A5%EB%A1%BC%A5%BF%B2%BD%5D%5D

ただ上記のサイトは標準のりなざう+スペシャルカーネルが前提なので、pdaXromだとちょっとだけ勝手が異なります。手順1のNETFILTERの確認は不要で、2のiptablesの導入はPackage Managerから普通に出来るはずです。(http://mirror1.pdaxrom.org/current/feed/ にあります)
3から先はそのまま実施すればいいのですが、ここでの手順では単純にルータ化することしかしていません。常時接続下でせっかくiptablesが使えるのですから、少しセキュリティ面も強化していきたいと思います。

まずは方針。
  • PCおよびりなざうからのインターネット接続を可能にする
    ただしWindowsのファイル共有系のパケットはインターネットに出ていかないようにする
  • PCとりなざうの間は何でも出来るようにする(ftp/ssh/VNCなど)
  • インターネットからりなざうへの接続は全て拒否
    ただしPCやりなざうからのリクエストに対するリプライパケットは許可
とま、こんな感じにしてみました。

iptablesの設定についてはこちらのサイトを参考に。

@IT:natテーブルを利用したLinuxルータの作成(1/6)
http://www.atmarkit.co.jp/flinux/rensai/iptables02/iptables02a.html

で、出来上がった物がこちら。
#! /bin/bash
#
# firewall iptablesのモジュール組み込みとテーブル設定
#

#------------------#
# IPアドレスの設定 #
#------------------#
client_ip='192.168.11.1' # 母艦(PC)のIPアドレス
zaurus_ip='192.168.11.201' # ZaurusのUSBネットワーク側IPアドレス

# 開始(モジュールの組み込み)
start() {
    modprobe iptable_nat
    echo 1 > /proc/sys/net/ipv4/ip_forward
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe ipt_MASQUERADE
}

# テーブルのリロード
reload() {
    #------------------#
    # テーブルの初期化 #
    #------------------#
    iptables -F
    iptables -t nat -F
    iptables -X
    
    #-----------------------#
    # テーブルの設定(INPUT) #
    #-----------------------#
    
    # ポリシーは全て破棄
    iptables -P INPUT DROP
    
    # loopbackは許可
    iptables -A INPUT -i lo -j ACCEPT
    
    # 母艦->Zaurusは全て許可
    iptables -A INPUT -i usbd0 -s $client_ip -d $zaurus_ip -j ACCEPT
    
    # 上記以外でもステートフル性が確認できれば許可
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    #------------------------#
    # テーブルの設定(OUTPUT) #
    #------------------------#
    
    # ポリシーは全て許可
    iptables -P OUTPUT ACCEPT
    
    # インターネットに向けたローカルアドレスは全て破棄
    iptables -A OUTPUT -o ppp0 -d 10.0.0.0/8 -j DROP
    iptables -A OUTPUT -o ppp0 -d 176.16.0.0/12 -j DROP
    iptables -A OUTPUT -o ppp0 -d 192.168.0.0/16 -j DROP
    iptables -A OUTPUT -o ppp0 -d 127.0.0.0/8 -j DROP
    
    #-------------------------#
    # テーブルの設定(FORWARD) #
    #-------------------------#
    
    # ポリシーは全て破棄
    iptables -P FORWARD DROP
    
    # 母艦からのファイル共有パケットはインターネットにFORWARDしない
    iptables -A FORWARD -p tcp -i usbd0 -o ppp0 --dport 137:139 -j DROP
    iptables -A FORWARD -p udp -i usbd0 -o ppp0 --dport 137:139 -j DROP
    iptables -A FORWARD -p tcp -i usbd0 -o ppp0 --dport 445 -j DROP
    iptables -A FORWARD -p udp -i usbd0 -o ppp0 --dport 445 -j DROP
    
    # 母艦からのRPCパケットはインターネットにFORWARDしない
    iptables -A FORWARD -p tcp -i usbd0 -o ppp0 --dport 111 -j DROP
    iptables -A FORWARD -p udp -i usbd0 -o ppp0 --dport 111 -j DROP
    
    # その他の母艦からのパケットはインターネットへFORWARD
    iptables -A FORWARD -i usbd0 -o ppp0 -s $client_ip -j ACCEPT
    
    # 上記以外でもステートフル性が確認できれば許可
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    #------------------------#
    # テーブルの設定(その他) #
    #------------------------#
    
    # IPマスカレードを設定
    iptables -t nat -A POSTROUTING -o ppp0 -s $client_ip -j MASQUERADE
    
    # ログの設定(今のところ未使用)
    #iptables -N LOGGING
    #iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
    #iptables -A LOGGING -j DROP
    #iptables -A INPUT -j LOGGING
    #iptables -A FORWARD -j LOGGING
}    

# モジュールの組み込み状態の確認
modstat() {
    lsmod | grep ^ip
}

# テーブルの確認
tabstat() {
    iptables -L ; echo ; iptables -t nat -L
}

case "$1" in
  start)
    start
    reload
    ;;
  reload)
    reload
    ;;
  modstat)
    modstat
    ;;
  tabstat)
    tabstat
    ;;
  *)
    echo "Usage: $0 {start|reload|modstat|tabstat}"
    exit 1
esac

exit $?

この内容を /etc/rc.d/init.d/firewall として保存します。実行権限をつけることもお忘れなく。
そして起動時に実行されるよう、rc5.dにリンクを張ります。
cd /etc/rc.d/rc5.d
ln -s ../init.d/firewall S80firewall

これでルータ化だけでなく、りなざう本体でのインターネットもちょっと安心になりました。

お約束ですが…。
bitWarp PDAを使ったルータ化はかなりグレーな利用方法だと思われますので、あまり無茶な使い方をなさらず、ご利用は計画的に。


posted by 月水和尚 (とも) at 13:28 | Comment(0) | TrackBack(1) | りなざう
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

NAT
Excerpt: NATIPマスカレードは、コンピュータ・ネットワーク|コンピュータネットワーク構成時に使われる、ルータや、ファイアーウォールを通過するパケットのIPアドレスやポート番号を変換する技術である。なお、マス..
Weblog: インターネット
Tracked: 2005-12-02 20:49
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。