Не могу настроить IPFW

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
alex117
ст. сержант
Сообщения: 358
Зарегистрирован: 2010-07-30 13:25:13

Не могу настроить IPFW

Непрочитанное сообщение alex117 » 2011-02-10 15:46:25

Ситуация такая: Есть роутер DLINK-2640U, который раздает инет на подсеть 192.168.1.0. Мне нужно раздать инет на свою подсеть 192.168.0.0. Делаю маршрутизатор на FreeBSD-7.1+IPFW+NATD. Перекомпилировал ядро, для включения поддержки nat и ipfw. Сервер смотрит одной картой (vr1) в 192.168.1.0 - сеть с роутером, другой (vr0) - в мою 192.168.0.0.
Написал файл с правилами для IPFW

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

#!/bin/sh

FwCMD="/sbin/ipfw -q" 
LanOut="vr1"            # внешний интерфейс
LanIn="vr0"            # внутренний интерфейс
IpOut="192.168.1.14" # внешний IP адрес машины
IpIn="192.168.0.1"   # внутренний IP машины
NetMask="24"            # маска сети                    
NetIn="192.168.0.0"    # Внутренняя сеть

${FwCMD} -f flush
${FwCMD} add check-state
${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 divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add allow tcp from any to any established
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${LanOut}
${FwCMD} add allow udp from any to any 53 via ${LanOut}
${FwCMD} add allow udp from any to any 123 via ${LanOut}
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
${FwCMD} add allow tcp from any to any via ${LanIn}
${FwCMD} add allow udp from any to any via ${LanIn}
${FwCMD} add allow icmp from any to any via ${LanIn}
${FwCMD} add deny ip from any to any
Специально не рубил частные сети в конфиге. Но интернета машины моей подсети не получают, я прописал шлюз и dns. На самом сервере инет есть. Может для моей ситуации, когда инет идет не от провайдера,а от роутера надо как-то иначе делать?
ipfw show показывает, что запросы снаружи проходят через natd, а изнутри сети - нет. Может где-то подправить надо правила?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


Аватара пользователя
dmtr
ст. прапорщик
Сообщения: 545
Зарегистрирован: 2009-11-06 22:01:34
Откуда: с Ростова

Re: Не могу настроить IPFW

Непрочитанное сообщение dmtr » 2011-02-10 16:53:45

покажите

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

# ipfw show
This game has no name. It will never be the same.

Аватара пользователя
digital_punk
мл. сержант
Сообщения: 143
Зарегистрирован: 2010-07-02 11:40:24

Re: Не могу настроить IPFW

Непрочитанное сообщение digital_punk » 2011-02-10 17:35:53

В rc.conf прописывали gateway_enable="YES" ?
У Шамана три руки!!!

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: Не могу настроить IPFW

Непрочитанное сообщение schizoid » 2011-02-10 17:50:32

чета подозреваю, что рубиться все на

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

${FwCMD} add deny ip from any to any
:)
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
alex117
ст. сержант
Сообщения: 358
Зарегистрирован: 2010-07-30 13:25:13

Re: Не могу настроить IPFW

Непрочитанное сообщение alex117 » 2011-02-10 18:09:59

покажите
Код:
# ipfw show
Завтра покажу, сервер на работе.
В rc.conf прописывали gateway_enable="YES" ?
Да прописал.
чета подозреваю, что рубиться все на
Код:
${FwCMD} add deny ip from any to any
Походу да, т.к под другие правила нужные пакеты не попадают.
Поднял также bind на этом сервере. Вопрос: Когда под виндовыми тачками прописываем шлюз нужно указывать dns-сервер или не обязательно? В named.conf прописал forward на 192.168.1.1 (адрес роутера).

snorlov
подполковник
Сообщения: 3690
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не могу настроить IPFW

Непрочитанное сообщение snorlov » 2011-02-10 18:17:13

можно еще посмотреть

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

ipfw -a list 
там сразу видно на каком правиле режутся, а вообще, возьмите стандартный скрипт для ipfw и задайте тип OPEN

Аватара пользователя
alex117
ст. сержант
Сообщения: 358
Зарегистрирован: 2010-07-30 13:25:13

Re: Не могу настроить IPFW

Непрочитанное сообщение alex117 » 2011-02-11 10:06:29

Чуть скорректировал скрипт для ntp, ssh и внутреннего dns-сервера.

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

#!/bin/sh

# Переменные
FwCMD="/sbin/ipfw -q "
LanOut="vr1"
LanIn="vr0"
IpOut="192.168.1.14"
IpIn="192.168.0.1"
NetMask="24"
NetIn="192.168.0.0"

#Правила

${FwCMD} -f flush
${FwCMD} add check-state
${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

#Включение NAT

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

#Разрешение нужных соединений

${FwCMD} add allow tcp from any to any established
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${LanOut}
${FwCMD} add allow udp from any to any 53 via ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${LanIn}
${FwCMD} add allow udp from any to any 53 via ${LanIn}
${FwCMD} add allow udp from any to any 123 via ${LanOut}
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
${FwCMD} add allow tcp from any to ${IpIn} 22 via ${LanIn}
${FwCMD} add allow tcp from any to any via {LanIn}
${FwCMD} add allow icmp from any to any via {LanIn}
${FwCMD} add allow udp from any to any via {LanIn}
${FwCMD} add deny ip from any to any
Потом поломился с виндовой тачки в инет и вот что показывает ipfw show:

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

00100   0     0 check-state
00200  24  2732 allow ip from any to any via lo0
00300   0     0 deny ip from any to 127.0.0.0/8
00400   0     0 deny ip from 127.0.0.0/8 to any
00500   0     0 divert 8668 ip from 192.168.0.0/24 to any out via vr1
00600  79 19964 divert 8668 ip from any to 192.168.1.14 in via vr1
00700   0     0 allow tcp from any to any established
00800  79  5933 allow ip from 192.168.1.14 to any out xmit vr1
00900  51 17836 allow udp from any 53 to any via vr1
01000   0     0 allow udp from any to any dst-port 53 via vr1
01100  22  6156 allow udp from any 53 to any via vr0
01200  22  1502 allow udp from any to any dst-port 53 via vr0
01300  28  2128 allow udp from any to any dst-port 123 via vr1
01400   0     0 allow icmp from any to any icmptypes 0,8,11
01500   0     0 allow tcp from any to 192.168.0.1 dst-port 22 via vr0
01600   0     0 allow tcp from any to any via {LanIn}
01700   0     0 allow icmp from any to any via {LanIn}
01800   0     0 allow udp from any to any via {LanIn}
01900 455 39363 deny ip from any to any
65535   2   337 deny ip from any to any

snorlov
подполковник
Сообщения: 3690
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не могу настроить IPFW

Непрочитанное сообщение snorlov » 2011-02-11 10:32:17

я бы вам еще раз рекомендую посмотреть скрипт rc.firewall c типом OPEN

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

${FwCMD} add allow all from ${NetIn}/${NetMask to ${NetIn}/${NetMask via ${LanIn}
${FwCMD} add divert natd all  from any to any  via ${LanOut}

Аватара пользователя
alex117
ст. сержант
Сообщения: 358
Зарегистрирован: 2010-07-30 13:25:13

Re: Не могу настроить IPFW

Непрочитанное сообщение alex117 » 2011-02-11 11:01:59

Посмотрел, дописал по Вашему примеру правила, но толку нет. Заработало только когда последнее правило изменил на

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

${FwCMD} add allow ip from any to any
Но почему не работает с моей конфигурацией? Выходит, что пакеты с запросами от клиетского ПК не подходят ни под одно правило и рубятся последним. Тогда что я не правильно прописал для своей сети, я просто хочу понять и не могу.

ink08
рядовой
Сообщения: 21
Зарегистрирован: 2010-07-02 23:31:20

Re: Не могу настроить IPFW

Непрочитанное сообщение ink08 » 2011-02-15 13:40:57

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

01600   0     0 allow tcp from any to any via {LanIn}
01700   0     0 allow icmp from any to any via {LanIn}
01800   0     0 allow udp from any to any via {LanIn}
в ipfw show не показываются переменные, у вас ошибка в правилах,

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

s/{LanIn}/${LanIn}/
поправьте и все заработает

Аватара пользователя
alex117
ст. сержант
Сообщения: 358
Зарегистрирован: 2010-07-30 13:25:13

Re: Не могу настроить IPFW

Непрочитанное сообщение alex117 » 2011-02-15 19:57:34

Да это я поправил, но суть в том, что не работает при полном запрете на 65535 правиле, как написано в статье, нужно разрешить все. Это означает, что пакет не проходит по нужным мне правилам.