FreeBSD маршрутизация

Статическая и динамическая, протоколы

Re: FreeBSD маршрутизация

Сообщение slb51 » 24 авг 2009, 09:45

Сделал всё с учётом ваших советов, но теперь вот какая проблема:
настроил NAT и Firewall. Не получается дать доступ во внешнюю сеть выборочно нескольким компам.

ОС – FreeBSD Releas 7.2
Firewall – ipfw
NAT – ipnat

Настройки:
1. Добавил опции ядра:
Код: Выделить всё
IPFIREWALL
IPDIVERT
IPFIREWALL_VERBOSE
IPFIREWALL_VERBOSE_LIMIT=100

2. rc.conf:
Код: Выделить всё
ifconfig_bge0=”10.0.0.10 netmask 255.255.255.0”
ifconfig_rle0=”192.168.0.10 netmask 255.255.255.0”
gateway_enable=”YES”
firewall_enable=”YES”
firewall_type=”/etc/firewall.conf”
ipnat_enable=”YES”
ipnat_program=”/sbin/ipnat -CF –f””
ipnat_rules=”/etc/ipnat.rules”
ipnat_flags=””
defaultrouter=”192.168.0.1”

3. ipnat.rules:
Код: Выделить всё
map rl0 from 10.0.0.0/24 to 192.168.0.0/24 -> 192.168.0.10/32 proxy port ftp ftp/tcp
map rl0 from 10.0.0.0/24 to 192.168.0.0/24 -> 192.168.0.10/32
map rl0 from 10.0.0.0/24 to 0.0.0.0/0 -> 192.168.0.10/32 proxy port ftp ftp/tcp
map rl0 from 10.0.0.0/24 to 0.0.0.0/0 -> 192.168.0.10/32

4. ipfw –a show:
Код: Выделить всё
00100 16 1016 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65534 30575 3932974 allow ip from any to any
65635 1665 191001 deny ip from any to any


И вот что получается. В такой конфигурации всё работает, Но если убрать правило 65534 и добаить
add 400 allow all from 10.0.0.218 to any
то доступа нет ни у кого, в том числе и с указанного IP, а если не убирать 65534, а добавить
add 400 deny all from 10.0.0.218 to any
такое правило работает так, как и ожидалось.

Да, ещё вот что. Хосы из сети 192.168.0.0/24 стучатся на Firewall:
Код: Выделить всё
Aug 21 15:20:11 kernel: arp: 192.168.0.1 is on rl0 but got reply from 00:19:56:32:0d:f1 on bge0
Aug 21 15:24:58 kernel: arp: 192.168.0.101 is on rl0 but got reply from 00:03:47:31:ce:e1 on bge0


Подскажите, please,что где не так.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: FreeBSD маршрутизация

Сообщение lehisnoe » 24 авг 2009, 11:08

slb51 писал(а):Сделал всё с учётом ваших советов, но теперь вот какая проблема:
настроил NAT и Firewall. Не получается дать доступ во внешнюю сеть выборочно нескольким компам.
3. ipnat.rules:
map rl0 from 10.0.0.0/24 to 192.168.0.0/24 -> 192.168.0.10/32 proxy port ftp ftp/tcp
map rl0 from 10.0.0.0/24 to 192.168.0.0/24 -> 192.168.0.10/32
map rl0 from 10.0.0.0/24 to 0.0.0.0/0 -> 192.168.0.10/32 proxy port ftp ftp/tcp
map rl0 from 10.0.0.0/24 to 0.0.0.0/0 -> 192.168.0.10/32
4. ipfw –a show:
00100 16 1016 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65534 30575 3932974 allow ip from any to any
65635 1665 191001 deny ip from any to any

И вот что получается. В такой конфигурации всё работает, Но если убрать правило 65534 и добаить
add 400 allow all from 10.0.0.218 to any
то доступа нет ни у кого, в том числе и с указанного IP, а если не убирать 65534, а добавить
add 400 deny all from 10.0.0.218 to any
такое правило работает так, как и ожидалось.

Все правильно: т.к. в первом случае, единственное правило, удовлетворяющее условиям - 65535 - блочить ip от любого источника к любому получателю.
Во втором случае, пакет попадает от 10.0.0.218 под 400-ое правило, пакеты от остальных IP это правило не затрагивает.
Хинт: пропиши в правилах нат только IP, кот. должны ходить в инет ;-)
А по уму я бы в ipfw описал легитимные IP, разрешенные им действия, а остальные пакеты - в сад (т.е. на 65535) :)
slb51 писал(а):Да, ещё вот что. Хосы из сети 192.168.0.0/24 стучатся на Firewall:
Aug 21 15:20:11 kernel: arp: 192.168.0.1 is on rl0 but got reply from 00:19:56:32:0d:f1 on bge0
Aug 21 15:24:58 kernel: arp: 192.168.0.101 is on rl0 but got reply from 00:03:47:31:ce:e1 on bge0
Подскажите, please,что где не так.

