вторник, 25 марта 2008 г.

Nat, Port mapping, используя ipnat и ppp

Nat, Port mapping, используя ipnat и ppp

Во FreeBSD нат можно организовать не только с помощью Natd, есть продукт под названием ipnat. Вот его я и буду настраивать.
Для начала пару опций надо внести в /etc/rc.conf

#ee /etc/rc.conf
------------------------------
ipnat_enable="YES" #Включил ipnat
ipnat_program="/sbin/ipnat" #Указал откуда его нужно запускать
ipnat_rules="/etc/ipnat.rules" #Здесь будут правила
ipnat_flags="" #С какими параметрами стартовать (пока без параметров)

ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="ISP"
ppp_nat="NO"

------------------------------
Обязательно включите маршрутизацию, добавив gateway_enable=»YES» в /etc/rc.conf или можно ввести команду:
#sysctl net.inet.ip.forwarding=1



Далее надо отредактировать конфиг ipnat-a

#ee /etc/ipnat.rules
rdr tun0 41.41.41.41/32 port 25 -> 10.0.0.2 port 25 tcp
#маппинг 25(SMTP) порта в локалку
rdr tun0 41.41.41.41/32 port 3389 -> 10.0.0.2 port 3389 tcp #маппинг 3389(RDP) в локалку
map tun0 10.0.0.0/24 -> 41.41.41.41/32 # включение nat-a

Сохраняем/Закрываем файл, теперь посмотрим, "что к чему"

rdr - редиректит порта в сеть
tun0 - внешний интерфейс (физически у меня внешний rl0 - но так как инет я получаю через PPPoE, то мой внешний получается tun0)
41.41.41.41/32 - это мой внешний IP и его маска подсети
port 25 - порт который я пробрасываю в сеть
10.0.0.2 - IP адресс компа в локалке, на который я делаю порт маппинг
map tun0 10.0.0.0/24 -> 41.41.41.41/32 вот этой строчкой как раз и включается nat в ipnat
Если я сделаю кое-какие изменения, то мне не нужно будет ребутить систему, достаточно перечитать заново конфиг и все. Конфиг можно перечитать такой командой:

#ipnat -CF -f /etc/ipnat.rules

Можно создать несколько конфигурационных файлов (ipnat.rules2; ipnat.rules3) и менять конфиги "на лету" в зависимости от "погоды".


Таак, осталось добавить пару строк в конфиг ppp и все....

#ee /etc/ppp/ppp.conf
default:
set log Phase tun command

ISP:
set device PPPoE:rl0
set authname username
set authkey userpswd
enable dns
add default HISADDR

ВСЁ!!! Система настроенна, не забудте в /etc/rc.conf прописать IP адреса и все необходимые для нормальной работы сервера параметры, Также нужно указать DNS-ы провайдера в файл /etc/resolv.conf

#ee /etc/resolv.conf

nameserver 172.27.137.10
nameserver 172.27.137.20

#reboot.................................................................................................................:)


Или чтобы не перезагружаться, можно инициализировать ipnat командой:
#kldload ipl
и перечитать rc.conf


Если выбирать между Natd и ipnat - я выберу ipnat. ;)

3 комментария:

  1. а я нат на pf поднял, работает не плохо )

    ОтветитьУдалить
  2. c pf-om буду разбараться в ближайшее время :) Сейчас использую ipnat и пока притензий нет.

    ОтветитьУдалить
  3. tallman9, а можно инструкцию аль ссылочку...занят этим же делом и чет с redirectom запнулся...ведь и в NAT и в pf rdr ....Они не ругаются?

    ОтветитьУдалить