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

Опять ipfw

Добавлено: 2013-04-05 22:04:59
skorin
Помогите! Не знаю в какую сторону смотреть :(
Есть сервер:
FreeBSD 9.1-RELEASE amd64
apache22-2.2.24

Ядро:

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

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=50
options         IPFIREWALL_NAT
options         LIBALIAS
options         ROUTETABLES=2
options         HZ="1000"
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
options         IPFIREWALL_DEFAULT_TO_ACCEPT
rc.firewall

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

FwCMD="/sbin/ipfw"
LanOut="em0"
LanIn="em1"
IpOut="99.22.22.22"
IpIn="192.168.1.1"
NetIn="192.168.1.0"

${FwCMD} -f flush
${FwCMD} add 100 allow ip from any to any via lo0
${FwCMD} add 200 deny ip from any to 127.0.0.0/8
${FwCMD} add 300 deny ip from 127.0.0.0/8 to any
${FwCMD} add 1040 allow ip from any to any via ${LanIn}
${FwCMD} add 1050 deny ip from any to 192.168.0.0/16 in recv ${LanOut}
${FwCMD} add 1060 deny ip from 192.168.0.0/16 to any in recv ${LanOut}
${FwCMD} add 1070 deny ip from any to 172.16.0.0/12 in recv ${LanOut}
${FwCMD} add 1080 deny ip from 172.16.0.0/12 to any in recv ${LanOut}
${FwCMD} add 1090 deny ip from any to 10.0.0.0/8 in recv ${LanOut}
${FwCMD} add 10100 deny ip from 10.0.0.0/8 to any in recv ${LanOut}
${FwCMD} add 10110 deny ip from any to 169.254.0.0/16 in recv ${LanOut}
${FwCMD} add 10120 deny ip from 169.254.0.0/16 to any in recv ${LanOut}
${FwCMD} add 10130 allow tcp from any to ${IpOut} 22 via ${LanOut}
${FwCMD} add 10130 allow tcp from any to ${IpOut} 80 via ${LanOut}
${FwCMD} nat 1 config log if ${LanOut} reset same_ports deny_in
${FwCMD} add 10140 nat 1 ip from any to any via ${LanOut}
${FwCMD} add 65534 deny all from any to any
Пытаюсь скачать файл с этого сервера, запускаю на удаленной машине:

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

# fetch http://99.22.22.22/DVD1.iso
DVD1.iso                                   0% of 1279 MB  114 kBps
fetch: DVD1.iso appears to be truncated: 96748/1342013440 bytes
#
Сбрасывает практически любой файл больше пару мегабайт...

Понимаю что надо что-то покрутить, но не знаю что :(
То ли в ядре, то ли в sysctl а может правило каких добавить....
Направьте на путь истинный плизз

Re: Опять ipfw

Добавлено: 2013-04-05 22:23:11
BirdGovorun
ipfw show посмотри, много-ли пакетов в последнее правило ппопадают.

Re: Опять ipfw

Добавлено: 2013-04-05 22:29:08
skorin
Запустил, скинуло... посмотрел правила, пусто...

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

00100     1890      185162 allow ip from any to any via lo0
00200        0           0 deny ip from any to 127.0.0.0/8
00300        0           0 deny ip from 127.0.0.0/8 to any
01040  5477904 10331126132 allow ip from any to any via em1
01050        0           0 deny ip from any to 192.168.0.0/16 in recv em0
01060       29        1769 deny ip from 192.168.0.0/16 to any in recv em0
01070        0           0 deny ip from any to 172.16.0.0/12 in recv em0
01080        5         372 deny ip from 172.16.0.0/12 to any in recv em0
01090        0           0 deny ip from any to 10.0.0.0/8 in recv em0
10100       75        3976 deny ip from 10.0.0.0/8 to any in recv em0
10110        0           0 deny ip from any to 169.254.0.0/16 in recv em0
10120        0           0 deny ip from 169.254.0.0/16 to any in recv em0
10130        0           0 allow tcp from any to 99.22.22.22 dst-port 21 via em0
10130       71        3908 allow tcp from any to 99.22.22.22 dst-port 80 via em0
10130        0           0 allow tcp from any to 99.22.22.22 dst-port 22 via em0
10140 11380807 10870358077 nat 1 ip from any to any via em0
65534        0           0 deny ip from any to any
65535      295      240439 allow ip from any to any

Re: Опять ipfw

Добавлено: 2013-04-05 22:35:45
BirdGovorun
А так: fetch -a http://99.22.22.22/DVD1.iso

Re: Опять ipfw

Добавлено: 2013-04-06 7:59:09
skorin
Не получилось... :cry:

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

# fetch -a http://99.22.22.22/DVD1.iso
DVD1.iso                                   0% of 1279 MB   94 kBps
fetch: DVD1.iso appears to be truncated: 96748/1342013440 bytes
#
Дело в том что с любой удаленной машины при попытке скачать через любой браузер скидывает... :(
Добавил правило в ipfw

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

${FwCMD} add 1050 allow ip from any to any via ${LanOut}
Всем всё можно на внешнем интерфейсе, и сразу все закачало!
Поэтому грешу на ipfw или отсутствие в ядре нужного настроя...

Re: Опять ipfw

Добавлено: 2013-04-07 22:32:48
snorlov
А вы 2-а правила висящие на 10130, разнесите на 10130 и 10140 к примеру...

Re: Опять ipfw

Добавлено: 2013-04-08 8:47:08
skorin
Да все верно, этого не углядел! Но добавлял это правило для фтп, хотел проверить по нему, но по фтп тож не работает, обрывается :(
Прям полтергейст какой-то :)

Re: Опять ipfw

Добавлено: 2013-04-08 9:44:33
skorin
В общем мало ли кому пригодится.
Все дело в правописании правил :)
Поменял это правило:

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

${FwCMD} add 10130 allow tcp from any to ${IpOut} 80 via ${LanOut}
на это:

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

${FwCMD} add 10130 allow tcp from any to any 80 in via ${LanOut} setup keep-state
И сразу все закрутилось...
Единственный минус у всего этого, почему так происходит не совсем мне понятно :(

Re: Опять ipfw

Добавлено: 2013-04-11 0:08:02
harmless
skorin писал(а):Да все верно, этого не углядел! Но добавлял это правило для фтп, хотел проверить по нему, но по фтп тож не работает, обрывается :(
Прям полтергейст какой-то :)
Для ftp два порта минимум нужно открывать!!!
20 и 21

Re: Опять ipfw

Добавлено: 2013-04-11 10:17:08
dash1121
причина в том что у автора нет разрешения на исходящие пакеты? и оба варианта решения их разрешают, только 1 первом случае разрешается все с внешней сетевой, а во втором создается динамическое правило для http?