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

ipfw Freebsd 7.3

Добавлено: 2010-03-29 12:54:50
Spook1680
Уважаеммые коллеги.
Подскажите кто сталкивался с такой ситуацие.
Фряха есть доступ в инет.

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

ipfw -f flush
Обнулил правила, инет на серваке присутствуюет.
запускаю
rc.firewall
/usr/local/etc/
sh rc.firewall &
Конфиг rc.firewall

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


#!/bin/sh
fwcmd="/sbin/ipfw"

###
oif="sis0"
onet="xx.xxx.xx.00/28"
oip="xx.xxx.xxx.xxx"

###
iif="rl0"
inet="192.168.21.0/24"
iip="192.168.21.1"
###
vpn="tun0"
###
${fwcmd} -f flush

###
table.sh

###
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 120 allow ip from any to any via ${vpn}
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny ip from 127.0.0.0/8 to any

###
${fwcmd} add 400 deny ip from 192.168.0.0/16 to any in via ${oif}
${fwcmd} add 410 deny ip from 172.16.0.0/12 to any in via ${oif}
#${fwcmd} add 420 deny ip from 10.0.0.0/8 to any in via ${oif}
###
${fwcmd} add 425 allow tcp from any to ${oip} 7000 in via ${oif} setup
${fwcmd} add 430 allow tcp from any to any 7000
${fwcmd} add 440 allow tcp from any 7000 to any
${fwcmd} add 450 allow udp from any to any 7000
${fwcmd} add 460 allow udp from any 7000 to any
${fwcmd} add 470 allow tcp from any to 192.168.21.101 7000 via ${oif}


###
pass () { rule_num=$(($rule_num+100)); $fwcmd add $rule_num pass $*; }
deny () { rule_num=$(($rule_num+100)); $fwcmd add $rule_num deny $*; }

###
rule_num=1000

###
${fwcmd} add 500 divert natd all from table\(1\) to any out via ${oif}
${fwcmd} add 520 allow all from any to me dst-port 1194
${fwcmd} add 530 pass tcp from any to ${oip} 1194 in via ${oif}
${fwcmd} add 540 pass ip from 10.20.30.0/24 to ${inet} out via ${iif}
${fwcmd} add 550 pass ip from ${inet} to 10.20.30.0/24 in via ${iif}
${fwcmd} add 560 divert natd tcp from ${inet} to any 25, 110 out via ${oif}
${fwcmd} add 570 divert natd tcp from ${inet} to any 143 out via ${oif}
${fwcmd} add 580 divert natd tcp from ${inet} to any 5190 out via ${oif}
${fwcmd} add 700 divert natd all from any to ${oip} in via ${oif}
##${fwcmd} add allow tcp from 192.168.21.101 to ${oip} 7000 in via ${oif}
###
pass all from ${oip} to any out via ${oif}

###
pass tcp from any to any established

###
pass all from table\(1\) to not ${inet} in via ${iif}
pass all from ${inet} to not ${inet} 25,110 in via ${iif}
###
pass all from not ${inet} to table\(1\) in via ${oif}
pass all from not ${inet} to table\(1\) out via ${iif}
#pass all from not ${inet} to not ${inet} 25,110 in via ${oif}
#pass all from not ${inet} to not ${inet} 25,110 out via ${iif}
${fwcmd} add pass tcp from any to any 25,110 via ${oif}
${fwcmd} add pass tcp from any 25,110 to any via ${oif}
${fwcmd} add pass tcp from any to any 1194
###ICMP
pass icmp from any to any icmptypes 0,8,11

###
pass all from ${inet} to ${inet} via ${iif}
#pass all from 172.31.0.0/24 to ${inet} via ${iif}
###
#${fwcmd} add allow tcp from any to xxx.xxx.xxx.xxx 7000 in via sis0 setup
#${fwcmd} add allow tcp from any to any 7000
#${fwcmd} add allow tcp from any 7000 to any
###
${fwcmd} add allow ip from any to me 7000
${fwcmd} add allow ip from any to 192.168.21.101 7000
${fwcmd} add allow ip from 192.168.21.101 7000 to any
${fwcmd} add deny tcp from any to me 1080
${fwcmd} add deny udp from any to me 1080