А тут все просто: где-то у тебя локалки пересекаются: кернел тебе грит, что он получает ответ с bge0, хотя ждал его с rl0 (кстати, в rc.conf'e ничего нет про rl0 :))
No users
No troubles
No money
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
lehisnoe
Site Admin
 
Сообщения: 539
Зарегистрирован: 11 июн 2008, 14:09
Откуда: Moscow

Re: FreeBSD маршрутизация

Сообщение slb51 » 24 авг 2009, 11:23

В конфиге опечатка: rl0, а не rle0.

Я не понял вот чего,
00100 16 1016 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 allow ip from 10.0.0.218 to any
65635 1665 191001 deny ip from any to any

в такой конфигурации правило 400 проверяет пакет от указанного IP и он не должен передаваться для проверки другими правилами, а сразу отправляется по назначению? Или нет?
Как же сделать так, чтобы доступ в инет был только с указанных IP, а всё остальное закрывалось?
P.S. IP-шник я написал только один для краткости, понятно, что их там будет целая куча.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: FreeBSD маршрутизация

Сообщение slb51 » 24 авг 2009, 11:57

P.P.S.
А если всё прописать в правилах NAT, что тогда будет делать Firewall, если ему указать "allow all from any to any"? Боюсь, громоздкая получится конструкция. Тогда уж надо писать "firewall_type="open" или "simple".
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: FreeBSD маршрутизация

Сообщение lehisnoe » 24 авг 2009, 12:02

slb51 писал(а):В конфиге опечатка: rl0, а не rle0.

Я не понял вот чего,
00100 16 1016 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 allow ip from 10.0.0.218 to any
65635 1665 191001 deny ip from any to any

в такой конфигурации правило 400 проверяет пакет от указанного IP и он не должен передаваться для проверки другими правилами, а сразу отправляется по назначению? Или нет?

В большинстве случаев, в ipfw работает механизм срабатывания действия первого правила, удовлетворяющего условиям (за исключениями - welcome 2 man ipfw).
Твой пример - не исключение.
slb51 писал(а):Как же сделать так, чтобы доступ в инет был только с указанных IP, а всё остальное закрывалось?
P.S. IP-шник я написал только один для краткости, понятно, что их там будет целая куча.

Я бы сделал что-нибуть подобное:
Код: Выделить всё
#Тут режем нежелательный трафик
ipfw add 900 deny udp from any to any 137,138 via rl0
#Заполняем таблицу, например, 2:
ipfw table 2 add 10.0.0.218/32
ipfw table 2 add 10.0.0.219/32
ipfw table 2 add 10.0.0.224/27
#Разрешаем хождение пакетов от любых адресов к таблице №2 и наоборот.
ipfw add 1000 allow ip from table(2) to any
ipfw add 1002 allow ip from any to table(2)
#Остальное - в deny (правило имеет смысл только в случае открытого типа ipfw).
ipfw add 65000 deny ip from any to any
No users
No troubles
No money
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
lehisnoe
Site Admin
 
Сообщения: 539
Зарегистрирован: 11 июн 2008, 14:09
Откуда: Moscow

Re: FreeBSD маршрутизация

Сообщение slb51 » 24 авг 2009, 12:11

Сейчас попробую. Хотя, мне кажется, это то же самое, только с таблицами.
А ipfw - закрытый, как следует из правила 65535.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: FreeBSD маршрутизация

Сообщение root » 24 авг 2009, 12:14

slb51 писал(а):из правила 65635.

65535 - макс. номер правила в IPFW

slb51 писал(а):Хотя, мне кажется, это то же самое, только с таблицами.

не тоже самое
у тя не было обратного правила, у тя было тока от IP ко всему, а вот обратно "от всего к IP" нет
С уважением, root

Изображение
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
root
Site Admin
 
Сообщения: 1894
Зарегистрирован: 11 июн 2008, 13:05
Откуда: Moscow, Russia

Re: FreeBSD маршрутизация

Сообщение slb51 » 24 авг 2009, 12:44

С номером правила понятно, уже ж исправил. Не каждый же раз по нужной клавише попадёшь в понедельник.
А в остальом, благодарствую, всё пошло как надо.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Re: FreeBSD маршрутизация

Сообщение lehisnoe » 24 авг 2009, 13:59

Пожалуйста.
Обращайся ;-)
No users
No troubles
No money
------------
www.mega-net.ru - IT аутсорсинг
Аватара пользователя
lehisnoe
Site Admin
 
Сообщения: 539
Зарегистрирован: 11 июн 2008, 14:09
Откуда: Moscow

Re: FreeBSD маршрутизация

Сообщение slb51 » 24 авг 2009, 14:38

Тогда в догонку такой вопрос.
Если вместо 10.0.0.XXX/32 пишу host.domain.local, то работать перестаёт.
Хотя nslookup даёт разрешение как имени в IP, так и IP в имя хоста.
DNS-сервер локальный, но с пересылкой на внешний DNS.
slb51
новичок
 
Сообщения: 35
Зарегистрирован: 06 авг 2009, 15:32

Пред.След.

Вернуться в Маршрутизация / Routing

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

cron