URL: https://ssl.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 1780
[ Назад ]

Исходное сообщение
"Нужен срочный хелп по правилам ipfw"

Отправлено Maxz , 14-Дек-04 12:29 
Граждане, помогите, пожалуйста.
Стоит FreBSD 5.1 + Squid stable7

Имею вот такой конфиг для ipfw:

#!/bin/sh
# envars
fwcmd="/sbin/ipfw -q"


#xl0 - external
#dc0 - internal
#212.xx.xxx.64/255.255.255.224 - my subnet
#212.xx.xxx.167 - my external address
#212.xx.xxx.65 - internal router address

# init
${fwcmd} -f flush

${fwcmd} add 200 pass icmp from any to any #allow all icmp

${fwcmd} add 300 pass tcp from any to any established
${fwcmd} add 300 pass tcp from any to any 49152-65535 #safe ports
${fwcmd} add 300 pass tcp from any to any 53 #DNS
${fwcmd} add 300 pass tcp from any to any 113 in via xl0
${fwcmd} add 300 pass tcp from any to any 25 in #smtp
${fwcmd} add 300 pass udp from any to any 49152-65535
${fwcmd} add 300 pass udp from any to any 53

${fwcmd} add 500 pass all from any to any 4899 #Remote Administrator

${fwcmd} add 600 deny tcp from any to any 135 via xl0
${fwcmd} add 600 deny tcp from any to any 137 via xl0
${fwcmd} add 600 deny tcp from any to any 139 via xl0
${fwcmd} add 600 deny tcp from any to any 140 via xl0
${fwcmd} add 600 deny tcp from any to any 141 via xl0
${fwcmd} add 600 deny tcp from any to any 69 via xl0
${fwcmd} add 600 deny tcp from any to any 4444 via xl0

#router
${fwcmd} add 700 pass all from any to 212.xx.xxx.65 via dc0
${fwcmd} add 700 pass all from 212.xx.xxx.65 to any via dc0
${fwcmd} add 700 pass tcp from any to any 22
${fwcmd} add 700 pass tcp from any to any 23

${fwcmd} add 800 pass all from 212.xx.xxx.167 to any via xl0
${fwcmd} add 800 pass all from any to 212.xx.xxx.167 via xl0

#my subnet rules
${fwcmd} add 900 pass all from 212.xx.xxx.64/255.255.255.224 to any
${fwcmd} add 900 pass all from any to 212.xx.xxx.64/255.255.255.224

###########################################################
# Global reject rules
###########################################################
#${fwcmd} add 63000 pass all from any to any
${fwcmd} add 65000 deny all from any to any

почему не пускает в инет?

Изначально мне нужно в правилах 900 указать только нужные внешние адреса/подсетки, чтоб доступ к ним был без прокси, а в остальные места - только через проксик (поэтому в правилах роутеру разрешено все).

Может я чего-то забыл указать в правилах? И вообще, покритикуйте конфиг, я в *никсах полный ламер, без помощи "взрослых" все настраивал :) А сроки поджимают - сегодня к вечеру надо все настроить.


Содержание

Сообщения в этом обсуждении
"Нужен срочный хелп по правилам ipfw"
Отправлено Maxz , 21-Дек-04 17:10 
ну поможите хоть кто-нибудь!!!

"Нужен срочный хелп по правилам ipfw"
Отправлено dravor , 21-Дек-04 17:22 
>ну поможите хоть кто-нибудь!!!


man ipfw
google.ru
opennet.ru


"Нужен срочный хелп по правилам ipfw"
Отправлено alexvs , 21-Дек-04 21:37 
Во первых, я бы всем правилам раздал разные номера, а тл вдруг что-то необходимо будет поскоренькому удалить из прпавил путём ipfw delete rule и что тогда?
Так как у вас FreeBSD 5.1, то стоит ipfw2 с которым эти правила можно привести в более читабельный вид:
заменить
${fwcmd} add 600 deny tcp from any to any 135 via xl0
${fwcmd} add 600 deny tcp from any to any 137 via xl0
${fwcmd} add 600 deny tcp from any to any 139 via xl0
${fwcmd} add 600 deny tcp from any to any 140 via xl0
${fwcmd} add 600 deny tcp from any to any 141 via xl0
${fwcmd} add 600 deny tcp from any to any 69 via xl0
${fwcmd} add 600 deny tcp from any to any 4444 via xl0
на
${fwcmd} add 600 deny tcp from any to any 69,135,137,139,140,141,4444 via xl0

