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

(ipfw+nat) нужна помощь !

Добавлено: 2012-08-14 21:03:43
andy88
есть вот такой файерволл :

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

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

out_ip="1.1.1.1"
out_if="xl0"

in_net="192.168.1.0/24"
in_ip="192.168.1.100"
in_if="vr0"

in_net2="192.168.2.0/24"
in_ip2="192.168.2.55"
in_ip2="vr1"

nating="192.168.1.111,192.168.1.53,192.168.1.64,192.168.1.67,192.168.1.52"

${ipfw} -f flush
${ipfw} add check-state

${ipfw} add pass all from any to any via lo0
${ipfw} add deny all from any to 127.0.0.0/8
${ipfw} add deny ip from 127.0.0.0/8 to any

${ipfw} add deny ip from any to 172.16.0.0/12 in recv ${out_if}
${ipfw} add deny ip from 172.16.0.0/12 to any in recv ${out_if}
${ipfw} add deny ip from any to 10.0.0.0/8 in recv ${out_if}
${ipfw} add deny ip from 10.0.0.0/8 to any in recv ${out_if}
${ipfw} add deny ip from any to 169.254.0.0/16 in recv ${out_if}
${ipfw} add deny ip from 169.254.0.0/16 to any in recv ${out_if}

${ipfw} add deny log icmp from any to 255.255.255.255 in via ${out_if}
${ipfw} add deny log icmp from any to 255.255.255.255 out via ${out_if}

#NAT
${ipfw} nat 1 config ip ${out_ip} log same_ports
${ipfw} add nat 1 log ip from ${nating} to any out via ${out_if}
${ipfw} add nat 1 log ip from any to ${out_ip}

${ipfw} add pass all from ${in_net} to me via ${in_if}
${ipfw} add pass all from me to ${in_net} via ${in_if}

${ipfw} add pass all from ${nating} to any setup

${ipfw} add pass all from ${in_net} to any 22 setup

${ipfw} add allow ip from any to any via vr0
${ipfw} add allow ip from any to any via vr1

${ipfw} add pass tcp from any to any established

${ipfw} add pass tcp from ${out_ip} to any via ${out_if}

${ipfw} add pass udp from ${out_ip} to any 53 keep-state
${ipfw} add pass udp from ${out_ip} to any 123 keep-state

${ipfw} add pass icmp from any to any icmptypes 0,3,8,11

${ipfw} add deny ip from any to any

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

firewall_enable="YES"
firewall_type="/etc/rc.firewall"
firewall_nat_enable="YES"
firewall_nat_interface="xl0"
dummynet_enable="YES"
все сервисы которые установлены на машине , торчат на ружу. Отсюда вопрос.Какое правило забыл ??? ткните носом пожалуйста :bn:

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-08-14 21:17:10
andy88
ядро собрано с такими параметрами

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

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_NAT
options LIBALIAS
options ROUTETABLES=2
options DUMMYNET
options HZ=”1000?

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-08-15 19:39:26
Shuba
Кинь сюда ipfw -t show

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-08-16 11:12:16
Гагарин
а настроке nat опция deny_in

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-08-18 14:42:08
andy88

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

