структурировать ipfw для центрального маршрутизатора без NAT

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

структурировать ipfw для центрального маршрутизатора без NAT

Непрочитанное сообщение Fioktist » 2010-02-13 15:52:15

есть скелет конфига навеянный http://onlamp.com/pub/a/bsd/2006/08/24/ ... walls.html
есть Freebsd 8.0 (ядерный ipfw + pf до кучи)

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

# Adding ipfw, also can be loaded as modules
options 	IPFIREWALL
options 	IPFIREWALL_VERBOSE
options 	IPFIREWALL_VERBOSE_LIMIT=10
options 	IPFIREWALL_DEFAULT_TO_ACCEPT
options 	IPFIREWALL_FORWARD
# Adding kernel NAT
options         IPFIREWALL_NAT
options         LIBALIAS
# Traffic shaping
options         DUMMYNET
# Divert, i.e. for userspace NAT
options         IPDIVERT
# This is for OpenBSD's pf firewall.
device          pf
device          pflog
# pf's QoS - ALTQ
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queuing (CBQ).
options         ALTQ_RED        # Random Early Detection (RED).
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC).
options         ALTQ_PRIQ       # Priority Queuing (PRIQ).
options         ALTQ_NOPCC      # Required for SMP build.
# Useful network interfaces
device          vlan
device          tap                     #Virtual Ethernet driver.
device          gre                     #IP over IP tunneling.
#device          if_bridge               #Bridge interface.
device          pfsync                  #synchronization interface for PF.
device          carp                    #Common Address Redundancy Protocol.
device          enc                     #IPsec interface.
device          lagg                    #Link aggregation interface.
#device          stf                     #IPv4-IPv6 port.
все интерфейсы подняты и работают с правилами тут не приведенными (сверху вниз до первого совпадения),
есть желание сруктурировать хождение пакетов по блокам согласно интерфейса
1) нужно-ли правило над 2000, если options IPFIREWALL_DEFAULT_TO_ACCEPT --- возможно лучший вариант буден не allow а deny
2) куда вставить 1000 - 1010 или там им и место
3) нужныли все еще 1020 - 1060
4) есть ли у кого подобные примеры конфигов ipfw для подобного

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