А вообще на этом сайте куча примеров правил к ipfw.


"Нужен срочный хелп по правилам ipfw"
Отправлено Maxz , 21-Дек-04 22:16 
Дык вроде у меня все правильно написано, но почему не работает?
И мне, как ламеру, сложно разобраться, что мне подойдет, а что - нет, так что примеры мне не помогут, главное - совет знающих :)
Спасибо

"Нужен срочный хелп по правилам ipfw"
Отправлено Z_M , 22-Дек-04 08:43 
всем здямте!
вомервых ,ДРАВОР, тут ваш бестолкового совет читать ман не поможет, могли бы не сотрясать воздух.

по поводу субжа-а где ДИВЕРТ в первых строках фаервола и ,я полагаю, натд тоже не запущен? тогда:

/etc/rc.conf:
natd_enable="YES"
natd_interface="xl0"
natd_flags="-unregistered_only"
gateway_enable="YES"

firewall.conf(или что там у вас):
$fwcmd add divert 8668 ip from any to any via xl0


зы:
в ядро должна быть вкомпиляна возможность диверта:

options         IPDIVERT

и придется ребутнуться

>Дык вроде у меня все правильно написано, но почему не работает?
>И мне, как ламеру, сложно разобраться, что мне подойдет, а что -
>нет, так что примеры мне не помогут, главное - совет знающих
>:)
>Спасибо



"Нужен срочный хелп по правилам ipfw"
Отправлено Maxz , 22-Дек-04 14:15 
Сразу встречные вопросы: что такое диверт и для чего нужен natd?

"Нужен срочный хелп по правилам ipfw"
Отправлено Z_M , 22-Дек-04 14:24 
а вот теперь надо почитать вот тут:

https://www.opennet.ru/docs/BSD/handbook/network-natd.html

коротко-чтобы перебрасывать пакеты с одной сетевой на другую (с внутренней на внешнюю),т.е. делать НАТ (о чем ссылка)

>Сразу встречные вопросы: что такое диверт и для чего нужен natd?



"Нужен срочный хелп по правилам ipfw"
Отправлено Maxz , 22-Дек-04 17:26 
У меня внутри сети все айпишники реальные, в таком случае натд не нужен? Мне нужны прямые подключения извне к компам внутри сетки

"Нужен срочный хелп по правилам ipfw"
Отправлено Z_M , 22-Дек-04 17:32 
ответ будет такой же аморфный как и вопрос :)
я полагаю не нужно ничего кроме настройки маршрутизации на пограничном маршрутизаторе и настройке фаервола.
natd не нужен - нужен route


>У меня внутри сети все айпишники реальные, в таком случае натд не
>нужен? Мне нужны прямые подключения извне к компам внутри сетки