ipfw -t show
00100        0           0                         check-state
00200    60572     3984762 Sat Jun 12 04:26:32 2004 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                         deny ip from any to 172.16.0.0/12 in recv vr1
00600        0           0                         deny ip from 172.16.0.0/12 to any in recv vr1
00700        0           0                         deny ip from any to 10.0.0.0/8 in recv vr1
00800        0           0                         deny ip from 10.0.0.0/8 to any in recv vr1
00900        0           0                         deny ip from any to 169.254.0.0/16 in recv vr1
01000        0           0                         deny ip from 169.254.0.0/16 to any in recv vr1
01100        0           0                         deny log logamount 100 icmp from any to 255.255.255.255 in via vr1
01200        0           0                         deny log logamount 100 icmp from any to 255.255.255.255 out via vr1
01300   215399    29644647 Sat Jun 12 04:25:58 2004 nat 1 log logamount 100 ip from 192.168.1.111,192.168.1.53,192.168.1.64,192.168.1.67,192.168.1.52 to any out via vr1
01400   679684   592641986 Sat Jun 12 04:26:48 2004 nat 1 log logamount 100 ip from any to 1.1.1.1
01500   414807    64584007 Sat Jun 12 04:26:45 2004 allow ip from 192.168.1.0/24 to me via vr0
01600   497213   345982309 Sat Jun 12 04:26:45 2004 allow ip from me to 192.168.1.0/24 via vr0
01700    16509      814660 Fri Jun 11 23:34:26 2004 allow ip from 192.168.1.111,192.168.1.53,192.168.1.64,192.168.1.67,192.168.1.52 to any setup
01800        0           0                         allow ip from 192.168.1.0/24 to any dst-port 22 setup
01900 47488404 37827632169 Sat Jun 12 04:26:48 2004 allow ip from any to any via vr0
02000 46815762 37516551957 Sat Jun 12 04:26:48 2004 allow ip from any to any via rl0
02100   306029    60829486 Sat Jun 12 04:26:48 2004 allow tcp from any to any established
02200    27029     1619604 Sat Jun 12 04:26:45 2004 allow tcp 1.1.1.1 to any via vr1
02300    41970     4420621 Sat Jun 12 04:26:36 2004 allow udp from 1.1.1.1 to any dst-port 53 keep-state
02400        0           0                         allow udp from 1.1.1.1 to any dst-port 123 keep-state
02500    11758      657690 Sat Jun 12 03:58:08 2004 allow icmp from any to any icmptypes 0,3,8,11
02600    90382     5913362 Sat Jun 12 04:26:46 2004 deny ip from any to any
65535       84        6394 Thu Jun 10 00:07:06 2004 allow ip from any to any

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-08-30 10:05:35
andy88
никто не подскажет? :cz2:

вывод ipfw show и конфиг в первом посте отличаються , менял сетевухи

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-08-30 10:29:12
Т-34
в настроке nat опция deny_in

Изображение

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-08-30 13:05:21
andy88
прописал : ${ipfw} nat 1 config ip ${out_ip} log same_ports reset deny_in

ситуация не изменилась

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-01 7:27:08
andy88
какое бы правило с deny_in не прописывал , инет падает . :st:

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-01 8:06:07
ChihPih
andy88 писал(а):никто не подскажет? :cz2:

вывод ipfw show и конфиг в первом посте отличаються , менял сетевухи
Тогда скажите какая из них смотрит в инет?

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-02 15:39:01
andy88
сейчас фаерволл выглядит таким образом :

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

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

out_ip="1.1.1.1"
out_if="vr1"

in_net="192.168.1.0/24"
in_ip="192.168.1.100"
in_if="vr0"

in_net2="192.168.2.0/24"
in_ip2="192.168.2.55"
in_if2="rl0"

vpn="tun0"

nating="192.168.1.111,192.168.1.53,192.168.1.64,192.168.1.67,192.168.1.52"

${ipfw} -f flush

${ipfw} add check-state

${ipfw} add pass all from any to any via lo0
${ipfw} add deny all from any to 127.0.0.0/8
${ipfw} add deny ip from 127.0.0.0/8 to any

${ipfw} add deny ip from any to 172.16.0.0/12 in recv ${out_if}
${ipfw} add deny ip from 172.16.0.0/12 to any in recv ${out_if}
${ipfw} add deny ip from any to 10.0.0.0/8 in recv ${out_if}
${ipfw} add deny ip from 10.0.0.0/8 to any in recv ${out_if}
${ipfw} add deny ip from any to 169.254.0.0/16 in recv ${out_if}
${ipfw} add deny ip from 169.254.0.0/16 to any in recv ${out_if}

