Здравствуйте, решился я снести IPWF с сервера FreeBSD 5.3 и заменить более функциональным PF, установка и настройка правил фильтрации прошла без проблем. Но вот незадача в IPFW был DUMMYNET и полностью справлялся со своими обязанностями. Все попытки настройки ALTQ окончились безрезультатно. От ALTQ требуется раздавать всем пользователям с одинаковой скоростью (приоритетом), а руководству с большей.
Все решения, которые были найдены, направлены на различные виды трафика, а мне нужно на пользователей.
На сервере только нат средствами PF, две сетевухи, канал 120Кбит (если кто-то начинает качать то можно повеситься), установка прокси-сервера не предполагается.Ядро
device pf #PF OpenBSD packet-filter firewall
device pflog #logging support interface for PF
device pfsync #synchronization interface for PF
options ALTQ
options ALTQ_CBQ # Class Bases Queueing
options ALTQ_RED # Random Early Drop
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler
options ALTQ_CDNR # Traffic conditioner
options ALTQ_PRIQ # Priority Queueing
options ALTQ_DEBUG
options HZ=1000
rc.conf
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_program="/sbin/pflogd"
Один из нерабочих конфигов pf.conf (с ALTQ), вариантов перепробовал много, ALTQ на локальном и на внешнем интерфейсах, CBQ и PRIQ все безрезультатно.
ExtIF="rl1"
PrivIF="rl0"
ExtIP="xxx.xxx.xxx.xxx"
PrivNet="192.168.0.0/24"
NoGoIP="{ 192.168.0.0/16, 127.0.0.0/8, 10.0.0.0/8, 0.0.0.0/8, 169.254.0.0/16, 204.152.64.0/23, 224.0.0.0/3 }"
boss="192.168.0.124"
allnet="192.168.0.0/24"
scrub in all
altq on $PrivIF priq bandwidth 120Kb queue { allnet boss }
queue allnet priority 2 priq(default)
queue boss priority 10
nat on $ExtIF from $PrivNet to any -> $ExtIP
block in quick inet6 all
block out quick inet6 all
pass in quick on lo0 all
pass out quick on lo0 all
block in quick on $ExtIF from $NoGoIP to any
block out quick on $ExtIF from any to $NoGoIP
block out on $ExtIF all
pass in quick on $ExtIF inet proto tcp from any to $boss flags S/SA modulate state queue boss
pass out quick on $ExtIF inet proto tcp from $boss to any flags S/SA modulate state queue boss
pass out on $ExtIF inet proto tcp from { $allnet !$boss } to any flags S/SA modulate state queue allnet
pass out quick on $ExtIF inet proto { udp, icmp } from $boss to any keep state queue boss
pass out on $ExtIF inet proto { udp, icmp } from { $allnet !$boss } to any keep state queue allnetP.S Если у вас есть рабочий pf.conf c altq поделитесь пожалуйста!
Что неужели никто не использует PF, до сих пор ВСЕ сидят на IPWF?
Ни у кого не работает ALTQ?
Если есть работающий конфиг, выложите пожалуйста!!!
Не на IPFW, а на IPFW2 сидим. Надо идти в ногу со временем! :)
Но если не в лом, отпиши, чем тебя покорил PF, может я тоже на него перейду
>Не на IPFW, а на IPFW2 сидим. Надо идти в ногу со
>временем! :)
>Но если не в лом, отпиши, чем тебя покорил PF, может я
>тоже на него перейду
Слушай с тобой полностью согласен PF очень штука мощная как сам PF так и ALTQS я сам писал статью на тему трёх файрволов PF,IPF,IPFW по поводу полностью перехода то я тебе посоветовал бы сначало переёти бы PF+DUMMYNET а только потом на PF+ALTQS не спорю что ALTQS и PF лучше IPFW+DUMMYNET
В помощь ссылка
http://dreamcatcher.ru/docs/pf-faq-part2-rus.html
да там на сайте можешь ещо более что прикольное найти
да и сама документация absolute openbsd там типа всё про файрвол PF и ALTQS
я недавно перешел на PF+ALTQ - но тоже до сих пор не знаю
как равномерно делить канал между юзерами. Сдается мне что такую схему
в pf не реализовать.... хотя хотелось-бы ошибаться
Благодарю всех за ответы,To e719: Мне в PF очень понравился синтаксис, намного понятнее правила по сравнению c IPFW. Мне очень понравилось в PF: списки, таблицы, очень удобно настраивается нат, ну и вообще он как-то “смышленее”.
To Zedis: Статью вашу читал, статья хорошая, но нет примеров по altq.Статью на dreamcatcher.ru я тоже читал, примеры altq которые там описаны, мне не совсем подходят.
Я так понимаю, вы выбрали PF, как вы решаете вопрос шейпера?
Что касаемо PF+DUMMYNET, я так понимаю что для этой связки в ядре достаточно только наличие DUMMYNET? Или в ядре нужны и остальные опции IPFW?
Насколько “полноценно” ALTQ реализован на FreeBSD? или он нормально работает только на OpenBSD.
Забудь про pf, ipfw и прочие потуги bsdдешников создать качественный пакетный фильтр(firewall), про шейпер я вообще промолчу…
Посмотри лучше в сторону Linux, IPTABLES, вот это я понимаю качественный продукт, firewall удобный, CBQ шикарно работает, плюс можно запрещать юзерам закачку (mp3, avi и др. нежелательных файлов), нет необходимости только ради блокирования мультимедийных файлов устанавливать проксю. Все это недостижимо для BSD!
Так что мой тебе совет переходи на Linux!!!
интересная тенденция ......
все больше и больше linuz lammo ...вы что плодитесь методом простого деления пополам??
PS: ненужно трогать тему linux rulezz или freebsd suxx
спор неравнозначный - выиграют проффесионалы
используйте pf+altq
dummynet был для связки ipfw,ipfw2 для pf он впринципе ненужен
To kir: Возможно этот оголтелый любитель линукса в чем то и прав. У меня никак не получается настроить как нужно altq (и не только у меня). Судя потому что никто, не может подсказать, как равномерно делить канал и выставлять “рабочие” приоритеты для руководства! (это и правда недостижимая задача для pf+altq!?)P.S. Если у вас все замечательно настроено (pf+altq) поделитесь, если не в лом.
у тебя 5.3 RELEASE или STABLE?
если мне память не изменяет писали - что в релизе altq - хреново работало
потом это устранили
>у тебя 5.3 RELEASE или STABLE?
>если мне память не изменяет писали - что в релизе altq -
>хреново работало
>потом это устранили5.3 RELEASE (Скачал с фрюшного ftp)
Alk, у вас получилось равномерно делить канал между юзерами?
>>у тебя 5.3 RELEASE или STABLE?
>>если мне память не изменяет писали - что в релизе altq -
>>хреново работало
>>потом это устранили
>
>5.3 RELEASE (Скачал с фрюшного ftp)
>Alk, у вас получилось равномерно делить канал между юзерами?
нет не вышло
но я правда и особо не упирался
можешь рискнуть и поднять до STABLE
канал бы тебе потолще -- сидеть на 120к грустно
>нет не вышло
>но я правда и особо не упирался
>можешь рискнуть и поднять до STABLE
>канал бы тебе потолще -- сидеть на 120к грустноПро канал в самую точку :(
Как у тебя сейчас altq настроен?
Пробовал к pf прикручивать DUMMYNET?
У меня есть openbsd 3.5 и freebsd 5.3 что-то там фиксил... Если успею то через недельку попробую altq и там и там. У freebsd были проблемы с реализацией altq и pf.
>У меня есть openbsd 3.5 и freebsd 5.3 что-то там фиксил... Если
>успею то через недельку попробую altq и там и там.
>У freebsd были проблемы с реализацией altq и pf.
По воводу Iptables и залётного Linux lamera то знаешь я каждый день открываю свой bugtraq@ и что я там вижу дырки, дырки и ещо раз дырки в LINUX'E, а вот FreeBSD уже с год не вижу дырок совподение наверно..По поводу ALTQS и PF то действительно проверял сам там есть проблеммы не только в FreeBSD Realese но и в Stable. В FreeBSD 5.4 обещают всё поправить так что ребята 4 апреля все делаем make build world
По поводу PF+Dummynet так вы просто поднимаете PF и IPFW+DUMMYNET через PF фильтруешь пакеты а через IPFW загоняешь пакеты в очередь а через DUMMYNET всё остальное ...
Все как раньше было у тебя при использовании IPFW+DUMMYNET только в IPFW оставляешь правила работы с очередями и последнее правило
ipfw add pass any from any или при кампиляции ядра
IPFIREWALL_DEFAULT_TO_ACCEPT и загружаешь потом PF правила вот и всё PF фильтрует, IPFW+DUMMYNET шейпит...
Уважаемые знатоки Freebsd!
Прочитал этот пост и заинтересовался сообщением о возможности запрещения скачивать файлы по расширениям (*.mp3, и т.д.) в linux при помощи iptables.
Возможно, ли сделать подобное в Freebsd средствами firewall или других программ?
Или это можно решить только с помощью прокси-сервера???
нет
зачем грузить firewall ненужной рутинной работой? этим должны заниматься сервисы верхнего уровня
то что такой изврат добавили в linux... лучше его не делает....
Здравствуйте, Я тоже решил поставить PF и ALTQ. Нигде не смог найти, как правильно настраивать шейпер. На сервере установлены 2 сетевухи (интернет и локалка).
Например:altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
queue std cbq(default)
queue ssh priority 3
после этого указываем куда применять queue:
pass in on fxp0 from any to any port 22 queue sshНа какой интерфейс (внутренний или локальный) нужно вешать altq?
К какому правилу(in или out) нужно применять queue? И на каком интерфейсе?
>Здравствуйте, Я тоже решил поставить PF и ALTQ. Нигде не смог найти,
>как правильно настраивать шейпер. На сервере установлены 2 сетевухи (интернет и
>локалка).
>Например:
>
>altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
>queue std cbq(default)
>queue ssh priority 3
>после этого указываем куда применять queue:
>pass in on fxp0 from any to any port 22 queue ssh
>
>
>На какой интерфейс (внутренний или локальный) нужно вешать altq?
>К какому правилу(in или out) нужно применять queue? И на каком интерфейсе?Шейпить нужно в ту сторону, куда возникает перегрузка. Общая практика - применять queuing к выходной очереди.
>Здравствуйте, Я тоже решил поставить PF и ALTQ. Нигде не смог найти,
>как правильно настраивать шейпер. На сервере установлены 2 сетевухи (интернет и
>локалка).
>Например:
>
>altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
>queue std cbq(default)
>queue ssh priority 3
>после этого указываем куда применять queue:
>pass in on fxp0 from any to any port 22 queue ssh
>
>
>На какой интерфейс (внутренний или локальный) нужно вешать altq?
>К какому правилу(in или out) нужно применять queue? И на каком интерфейсе?
>Шейпится как правило исходящий трафик
Входящий трафик нет смысла резать, т.к. он уже занял ресурсы стека
Из этого делай вывод: входящий трафик для клинета зажимаешь на внутренем интерфейсе, а исходящий трафик на интерфейсе смотрящим в мир...
я правильно понял, что в схеме, где тормоза возникают при обмене трафиком между внешними интерфейсами (в филиалах стоят маршрутизаторы-почтовики), смысла шейпить нет? Канал 256Кбит... Когда падает почта с филиала с 10МБитным инетом можно стреляться... Как раз думал над заменой freebsd4.11 на freebsd5.4beta1 и pf+altq? Не поможет?! :(
p.s. причём, всё идёт по туннелям... Если дропать ESP пакеты, наверное, вообще задница будет? 8-(
Господа, посмотрел раздел советов на этом замечательном портале, и немного расстроился полным отсутствием в разделе СОВЕТОВ каких либо упоминаний о PF,
предлагаю собраться и исправить столь досадное упущение. Давайте дополним рубрику "Пакетные фильтры и фаерволы" http://www.opennet.me/tips/sml/40.shtml , советами использования PF, ALTQ, настройки NAT и других возможностей этого замечательного пакетного фильтра!
>Например:
>
>altq on fxp0 cbq bandwidth 512Kb queue { std, ssh }
>queue std cbq(default)
>queue ssh priority 3
>после этого указываем куда применять queue:
>pass in on fxp0 from any to any port 22 queue ssh
>
>
Пример нерабочий. Вместо cbq надо писать priq, у вас же приоритетная очередь.
И как уже ответили, надо pass out использовать.
>Забудь про pf, ipfw и прочие потуги bsdдешников создать качественный пакетный
>фильтр(firewall), про шейпер я вообще промолчу…
>Посмотри лучше в сторону Linux, IPTABLES, вот это я понимаю качественный продукт,
>firewall удобный, CBQ шикарно работает, плюс можно запрещать юзерам закачку (mp3,
>avi и др. нежелательных файлов), нет необходимости только ради блокирования мультимедийных
>файлов устанавливать проксю. Все это недостижимо для BSD!
>Так что мой тебе совет переходи на Linux!!!Хорошо подумал когда писал??
:)
ExtIF="rl1"
PrivIF="rl0"
ExtIP="xxx.xxx.xxx.xxx"
PrivNet="192.168.0.0/24"
NoGoIP="{ 192.168.0.0/16, 127.0.0.0/8, 10.0.0.0/8, 0.0.0.0/8, 69.254.0.0/16, 204.152.64.0/23, 224.0.0.0/3 }"
boss="192.168.0.124"
allnet="192.168.0.0/24"scrub in all
altq on $PrivIF cbq queue { allnet, boss }
queue allnet bandwidth 40Kb cbq(borrow default)
queue boss bandwidth 80Kb cbq(borrow)nat on $ExtIF from $PrivNet to any -> $ExtIP
.....
pass out quick on $privif from !<nogoip> to $allnet keep state queue allnet
pass out quick on $privif from !<nogoip> to $boss keep state queue boss
.....а может ну их? эти приоритеты? :-)
попробуйте так.. имхо резать надо исходящий траффик на локальном интерфейсе.. но, не резать траф для локалки(nogoip)
borrow позволит пользовать весь канал если вдруг босса нет :-)
правда не уверен что на allnet будут равномерно делиться эти 40кб, но имхо должноз.ы. всякие там block я повырезал т.к. они к делу отношения не имеют..