2010/10/01

無線LANからのアクセスをインターネットとの接続に制限する

FONの無線LANルータに限らず、最近のブロードバンドルータは無線LANクライアントを内部LANには接続させずにインターネットとの接続だけに限定する事ができるようになっています。

ブロードバンドルータを流用して無線LANのAccess Point(AP)にしていますが、どうやらルータ機能をONにしないと内部LANへの接続制限は有効にできないようだったので、iptablesを使ってeth2とeth1との接続を制限することにしました。

現状

ネットワークのおおまかな構成は次のようになっています。

おおまかなネットワークの構成図

加える制限の内容

現在はeth1,eth2間の通信は双方向で制限がなくなっているので、無線LANクライアントが接続する192.168.10.0/24ネットワークとの通信は双方向で遮断します。

ここまではiptablesのFORWARDチェインの話で、eth2内部の機器とalix自身の通信についてはもう少し検討が必要になります。

まずメンテナンスのためにALIXからeth2への通信は原則として自由に行なえるようにしました。 eth2からALIXへの接続についてはUDP経由でのDNS(port:53)とNTP(port:123)に限定しています。

また別の図にすると、次のような感じでしょうか。

ネットワークインタフェース間のフィルタールール

事前準備

ALIXはゲートウェイなので、NTPやらDNSやらの機能は持たせていませんでしたが、機器の数も限られているので無線LANクライアント向けにNTPとDNSの機能を提供することにしました。

ntpについてはlisten行を追加しています。

/etc/openntpd/ntpd.confの追加内容

listen on 192.168.10.1

DNSはforwarderに192.168.1/24にあるDNSサーバを追加したキャッシングサーバなので、 linsten-on, listen-on-ipv6行にeth1のインタフェースを指定して、allow-query行に192.168.10/24を追加したぐらいでしょうか。

iptablesの設定方法

以前から使っていた設定スクリプトにルールを追加しました。

iptables設定スクリプトに追加したルール

iptables -A FORWARD -i eth+ -o eth2 -j DROP
iptables -A FORWARD -i eth2 -o eth+ -j DROP
iptables -A FORWARD -i tun+ -o eth2 -j DROP
iptables -A FORWARD -i eth2 -o tun+ -j DROP
iptables -A INPUT -i eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth2 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth2 -p udp --dport 123 -j ACCEPT
iptables -A INPUT -i eth2 -j DROP
iptables -A OUTPUT -o eth2 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth2 -j DROP

とりあえず動いていますが…

直接INPUTチェインを変更していてiptablesらしくないので、これは少し構成を変更しようと思っています。

0 件のコメント: