Страница 1 из 1
Не могу настроить IPFW
Добавлено: 2011-02-10 15:46:25
alex117
Ситуация такая: Есть роутер 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, а изнутри сети - нет. Может где-то подправить надо правила?
Re: Не могу настроить IPFW
Добавлено: 2011-02-10 15:53:16
alex117
Re: Не могу настроить IPFW
Добавлено: 2011-02-10 16:53:45
dmtr
Re: Не могу настроить IPFW
Добавлено: 2011-02-10 17:35:53
digital_punk
В rc.conf прописывали gateway_enable="YES" ?
Re: Не могу настроить IPFW
Добавлено: 2011-02-10 17:50:32
schizoid
чета подозреваю, что рубиться все на

Re: Не могу настроить IPFW
Добавлено: 2011-02-10 18:09:59
alex117
покажите
Код:
# ipfw show
Завтра покажу, сервер на работе.
В rc.conf прописывали gateway_enable="YES" ?
Да прописал.
чета подозреваю, что рубиться все на
Код:
${FwCMD} add deny ip from any to any
Походу да, т.к под другие правила нужные пакеты не попадают.
Поднял также bind на этом сервере. Вопрос: Когда под виндовыми тачками прописываем шлюз нужно указывать dns-сервер или не обязательно? В named.conf прописал forward на 192.168.1.1 (адрес роутера).
Re: Не могу настроить IPFW
Добавлено: 2011-02-10 18:17:13
snorlov
можно еще посмотреть
там сразу видно на каком правиле режутся, а вообще, возьмите стандартный скрипт для ipfw и задайте тип OPEN
Re: Не могу настроить IPFW
Добавлено: 2011-02-11 10:06:29
alex117
Чуть скорректировал скрипт для 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
Re: Не могу настроить IPFW
Добавлено: 2011-02-11 10:32:17
snorlov
я бы вам еще раз рекомендую посмотреть скрипт 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}
Re: Не могу настроить IPFW
Добавлено: 2011-02-11 11:01:59
alex117
Посмотрел, дописал по Вашему примеру правила, но толку нет. Заработало только когда последнее правило изменил на
Но почему не работает с моей конфигурацией? Выходит, что пакеты с запросами от клиетского ПК не подходят ни под одно правило и рубятся последним. Тогда что я не правильно прописал для своей сети, я просто хочу понять и не могу.
Re: Не могу настроить IPFW
Добавлено: 2011-02-15 13:40:57
ink08
Код: Выделить всё
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 не показываются переменные, у вас ошибка в правилах,
поправьте и все заработает
Re: Не могу настроить IPFW
Добавлено: 2011-02-15 19:57:34
alex117
Да это я поправил, но суть в том, что не работает при полном запрете на 65535 правиле, как написано в статье, нужно разрешить все. Это означает, что пакет не проходит по нужным мне правилам.
Re: Не могу настроить IPFW
Добавлено: 2011-10-17 10:04:25
ddenia