Главная страница | Добавить в избранное    
   

 

» Статьи » Настройка/установка natd/маршрутизатора в FreeBSD на основе natd+ipfw

   
main1
pix
 

Настройка/установка natd/маршрутизатора в FreeBSD на основе natd+ipfw

Статьи  
pix pix pix
Очень часто возникает задача когда требуется пустить локальную сеть в и-нет через один выделенный провайдером IP адрес (200.200.200.1) и дать доступ пользователям находящимся в приватной сетке (192.168.1.0/24) к любому серверу в и-нете. Причем для настройки natd нам неважно какую топологию будет иметь интерфейс смотрящий в сторону ISP - будь это ethernet или ppp0 (ppp link). Принципп действия NAT (Network Address Translations) основан на преобразовании заголовка пакета приходящего из локальной сети на интефейс смотрящий с сторону интернета таким образом что этот пакет записывается в таблицу соединенией демона NATD и в нем переписыватеся адрес отправителя, например вместо 192.168.1.5 ставится 200.200.200.1 и пакет уходит в и-нет от реального адреса. Прихоящие пакеты сверяются с динамической таблицей демона natd и если они были из локальной сети то адрес источника заменяется и к хосту назначения в приватную сеть офисса.
Итак у нас есть два интерфейса : ed0 - смотрит в сторону ISP (200.200.200.1 netmask 255.255.255.252) ed1 смотрит в сторону локальной сети (192.168.1.1 netmask 255.255.255.0 Существует два варианта реализации NAT во FreeBSD : ipnat + ipf и natd + ipfw, мы остановимся на последнем, поскольку ipfw более популярен. Для начала собрем ядро со следующими опциями :

# Включаем поддержку firewall-a       
options IPFIREWALL       
options IPFIREWALL_VERBOSE       
options "IPFIREWALL_VERBOSE_LIMIT=100"       
# Включаем DIVERT пакетов приходящих на интерфейс для NAT       
options IPDIVERT

После команды
make depend; make clean; make all; make install
перезагрузим систему и займемся настройкой firewall-a.
Создадим файл в /usr/local/etc/rc.d/firewall.sh и дадим ему право исполнения chmod +x firewall.sh .
Содержимое файла :

#!/bin/sh
#Очищаем предыдущие правила
/sbin/ipfw -f flush
# Разрешаем NATD
/sbin/ipfw add divert natd ip from 192.168.1.0/24 to any out via ed0
/sbin/ipfw add divert natd ip from any to 200.200.200.1 in via ed0
# Ниже идет строка открывающая работу по всем портам снаружи
# вы должны сами написать правила фильтрации под вашу сеть
/sbin/ipfw add pass all from any to any via ed1

Теперь создадим файл /usr/local/etc/rc.d/natd.sh (дав на него chmod +x) :

#!/bin/sh
# Запускаем при старте natd и указываем чтобы он работал с ed0 (ключ -n)
/sbin/natd -f /etc/natd.conf -n ed0

В файле /etc/natd.conf прописываем
same_ports yes use_sockets yes
В /etc/rc.conf обязательно должна быть строчка :
gateway_enable = "YES" После перезагрузки мы получим работающий роутер с natd и в локальной сети Вам необходимо прописать в TCP/IP setting на рабочих станциях Windows адрес gateway - 192.168.1.1 и дополнительно адрес внешнего DNS сервера - это может быть сервер ISP. Через natd работают любые почтовые клиенты, любые версии ICQ и других socks клиентов - его настройка намного предпочтительнее чем настраивать по отдельности прокси сервер на каждый сервис в отдельности. Иногда возникает необходимость сделать редирект какого либо порта например с адреса 192.168.1.1 555 на 201.201.201.2 25 порт. Такая ситуация бывает когда забыт пароль на маршрутизатор через который поключается роутер на базе FreeBSD и приходится вписываться в те порты которые открыты. Для этого есть программа rined запускаемая из командной строчки и для нее обходим файл конфигурации в /usr/local/etc/rinetd.conf такого формата : 192.168.1.1 555 201.201.201.2 25 , где первый IP адрес - это адрес карточки в роутере а второй IP это адрес хоста назначения.

Для того что бы natd стартовал автоматически надо прописать в /etc/rc.conf
natd_enable="YES"
natd_flags="-a 200.200.200.1"

 



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
Автор: hellevil | 27-07-2007, 15:56 | Просмотров: 31 160
 
pix
  Новости по теме    
pix pix pix
  • Перекомпиляция/пересобирание ядра/kernel FreeBSD
  • Настройка/Установка DHCP сервера под управлением FreeBSD
  • FreeBSD - fail2ban
  • Репликация MySQL
  • Все об эмуляции Linux во FreeBSD
  •  
     
     
    pix
     
    pix
    search
    navi
    poll
    calendar
    «    Апрель 2024    »
    ПнВтСрЧтПтСбВс
    1234567
    891011121314
    15161718192021
    22232425262728
    2930 
    main4
    pix pix pix

    2007 © www.DesktopBSD.ru
    Все права сохранены