"Нужен срочный хелп по правилам ipfw"
Отправлено Maxz , 22-Дек-04 20:26 
это есть, вопрос в первом сообщении был - почему в инет не лазит с указанными мной правилами? Если последним правилом указать allow all from any to any  - то естественно лазит :) Чего я забыл разрешить? Всякие ДНС и т.д. вроде как открыты, опять же - с роутера, который у меня одновременно и прокси, - все разрешено, но не пускает :(
Как быть? Уже всю голову поломал.

"Нужен срочный хелп по правилам ipfw"
Отправлено Z_M , 23-Дек-04 11:40 
что значит и прокси? юзеры в инет напрямую ходят или через прокси какойнить?

"Нужен срочный хелп по правилам ipfw"
Отправлено Maxz , 23-Дек-04 17:28 
напрямую юзвери ходят только по разрешенным адресам, которые я прописываю в фаерволле, а остальной инет - через проксю (сквид последний)

"Нужен срочный хелп по правилам ipfw"
Отправлено alexvs , 23-Дек-04 11:35 
А вы все deny заставте логироваться, а потом смотрите в security лог какие же пакеты были запрещены может и найдёте то что не стои задерживать.

Типа так:
${fwcmd} add 600 deny log tcp from any to any 4444 via xl0
а потом
tail -F /var/log/security

Всего хорошего.


"Нужен срочный хелп по правилам ipfw"
Отправлено Z_M , 23-Дек-04 17:47 
попробуй в правило 700 добавь
$ipfw add 700 allow ip from any to me via xl0
$ipfw add 700 allow ip from me to any via xl0

"Нужен срочный хелп по правилам ipfw"
Отправлено zlodey , 24-Дек-04 18:52 
>Граждане, помогите, пожалуйста.
>Стоит FreBSD 5.1 + Squid stable7
>
>Имею вот такой конфиг для ipfw:
>
>#!/bin/sh
># envars
>fwcmd="/sbin/ipfw -q"
>
>
>#xl0 - external
>#dc0 - internal
>#212.xx.xxx.64/255.255.255.224 - my subnet
>#212.xx.xxx.167 - my external address
>#212.xx.xxx.65 - internal router address
>
># init
>${fwcmd} -f flush
>
>${fwcmd} add 200 pass icmp from any to any #allow all icmp
>
>
>${fwcmd} add 300 pass tcp from any to any established
>${fwcmd} add 300 pass tcp from any to any 49152-65535 #safe ports
>
>${fwcmd} add 300 pass tcp from any to any 53 #DNS
>${fwcmd} add 300 pass tcp from any to any 113 in via
>xl0
>${fwcmd} add 300 pass tcp from any to any 25 in #smtp
>
>${fwcmd} add 300 pass udp from any to any 49152-65535
>${fwcmd} add 300 pass udp from any to any 53
>
>${fwcmd} add 500 pass all from any to any 4899 #Remote Administrator
>
>
>${fwcmd} add 600 deny tcp from any to any 135 via xl0
>
>${fwcmd} add 600 deny tcp from any to any 137 via xl0
>
>${fwcmd} add 600 deny tcp from any to any 139 via xl0
>
>${fwcmd} add 600 deny tcp from any to any 140 via xl0
>
>${fwcmd} add 600 deny tcp from any to any 141 via xl0
>
>${fwcmd} add 600 deny tcp from any to any 69 via xl0
>
>${fwcmd} add 600 deny tcp from any to any 4444 via xl0
>
>
>#router
>${fwcmd} add 700 pass all from any to 212.xx.xxx.65 via dc0
>${fwcmd} add 700 pass all from 212.xx.xxx.65 to any via dc0
>${fwcmd} add 700 pass tcp from any to any 22
>${fwcmd} add 700 pass tcp from any to any 23
>
>${fwcmd} add 800 pass all from 212.xx.xxx.167 to any via xl0
>${fwcmd} add 800 pass all from any to 212.xx.xxx.167 via xl0
>
>#my subnet rules
>${fwcmd} add 900 pass all from 212.xx.xxx.64/255.255.255.224 to any
>${fwcmd} add 900 pass all from any to 212.xx.xxx.64/255.255.255.224
>
>###########################################################
># Global reject rules
>###########################################################
>#${fwcmd} add 63000 pass all from any to any
>${fwcmd} add 65000 deny all from any to any
>
>почему не пускает в инет?
>
>Изначально мне нужно в правилах 900 указать только нужные внешние адреса/подсетки, чтоб
>доступ к ним был без прокси, а в остальные места -
>только через проксик (поэтому в правилах роутеру разрешено все).
>
>Может я чего-то забыл указать в правилах? И вообще, покритикуйте конфиг, я
>в *никсах полный ламер, без помощи "взрослых" все настраивал :) А
>сроки поджимают - сегодня к вечеру надо все настроить.


А чем же ты пакеты заворачивать собираешься??
00070  406764  38025374 divert 8668 ip from any to not *.*.*.*/16 xmit xl0
00070       0         0 divert 8668 ip from any to not *.*.*.*/16 xmit xl0
00070       0         0 divert 8668 ip from any to not *.*.*.*/16 xmit xl0
00070       0         0 divert 8668 ip from any to not *.*.*.*/16 xmit xl0