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

ipfw

Добавлено: 2010-11-03 13:07:20
uvetrom
Настривал freebsd 8.1 по первому примеру из статьи http://www.lissyara.su/articles/freebsd ... /ipfw_nat/

После бересборки ядра с параметрами:

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

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=50
options         IPFIREWALL_NAT
options         LIBALIAS
options         ROUTETABLES=2
options         DUMMYNET
options         HZ="1000"

файрвол перестал разрешать работать с сетью :)

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

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
00400 deny ip from any to ::1
00500 de ip from ::1 to any
куча надписей про ipv6, у емня не исползуется
65535 deny ip from any to any
я так понимаю что проблема в последнем правиле?
но в rc.conf, когда указываешь тип файрвола опен или пусть к скрипту, ничего не меняется.

Подскажете?

Re: ipfw

Добавлено: 2010-11-03 13:45:41
ivan_k

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

firewall_enable="YES"
firewall_type="OPEN"
Это в случае с открытым фаером

Re: ipfw

Добавлено: 2010-11-03 13:49:32
vadim64
покажте все правила.

Re: ipfw

Добавлено: 2010-11-03 13:50:04
ivan_k
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
00400 deny ip from any to ::1
00500 de ip from ::1 to any
куча надписей про ipv6, у емня не исползуется
65535 deny ip from any to any
А где в вашем списке правила, которые должны что-то разрешать?

Re: ipfw

Добавлено: 2010-11-03 15:07:20
manefesto
uvetrom писал(а):Настривал freebsd 8.1 по первому примеру из статьи http://www.lissyara.su/articles/freebsd ... /ipfw_nat/

После бересборки ядра с параметрами:

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

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=50
options         IPFIREWALL_NAT
options         LIBALIAS
options         ROUTETABLES=2
options         DUMMYNET
options         HZ="1000"
он же по умолчанию закрытый

Re: ipfw

Добавлено: 2010-11-03 15:35:57
terminus
что показывает вывод команд:

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

grep firewall /etc/rc.conf

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

ls -laso /etc/ | grep firewall

Re: ipfw

Добавлено: 2010-11-03 15:38:48
uvetrom
Ок, я согласен, но почему тогда не получается вписать в
rc.conf

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

firewall_type="/etc/firewall"
и в firewall

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

add 00100 allow ip from any to any
или же в rc.conf установить:

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

firewall_type="open"
или это все не влияет и надо какой то определенный файл править?

Re: ipfw

Добавлено: 2010-11-03 15:41:58
uvetrom
terminus писал(а):что показывает вывод команд:

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

grep firewall /etc/rc.conf

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

ls -laso /etc/ | grep firewall
показывает

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

firewall_enable="YES"
firewall_type="/etc/firewall"

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

2 -rw-r--r-- 1 root wheel - 42 Nov 3 16:26 firewall
20 -rw-r--r-- 1 root wheel - 18599 Jul 18 06:17 rc.firewall

Re: ipfw

Добавлено: 2010-11-03 15:48:39
terminus
синтаксическая ошибка где-то в /etc/firewall.
Показываете весь /etc/firewall

Re: ipfw

Добавлено: 2010-11-03 16:03:31
uvetrom
Я вот уже думаю, что мне стоило внимательнее изучить теорию :(
Это весь файл /etc/firewall

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

add 00100 allow ip from any to any

Re: ipfw

Добавлено: 2010-11-08 8:51:13
uvetrom
Почему-то, после команды:

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

ipfw -q flush
удаляются все правила кроме:

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

65535 deny ip from any to any
а если прописать:

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

ipfw delete 65535
то ошибка:

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

ipfw: rule 65535: setsockopt(IP_FW_DEL): invalid argument
Может все таки подскажете, почему так происходит?

Re: ipfw

Добавлено: 2010-11-08 9:12:29
hizel
uvetrom писал(а):а если прописать:

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

ipfw delete 65535
то ошибка:

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

ipfw: rule 65535: setsockopt(IP_FW_DEL): invalid argument
Может все таки подскажете, почему так происходит?

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

man ipfw 
4-ый абзац дескрипшена

Re: ipfw

Добавлено: 2010-11-08 10:47:14
uvetrom
Набор правил ipfw всегда содержит заданное по умолчанию правило (с
номером 65535), которое не может быть изменено, и соответствует всем
пакетам. Действие, связанное с заданным по умолчанию правилом может быть
или deny или allow в зависимости от того, как сконфигурировано ядро. (С) http://www.opennet.ru/base/net/ipfw_man.txt.html

Re: ipfw

Добавлено: 2010-11-08 10:49:10
uvetrom
Спасибо всем за помощ!
Виной всему была досадная, глупая опечатка в rc.conf
:(

Жаль что на форуме нет смайла "стыдно".

Re: ipfw

Добавлено: 2010-11-08 11:01:55
FreeBSP
зато есть смайл сорри, он похож ;)
смотри, тут все что может быть в rc.conf по файеру

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

grep firewall /etc/defaults/rc.conf

Re: ipfw

Добавлено: 2010-11-08 12:09:31
uvetrom
эх... что-то мне, кажеться, не справиться :)
вот так выглядит загруженный /etc/frirewall

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

