IPFW & IPNAT

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

IPFW & IPNAT

Непрочитанное сообщение almos » 2007-01-13 13:27:12

Хай пипл!

Есть вопросец.
Вобщем есть сервер учета траффика, на нем бежит биллинговая система Abills.
При подключения юзера по ВПН посредством ipfw поднимаються pipe'ы.
На том же ipfw поднят nat на внешний интерфейс.
Траффик генериться порядочный по 10Гб в среднем за 12 часов. И не очень мне нравиться как ведет себя ipfw по отношению к загрузке процессора. Приблизительно 10-20% загружает проц.
Машинка - Celeron 2.53, 1Гб ОЗУ + FreeBSD 6.1-Release.
Вот подумал может заменить ipfw natd на ipnat.

После 180-го правила идут пайпы, после них НАТ.
Подскажите как мне привязать ipnat, вместо natd в моем случае, чтобы логика файрволла не нарушилась.

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

#!/bin/sh

FwCMD="/sbin/ipfw"
LanOut="rl0"
LanIn="xl0"
IpOut="10.0.1.2"
IpIn="192.168.0.1"
NetMask="24"
NetIn="192.168.0.0"

ipfw -f flush

ipfw add 10 check-state

ipfw add 20 allow ip from any to any via lo0
ipfw add 30 deny ip from any to 127.0.0.0/8
ipfw add 40 deny ip from 127.0.0.0/8 to any
ipfw add 50 deny ip from 172.16.0.0/12 in via ${LanOut}
ipfw add 60 deny ip from any to 0.0.0.0/8 in via ${LanOut}
ipfw add 70 deny ip from any to 169.254.0.0/16 in via ${LanOut}
ipfw add 80 deny icmp from any to any frag
ipfw add 90 deny icmp from any to 255.255.255.255 in via ${LanOut}
ipfw add 100 deny icmp from any to 255.255.255.255 out via ${LanOut}
ipfw add 110 deny ip from 172.16.0.0/12 to any out via ${LanOut}

ipfw add 120 allow gre from me to 192.168.0.0/24 via xl0
ipfw add 130 allow gre from 192.168.0.0/24 to me via xl0
ipfw add 140 allow tcp from 192.168.0.0/24 1723 to me via xl0
ipfw add 150 allow tcp from me to 192.168.0.0/24 1723 via xl0
ipfw add 160 allow tcp from 192.168.0.0/24 to me 80 via xl0

#ipfw add 161 allow ip from any to me 53
#ipfw add 162 allow ip from me to any 53

#ipfw add 170 skipto 190 ip from 192.168.0.234 to any out
#ipfw add 171 skipto 190 ip from 192.168.0.235 to any out
#ipfw add 180 deny ip from 192.168.0.0/24 to any via ${LanOut}

#divert
ipfw add 17000 deny ip from 192.168.0.0/24 to any via ${LanOut}

${FwCMD} add 19000 divert natd ip from any to any out xmit ${LanOut}
${FwCMD} add 20000 divert natd ip from any to 10.0.1.2

${FwCMD} add 21001 allow tcp from any to any established
${FwCMD} add 21002 allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add 21003 allow udp from any 53 to any via ${LanOut}
${FwCMD} add 21004 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 21005 allow tcp from any to ${IpOut} 21 via ${LanOut}
${FwCMD} add 21006 allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
${FwCMD} add 21007 allow icmp from any to any icmptypes 0,8,11
${FwCMD} add 21008 allow tcp from any to ${IpOut} 22 via ${LanOut}
${FwCMD} add 21009 allow tcp from any to any
${FwCMD} add 21010 allow udp from any to any
${FwCMD} add 21011 allow icmp from any to any
${FwCMD} add 65534 deny ip from any to any 
Заранее благодарен.

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35056
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-01-13 20:53:48

у тебя ещё 90% ресурсов.
т.е. запас десятикратный - ерундой не занимайся. Оставь как есть.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
zorg
лейтенант
Сообщения: 665
Зарегистрирован: 2006-03-01 22:25:36
Откуда: Санкт-Петербург

Непрочитанное сообщение zorg » 2007-01-13 22:11:43

Лиссяра, ты не понимаешь! :)
Мож остальные 80-90% уже заняты, например апачем, вот человек пытается высвободить хотя бы 10%!!!
Меня тока удивляет последнее правило, перед которым можно сказать почти всё разрешили!! интересно до него что-нить доходит??? :)
ТА если посмотреть так правила после установленных соединений вообще не нужны!!! :)
Всё дело в перце!! :)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35056
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-01-14 0:22:26

последнее - дефолтовое.
============
тогда - чем бороться за 10% лучше поставить нормальные сетевухи, и прикупить проц пошустрей.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
zorg
лейтенант
Сообщения: 665
Зарегистрирован: 2006-03-01 22:25:36
Откуда: Санкт-Петербург

Непрочитанное сообщение zorg » 2007-01-14 0:35:50

да это я и так понял, просто фаер как-то составлен не понятно:
нафига нужны правила начиная с 21002 по 21008???? если с 21009 следуют три которые всё разрешают????
Если этот сервак больше ничего не делает, то нафига даже менять чего-то, и так хватит!!, разве что действительно сменить сетевуху на Гигабит.
Всё дело в перце!! :)

chani
мл. сержант
Сообщения: 103
Зарегистрирован: 2006-09-19 0:15:01

Непрочитанное сообщение chani » 2007-01-15 10:48:59

Замени тогда сразу на pf + ipnat, если видешь смысл в смене ...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-01-15 12:20:48

Я не работал с ipnat, много раз слышал что он быстрее.
Достаточно составить правила для ipnat, логика ipfw не нарушится и останется в том же виде. Читать здесь:
http://www.sergeyka.h10.ru/fw_nat.html

И ещё, составь таблицу для блокируемых адресов и блокируй 1-м правилом, а не несколькими. Файрвол будет быстрее работать и удобочитаемее.

Вырезка из статьи:

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

ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/etc/ipnat.rules"	
ipnat_flags=""

# NAT
#${fwcmd} -q add divert natd ip from any to any via ${LanOut}

ipnat.rules
map rl0 0/0 -> 0/32 proxy port ftp ftp/tcp
map rl0 192.168.10.0/24 -> 195.195.95.5/24 proxy port ftp ftp/tcp
map rl0 192.168.10.0/24 -> 195.195.95.5/24
P.S. Статья старенькая, возможно что ipnat работает вообще без правил divert natd .., тогда их придётся убрать вовсе.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.