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

IPFW для критики

Добавлено: 2009-07-30 5:57:10
FireWall
Доброго времени суток уважаемый All. Для критики хочу выложить свои правила ipfw. Набор правил собирался на протяжении нескольких лет. Может кому то будет полезен.

ядро собрано с параметрами:

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

options         ROUTETABLES=2
#netgraph(4) system
options         NETGRAPH
options         NETGRAPH_PPPOE
options         NETGRAPH_SOCKET
options         NETGRAPH_ETHER
options         NETGRAPH_TEE

#firewall
options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=200
options         IPFIREWALL_FORWARD
options         IPDIVERT
options         DUMMYNET
Сами правила. буду комментировать в самом коде, для удобочитаемости.

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

#!/bin/sh

fwcmd="/sbin/ipfw"

ext_if=Сетевая карта, смотрит в сторону инета
int_if=Сетевая карта, смотрит в сторону локалки
ext_ip=Внешний айпи выданный провайдером

${fwcmd} -f flush

no comments ;)
${fwcmd} add 90 allow ip from 127.0.0.1 to 127.0.0.1

###########################################################
# global counter
###########################################################
Здесь чтобы неотправлял почту через другие почтовые сервера, полезно, когда поселиться вирус и начингает спамить в НАТ.
${fwcmd} add 900 reset log tcp from 10.0.0.0/8 to any 25 out xmit ${ext_if}
###########################################################
# denying external connection to proxy
###########################################################
${fwcmd} add 1000 deny log tcp from any to me 3128,1080 in via ${ext_if}
${fwcmd} add 1010 skipto 1040 ip from 10.209.109.0/24 to 10.209.109.1
${fwcmd} add 1020 skipto 1040 ip from 10.209.109.1 to 10.209.109.0/24
${fwcmd} add 1030 deny log tcp from any to me 3128,1080
${fwcmd} add 1031 deny log udp from any to me 3128,1080
${fwcmd} add 1032 deny tcp from 10.209.109.0/24 to any 1080,2080

# allowing our ftp, http
${fwcmd} add 2000 skipto 3600 tcp from 10.209.109.0/24 to me 80,21

# denying some packets
${fwcmd} add 3000 deny log ip from 10.209.109.0/24 to any in recv ${ext_if}
${fwcmd} add 3040 deny log ip from 224.0.0.0/8 to any in recv ${ext_if}
${fwcmd} add 3050 deny ip from any to any frag
${fwcmd} add 3060 deny icmp from any to any in via ${ext_if} icmptype 5,9,13,14,15,16,17

###########################################################
# Allow incoming connections
###########################################################
${fwcmd} add 3500 allow tcp from any to me ssh,pop3s,pop3,http,ftp,1,11,15,79,111 limit dst-addr 30 via ${ext_if}
${fwcmd} add 3510 allow tcp from any to me smtp limit dst-addr 15 via ${ext_if}
${fwcmd} add 3520 allow tcp from me ssh,pop3s,pop3,http,smtp,ftp to any via ${ext_if}

# natd
${fwcmd} add 4000 divert natd ip from any to ${ext_ip} in recv ${ext_if}

###########################################################
# transparent proxy
###########################################################
${fwcmd} add 6000 skipto 6500 tcp from 10.209.109.1 to any
${fwcmd} add 6001 skipto 6500 tcp from any to me
${fwcmd} add 6100 fwd 127.0.0.1,3128 tcp from 10.209.109.0/24 to any 80,81,82,88,3128,8080,8101,21,443 out xmit ${ext_if}

# check-state
${fwcmd} add 6500 check-state

# Запретить подключения ко мне
${fwcmd} add 6510 deny tcp from any to me 113,135,137,138,139,445 in via ${ext_if}
${fwcmd} add 6520 deny udp from any to me 113,135,137,138,139,445 in via ${ext_if}
${fwcmd} add 6550 deny log tcp from any to me 1-1023 in via ${ext_if}
${fwcmd} add 6560 deny log udp from any to me 1-1023 in via ${ext_if}
${fwcmd} add 6570 deny log tcp from any to me 3306 in via ${ext_if}          # MySQL
${fwcmd} add 6580 skipto 6600 ip from 10.209.109.0/24 to any in via ${int_if}
${fwcmd} add 6582 skipto 6600 ip from 0.0.0.0 to 255.255.255.255 in via ${int_if}
${fwcmd} add 6585 deny ip from 192.168.0.0/16 to any in via ${int_if}
${fwcmd} add 6590 deny ip from any to any in via ${int_if}

###########################################################
# natd разрешаем только те айпи, которым необходимо ходить на нат
###########################################################
${fwcmd} add 8000 skipto 9000 ip from 10.209.109.1 to any

#Остальным запрещаем ходить на NAT
${fwcmd} add 8900 skipto 10000 ip from 10.209.109.0/24 to any

${fwcmd} add 9000 divert natd ip from 10.209.109.0/24 to any out xmit ${ext_if}

