Станислав Китанин подготовил детальный обзор (http://www.opennet.me/docs/RUS/ipfw_pf_ipfilter/index.html) особенностей пакетных фильтров IPFW, PF (OpenBSD) и IPFILTER.Руководство содержит множество практических примеров и итоговую сравнительную таблицу.
URL: http://www.opennet.me/docs/RUS/ipfw_pf_ipfilter/index.html
Новость: http://www.opennet.me/opennews/art.shtml?num=5098
Автор наврал по поводу перенаправления пакетов. В pf совершенно точно есть и прекрасно работают конструкции с route-to, reply-to, dup-to. Сам на 5.3-s таким пользуюсь. Также почему ни слова о счётчиках пакетов, хотя в самом начале упомято, что фаирвол замечательно посчитает ваш трафик по любым разумным правилам. И слово "ретронсляция", видимо, от "ретро"?;)
согласен на 100 процентов да и статейка сомнительная - как то поверзностно всё и приблизетльно у него - без route-to вообще носенс получается
покажите реализацию на pf такой пример
а то что-то не догоняю
ipfw add fwd 1.1.1.1 ip from 2.2.2.2 to any via internal_int
pass in on $internal_int route-to ($internal_int 1.1.1.1) from 2.2.2.2 to any
pass out on $external_int route-to ($external_int 1.1.1.1) from $external_int to any
точнее в первом правиле - там где 2.2.2.2 должен быть адрес с локалки
ok спасибо
еще в довесок
как в pf посмотреть кол-во пакетов попавших под каждое правило
как например в ipfw sh?
>еще в довесок
>как в pf посмотреть кол-во пакетов попавших под каждое правило
>как например в ipfw sh?
pfctl -s labels
ага понял
но это что-ж на каждое првало надо метку вешать
а сразу скопом все показать можно?
pfctl -vvs r
А все таки что ни говорите - статья хорошая. Спасибо автору.
"В этом реферате я хочу расматреть 3 пакетных фильтра самых популярных в мире UNIX систем IPFW,IP-FILTER,PF(openbsd) на операционной системе FreeBSD 5.3."
дальше читать не стал.
Народ говорить что статья лажа проще всего а поповоду того что чего-то нет то тема файрвола не вписываица в размеры статьи по поводу того что там реферат да действительно я защетил реферат по ней и колбасил я под кофем 2 недели без передышки сказать что снифер крутил трафик у меня 24 часа в сутки значит не сказать не чего да сначало я там страниц 13 много воды лил но после я собрал такие вещи которых просто так не найдёшь почитайте по внимательней со странице 14 и потом критекуйте
Не судьба орфографию вордом тем же проверить???
В 99% предложений содержатся ошибки. Читаешь, блин, как udaff.com.P.S. Максим, не думал, что _такое_ ты пропустишь.
к сожелению это факт орфаграфия у меня страдает
прошу не венить за орфографию
Дальше, еще круче:
цитата: "Ipfw add deny tcp from any to any in tcpflags syn" - одно правило
"block in quick on rl0 proto tcp from any to any flags S" - второе.
По мнению автора, они эквивалентны. 10 баллов.
Про первое я вообще молчу, ибо как не будет оно работать: ipfw пишется с маленькой буквы.
"Тут есть одно и очень простое правило: располагать правила дляIPFW в следующем порядке:" - по фигу как их располагать, ибо как нет четкого различия, достаточно прочесть когда заканчивается поиск по правилам.
А вот в pf - там очень четко распределен порядок правил:
The pf.conf file has seven parts:
Macros: User-defined variables that can hold IP addresses, interface names, etc.
Tables: A structure used to hold lists of IP addresses.
Options: Various options to control how PF works.
Scrub: Reprocessing packets to normalize and defragment them.
Queueing: Provides bandwidth control and packet prioritization.
Translation: Controls Network Address Translation and packet redirection.
Filter Rules: Allows the selective filtering or blocking of packets as they pass through any of the interfaces.
И не надо никакой отсебятины.
бред, короче. не надо писать о том, в чем Вы не разбираетесь
>IPFW в следующем порядке:" - по фигу как их располагать, ибо как
>нет четкого различия, достаточно прочесть когда заканчивается поиск по правилам.Что за бред? С каких это пор порядок правил пошёл по боку?
Думайте что говорите, уважаемый.Автору Респект! (Но русский язык забывать - нехорошо)
Знаете Вы сначало напешите что нибудь похожее проведите анализ, а потом посмотрим сколько у вас будет не точностей в стате подумаешь к чему нашол придратся что Ipfw пишется с маленькой буквы ты не мог что нибудь по оригинальней найти, Я ПИСАЛ про Unix В Word'e который к сожелению при переносе делает большую Букву, критику я люблю спроведливую например " route-to, reply-to, dup-to" согласен прогядел спасибо Vadim'u по поводу того что счетчики знаете тогда бы я написал бы книгу об этом если бы всё пытался расмотреть но даже это не беря в расчёт орфаграфию не на мало тянет.
>Знаете Вы сначало напешите что нибудь похожее проведите анализ, а потом посмотрим
>сколько у вас будет не точностей в статеДостаточно? http://void.ru/content/1138
>подумаешь к чему
>нашол придратся что Ipfw пишется с маленькой буквы ты не мог
>что нибудь по оригинальней найти, Я ПИСАЛ про Unix В Word'e
> который к сожелению при переносе делает большую Букву,
Целиком и полностью Ваши проблемы.> критику я
>люблю спроведливую например " route-to, reply-to, dup-to" согласен прогядел спасибо Vadim'uУже писал про критику - читайте внимательнее. Если вы думаете, что приведенные мной примеры идентичны...
Есть "неточность" ;)
"...объединенными потоками, азделяющими..."так что попроще нужно...
Но статейка на войде неплоха.
>Но статейка на войде неплоха.
"Перевод с английского."
>подумаешь к чему нашол придратся что Ipfw пишется с маленькой буквы
>ты не мог что нибудь по оригинальней найтиДа не обращай ты внимания на "придерастов" :))
для вузовского реферата работа очень хороша."Придерастам" следует задуматься над тем, что мало кто будет на голом энтузиазме писать для сайта такую объёмную статью, тщательно выверяя её на фактическую точность...
А всё что там написано я реально сам проверял всё работает.
ipfw add fwd 1.1.1.1 ip from 2.2.2.2 to any via internal_int я писал систему для рабочего сервера а потом IP-адресса заменил с помощью дебильного Word'a который сделал не то что надо.
Большое спасибо автору за работу, а от критиков ждем не реферат, но полноценный научный опус. И за ваш труд будет вам большой респект. В нашей стране слишком много говорят, но мало делают :(
Ага. Недостатки есть, но респект за сам факт создания. Критиковтаь можно, только создав лучше чем ...
На каждую статью свой читатель. Кому водичка - а кому хлеб насущный. Потому не ругайте, многим начинающим в хозяйстве пригодится.
P.S. Word не дибильный, в орфографии мог бы здорово помочь :)))
Спасибо за подержку и за спроведливую критику, а то что я не COPY+PASTE стотью создавал это главное
а 90% ручками писал да это и так понятно
Предлагать на чтение статью, даже не потрудившись проверить орфографию, - верх неуважения к читателю. С.К., может, стоит сделать выводы?
Обсолютно с тобой согласен но я живу не в России к сожелению... Я собираюсь писать диплом на тему Solaris 10x платформа x86 буду разрабатывать систему Postfix+Sasl2+Mysql+Courier,
Mandatory access control, Chroot, Clamav защита стэка в деталях распишу всё если защищу диплом выставлю на OPENNET.RU полностью как есть и там гарантирую ошибок не будет.
Когда думаешь опубликовать свою работу, очень инетересная для меня тема.
А на критику не реагируй, этого дерьма везде хватает. Литературный критик
это неудавшийся писатель.
Через 2 месяца я даже дам все реальные IP сервера если кто-то не поверит, что такое существует.
FIREWALL -"огнеупорная прокладка", а не "..огненная стена...", термин взят у пожарников.Это просто так ,к сведению.
А если совсем точно - то это "огнеупорная прокладка" между двигателем и салоном автомобиля. ;-)
>FIREWALL -"огнеупорная прокладка", а не "..огненная стена...", термин взят у пожарников.Это просто
>так ,к сведению.Сам ты прокладка.
Firewall - брандмауэр. Очень точное и емкое слово. Жаль только, что мало у нас кто помнит, что это означает."Огненная стана" - это кончено ужасный перевод.
Но все равно автору респект, не смотря на его ужасный русский :)
>Сам ты прокладка.
>Firewall - брандмауэр. Очень точное и емкое слово. Жаль только, что мало
>у нас кто помнит, что это означает.
Переводим с английского на немецкий ? Какой-такой брэндмауер ? Не лучше-ли использоввать "межсетевой экран" ?
Интересно, как человек, который не может грамотно написать на родном языке пишет на чужом?
Я имею ввиду кодирование при написании программ.
У Вас у самого, Уважаемый, и запятая пропущена, и слово одно неправиьно написано. Прежде чем осуждать кого-то, сначала лучше на себя посмотрите.
Занятно. Но читать трудно. Я же, все-таки, русский :)
Орфографические ошибки - это фигня.. гораздо интереснее ошибки технические.
Например в следующем случае:Block in quick on rl0 proto all from any to any
pass in quick on rl0 proto tcp from 195.195.195.195 to any port = 22 keep stateАвтор наивно полагает, что pass правило разрешит хождение пакетов. Советую ему хотя бы раз прочитать мануал по pf.conf или хотя бы следующее:
quick
If a packet matches a rule which has the quick option set, this
rule is considered the last matching rule, and evaluation of subse-
quent rules is skipped.остальные ошибки мне влом вытаскивать и приводить. Эта уже характеризует уровень компетенции.
Очень много неточностей и технических ошибок, навскидку - про работу FTP и т.д. Если это реферат для учебного заведения, тогда сойдет. В остальном, как мне кажется, очень и очень достойно. Так держать.
Статья хорошая слов нету видно автор провёл большой аналитический труд собрал и соеденил много вещей, и главное расказал доходчивым языком доступный даже начинающему админу, то что есть граматические ошибки и не точности в Ipfw с большой буквы, не правильно расмотрен FORWARD. Так знаете если за это судить автора так можно большую часть Рунета растрелять.... Молодец..
Стас хорошо что смог поделится такой статьёй я узнал несколько интерестных вещей... На таких и держится opensource. То что грамматика стродает я слышал у вас в Латвии СС лигионеры маршируют. Да и русских при равнивают к 3 сорту так, что вы хотите чтоб вам сочинение Достоевского писали или рассматривали Пакетные фильтры
Крайне "грамотная" фильтрация ICMP. Станислав, вдумчивое чтение RFC вам не повредит.
Если вы говорите про ICMP я согласен что необхадим код для фрагментации и для много друго но это моё мнение что нужен пинг и всё да комуто хочется Traceroute кому. Понемаете это моя позиция я гнался за защищоностью а то что некоторые хосты не откроются так может всёд киш пожертвовать ими во благо безопастности ведь идея была в следующем чтобы закрыть всё что не нужно
horoshaja statja Stanislav dlja kogogo u4ebnogo zavidenija vi ejo pisali ?
p.s
prostite za translit ja toze iz Latvii :)
институт транспорта и связи
Давайте на форуме примем правила обсуждения статей. Здесь присутствуют достаточно взрослые люди. Почему бы критику не писать в следующем ключе: "Коллега в вашей статье присутствуют следующие недостатки ...". Ведь у многих людей после ваших высказываний пропадает желание писать свои статьи, а без них не было бы самого форума, который очень помогает в нашей работе. Ребята давайте жить дружно.
Целиком и плоностью согласен. Такое ощущение что кому-то надоело на ЛОРе флеймить, надо и здесь напаскудить.
Станислав,Спасибо за труд! Но статью все же следует через Word прогнать и запостить снова...
Глаз режет, действительно, все же Opennet не ЛОР.
>Спасибо за труд! Но статью все же следует через Word прогнать и
>запостить снова...Кстати, присланную статью я прогонял через ispell, не думаю, что word больше ошибок найдет.
Спасибо Максим за исправление ошибок ведь на этом и держится OPENNET что друг другу помогаем чем можем. На будующее буду более граммотным. Ведь статья действительно хорошая, но не хватило у меня сил и времени на граматику, и ёщо раз спасибо....
После таких "статей" пропадает желание читать эти самые статьи...позорище
В сводной таблице в конец, imho есть неточность:ipfw умеет работать с syslogd, однако довольно однобоко, пишет только
в facility LOG_SECURITY.---выдержка из man ipfw(8)-------
log [logamount number]
When a packet matches a rule with the log keyword, a message will
be logged to syslogd(8) with a LOG_SECURITY facility....
----------------------------------А статья найдет своих читателей.
Согласен только в Syslog Facility Security
Я как раз пишу дипломную работу на тему Firewall я думаю взять за основу эту статью и дополнить ёщо больше если конечно автор не подаст на меня в суд за плагиат. Знаете Статья диствительно Класс я ещо не встречал не чего подобного. Написана понятным языком с небольшой эронией:
"В системе FreeBSD firewall - это гораздо больше, чем просто турникет в метро " :))) настальгия автора по метро в латвии нет метро....
"Ни внутренняя машина, ни главный компьютер Internet не знают об этих шагах трансляции."Работа проделана огромная, а результат - ...
Максимум тянет на реферат, но уж никак не на статью
Интересная статья в том плане, что интересно глянуть как набирают правила в файрволл другие люди, ведь набрать можно по-разному.Еще хотел бы уточнить. В статье написано, что у PF новшество - это наличие списков. Так вот они и в ipfw есть. Использую их достаточно активно.
Хотелось бы, чтоб статью также доработали слегка, в частности осветили NAT более детально. Например, возможность преобразовывать адреса в зависимости от пункта назначения. В ipnat это есть, но как-то очень слабо исполнено, в конструкции from ip ! to ip не удается добавить несколько условий.
Автору спасибо.
>В ipnat это есть, но как-то очень слабо исполнено, в конструкции
>from ip ! to ip не удается добавить несколько условий.Я тоже столкнулся с такой проблемой. Решением стало использование NAT из PF, там конструкция "no nat" работает на ура.
>>В ipnat это есть, но как-то очень слабо исполнено, в конструкции
>>from ip ! to ip не удается добавить несколько условий.
>
>Я тоже столкнулся с такой проблемой. Решением стало использование NAT из PF,
>там конструкция "no nat" работает на ура.
кстати, раз уж речь зашла про NAT...
имеем:ipnat - вроде как ядерный, но под нагрузкой (несколько сот пользователей одновременно, несколько десятков тысяч соединений) проц грузится огого как.
один юзер его нагрузить вряд ли сможет любым потоком. пробовал крутить таймауты, помогает, но не особо.natd (точнее libalias) - хорошо оптимизирован по нагрузке, размер таблицы его не смущает, но даже один юзер может здорово прогрузить машину жирным kpps.
есть ли какие-то решения, свободные от этих недостатков? стоит попробовать погонять nat от pf под той же нагрузкой?
>ipnat - вроде как ядерный, но под нагрузкой (несколько сот пользователей
>одновременно, несколько десятков тысяч соединений) проц грузится огого как.
>один юзер его нагрузить вряд ли сможет любым потоком. пробовал крутить
>таймауты, помогает, но не особо.вдогонку - нагрузкой тут является кол-во соединений. некоторые юзеры их плодят тысячами, судя по всему p2p клиентами. в итоге более половины соединений создаются всего несколькими человеками. попытки лимитировать количество вызывают немедленные жалобы и вопли. но natd-то это явление не смущает...
У ipnat по умолчанию соединение живёт !240 часов
net.inet.ipf.fr_tcpidletimeout: 864000Лимитирование, и правда, на клиентов нехорошо действует :-)
Я поднял NAT на PF, поиграл с некоторыми настройками, и сейчас всё нормально.
если заговорили об тестировании НАТА на количество соединений не льзя не упоменуть пакетный генератор Hping который может с любого внутренего IP генерировать соединение вот shell код на установку соединения если кому то поможет:
"
#!/bin/sh
#client -eto ja
#server eto atakuemj komp
clientseq=91923333
serverseq=0
i=3
colich=100
otporta=2333
naport=80
ipadress=192.168.0.1
serverseq=0
server=0
echo $serverseq > seq
while [ $i -le $colich ]; do
echo "#########################################################################"
serverseq=`hping -Q -L 0 -M $clientseq -i u50 -s $otporta -S $ipadress -p $naport -c 1 | sed -n 2'p'| awk '{print $1}' | tr -cs "[:digit:]"`
serverseq=`expr -e $serverseq '+' 1`
echo "server sequences number:"$serverseq
clientseq=`expr -e $clientseq '+' 1`
echo "client sequences number:"$clientseq
hping -L $serverseq -M $clientseq -i u50 -s $otporta -A $ipadress -p $naport -c 1
i=$(($i+1))
otporta=$(($otporta+1))
clientseq=`expr -e $clientseq '+' 10`
echo "--------------------------------------------------------------------------"
done"
Взяли бы да доработали статью до авторитетного уровня и сами бы что-то узнали и другим рассказали не на пальцах. (которые, как известно, не от большого ума) Сил на обсуждение положили немерянно, тыкали мордой и в RFC и по мелочам в статью - нет такого человека который знает всё, а тот кто и так все знает вряд ли будет говорить из-за таких мелочей. И ещё раз - толку от коментариев мало, документ нужно приводить к читаемому виду, иначе, чем проделывать работу по чтению оригинала плюс наложение на него "патчей" от комментаторов.. проще уж в самом деле начать читать man и RFC - там из первого источника, как должно быть, а не каша из мыслей разных людей которые зачастую близко не понимают как обсуждаемый механизм работает. Без обид.
а правилах куча ошибок
Пример
"1.Правило разрешающее любые соединения любых протоколов на сетевом интерфейсе rl0pass in on rl0 from any to any
неправильно (только входящие а не все)
pass in on rl0 from any to any
неправильно (только входящие а не все)
/sbin/ipfw add pass all from any to any via rl0
правильно"в тексте куча неточностей:
"IPDIVERT означает включение демона маскарадинга natd" - ничего подобного
добавляет в ядро функциональность - "работа с сокетами DIVERT" и мескарадинг какойто тут вообще не причемДАЛЕЕ
"IPFIREWALL_VERBOSE_LIMIT=10 ограничивает максимальное число записей, которые могут быть сделаны в секунду" - ГОНИВО
не в секунду а до resetlogoptions IPFIREWALL_VERBOSE_LIMIT=500
Limits the number of times a matching entry may be logged. This allows you to log firewall activity without the risk of syslog flooding in the event of a denial of service attack. 500 is a reasonable number to use, but may be adjusted based on your requirements.
уважаемый, не вводите "детей" в заблуждение, и прежде чем советовать комулибо использовать default_to_accept - ознакомьтесь с аспектами безопасности информационных систем
напишите как правильно построить ipfw statefull firewall + natd + default_to_deny
вот это будет интересно
Большое спасибо, статья действительно нелоха - думаю многим могла-бы пригодится.
Есть только пара вопросов
1) Зачем везде используются физические адреса, ведь удобнее альясы
external_addr="195.195.195.1"
2)Разве в pf нет маршрутизации правилами ? а rdr ?
3)Можно сюда дописать про antispoof, сдесь не рассмотрен
Да, и вопрос - почему так построены правила ?
Вроде надёжнее сначала сделать# setup a default deny policy
block in all
block out allа потом уже разрешить что нужно ?