Страница 1 из 1

Вопрос по ipfw в связке FreeBSD 7.1+squid3.0+NAT+ipfw

Добавлено: 2009-02-02 13:05:00
talenndel
Суть проблемы собственно такова:
Имеется сервер (точнее пока его заготовка), на нем установлены 2 сетевухи - sk0 смотрит в общую сеть (172.x.x.x) rl0 - в сеть 192.168.0.x
Интернет берется из 172 подсети путем коннекта к ВПН серваку через ррр.
В 192 подсети раздается инет через сквид по WiFi, и тут нужно закрыть абсолютно все, кроме непосредственно сквида (прокси не прозрачный с ncsa авторизацией), в 172 подсети нужно, так же как и в 192-ой закрыть возможность использования сервера как дефаулт роутера, (а то народ повадился прописывать его в качестве шлюза и со сторонним днс сервером лазить в обход сквида), в то же время с некоторых айпи такую возможность оставить...
Во фряхе только начинаю разбираться, так что прошу особо не пинать=)
Пробовал настраивать по статьям с этого сайта... что-то получилось... но по большей части нет=(
Вот конфиг ipfw:

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

#!/bin/sh

ipfw=" /sbin/ipfw -q " 	# Команда фаера
intifrl=" rl0 "		# Сетевуха, смотрящая в 192 подсетку
intifsk=" sk0 "		# Сетевуха, смотрящая в 172 подсетку
inetif=" tun0 "		# Тоннель в инет
intipsk=" 172.16.8.177 " # IP в 172 подсетке
lannetsk=" 172.16.0.0/16 " # 172 поддсетка
intiprl=" 192.168.0.1 "	# IP в 192 подсетке
lannetrl=" 192.168.0.0/24 " # 192 подсетка
inetip=`/sbin/ifconfig tun0 | grep inet | head -n 1 | awk {'print $2'}` # Inet IP
loopback=" lo0 " # Локальная петля
portrange2=" 53,123,43,5190,110,25,80,443,21,20,65530-65535 " # Соответственно порты

${ipfw} -f flush	# Чистим правила
${ipfw} -f pipe flush	# Чистим правила для пайпов
${ipfw} -f queue flush	
${ipfw} add 100 check-state
#
#
${ipfw} add 150 allow ip from any to any via ${loopback}
${ipfw} add 200 allow ip from me to any keep-state
${ipfw} add 201 allow icmp from any to me icmptypes 0,8,11
#
 
#Разные запреты
${ipfw} add 205 deny tcp from any to any 137 in via ${inetif}
${ipfw} add 206 deny tcp from any to any 138 in via ${inetif}
${ipfw} add 207 deny tcp from any to any 139 in via ${inetif}
${ipfw} add 208 deny tcp from any to any 81  in via ${inetif}

#Antiscanner
${ipfw} add 210 deny icmp from any to any frag
${ipfw} add 220 reject log tcp from any to any tcpflags fin,syn,rst,psh,ack,urg
${ipfw} add 230 reject log tcp from any to any tcpflags !fin,!syn,!rst,!psh,!ack,!urg
${ipfw} add 240 reject log tcp from any to any not established tcpflags fin
${ipfw} add 250 reject log ip from any to any not verrevpath in

#
#SSH
${ipfw} add 260 allow ip from any to any 22 via ${intifsk}
#
#FTP
${ipfw} add 300 allow tcp from any to me 21,65530-65535 via ${intifsk}
${ipfw} add 300 deny tcp from any to me 21,65530-65535 via ${intifrl}
#HTTP
${ipfw} add 301 allow tcp from any to me 80
#
#allowing samba
#${ipfw} add 310 allow tcp from any to any 445,139 via ${intif}
#${ipfw} add 320 allow udp from any to any 137,138 via ${intif}
#
#Block netbios via external interface
${ipfw} add 321 reject log tcp from any to any 445,139 via ${inetif}
${ipfw} add 322 reject log udp from any to any 137,138 via ${inetif}
${ipfw} add 323 reject log tcp from any 445,139 to any via ${inetif}
${ipfw} add 324 reject log udp from any 137,138 to any via ${inetif}
#
#Dummynet
${ipfw} add 325 pipe 1 ip from ${lannetrl} to any
${ipfw} pipe 1 config bw 400Kbit/s
#
#NAT
# ${ipfw} add 330 fwd 192.168.0.1,3128 tcp from ${intranet} to any 80,443,5190 out via ${extif}
# ${ipfw} add 330 fwd 172.16.8.177,3128 tcp from ${lannet} to any 80,443,5190 out via ${extif}
# ${ipfw} add 340 divert natd ip from any to ${extip} in via ${extif}

# ${ipfw} add 350 allow ip from any ${portrange2} to ${intranet} in via ${extif}
# ${ipfw} add 360 allow ip from any ${portrange2} to ${intranet} out via ${intif}
# ${ipfw} add 370 allow ip from ${intranet} to any ${portrange2} in via ${intif}
# ${ipfw} add 380 allow ip from ${extip} to any ${portrange2} out via ${extif} 

Помогите пожалуйста=) ну или ткните носом куда копать...
Заранее благодарю=)
З.Ы.
ipfw вкомпилировал в ядро такими опциями

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