${ipfw} add deny log icmp from any to 255.255.255.255 in via ${out_if}
${ipfw} add deny log icmp from any to 255.255.255.255 out via ${out_if}

#NAT

${ipfw} nat 1 config ip ${out_ip} log same_ports
${ipfw} add nat 1 log ip from ${nating} to any out via ${out_if}
${ipfw} add nat 1 log ip from any to ${out_ip}

${ipfw} add pass all from ${in_net} to me via ${in_if}
${ipfw} add pass all from me to ${in_net} via ${in_if}

${ipfw} add pass all from ${nating} to any setup

${ipfw} add allow tcp from any to me 22 in via vr1
${ipfw} add allow udp from me 1194 to any via vr1

${ipfw} add allow ip from any to any via vr0
${ipfw} add allow ip from any to any via rl0
${ipfw} add allow ip from any to any via tun0

${ipfw} add pass tcp from any to any established

${ipfw} add pass tcp from ${out_ip} to any via ${out_if}

${ipfw} add pass udp from ${out_ip} to any 53 keep-state
${ipfw} add pass udp from ${out_ip} to any 123 keep-state

${ipfw} add pass icmp from any to any icmptypes 0,3,8,11

${ipfw} add deny ip from any to any

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-02 15:41:31
andy88

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

ipfw -t show
00100        0           0                         check-state
00200    12538     1016378 Sun Sep  2 16:43:35 2012 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                         deny ip from any to 172.16.0.0/12 in recv vr1
00600        0           0                         deny ip from 172.16.0.0/12 to any in recv vr1
00700        0           0                         deny ip from any to 10.0.0.0/8 in recv vr1
00800        0           0                         deny ip from 10.0.0.0/8 to any in recv vr1
00900        0           0                         deny ip from any to 169.254.0.0/16 in recv vr1
01000        0           0                         deny ip from 169.254.0.0/16 to any in recv vr1
01100        0           0                         deny log logamount 100 icmp from any to 255.255.255.255 in via vr1
01200        0           0                         deny log logamount 100 icmp from any to 255.255.255.255 out via vr1
01300   424910   180477607 Sun Sep  2 16:42:53 2012 nat 1 log logamount 100 ip from 192.168.1.111,192.168.1.53,192.168.1.64,192.168.1.67,192.168.1.52 to any out via vr1
01400  1157917  1157652887 Sun Sep  2 16:43:36 2012 nat 1 log logamount 100 ip from any to 1.1.1.1
01500   586694   157194889 Sun Sep  2 16:43:33 2012 allow ip from 192.168.1.0/24 to me via vr0
01600   727702   577765608 Sun Sep  2 16:43:33 2012 allow ip from me to 192.168.1.0/24 via vr0
01700    12410      611136 Sun Sep  2 16:41:07 2012 allow ip from 192.168.1.111,192.168.1.53,192.168.1.64,192.168.1.67,192.168.1.52 to any setup
01800        0           0                         allow tcp from any to me dst-port 22 in via vr1
01900     6495     2785336 Fri Aug 31 23:53:37 2012 allow udp from me 1194 to any via vr1
02000 76581672 61110829816 Sun Sep  2 16:43:36 2012 allow ip from any to any via vr0
02100 75376504 60312438248 Sun Sep  2 16:43:36 2012 allow ip from any to any via rl0
02200    10217     2683858 Fri Aug 31 15:54:37 2012 allow ip from any to any via tun0
02300   509700   157115635 Sun Sep  2 16:43:36 2012 allow tcp from any to any established
02400    36474     2153232 Sun Sep  2 16:37:40 2012 allow tcp from 1.1.1.1 to any via vr1
02500    21593     2249712 Sun Sep  2 16:43:35 2012 allow udp from 1.1.1.1 to any dst-port 53 keep-state
02600        0           0                         allow udp from 1.1.1.1 to any dst-port 123 keep-state
02700      283       14994 Sun Sep  2 16:33:23 2012 allow icmp from any to any icmptypes 0,3,8,11
02800    77196     5191398 Sun Sep  2 16:43:31 2012 deny ip from any to any
65535        5         276 Fri Aug 31 00:56:49 2012 allow ip from any to any

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-02 15:50:56
andy88
смущают две команды в конце вывода ipfw -t show

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