bsdgate#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
00400 deny ip from any to ::1
00500 deny ip from ::1 to any
00600 allow ipv6-icmp from :: to ff02::/16
00700 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 allow ipv6-icmp from any to any ip6 icmp6types 1
01000 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
01040 allow ip from any to any via rl0
10130 nat 1 ip from any to any via vr0
10230 allow log logamount 50 tcp from any to me dst-port 22 keep-state
65535 deny ip from any to any
vr0 - это внешняя сеть, rl0 - внутрення,
вот rc.conf:

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

defaultrouter="172.17.32.252"
gateway_enable="YES"
hostname="bsdgate"
ifconfig_vr0="inet 172.17.32.110  netmask 255.255.255.0 -rxcsum"
ifconfig_rl0="inet 192.168.1.1 netmask 255.255.255.0"
firewall_enable="YES"
firewall_type="/etc/firewall"
#inetd_enable="YES"
keymap="ru.koi8-r"
sshd_enable="YES"
вот /etc/syctl.conf

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

net.inet.ip.fw.one_pass=1
При такой настройке, с клиентской машине во внутреней сети пингуются внешний и внутриенний интерфейсы freebsd и все. С самой фрибсд пингуется вся внутрення сеть, и не пингуется внешняя сеть. Интернет, понятно, тоже не работает.
SSH из вне тоже не работает.

Re: ipfw

Добавлено: 2010-11-08 12:19:18
uvetrom
вот файл /etc/firewall

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

#-q flush
# правила разрешающие трафик через локальный интерфейс lo0
# будут добавляться автоматически сами при старте фаервола
#add 100 allow ip from any to any via lo0
#add 200 deny ip from any to 127.0.0.0/8
#add 300 deny ip from 127.0.0.0/8 to any
# разрешаем все через интерфейс локальной сети
add 1040 allow ip from any to any via rl0
# боимся непонятного
#add 1050 deny ip from any to 192.168.0.0/16 in recv vr0
#add 1060 deny ip from 192.168.0.0/16 to any in recv vr0
#add 1070 deny ip from any to 172.16.0.0/12 in recv vr0
#add 1080 deny ip from 172.16.0.0/12 to any in recv vr0
#add 1090 deny ip from any to 10.0.0.0/8 in recv vr0
#add 10100 deny ip from 10.0.0.0/8 to any in recv vr0
#add 10110 deny ip from any to 169.254.0.0/16 in recv vr0
#add 10120 deny ip from 169.254.0.0/16 to any in recv vr0
# настройка ната.
# опции переноса строк "\" надо убрать все должно быть в одну строчку
# опции redirect_port приведены для примера - как делать "проброс портов"
#nat 1 config log if vr0 reset same_ports deny_in redirect_port tcp 1.2.3.4:6881 6881 redirect_port udp 1.2.3.4:4444 4444 redirect_port tcp 1
# заварачиваем все что проходит через внешний интерфейс в нат
add 10130 nat 1 ip from any to any via vr0
#ssh из внешки
add allow log tcp from any to me 22 keep-state
# боимся непонятного
#add 65534 deny all from any to any

Re: ipfw

Добавлено: 2010-11-08 12:26:33
hizel
one_pass в последнем релизе не работал, добавьте allow после nat-а

Re: ipfw

Добавлено: 2010-11-08 12:40:10
FreeBSP
ну или можно пропатчить =)
http://lists.freebsd.org/pipermail/free ... 04394.html