# denying packets from local net to external
${fwcmd} add 10000 deny ip from 10.0.0.0/8 to any out xmit ${ext_if}
${fwcmd} add 10010 deny ip from 192.168.0.0/16 to any out xmit ${ext_if}

##########################################################
# allowing everything else
##########################################################
${fwcmd} add 65000 allow ip from any to any

Re: IPFW для критики

Добавлено: 2009-07-30 7:43:44
paradox
а в моих фаерах токо два правила divet и pass all
и за все 5 лет на моей памяти никто еще ничего не взломал

итого
зачем городить конфиги с трех етажными матами?

Re: IPFW для критики

Добавлено: 2009-07-30 8:19:58
MASiK
В моих конфигах Kernel Nat

И они с годами только короче становятся

Так как чем проще конфиг, тем быстрее канал
(Лично моя заметка)

Вы бы попробовали откинуть пороною взлома, и сделать немного по проще конфиг, скорости прибавило бы :)

Re: IPFW для критики

Добавлено: 2009-07-30 8:20:50
princeps
paradox писал(а):и за все 5 лет на моей памяти никто еще ничего не взломал
Козырный фарт?

Re: IPFW для критики

Добавлено: 2009-07-30 8:24:01
paradox
Козырный фарт?
банальное понимание технологий

Re: IPFW для критики

Добавлено: 2009-07-30 10:04:46
Гость
На моей памяти ломали mysql если не был закрыт порт из вне. По поводу городить не городить, каждый выбиррает для себя свой путь истины :)

Re: IPFW для критики

Добавлено: 2009-07-30 10:09:48
paradox
не ну никто ж не спорит
каждый усложняет по своиму это его юникс вей
но как заметил самурай
с годами и опытом он становиться все проще и меньше ))
токо новички начитавшись про грозных хакеров хотят что бы в фаерволе было как можно больше правил

Re: IPFW для критики

Добавлено: 2009-07-30 10:10:54
FireWall
MASiK писал(а):В моих конфигах Kernel Nat

И они с годами только короче становятся

Так как чем проще конфиг, тем быстрее канал
(Лично моя заметка)

Вы бы попробовали откинуть пороною взлома, и сделать немного по проще конфиг, скорости прибавило бы :)
При том, что мой провайдер выдает мне 10Мбит - скорость скачивания 1Мб/сек. Насколько еще скорость должна увеличиться? Из-за настроек брандмауэра скорость ни как не влияет.

Re: IPFW для критики

Добавлено: 2009-07-30 10:12:37
FireWall
paradox писал(а):не ну никто ж не спорит
каждый усложняет по своиму это его юникс вей
но как заметил самурай
с годами и опытом он становиться все проще и меньше ))
токо новички начитавшись про грозных хакеров хотят что бы в фаерволе было как можно больше правил

Хотелось бы по сабжу что нить услашать :)

Re: IPFW для критики

Добавлено: 2009-07-30 10:13:55
ProFTP
а что в этом конфиге ключевое?

у всех вроде бы одинаково!! только я например natd все время использую или иногда divet

Re: IPFW для критики

Добавлено: 2009-07-30 10:22:21
FireWall
ProFTP писал(а):а что в этом конфиге ключевое?

у всех вроде бы одинаково!! только я например natd все время использую или иногда divet
Ну наверное сам набор правил в целом :)

Re: IPFW для критики

Добавлено: 2009-07-30 10:32:10
ProFTP
наверное желателно закрыть еще публичные сети...

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

deny ip from any to 172.16.0.0/12 in
deny ip from any to 192.168.0.0/16 in
deny ip from any to 0.0.0.0/8 in
deny ip from any to 169.254.0.0/16 in
deny ip from any to 240.0.0.0/4 in
deny ip from any to 224.0.0.0/3 in
deny ip from any to 192.0.2.0/24 in
deny ip from any to any not antispoof in

Re: IPFW для критики

Добавлено: 2009-07-30 10:32:35
paradox
по сабжу
options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_ETHER
options NETGRAPH_TEE
это лишнее
изучите loader.conf
${fwcmd} add 90 allow ip from 127.0.0.1 to 127.0.0.1
а если вдруг у меня лупбек имеет другой айпи?))) дадаа такое возможно
например 127.0.0.4/24
илидругой
так что any to any via lo0 и токо так и не как иначе


deny log
вы хотите сказать что вы читаете отчеты руту? и в логи заглядываете?)) по секрюрити

использование skipto дурной тон

deny frag я бы не делал

разрешать выборочное icmp это не есть гут

check-state это конечно хорошо
но без keep-state оно бесполезно

ну итд
долго всматриваться
сами разберитесь)

Re: IPFW для критики

Добавлено: 2009-07-30 10:34:08
paradox
наверное желателно закрыть еще публичные сети...
имеет смысл токо если ты админишь у провайдеров укоторых есть своя AS
когда ты клинет у провайдера
то блочить эти сети нет смысла