02800    77196     5191398 Sun Sep  2 16:43:31 2012 deny ip from any to any
65535        5         276 Fri Aug 31 00:56:49 2012 allow ip from any to any

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-02 15:55:31
terminus
/etc/rc.conf

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

firewall_enable="YES"
firewall_type="/etc/rc.firewall"
dummynet_enable="YES"
/etc/rc.firewall

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

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

out_ip="1.1.1.1"
out_if="xl0"

in_net="192.168.1.0/24"
in_ip="192.168.1.100"
in_if="vr0"

in_net2="192.168.2.0/24"
in_ip2="192.168.2.55"
in_ip2="vr1"

nating="192.168.1.111,192.168.1.53,192.168.1.64,192.168.1.67,192.168.1.52"

${ipfw} -f flush

${ipfw} add allow ip from any to any via lo0
${ipfw} add deny ip from any to 127.0.0.0/8
${ipfw} add deny ip from 127.0.0.0/8 to any

${ipfw} add deny ip from any to 192.168.0.0/16 in recv ${out_if}
${ipfw} add deny ip from 192.168.0.0./16 to any in recv ${out_if}
${ipfw} add deny ip from any to 172.16.0.0/12 in recv ${out_if}
${ipfw} add deny ip from 172.16.0.0/12 to any in recv ${out_if}
${ipfw} add deny ip from any to 10.0.0.0/8 in recv ${out_if}
${ipfw} add deny ip from 10.0.0.0/8 to any in recv ${out_if}
${ipfw} add deny ip from any to 169.254.0.0/16 in recv ${out_if}
${ipfw} add deny ip from 169.254.0.0/16 to any in recv ${out_if}

${ipfw} add deny log icmp from any to 255.255.255.255 in via ${out_if}
${ipfw} add deny log icmp from any to 255.255.255.255 out via ${out_if}

${ipfw} add allow all from any to any via vr0
${ipfw} add allow all from any to any via vr1

#NAT
${ipfw} nat 1 config ip ${out_ip} log same_ports deny_in reset
${ipfw} add nat 1 ip from ${nating} to any out xmit ${out_if}
${ipfw} add nat 1 ip from any to ${out_ip} in recv ${out_if}

${ipfw} add deny all from any to any

FreeBSD какой версии?

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 8:05:31
andy88
Freebsd 9 установлена

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 9:07:58
терминус
andy88 писал(а):Freebsd 9 установлена
заработал мой конфиг?


что показывает

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

sysctl -a | grep "one_pass"
в rc.conf есть строчка

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

gateway_enable="YES"
?

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 9:42:00
andy88

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

gateway_enable="YES"
в /etc/rc.conf строчка есть

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

sysctl -a | grep "one_pass"
net.inet.ip.fw.one_pass: 1
ваш конфиг вечером испробую...спасибо

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 9:58:53
andy88
2 terminus : вставил строчки из вашего конфига

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

#NAT
${ipfw} nat 1 config ip ${out_ip} log same_ports deny_in reset
${ipfw} add nat 1 ip from ${nating} to any out xmit ${out_if}
${ipfw} add nat 1 ip from any to ${out_ip} in recv ${out_if}

${ipfw} add deny all from any to any
ситуация следующая, на серваке инет падает (пинги не проходят во внешку), нат отваливаеться.

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 10:33:29
терминус
andy88 писал(а):2 terminus : вставил строчки из вашего конфига

ситуация следующая, на серваке инет падает (пинги не проходят во внешку), нат отваливаеться.
Ну-да, ну-да. Нат то только для ${nating}...
попробуйте так:

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