И все фаэрвол загружается и инет сразу пропадает пинг не идет.
Где может быть касяК?
Просто странно до этого работало неделю с этими правилами пока не пришлось перегружать сервер,
вот после перезагрузки сервака именно такая трабла и выползла.
:crazy:

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 13:04:18
BirdGovorun
Покажи ipfw list

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 13:09:51
Spook1680
BirdGovorun писал(а):Покажи ipfw list
[root@pcbsd]/usr/local/etc(127)# ipfw list
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
00410 deny ip from 172.16.0.0/12 to any in via sis0
00425 allow tcp from any to x... dst-port 7000 in via sis0 setup
00430 allow tcp from any to any dst-port 7000
00440 allow tcp from any 7000 to any
00450 allow udp from any to any dst-port 7000
00460 allow udp from any 7000 to any
00470 allow tcp from any to 192.168.21.101 dst-port 7000 via sis0
00500 divert 8668 ip from table(1) to any out via sis0
00520 allow ip from any to me dst-port 1194
00530 allow tcp from any to x... dst-port 1194 in via sis0
00540 allow ip from 10.20.30.0/24 to 192.168.21.0/24 out via rl0
00550 allow ip from 192.168.21.0/24 to 10.20.30.0/24 in via rl0
00560 divert 8668 tcp from 192.168.21.0/24 to any dst-port 25,110 out via sis0
00570 divert 8668 tcp from 192.168.21.0/24 to any dst-port 143 out via sis0
00580 divert 8668 tcp from 192.168.21.0/24 to any dst-port 5190 out via sis0
00700 divert 8668 ip from any to x... in via sis0
01100 allow ip from x... to any out via sis0
01200 allow tcp from any to any established
01300 allow ip from table(1) to not 192.168.21.0/24 in via rl0
01400 allow ip from 192.168.21.0/24 to not 192.168.21.0/24 dst-port 25,110 in vi a rl0
01500 allow ip from not 192.168.21.0/24 to table(1) in via sis0
01600 allow ip from not 192.168.21.0/24 to table(1) out via rl0
01700 allow tcp from any to any dst-port 1194
01700 allow icmp from any to any icmptypes 0,8,11
01800 allow ip from 192.168.21.0/24 to 192.168.21.0/24 via rl0
01900 allow ip from any to me dst-port 7000
02000 allow ip from any to 192.168.21.101 dst-port 7000
02100 allow ip from 192.168.21.101 7000 to any
65535 allow ip from any to any
[root@pcbsd]/usr/local/etc(128)#
х.... это внешний ip

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 13:18:05
BirdGovorun
01100 allow ip from x... to any out via sis0
Внешний IP сетевуха его?
И все диверты должны стоять самыми первыми в списке правил.
И все диверты можно заменить одним:

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

${fwcmd} add 50 divert natd all from any to any in via ${oif}

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 13:41:22
Spook1680
BirdGovorun писал(а):
01100 allow ip from x... to any out via sis0
Внешний IP сетевуха его?
И все диверты должны стоять самыми первыми в списке правил.
И все диверты можно заменить одним:

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

${fwcmd} add 50 divert natd all from any to any in via ${oif}
да
01100 внешиний ip с сетевухой sis0

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 13:54:16
Spook1680
BirdGovorun писал(а):
01100 allow ip from x... to any out via sis0
Внешний IP сетевуха его?
И все диверты должны стоять самыми первыми в списке правил.
И все диверты можно заменить одним:

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

${fwcmd} add 50 divert natd all from any to any in via ${oif}
Просто странно, до этого работало все.
Возможно где-то касяк в другом месте.
И все диверты должны стоять самыми первыми в списке правил.
Сомневаюсь над этим пунктом, не в лом конечно переделаю)) попробую.
Но сам посуди оставлю я к примеру правила 500 и 700
остальные уберу. Что это изменит.!!!!! :drinks:
Заменить диверты все на один не могу, вип пользователи прописывал в таблицу table. Специально что бы регулировать кому можно все а кому тока почта и ася.

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 14:01:15
BirdGovorun
В правилах полный сумбур:

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

${fwcmd} add 50 divert natd all from any to any in via ${oif}
${fwcmd} add 55 divert natd all from table\(1\) to any out via ${oif}
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 120 allow ip from any to any via ${vpn}
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny ip from 127.0.0.0/8 to any

###
${fwcmd} add 400 deny ip from 192.168.0.0/16 to any in via ${oif}
${fwcmd} add 410 deny ip from 172.16.0.0/12 to any in via ${oif}
#${fwcmd} add 420 deny ip from 10.0.0.0/8 to any in via ${oif}
pass tcp from any to any established
###
pass all from table\(1\) to not ${inet} in via ${iif}
pass all from ${inet} to not ${inet} 25,110 in via ${iif}
pass icmp from any to any icmptypes 0,8,11
${fwcmd} add deny tcp from any to me 1080
${fwcmd} add deny udp from any to me 1080
Вот сделал, как я понял, возможно где и ошибся.

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 14:48:22
Spook1680
BirdGovorun писал(а):В правилах полный сумбур:

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

${fwcmd} add 50 divert natd all from any to any in via ${oif}
${fwcmd} add 55 divert natd all from table\(1\) to any out via ${oif}
${fwcmd} add 100 pass all from any to any via lo0
${fwcmd} add 120 allow ip from any to any via ${vpn}
${fwcmd} add 200 deny all from any to 127.0.0.0/8
${fwcmd} add 300 deny ip from 127.0.0.0/8 to any

###
${fwcmd} add 400 deny ip from 192.168.0.0/16 to any in via ${oif}
${fwcmd} add 410 deny ip from 172.16.0.0/12 to any in via ${oif}
#${fwcmd} add 420 deny ip from 10.0.0.0/8 to any in via ${oif}
pass tcp from any to any established
###
pass all from table\(1\) to not ${inet} in via ${iif}
pass all from ${inet} to not ${inet} 25,110 in via ${iif}
pass icmp from any to any icmptypes 0,8,11
${fwcmd} add deny tcp from any to me 1080
${fwcmd} add deny udp from any to me 1080
Вот сделал, как я понял, возможно где и ошибся.
ОК. Попробую. Огромное спасибо птичка говорун. :good: :drinks:

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 16:18:47
Spook1680
Нет нифига пробовал не прокатило. Инет сразу пропадает.

Re: ipfw Freebsd 7.3

Добавлено: 2010-03-29 16:43:12
Spook1680
Ошибка была в natd.conf
При перезагрузке
/etc/netstart
или правил фаэрвола
sh rc.firewall &
Система подвижала, все блокировала по фаэрволу и доступа инета небыло не у пользователей не у самого сервака.
Исправил баг в natd.conf
перезапустил
и все заработало)).