#!/bin/sh
ipfw="/sbin/ipfw -q"
${ipfw} flush
#===============================================================#
ethlan="em0"
ethwan="xl0"
ethwar="em1"
ethdef="vlan0"
eth1="vlan1"
eth2="vlan2"
eth3="vlan3"
eth4="vlan4"
eth5="vlan5"
eth6="vlan6"
eth7="vlan7"
eth8="vlan8"
#===============================================================#
ipadmin="ип адреса с которых будет подключаться админ"
sibnets="тут будут перечислены все сети которые не должны приходить снаружи, скорее всего будет таблица"
#===============================================================#
#               общение компьютера с самим собой                #
${ipfw} 1000 add allow all from any to any via lo0
${ipfw} 1005 add deny ip from any to 127.0.0.0/8
${ipfw} 1010 add deny ip from 127.0.0.0/8 to any
#===============================================================#
#       Проверка соответствия пакета динамическим правилам      #
#${ipfw} 1020 add check-state
#               Запрет X-сканирования                           #
${ipfw} 1030 add reject log tcp from any to any tcpflags fin, syn, rst, psh, ack, urg
#               Запрет N-сканирования                           #
${ipfw} 1040 add reject log tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg
#               Запрет FIN-сканирования                         #
${ipfw} 1044 add reject log tcp from any to any not established tcpflags fin
#               Ограничение числа одновременных соединений      #
#${ipfw} 1046 allow ip  from any to any  setup limit src-addr 10
#               Стандартное средство защиты от спуффинга        #
${ipfw} 1050 add  deny ip from any to any not verrevpath in
#               Убьем фрагменты                                 #
${ipfw} 1060 add deny ip from any to any frag
#===============================================================#
${ipfw} add set  1 skipto  2000 ip from any to me in
${ipfw} add set  2 skipto  2500 ip from me to any out
${ipfw} add set  3 skipto  3000 ip from any to any in via ${ethwan}
${ipfw} add set  4 skipto  3500 ip from any to any out via ${ethwan}
${ipfw} add set  5 skipto  4000 ip from any to any in via ${ethwar}
${ipfw} add set  6 skipto  4500 ip from any to any out via ${ethwar}
${ipfw} add set  7 skipto  5000 ip from any to any in via vlan0
${ipfw} add set  8 skipto  5500 ip from any to any out via vlan0
${ipfw} add set  9 skipto  6000 ip from any to any in via vlan1
${ipfw} add set 10 skipto  6500 ip from any to any out via vlan1
${ipfw} add set 11 skipto  7000 ip from any to any in via vlan2
${ipfw} add set 12 skipto  7500 ip from any to any out via vlan2
${ipfw} add set 13 skipto  8000 ip from any to any in via vlan3
${ipfw} add set 14 skipto  8500 ip from any to any out via vlan3
${ipfw} add set 15 skipto  9000 ip from any to any in via vlan4
${ipfw} add set 16 skipto  9500 ip from any to any out via vlan4
${ipfw} add set 17 skipto 10000 ip from any to any in via vlan5
${ipfw} add set 18 skipto 10500 ip from any to any out via vlan5
${ipfw} add set 19 skipto 11000 ip from any to any in via vlan6
${ipfw} add set 20 skipto 11500 ip from any to any out via vlan6
${ipfw} add set 21 skipto 12000 ip from any to any in via vlan7
${ipfw} add set 22 skipto 12500 ip from any to any out via vlan7
${ipfw} add set 23 skipto 13000 ip from any to any in via vlan8
${ipfw} add set 24 skipto 13500 ip from any to any out via vlan8
${ipfw} add set 25 skipto 14000 ip from any to any in via ${ethlan}
${ipfw} add set 26 skipto 14500 ip from any to any out via ${ethlan}
# ??? allow ??? deny ???
${ipfw} add allow ip from any to any
#===============================================================#
#                       local host - in                         #
${ipfw} add 2000 set 1 count ip from any to any
${ipfw} add 2010 deny not icmp from "table(0)" to me
${ipfw} add 2020 allow udp from any to me 123,161
${ipfw} add 2030 allow tcp from ${ipadmin} to me 20,21,80
${ipfw} add 2040 allow tcp from ${ipadmin} to me 22
${ipfw} add 2050 allow udp from any to me domain
${ipfw} add set 1 deny ip from any to any
#                   local host - out
${ipfw} add 2500 set 2 count ip from any to any
${ipfw} add set 2 allow ip from any to any keep-state
#===============================================================#
#       ethwan - in (xl0)       Исходящий в интернет            #
${ipfw} add 3000 set 3 count ip from any to any
${ipfw} add 3010 reject ip from ${sibnets} to any
${ipfw} add set 3 deny ip from any to any
#       ethwan - out (xl0)      Исходящий в интернет
${ipfw} add 3500 set 4 count ip from any to any
${ipfw} add set 4 allow ip from any to any keep-state