options         IPFIREWALL           .
options         IPFIREWALL_VERBOSE      .
options         IPFIREWALL_VERBOSE_LIMIT=50 
options         IPFIREWALL_DEFAULT_TO_ACCEPT    
options         IPDIVERT               
options         IPFIREWALL_FORWARD      
options         DUMMYNET               
                                     

Re: Вопрос по ipfw в связке FreeBSD 7.1+squid3.0+NAT+ipfw

Добавлено: 2009-02-02 13:28:42
maradona

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

(а то народ повадился прописывать его в качестве шлюза и со сторонним днс сервером лазить в обход сквида), в то же время с некоторых айпи такую возможность оставить...
что бы этого не было для начала ната убрать нат, токо не видно из поста его настроек - правило №340 закоментировано, тогда шлюзом сервак работать не будет, либо для тех кому нужно его оставить описуй конкретно с каких адресов в правилах ната, при наличии сквида и ты пишеш что ограничить все кроме него, он не нужен.
P.S. по фаеру ищи инфы хватает например здесь: http://www.lissyara.su/?id=1536

Re: Вопрос по ipfw в связке FreeBSD 7.1+squid3.0+NAT+ipfw

Добавлено: 2009-02-02 13:40:59
talenndel
Вот именно ,что закомментировано... Весь нат зарублен, но тем не менее пакеты ходят... сейчас сам так сижу... Вот тока перечитал правила и один хрен инет работает в обход прокси...

Re: Вопрос по ipfw в связке FreeBSD 7.1+squid3.0+NAT+ipfw

Добавлено: 2009-02-02 18:00:05
maradona
давай вывод:
rc.conf
ipfw list
natd.conf

Re: Вопрос по ipfw в связке FreeBSD 7.1+squid3.0+NAT+ipfw

Добавлено: 2009-02-02 20:15:17
talenndel
Хмм... вопрос снят... разобрался... Проблема была в последовательности правил, разрешающие стояли выше запрещающих, еще раз перечила записки про ipfw и все вышло, спасибо=)

Re: Вопрос по ipfw в связке FreeBSD 7.1+squid3.0+NAT+ipfw

Добавлено: 2009-02-02 22:17:38
Alex Keda

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

ipfw show
и

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

ipfw list
надо юзать... там это неплохо видно

Re: Вопрос по ipfw в связке FreeBSD 7.1+squid3.0+NAT+ipfw

Добавлено: 2009-02-03 10:06:27
talenndel
Да в том то и проблема, что не так давно перешел на Фряху... недели 2 всего как... Так сказать в тестовом режиме=) Косяк понял, исправляюсь=)