The Internet
|
ROUTER
(10.0.0.1)
|
o--+--+------------+--o (10.0.0.0/28)
| |
(10.0.0.2) (10.0.0.3)
DNS SERVER
こんなネットワークで、
SERVER はインターネット上の特定のユーザからアクセスできなければならないが、
一方で SERVER が攻撃されまくってるのをなんとかしたいってことなのだ。
そこでブリッジ兼ファイアウォール兼 VPN サーバを噛まして、
The Internet ------------------- (10.0.0.5)VPN Client
|
ROUTER
(10.0.0.1)
|
o--+--+--(10.0.0.4)BRIDGE--+--o
| |
(10.0.0.2) (10.0.0.3)
DNS SERVER
こうしようと。
最初から SERVER を firewall の中に入れといて、
VPN でアクセスさせるのが筋だと思うが、
既存のシステムなので政治層が云々てな感じ
。
FreeBSD なら簡単だ。
options BRIDGE options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=100
gateway_enable="YES" ifconfig_fxp0="inet 10.0.0.4 netmask 255.255.255.240" defaultrouter="10.0.0.1"
#!/bin/sh
case $1 in
start)
echo -n ' bridge'
sysctl net.link.ether.bridge=1
sysctl net.link.ether.bridge_ipfw=1
sysctl net.link.ether.bridge_cfg="`ifconfig -l`"
;;
stop)
sysctl net.link.ether.bridge=0
sysctl net.link.ether.bridge_ipfw=0
;;
*)
echo "usage: $0 {start|stop}" 1>&2
exit 64
;;
esac
cd /usr/ports/net/mpd make && make install && make clean cd /usr/local/etc/mpd
--- mpd.conf.sample Mon Aug 5 12:22:54 2002 +++ mpd.conf @@ -194,3 +194,2 @@ - set ipcp ranges 192.168.1.1/32 192.168.1.50/32 - set ipcp dns 192.168.1.3 - set ipcp nbns 192.168.1.4 + set ipcp ranges 10.0.0.4/32 10.0.0.5/32 + set ipcp dns 10.0.0.2とする。
--- mpd.links.sample Mon Aug 5 12:22:54 2002 +++ mpd.links @@ -71 +71 @@ - set pptp self 1.2.3.4 + set pptp self 10.0.0.4とする。
fred "fred-pm"こんな感じで user と password を設定。
#!/bin/sh
case $1 in
start)
echo -n ' mpd'
/usr/local/sbin/mpd -b pptp
;;
stop)
/usr/local/sbin/mpd --kill &
sleep 5
killall -HUP mpd
;;
*)
echo "usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
# OIP=10.0.0.4 OIF=fxp0 add pass tcp from any to OIP 1723 in recv OIF setup add pass gre from any to OIP in recv OIF add pass gre from OIP to any out xmit OIF add pass ip from any to any via ng0
次はクライアント設定。