Re: ipfw

Добавлено: 2010-11-08 12:40:31
Гагарин
Настройка ната закомментирована.

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

#nat 1 config log if vr0 reset same_ports deny_in
откомментировать надо

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

nat 1 config log if vr0 reset same_ports deny_in

Re: ipfw

Добавлено: 2010-11-08 12:48:47
FreeBSP
Юр, тут эта.. загружен один рулсет, показывается второй, но все работает видно сааавсем под другим правилам xD
и ваще какой то странный /etc/firewall.. или типа так уже можна?

Re: ipfw

Добавлено: 2010-11-08 13:09:00
hizel
FreeBSP писал(а):Юр, тут эта.. загружен один рулсет, показывается второй, но все работает видно сааавсем под другим правилам xD
и ваще какой то странный /etc/firewall.. или типа так уже можна?
попу rc.firewall смотри и man ipfw тоже

Re: ipfw

Добавлено: 2010-11-08 13:28:10
FreeBSP
спс =)

Re: ipfw

Добавлено: 2010-11-09 8:21:05
uvetrom
Не совсем смог связать все ответы в кучу.
one_pass в последнем релизе не работает, значит этой статьей можно уже не пользоваться?
http://www.lissyara.su/articles/freebsd ... /ipfw_nat/



Раскоментировал, как советовал Гагарин
Получилось:

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

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
00400 deny ip from any to ::1
00500 deny ip from ::1 to any
00600 allow ipv6-icmp from :: to ff02::/16
00700 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 allow ipv6-icmp from any to any ip6 icmp6types 1
01000 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
01040 allow ip from any to any via rl0
10130 nat 1 ip from any to any via vr0
10230 allow log logamount 50 tcp from any to me dst-port 22 via vr0 keep-state
65535 deny ip from any to any
etc/firewall

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

#-q flush
# правила разрешающие трафик через локальный интерфейс lo0
# будут добавляться автоматически сами при старте фаервола
#add 100 allow ip from any to any via lo0
#add 200 deny ip from any to 127.0.0.0/8
#add 300 deny ip from 127.0.0.0/8 to any
# разрешаем все через интерфейс локальной сети
add 1040 allow ip from any to any via rl0
# боимся непонятного
#add 1050 deny ip from any to 192.168.0.0/16 in recv vr0
#add 1060 deny ip from 192.168.0.0/16 to any in recv vr0
#add 1070 deny ip from any to 172.16.0.0/12 in recv vr0
#add 1080 deny ip from 172.16.0.0/12 to any in recv vr0
#add 1090 deny ip from any to 10.0.0.0/8 in recv vr0
#add 10100 deny ip from 10.0.0.0/8 to any in recv vr0
#add 10110 deny ip from any to 169.254.0.0/16 in recv vr0
#add 10120 deny ip from 169.254.0.0/16 to any in recv vr0
# настройка ната.
# опции переноса строк "\" надо убрать все должно быть в одну строчку
# опции redirect_port приведены для примера - как делать "проброс портов"
nat 1 config log if vr0 reset same_ports deny_in
#redirect_port tcp 1.2.3.4:6881 6881 redirect_port udp 1.2.3.4:4444 4444 redirect_port tcp 1
# заварачиваем все что проходит через внешний интерфейс в нат
add 10130 nat 1 ip from any to any via vr0
#ssh из внешки
add allow log tcp from any to me 22 keep-state
# боимся непонятного
#add 65534 deny all from any to any
Ничего не изменилось.
Не пингуется внешняя сеть ни с бсд ни с клиентской машины.... ссш само собой тоже не работает.

Re: ipfw

Добавлено: 2010-11-09 8:39:28
FreeBSP
в текущей конфигурации должно работать ftp с внешки - проверь
а чтобы работало все должно быть так

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

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
00400 deny ip from any to ::1
00500 deny ip from ::1 to any
00600 allow ipv6-icmp from :: to ff02::/16
00700 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 allow ipv6-icmp from any to any ip6 icmp6types 1
01000 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
01040 allow ip from any to any via rl0
10130 nat 1 ip from any to any via vr0
10230 allow ip 50 tcp from any to any via vr0
65535 deny ip from any to any

После ната должно быть полное разрешение по внешке

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

10230 allow ip 50 tcp from any to any via vr0