#===============================================================#
#       (em1) ethwar - in       Приземление всех виланов        #
${ipfw} add 4000 set 5 count ip from any to any
${ipfw} add set 5 deny ip from any to any
#       (em1) ethwar - out      Приземление всех виланов        
${ipfw} add 4500 set 6 count ip from any to any
${ipfw} add set 6 allow ip from any to any keep-state
#===============================================================#
#       vlan0 - in              вилан управления свитчами L2    #
${ipfw} add 5000 set 7 count ip from any to any
${ipfw} add set 7 deny ip from any to any
#       vlan0 - out             вилан управления свитчами L2
${ipfw} add 5500 set 8 count ip from any to any
${ipfw} add set 8 allow ip from any to any keep-state
#===============================================================#
#       vlan1 - in                                              #
${ipfw} add 6000 set 9 count ip from any to any
${ipfw} add set 9 deny ip from any to any
#       vlan1 - out            
${ipfw} add 6500 set 10 count ip from any to any
${ipfw} add set 10 allow ip from any to any keep-state
#===============================================================#
#       vlan2 - in                                              #
${ipfw} add 7000 set 11 count ip from any to any
${ipfw} add set 11 deny ip from any to any
#       vlan2 - out
${ipfw} add 7500 set 12 count ip from any to any
${ipfw} add set 12 allow ip from any to any keep-state
#===============================================================#
#       vlan3 - in                                              #
${ipfw} add 8000 set 13 count ip from any to any
${ipfw} add set 13 deny ip from any to any
#       vlan3 - out             
${ipfw} add 8500 set 14 count ip from any to any
${ipfw} add set 14 allow ip from any to any keep-state
#===============================================================#
#       vlan4 - in                                              #
${ipfw} add 9000 set 15 count ip from any to any
${ipfw} add set 15 deny ip from any to any
#       vlan4 - out             
${ipfw} add 9500 set 16 count ip from any to any
${ipfw} add set 16 allow ip from any to any keep-state
#===============================================================#
#       vlan5 - in                                              #
${ipfw} add 10000 set 17 count ip from any to any
${ipfw} add set 17 deny ip from any to any
#       vlan5 - out             
${ipfw} add 10500 set 18 count ip from any to any
${ipfw} add set 18 allow ip from any to any keep-state
#===============================================================#
#       vlan6 - in                                              #
${ipfw} add 11000 set 19 count ip from any to any
${ipfw} add set 19 deny ip from any to any
#       vlan6 - out             
${ipfw} add 11500 set 20 count ip from any to any
${ipfw} add set 20 allow ip from any to any keep-state
#===============================================================#
#       vlan7 - in                                              #
${ipfw} add 12000 set 21 count ip from any to any
${ipfw} add set 21 deny ip from any to any
#       vlan7 - out
${ipfw} add 12500 set 22 count ip from any to any
${ipfw} add set 22 allow ip from any to any keep-state
#===============================================================#
#       vlan8 - in                                              #
${ipfw} add 13000 set 23 count ip from any to any
${ipfw} add set 23 deny ip from any to any
#       vlan8 - out
${ipfw} add 13500 set 24 count ip from any to any
${ipfw} add set 24 allow ip from any to any keep-state
#===============================================================#
#       Локальная сеть                  (em0) ethlan - in       #
${ipfw} add 14000 set 25 count ip from any to any

#       Локальная сеть                  (em0) ethlan - out
${ipfw} add 14500 set 26 count ip from any to any
#===============================================================#
пока остановился на блоке local host
Последний раз редактировалось Fioktist 2010-02-14 19:43:01, всего редактировалось 1 раз.
Самое возмутительное в аргументах оппонента - это изобилие правды.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2507
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: структурировать ipfw для центрального маршрутизатора без NAT

Непрочитанное сообщение skeletor » 2010-02-14 15:13:45

Расскажите, какой смысл вы несёте в теме: собрать ядро с 2-мя файерволами, 2-мя натами (ядерный и natd) и назвать тему "... без НАТа". :cz2: :cz2: :cz2:
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: структурировать ipfw для центрального маршрутизатора без NAT

Непрочитанное сообщение Fioktist » 2010-02-14 19:40:27

skeletor писал(а):Расскажите, какой смысл вы несёте в теме: собрать ядро с 2-мя файерволами, 2-мя натами (ядерный и natd) и назвать тему "... без НАТа". :cz2: :cz2: :cz2:
Лучшеб я и не спрашивал, тема закрыта, можете искать смысл зачем волосы растут.
Какая в дугу разница как я собрал ядро, смысл ищите в вопросах 1),2),3),4).специально в тему добавил что без NATа.
Если есть опыт в сборе на роутер нескольких "чужих" локалок - просто поделитесь знаниями пожалуйста у кого как это было.
Самое возмутительное в аргументах оппонента - это изобилие правды.

Аватара пользователя
skeletor
майор
Сообщения: 2507
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: структурировать ipfw для центрального маршрутизатора без NAT

Непрочитанное сообщение skeletor » 2010-02-15 11:15:04

КГАМ :-D
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: структурировать ipfw для центрального маршрутизатора без NAT

Непрочитанное сообщение Fioktist » 2010-02-15 20:34:58

вот тут часть поднял: http://serverfault.com/questions/64356/ ... onf-kernel
здесь чтото приглянулось: http://onlamp.com/pub/a/bsd/2006/08/24/ ... walls.html
и тут тоже нравится идея автора: http://www.opennet.ru/tips/info/1435.shtml
так что креатива без меня наваяли, спасибо за поддержку "друr" :"": .
Самое возмутительное в аргументах оппонента - это изобилие правды.