と、言うわけでipfilter & ipnatにしてみました。
参考にしたのは、Router(PPPOE + IPFILTER + IPNAT)
  1. /etc/ppp/ppp.confおよび/etc/rc.confを変えて、pppのnatとフィルタを使わないようにする。
  2. /etc/rc.confを書き換えて、ipfilterおよびipnatを有効にする。
  3. /etc/ipf.rules、/etc/ipnat.rulesを作成する。
最終的にできたrc.conf(抜粋)
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"
ppp_profile="-unit0 cds"
ipfilter_enable="YES"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags=""
ipmon_enable="YES"
ipmon_flags="-D /var/log/ipf.log"
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"
gateway_enable="YES"
static_routes="upnp"
route_upnp="-net 239.0.0.0 -netmask 255.0.0.0 -interface rl0"
続いて、ipf.rules。参考にしたサイトの通りにやってみたが、どうしてもFFができない。POLにはつながるが、FFのキャラクターでログインできなかった(泣)。
そこで、とりあえず
# perl /usr/src/contrib/ipfilter/mkfilters > /etc/ipf.rules
でできるデフォルトの設定をそのまま使うことにする。fkimuraさんによると、
# ipfstat -o
# ipfstat -i
で現在の設定を見ることができ、
# ipf -FA -Z -f /etc/ipf.rules
でルールの再読み込みができるらしい。これでいちいちOSを再起動しなくてもルールの更新ができるので、一つ一つ穴を塞いでいくことにする。
そして、ipnat.rules。
map tun0 192.168.0.0/24 -> 0/32 portmap tcp/udp auto
map tun0 192.168.0.0/24 -> 0/32
rdr tun0 210.254.71.72/32 port 7551 -> 192.168.0.50 port 7551
rdr tun0 210.254.71.72/32 port 21598 -> 192.168.0.52 port 21598
最初の2行がいわゆる普通のNATの設定。内部(192.168.0.0/24)からの接続を外向きにNATする。
次の2行は、いわゆる静的NATかしら。外からport7551に来たら、内部の192.168.0.50に飛ばすって感じ。
しかし、ファイアーウォールは下手にリモートでやるといきなり何もできなくなっちゃったりして、難しいですね~。

あ、そうそう、もともとの目的だったupnpですが、一応これでupnpdも動いてて、Windows XPから「Linux IGD 上の Local Area Connection」なんて言うのが見えるようにはなったんですが、やっぱりうまく使えてないようです・・・。

と思ったら、別のWindows XPでちゃんとできることを確認。
駄目なマシンは、XP SP2なので、SP2が問題らしい・・・。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: ipfilter & ipnat

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/779

コメントする

このブログ記事について

このページは、falseが2004年10月 3日 18:55に書いたブログ記事です。

ひとつ前のブログ記事は「upnp」です。

次のブログ記事は「ipfilter(2)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1