ぱちもん switch (?)とすらいえるか?こんなの :-)
できるだけ NetBSD デフォルト設定を変更せずに、 特定のサービスだけをねじまげる。 IP forwarding をせず、 アプリケーション層だけで行う。
まず最初に、 IP forwarding をしない NetBSD BOX を用意する。 ネットワーク図はこういう感じになります。
Internet | | ef0 NetBSD mf0 ---- virus checker の箱が別にあるとする | if0 | -------- LAN ef0 外 側インターフェイス mf0 DMZ側インターフェイス if0 内 側インターフェイス
お金があったら L4 switch とかで曲げるんだろうけど、 お金がないから、さぁどうしましょう? :-)
特定のサービスに関しては、 if0 でどんな宛先でも吸いあげて、 proxy を勝手に行なってほしい。 以下これを gauntlet firewall にちなんで transparency モードと呼ぶことにしよう。
IP Filter を使う場合、別に難しくはない。ioctl(2) すればよい。
if0 に来る (dst 80/tcp) は virus checker へねじ曲げる。
ブラウザで if0 の 80/tcp を proxy 指定するなら別に何も必要としないんだけどね。 同じホストの上の squid にねじ曲げるなら何も必要ないし、 別のホストの virus checker へねじまげる場合でも、 単純な tcp_proxy を daemon として走らせることで解決できる。 inetd でうけて、virus check へとばしてもよいわけだし。
virus checker は普通に smtp を喋っているので、 NetBSD 箱で postfix を走らせる。
ただ if0 では 25/tcp を吸って、全部 virus checker へ投げてしまう方がよ いのかもしれない。 これは汎用 tcp proxy でねじまげれば OK ( ログが問題だが… )。
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >