Страница 1 из 1

NAT & IPFW

Добавлено: 2007-09-24 21:50:27
kleine
Freebsd 6.2
Имеется 2 интерфейса: rl0-локальная сеть, tun0-инет
Сервер используется не только как gateway в интернет, но и как gateway в локалку.
Требуется натировать пакеты, адресованные и в инет и в локалку.
Локальная сеть: 10.0.0.0/8 и 192.168.0.0/16.
IP, выданный провайдером: a.b.c.d
Ну и вопрос: Как это реализовать?

Re: NAT & IPFW

Добавлено: 2007-09-24 22:46:12
Dmitriy.A
Что то я не понял - локалку то нафига натить? Реализовать при помощи ipfw. По подробнее напиши с примерами (сервер 2 сетевухи, на одной ип такой то - на другой такой то) тогда напишу, а то с первого прочтения не понял что хочешь.

Re: NAT & IPFW

Добавлено: 2007-09-24 23:05:51
kleine
Сетевуха одна -- rl0 (10.1.0.1)
Второй интерфейс -- tun0 (pppoe c сервером, выдающим инет)(192.168.17.100)

1) Всё дело в том, что сервер выдаёт инет только этой машине (10.1.0.1)
Т.е интернет нужно натить.
2) Локалку тоже натить надо. По эстетическим причинам=)

Re: NAT & IPFW

Добавлено: 2007-09-24 23:07:49
kleine
Ах да.
Локалка 10.1.0.1/8
Нужно скрыть за натом 10.1.23.0/22 (этот сегмент не виден для других router'ов из локалки)

Re: NAT & IPFW

Добавлено: 2007-09-25 10:00:30
dikens3
rc.conf

Код: Выделить всё

# Разрешаем Forwarding
gateway_enable="YES"
# PPPoE
ppp_enable="YES"
ppp_profile="Internet"
ppp_mode="ddial"
ppp_user="root"
ppp_nat="YES"
ppp.conf

Код: Выделить всё

default:

Internet:
    set log Phase tun command
    set device PPPoE:rl1
    set authname login
    set authkey password
    set mru 1492
    set mtu 1492
    enable lqr
    set lqrperiod 10
    enable lqr echo
    enable echo
    set dial
    set login
    set timeout 0
    set redial 0 0

# NAT
   nat enable yes
   nat log no
   nat same_ports yes
   nat unregistered_only yes
   nat deny_incoming yes
+ фаер
allow from any to any

Re: NAT & IPFW

Добавлено: 2007-10-04 12:17:15
APanyovin
а как для ng0
в примерах есть описание настроек, но у меня все глотается на 2 привале ната

Re: NAT & IPFW

Добавлено: 2007-10-04 13:32:17
dikens3
APanyovin писал(а):а как для ng0
в примерах есть описание настроек, но у меня все глотается на 2 привале ната
Подробнее напиши что нужно.

Re: NAT & IPFW

Добавлено: 2007-10-04 14:41:48
APanyovin
ок
есть ipfw

/etc/rc.firewall

Код: Выделить всё

#!/bin/sh

FwCMD="/sbin/ipfw -q"

LanOut="ng0"
IpOut="ХХХ.ХХХ.ХХХ.ХХХ"


LanIn="xl0"
IpIn="192.168.1.5"
NetIn="192.168.1.0/24"
Ip_Lan="192.168.1"

VpnIf="ng1,ng2,ng3,ng4"

AllowTcpOutProtocols="80,443,25,110,21"
AllowInProtocols="22"

DNSList="80.82.32.9"

${FwCMD} -f flush
${FwCMD} -f pipe flush
${FwCMD} -f queue flush

${FwCMD} add allow ip from any to any via lo0

${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

${FwCMD} add deny ip from ${NetIn} to any in via ${LanOut}
${FwCMD} add deny ip from ${NetOut} to any in via ${LanIn}

${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 224.0.0.0/4 in via ${LanOut}
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
${FwCMD} add deny icmp from any to any frag
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

#${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn} to any 80 via ${LanOut}

${FwCMD} add divert natd ip from ${NetIn} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}

${FwCMD} add allow icmp from any to any icmptypes 0,8,11

${FwCMD} add allow ip from any to ${NetIn} in via ${LanIn}
${FwCMD} add allow ip from ${NetIn} to any out via ${LanIn}

${FwCMD} add allow tcp from any to any established

${FwCMD} add allow udp from any to ${IpOut} 53 in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} 53 to any out via ${LanOut}
${FwCMD} add allow udp from any 53 to ${IpOut} in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} to any 53 out via ${LanOut}
${FwCMD} add allow udp from any to any 123 via ${LanOut}

${FwCMD} add allow tcp from any to ${IpOut} 53 in via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} 80 in via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} 20,21 in via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} 25 in via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} 22 in via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} 20,21 in via ${LanOut} setup

${FwCMD} add deny log tcp from any to ${IpOut} in via ${LanOut} setup

${FwCMD} add allow tcp from ${IpOut} to any out via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} in via ${LanIn} setup

########### BEGIN USERS   ###############################

${FwCMD} add allow tcp from ${NetIn} to any 5190 in via ${LanIn} setup

${FwCMD} add allow tcp from ${Ip_Lan}.13 to not ${NetIn} in via ${LanIn} setup

############# END USERS #################################

${FwCMD} add deny ip from any to any
в rc.conf

Код: Выделить всё

# IPFW
firewall_enable="YES"
firewall_type="/etc/rc.firewall"
firewall_logging="YES"



# NAT
natd_enable="YES"
natd_interface="ng0"
natd_flags=" -m -u"
все проблема во втором правиле ната

Код: Выделить всё

${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
оно ловит все пакеты на внешнем интерфейсе, где криво?

Re: NAT & IPFW

Добавлено: 2007-10-04 14:52:39
Alex Keda
а чё - кнопочку code - не видно чтоли?

Re: NAT & IPFW

Добавлено: 2007-10-04 15:00:22
APanyovin
сорри:)
исправлюсь!!

Re: NAT & IPFW

Добавлено: 2007-10-04 15:16:21
dikens3
оно ловит все пакеты на внешнем интерфейсе, где криво?
Да, ловит все, а что не должно? Задача то в чём тогда?

Re: NAT & IPFW

Добавлено: 2007-10-04 15:18:09
APanyovin
natd не хочет работать без интерфейса,

короче после загрузки mpd и поднятия интерфейса надо еще раз запустить natd -n "IF_NG"

всем спасибо!

Re: NAT & IPFW

Добавлено: 2007-10-04 15:37:00
dikens3
Тогда используй ключ -a
Там можно IP-Адрес написать. Если он постоянный. (Вместо указания интерфейса)