#NAT
${ipfw} nat 1 config ip ${out_ip} log same_ports deny_in reset
${ipfw} add nat 1 ip from me to any out xmit ${out_if}
${ipfw} add nat 1 ip from ${nating} to any out xmit ${out_if}
${ipfw} add nat 1 ip from any to ${out_ip} in recv ${out_if}

${ipfw} add deny all from any to any

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 12:01:01
andy88
ситуация сейчас следующая , инет на серваке есть , доступ к серверу пропал , сервисы так и торчат на ружу, пинги до сервака не идут

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 12:38:02
терминус
andy88 писал(а):ситуация сейчас следующая , инет на серваке есть , доступ к серверу пропал , сервисы так и торчат на ружу, пинги до сервака не идут
доступ пропал из внутренних сетей или снаружи? я так понимаю, что снаружи?
чтобы был доступ к сервисам работающим на самом сервере надо или ставить отдельные allow до nat:

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

${ipfw} allow tcp from any to  me 22
или делать дырки в nat:

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

${ipfw} nat 1 config ip ${out_ip} log same_ports deny_in reset redirect_port tcp 1.1.1.1:22 22
про сервисы мне не понятно. не должно такого быть если нат работает с опцией deny_in. как вы проверяете что сервисы доступны извне?
Пробовали перезапустить весь сервер (или выгрузить ipfw nat а потом загрузить обратно, если он модуль)?

пинги не будут приходить на внешний адрес так как нат с deny_in.
Чтобы пинги приходили на сервер надо до ната поставить отдельные правила:

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

${ipfw} allow icmp from any to me icmptypes 0,3,8,11,12

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 14:02:08
andy88
терминус писал(а):
andy88 писал(а):ситуация сейчас следующая , инет на серваке есть , доступ к серверу пропал , сервисы так и торчат на ружу, пинги до сервака не идут
доступ пропал из внутренних сетей или снаружи? я так понимаю, что снаружи?
чтобы был доступ к сервисам работающим на самом сервере надо или ставить отдельные allow до nat:

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

${ipfw} allow tcp from any to  me 22
или делать дырки в nat:

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

${ipfw} nat 1 config ip ${out_ip} log same_ports deny_in reset redirect_port tcp 1.1.1.1:22 22
про сервисы мне не понятно. не должно такого быть если нат работает с опцией deny_in. как вы проверяете что сервисы доступны извне?
Пробовали перезапустить весь сервер (или выгрузить ipfw nat а потом загрузить обратно, если он модуль)?

пинги не будут приходить на внешний адрес так как нат с deny_in.
Чтобы пинги приходили на сервер надо до ната поставить отдельные правила:

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

${ipfw} allow icmp from any to me icmptypes 0,3,8,11,12
внутри сети прокся пашет ...доступ пропал снаружи.Есть апач установленный , он доступен с внешки

позже доберусь до сервера, и попробую полный ребут и выгрузку модуля.

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 14:28:57
терминус
внутри сети прокся пашет ...доступ пропал снаружи.Есть апач установленный , он доступен с внешки

позже доберусь до сервера, и попробую полный ребут и выгрузку модуля.
как вы проверяете что арача доступен снаружи? если вы из внутренней сети обращаетесь к 1.1.1.1 то доступ конечно же будет.
надо проверять из внешней сети/интернета.

я не понимаю как апача может быть доступен, а ssh (доступ) не работает пока не сделаны allow или redirect_port.

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-03 14:32:04
andy88
так дело в том , что сервак далеко от меня находиться , соответственно я все операции делал удаленно.

подключаюсь через браузер по внешнему айпишнику , где апач мне открывают тестовую страницу

Re: (ipfw+nat) нужна помощь !

Добавлено: 2012-09-10 14:27:31
kyptuk
А в чем помощь нужна? Что именно не работает-то? :)
Перечитал трижды - так и не понял что не работает.