Re: IPFW для критики

Добавлено: 2009-07-30 10:35:36
princeps
А я как-то наблюдал спуфинг на своем внешнем интерфейсе, хотя не провайдер.
я бы вот здесь

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

${fwcmd} add 65000 allow ip from any to any
сделал бы наоборот, deny

Re: IPFW для критики

Добавлено: 2009-07-30 10:42:51
ProFTP
princeps писал(а):А я как-то наблюдал спуфинг на своем внешнем интерфейсе
и что ты делал?

еще может: в безопасности в /etc/sysctl.conf есть опции по безопасности, которые делают "черную дырку", если поставить, то сканеры не смогут просканировать порты, или сканер выдаст ложную информацию
paradox писал(а): имеет смысл токо если ты админишь у провайдеров укоторых есть своя AS
ко мне кстате на домашниый сервер кто-то заходит на ftp, и влогах было видно айпи с публичного айпи... может провайдер их не блокиреут...

Re: IPFW для критики

Добавлено: 2009-07-30 10:43:42
FireWall
paradox писал(а): изучите loader.conf
да да, хорошее замечание :)
${fwcmd} add 90 allow ip from 127.0.0.1 to 127.0.0.1
а если вдруг у меня лупбек имеет другой айпи?))) дадаа такое возможно
например 127.0.0.4/24
илидругой
так что any to any via lo0 и токо так и не как иначе
учту
deny log
вы хотите сказать что вы читаете отчеты руту? и в логи заглядываете?)) по секрюрити
иногда бывает :)
использование skipto дурной тон
Чего дурного? я бы сказал даже очень хороший тон )
deny frag я бы не делал
разрешать выборочное icmp это не есть гут
почему?

Re: IPFW для критики

Добавлено: 2009-07-30 10:44:38
FireWall
princeps писал(а):А я как-то наблюдал спуфинг на своем внешнем интерфейсе, хотя не провайдер.
я бы вот здесь

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

${fwcmd} add 65000 allow ip from any to any
сделал бы наоборот, deny
ядро собрано с опцией DENY )

Re: IPFW для критики

Добавлено: 2009-07-30 10:46:39
FireWall
paradox писал(а):
наверное желателно закрыть еще публичные сети...
имеет смысл токо если ты админишь у провайдеров укоторых есть своя AS
когда ты клинет у провайдера
то блочить эти сети нет смысла
если только кто то пытается подставить такой айпи )

и в твоей физ. сети есть не только твоя допустим 192.168.0.0/24 а еще А и С сети :)

хотя все равно не чего не выйдет )

Re: IPFW для критики

Добавлено: 2009-07-30 10:51:11
paradox
Чего дурного? я бы сказал даже очень хороший тон )
skipto
это как
goto в програмировании
если его используют значит человек неможет выровнять логику (в фаерволе или в программировании)
если только кто то пытается подставить такой айпи )
да пусть подставляет
куда токо он выйдет если подставить сеть кторой нет на интрефейсе
а спуфинг отвергаеться правильным via на интерфейсе
и в твоей физ. сети есть не только твоя допустим 192.168.0.0/24 а еще А и С сети
дурной тон в одной визической сети на одном физ интерфейсе держать много альясов
в таких случаях лучше включать vlan и подключать коммутатор

ну про icmp это долгая философия

Re: IPFW для критики

Добавлено: 2009-07-30 10:59:31
FireWall
paradox писал(а):
Чего дурного? я бы сказал даже очень хороший тон

skipto
это как
goto в програмировании
если его используют значит человек неможет выровнять логику (в фаерволе или в программировании)
с натом я не смог найти реализацию лучше. Так гибче получается :)

Re: IPFW для критики

Добавлено: 2009-07-30 11:06:18
princeps
paradox писал(а):а спуфинг отвергаеться правильным via на интерфейсе
расскажи подробней
ProFTP писал(а): princeps писал(а):А я как-то наблюдал спуфинг на своем внешнем интерфейсе
и что ты делал?
Ничего, у меня были deny на публичные сети на внешнем интерфейсе, просто валились пакеты с 10.0.что-то там. У провайдера тоже могут лохи работать. Даже не могут, а точно работают, особенно в нашей провинции.

Re: IPFW для критики

Добавлено: 2009-07-30 11:06:51
paradox
нат обычно работает одним правилом divert via интерфейс в инет
а дальше все без всяких скипту отстраиваеться

исключение составляют балансировки и ассимитричный инет
где одним дивертом не обойдешься

Re: IPFW для критики

Добавлено: 2009-07-30 11:08:09
paradox
via in via out нужных сетей на нужном интерфейсе
и после этого я не представляю как спуфингом человек вообще выйдет через этот интерфейс

Re: IPFW для критики

Добавлено: 2009-07-30 11:19:47
princeps
paradox писал(а):via in via out нужных сетей на нужном интерфейсе
А че, мудро. тогда получается два правила вместо десяти. Странно, как в голову не пришло.