LINUX.ORG.RU
ФорумAdmin

IPFW + NATD + VPN (нормальный вид)


0

0

Есть машина (FreeBSD 5.4) с двумя сетевыми картами.
На обеих картах "серые" адреса. Грубо говоря, есть локальная сеть "своя" (vr0) и провайдерская (rl0). Через провайдерскую сеть устанавливается соединение с пpовайдерским сервером vpn для выхода в инет (используется mpd).

После установления vpn соединения появляется интерфейс ng0.

Задача - выпустить свою локалку (vr0) в интернет, используя технологию NAT.

Настройку производил в соответствии с http://www.maxx.uz.ua/doc/www.troubles.ru/Doc/BSD/fw_natd.html
но пока схема не пашет.
Меня интересуют такие вопросы.
1) В моей схеме нат должен работать на интерфейсе ng0 или rl0?
2) В статье рассматривалась frebsd 4.9, а у меня 5.4, соответственно и ipfw2. Может что-нибудь и подругому надо делать?
3) Есть ли грубые ошибки в моих конфигах?

Ядро собрано с опциями:

options IPFIREWALL
options IPFIREWALL_FORWARD
options IPDIVERT


# cat /etc/rc.conf
defaultrouter="10.22.66.1"
hostname="serverbsd.local"
ifconfig_rl0="inet 10.22.66.31 netmask 255.255.255.0"
ifconfig_vr0="inet 192.168.110.254 netmask 255.255.255.0"
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
gateway_enable="YES"
natd_enable="YES"
natd_interface="ng0"
natd_flags="-f /etc/natd.conf"

# cat /etc/rc.firewall
#!/bin/sh
fwcmd='/sbin/ipfw -q'

InetLanOut="ng0"
InetIPOut="192.168.56.1"
InetNetOut="32"

INLanIn="vr0"
INIPIn="192.168.110.254"
INNetInIP="192.168.110.0"
INNetInMask="24"

EXTLanOut="rl0"
EXTIPOut="10.22.66.31"
EXTNetOutIP="10.22.66.0"
EXTNetOutMask="24"


${fwcmd} -f flush
${fwcmd} add check-state
${fwcmd} add deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${fwcmd} add reject ip from ${INNetInIP}/${INNetInMask} to any in via ${EXTLanOut}
${fwcmd} add reject ip from ${INNetInIP}/${INNetInMask} to any in via ${InetLanOut}
${fwcmd} add allow ip from any to any via lo0

${fwcmd} add allow tcp from me to any keep-state via ${EXTLanOut}
${fwcmd} add allow gre from any to any
${fwcmd} add allow icmp from any to any

# DNS
${fwcmd} add allow udp from me to any domain via ${EXTLanOut} keep-state
${fwcmd} add allow udp from ${INNetInIP}/${INNetInMask} to me domain

# NAT
${fwcmd} add divert natd ip from ${INNetInIP}/${INNetInMask} to any out via ${InetLanOut}
${fwcmd} add divert natd ip from any to ${InetIPOut} in via ${InetLanOut}

${fwcmd} add pass tcp from any to any established

${fwcmd} add pass ip from ${InetIPOut} to any out xmit ${InetLanOut}

${fwcmd} add pass all from any to any via ${INLanIn}

${fwcmd} add 65535 deny ip from any to any

# cat /etc/natd.conf
same_ports yes
use_sockets yes
unregistered_only yes

anonymous

# ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.110.254 netmask 0xffffff00 broadcast 192.168.110.255
ether 00:0f:3d:df:b9:e4
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet 10.22.66.31 netmask 0xffffff00 broadcast 10.22.66.255
ether 00:80:48:1a:ee:7e
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1456
inet 192.168.56.1 --> 111.111.111.111 netmask 0xffffffff

# netstat -rn
Destination Gateway Flags Refs Use Netif Expire
default 111.111.111.111 UGS 0 8206 ng0
10.22.66 link#2 UC 0 0 rl0
10.22.66.31 00:80:48:1a:ee:7e UHLW 0 4 lo0
111.111.111/24 10.22.66.1 UGS 0 19013 rl0
127.0.0.1 127.0.0.1 UH 0 278 lo0
192.168.56.1 lo0 UHS 0 1 lo0
192.168.110 link#1 UC 0 0 vr0
192.168.110.254 00:0f:3d:df:b9:e4 UHLW 0 222 lo0
192.168.110.255 ff:ff:ff:ff:ff:ff UHLWb 0 159 vr0

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.