URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 52923
[ Назад ]

Исходное сообщение
"Тематический каталог: Интернет шлюз на FreeBSD - часть 2 (fr..."

Отправлено auto_topic , 22-Апр-09 10:23 
Обсуждение статьи тематического каталога: Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)

Ссылка на текст статьи: http://www.opennet.me/base/net/freebsd_gw3.txt.html


Содержание

Сообщения в этом обсуждении
"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено netc , 22-Апр-09 10:23 
забавно, и я тоже делал по лисяре
спасибо за еще один хороший вроде мануал
вроде все так отлично и просто и как раз то что неужно на каждый день

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено goshanecr , 22-Апр-09 10:47 
Я вот всё что можно из сервисов сую в chroot... почему бы тут с bind'ом это не сделать? Как ни как а хоть малюсенькая но доп защита.

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Dorlas , 22-Апр-09 14:22 
В FreeBSD уже с версий 6.x Bind по умолчанию сразу в chroot стартует:

freebsd:/root@[16:20]# grep "named" /etc/defaults/rc.conf

# named.  It may be possible to run named in a sandbox, man security for
named_enable="NO"               # Run named, the DNS server (or NO).
named_program="/usr/sbin/named" # Path to named, if you want a different one.
#named_flags="-c /etc/namedb/named.conf" # Uncomment for named not in /usr/sbin
named_pidfile="/var/run/named/pid" # Must set this in named.conf as well
named_uid="bind"                # User to run named as
named_chrootdir="/var/named"    # Chroot directory (or "" not to auto-chroot it)
named_chroot_autoupdate="YES"   # Automatically install/update chrooted
                                # components of named. See /etc/rc.d/named.
named_symlink_enable="YES"      # Symlink the chrooted pid file

Остальные сервисы можно запихнуть в Jail-ы (делал неоднократно, работает хорошо (VSFTPD, Samba, Squid, связка FAMP и прочие).

Потерю производительности при использовании Jail заметить очень трудно - на глаз не видно точно :)


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено goshanecr , 23-Апр-09 11:04 
>Остальные сервисы можно запихнуть в Jail-ы (делал неоднократно, работает хорошо (VSFTPD, Samba,
>Squid, связка FAMP и прочие).
>
>Потерю производительности при использовании Jail заметить очень трудно - на глаз не
>видно точно :)

А можно попросить поподробней про jail, можно ли как-то автоматизировать создание окружения для jail'а чтобы при обновлении портов, и системы всё это не надо было руками пересобирать (различные библиотеки копировать и т.п. ) или просто как с минимумом трудозатрат это сделать?
Если не поподробней, то хоть ссылочку бы :)


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено artemrts , 22-Апр-09 11:04 
Почитай как правильно алиасы делать.

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/co...


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено artemrts , 22-Апр-09 11:05 
И не плохо было бы мир перестроить...

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено rakis , 22-Апр-09 11:06 
Вот это "makeoptions DEBUG=-g" зачем на "боевом" сервере? :-)
P.S. pf отлично работает и модулем, пихать его в ядро не обязательно

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено rm , 22-Апр-09 11:12 
Люди ну хоть кто нибудь ну хоть когда нибудь , написал нормальный анализатор логов Pf,и перевода в человеческий вид? вывод tcpdump не предлагать:), а если еще и веб морда то былабы красота, в идеале нужна статистика по интерфейсам айпишникам и портам?

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Dorlas , 22-Апр-09 14:25 
>Люди ну хоть кто нибудь ну хоть когда нибудь , написал нормальный
>анализатор логов Pf,и перевода в человеческий вид? вывод tcpdump не предлагать:),
>а если еще и веб морда то былабы красота, в идеале
>нужна статистика по интерфейсам айпишникам и портам?

Меня вот эта штука устраивает: /usr/ports/sysutils/pflogx/

А вообще как правило нужно вот такое: tcpdump -n -e -i pflog0 'host XXX && port YYY'

Хватает за глаза.

И еще очень /usr/ports/sysutils/pftop/ пригождается - например: pftop -f "port 5190" :)


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Dorlas , 22-Апр-09 15:18 
>> в идеале
>>нужна статистика по интерфейсам айпишникам и портам?

Поставьте себе NetAMS - именно статистика по IP и портам :)


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено rm , 23-Апр-09 10:12 
/usr/ports/sysutils/pflogx/ -конвертер в xml
ага этим tcpdump -n -e -i pflog0 'host XXX && port YYY' не насобираться статистику
pftop -f "port 5190" ну а это вообще онлайн отображение соединение

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Dorlas , 23-Апр-09 10:20 
>/usr/ports/sysutils/pflogx/ -конвертер в xml
>ага этим tcpdump -n -e -i pflog0 'host XXX && port YYY'
>не насобираться статистику
>pftop -f "port 5190" ну а это вообще онлайн отображение соединение

Откуда вообще такие мысли - собирать статистику межсетевым экраном - это же не его задачи по дизайну...не для этого он разрабатывался и применяется.

Нужна статистика - ставьте программу, для этого предназначенную.

Мне, например, NetAMS и ng_ipacct+perl+mysql хватает за глаза.

С помощью первого инструмента можно быстро оценить объемы и характер трафика (+ понять, что и куда пошло).

С помощью второго можно вообще любые данные вытянуть (например сколько ping-ов послал Вася в понедельник с 10 до 12 и куда он их послал...).


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено rm , 23-Апр-09 10:22 
эх поподробнее бы если можно:)

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Dorlas , 23-Апр-09 10:26 
>эх поподробнее бы если можно:)

А что, в Google Вас заблокировали????? :) :): )

NetAMS:
http://netams.com/index.html

ng_ipacct:
http://www.opennet.me/base/net/ng_billing_letter.txt.html

Во второй - можно такие SQL-запросы напридумывать...закачаешься результатам.

Да и WEB-морду на PHP к этому делу написать не трудно (или Perl-скрипты).


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено rm , 23-Апр-09 10:20 
/usr/ports/sysutils/pflogx/ -конвертер в xml
ага этим tcpdump -n -e -i pflog0 'host XXX && port YYY' не насобираться статистику
pftop -f "port 5190" ну а это вообще онлайн отображение соединение

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено NiGeR , 22-Апр-09 13:12 
Например http://www.allard.nu/pfw/

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено iZEN , 22-Апр-09 14:41 
Заменить:
client_ports = "{ 21, 22, 25, 110, 123, 80, 443, 3128, 3129, 3389,8080, >=49151 }"

На эту (лучше и понятнее):
client_ports = "{ ftp, ssh, smtp, pop3, ntp, http, https, 3128, 3129, rdp, 8080, >=49151 }"

И ещё кучу правил можно упростить -- из нескольких сделать одно.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено rm , 22-Апр-09 15:35 
вроде как это редактор файервола , но щас поподробнее изучу

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено Touch , 22-Апр-09 15:39 
Не навязывайте новичкам PF! Потому как потом у них возникает вопрос: а как сделать так чтобы люди из этой "корпоративной" сети могли подключать наружу ВПН. Или, не дай боже, как отфильтровать пакеты по TTL при ДДОС атаке!

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено iZEN , 22-Апр-09 15:44 
>Не навязывайте новичкам PF! Потому как потом у них возникает вопрос: а
>как сделать так чтобы люди из этой "корпоративной" сети могли подключать
>наружу ВПН. Или, не дай боже, как отфильтровать пакеты по TTL
>при ДДОС атаке!

А что, "ассемблером" ipfw (или IPTABLES в Linux) это сделать легче? :)) Может и легче, но зачем?
Не нужно множить сущности. Нужно от них максимально абстрагироваться. Мыслить не процедурами, но декларациями.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено User294 , 23-Апр-09 02:17 
>Не нужно множить сущности. Нужно от них максимально абстрагироваться. Мыслить не процедурами,
>но декларациями.

Вы только декларациями и мыслите, при том - громкими :D.А благодаря вашему подходу есть риск через много лет однажды с удивлением узнать что "вон то", при том нужное и полезное, чего так хотелось сделать оказывается уже давно на самом деле было можно.Если немного мозг погреть.Да, айпитаблес - явно дальний родственник брэйнфака, зато умеет наверное почти все :).А если реально вломак думать - ну так есть куча гуйных морд и вебфэйсов для него, там вообще думать в стандартных базовых вещах не надо: вбил айпишники, порты и т.п. в формочку и вуаля.Зато как только потребуются хитрые навороты - тот же айпитаблес с его брэйнфакерским синтаксисом - выручит, после небольшого прогрева мозга, в отличие от многих других.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено Fantomas , 22-Апр-09 15:43 
А где настройки ALTQ или зачем собрали это в ядре?

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено Dorlas , 22-Апр-09 16:29 
>А где настройки ALTQ или зачем собрали это в ядре?

1) ALTQ модулем не подгружается.
2) Если ALTQ нет в ядре, то каждый раз при загрузке правил PF предупреждает (чувак, у тебя нет ALTQ)

3) Поэтому многие при сборке ядра сразу его (ALTQ) включают (чтобы не ругался) :)

4) Правила по настройке есть в статьях Сгибнева (см тут на opennet.ru) или в man pf.conf (аналог - только на English).

Вот рабочий пример с использованием CBQ:

altq on ng0 cbq bandwidth 10Mb queue { rsync, ssh, ftp, squid, other }

queue rsync   bandwidth 1Mb priority 1
queue ssh     bandwidth 1Mb priority 7 cbq(borrow)
queue squid   bandwidth 2Mb priority 6 cbq(borrow)
queue ftp     bandwidth 2Mb priority 3 cbq(borrow)
queue other   bandwidth 2Mb priority 3 cbq(default,borrow)

Очереди вешаются на нужные правила (исходящего трафика: FTP, RSYNC, SSH и прочее) :)

Например:
pass in on $if_ext_local proto tcp from any to any port 60606 modulate state queue ssh
pass in on $if_ext_local proto tcp from any to any port 873 modulate state queue rsync
pass in log on $if_ext_local proto tcp from any to any port 80 modulate state queue other
pass in on $if_ext_local proto tcp from any to any port {21 20000><21000} modulate state queue ftp
pass in on $if_ext_local proto tcp from any to any port 63128 modulate state queue squid


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено iZEN , 23-Апр-09 00:39 
>[оверквотинг удален]
>
>1) ALTQ модулем не подгружается.
>2) Если ALTQ нет в ядре, то каждый раз при загрузке правил
>PF предупреждает (чувак, у тебя нет ALTQ)
>
>3) Поэтому многие при сборке ядра сразу его (ALTQ) включают (чтобы не
>ругался) :)
>
>4) Правила по настройке есть в статьях Сгибнева (см тут на opennet.ru)
>или в man pf.conf (аналог - только на English).

Да, но пересобирать ядро с ALTQ ради того "чтобы не ругалось" как бы смешно.
Очереди обслуживания в статье не используются.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено Dorlas , 23-Апр-09 06:15 
>Да, но пересобирать ядро с ALTQ ради того "чтобы не ругалось" как бы смешно.
>Очереди обслуживания в статье не используются.

Ну кому-то смешно, а кто-то может просто смотреть в будущее и думать, что такой функционал он через некоторое время будет использовать...

Особенно смешно будет тем, кому этот функционал понадобится внезапно (а ядро будет не подготовлено) и сервер перезагружать в рабочее время начальство не дает :)


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено iZEN , 23-Апр-09 15:20 
>>Да, но пересобирать ядро с ALTQ ради того "чтобы не ругалось" как бы смешно.
>>Очереди обслуживания в статье не используются.
>
>Ну кому-то смешно, а кто-то может просто смотреть в будущее и думать,
>что такой функционал он через некоторое время будет использовать...
>
>Особенно смешно будет тем, кому этот функционал понадобится внезапно (а ядро будет
>не подготовлено) и сервер перезагружать в рабочее время начальство не дает
>:)

Вы неправы.
Если в статье не предлагаются решения по шейпингу трафика, то не нужно о нём даже говорить и чего-то куда-то вкомпилировать по принципу "а вдруг понадобится...".
Профессионализм отличается от делитантизма тем, что профессионал учитывает всё, но убирает всё лишнее и ненужное.

В данном случае, интернет-шлюз, описанный в статье, можно создать БЕЗ перекомпиляции ядра, подгружая PF модулем. А это сразу же снимает вопросы по обновлению исходников системы и времени компиляции.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено Dorlas , 23-Апр-09 15:41 
>>>можно создать БЕЗ перекомпиляции ядра

А что - Автор написал, что собирать ядро обязательно и без этого работать не будет?

Мы тут свободные системы и программы обсуждаем - кто как хочет, так и делает...и даже работать будет :)

Хотите - подгружайте модулем (я, например, так и использую - ни разу в жизни PF в ядро не вкомпиливал), хотите - компилируйте ядро...

Я же не виноват, что каждый второй написатель статей вставляет в свои творения описания, как ядро пересобирать...

>>>Если в статье не предлагаются решения по шейпингу трафика,
>>>то не нужно о нём даже говорить

Вы взяли на себя роль цензора? Как вы можете Автору указывать, что он может, а что нет...это его творчество и его право...


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f"
Отправлено Alchemist , 24-Апр-09 13:08 
>А где настройки ALTQ или зачем собрали это в ядре?

Очереди не прикручивал. Ядро собрал с запасом на будущее, плюс чтобы алерт глаза не мозолил.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено netc , 22-Апр-09 16:43 
Все таки есть предложение!
Ребят подскажите прав ли я

Если он пишет правила rdr, то он подразумеваеь, что
все машины в сети, на которые идет проброс портов имеют в качестве шлюза по умолчанию именно этот корпоративный свеже настроенный free7.1+pf сервер

Иначе не должны работать пробросы, нужно будет делать  что то типа этого

nat on $int_if proto tcp from any to $ironws port 3389 -> $int_if

прав ли я ?


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено artemrts , 22-Апр-09 17:00 
>[оверквотинг удален]
>Если он пишет правила rdr, то он подразумеваеь, что
>все машины в сети, на которые идет проброс портов имеют в качестве
>шлюза по умолчанию именно этот корпоративный свеже настроенный free7.1+pf сервер
>
>Иначе не должны работать пробросы, нужно будет делать  что то типа
>этого
>
>nat on $int_if proto tcp from any to $ironws port 3389 -> $int_if
>
>прав ли я ?

Прав.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Dorlas , 22-Апр-09 17:01 
>Если он пишет правила rdr, то он подразумеваеь, что
>все машины в сети, на которые идет проброс портов имеют в качестве
>шлюза по умолчанию именно этот корпоративный свеже настроенный free7.1+pf сервер
>Иначе не должны работать пробросы

Это должно быть очевидно каждому, кто такие вещи настраивает (иначе учите мат-часть)...


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено netc , 23-Апр-09 09:24 
И все таки to> уважаемый автор

Пожалуйста не для меня, я лично уже уяснил а для тех, кто еще не успел

Сделайте ремейк - допишите в начале статьи или перед настройкой pf об основном шлюзе иначе будут и будут продолжаться вопросы в форумах. Причем сделайте это пожирнее - плиз .


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Alchemist , 24-Апр-09 13:22 
>И все таки to> уважаемый автор
>Пожалуйста не для меня, я лично уже уяснил а для тех, кто
>еще не успел
>Сделайте ремейк - допишите в начале статьи или перед настройкой pf об
>основном шлюзе иначе будут и будут продолжаться вопросы в форумах. Причем
>сделайте это пожирнее - плиз .

"Задача: организовать шлюз, раздающий корпоративной сети Интернет
сервисы, пробросить необходимые порты на внутренние серверы с учетом
использования диапазона внешних ip адресов."
Имхо такая формулировка более предполагает использование в сети одного шлюза, нежели нескольких. Есть конечно некоторая степень неоднозначности, но она мала. ;)



"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено netc , 23-Апр-09 09:26 
(иначе учите мат-часть)...

сколько я порезал, сколько перерезал мануалов ну ни где явного упоминания об основном шлюзе не видел, поэтому будьте любезны объясните:

под "учите мать часть" вы понимаете

1. общую образованность и опыт
2. какую-то определенную статью или мануал

?


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Dorlas , 23-Апр-09 09:42 
>под "учите мать часть" вы понимаете

По этой фразой я понимаю:

1) Знание модели OSI (всех 7 уровней)
2) Изучение протокола IPv4 (в ходе его изучения информация о шлюзе по умолчанию ну просто обязана зашиться в подкорку головного мозга...)


>сколько я порезал, сколько перерезал мануалов

Вначале читать нужно не мануалы и статьи типа этой - а учебники по сетям, протоколам и т.д.

PS: В любом деле логично сначала освоить теорию и потом идти на практику...


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено jordan , 22-Апр-09 23:31 
в named.conf можно добавить кментарий для forwarders {   };
И если есть желание можно упомянуть утилиту pftop.

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Alchemist , 24-Апр-09 13:26 
>в named.conf можно добавить кментарий для forwarders {   };

Согласен, поправил.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено Ilya Evseev , 23-Апр-09 01:54 
Не проще ли заменить bind на dnsmasq?
Он способен запускаться без собственных настроек,
только с /etc/hosts и /etc/resolv.conf
Использую его везде, где не требуется пересылка зон.

"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Alchemist , 24-Апр-09 13:28 
>Не проще ли заменить bind на dnsmasq?
>Он способен запускаться без собственных настроек,
>только с /etc/hosts и /etc/resolv.conf
>Использую его везде, где не требуется пересылка зон.

Ну тогда напишите нам об этом ;)


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Ivan_83 , 16-Июн-09 14:38 
device pfsync - НЕ НУЖЕН.
Это для горячего резервирования на несколких машинах. Те когда основной маршрутизатор загибается, брат близнец подхватывает и продолжает, соединения даже не рвутся, ибо таблица состояний продублированна через pfsync.

В ряде случаев хватит и dnsmasq, заодно он DHCP раздаст.

Регэкспы сквида, где мультимедия фильтр, мне кажется можно было записать в одну-две строчки.
Кроме того не обязательно забивать два порта 3128 и 3129 чтобы получить прозрачный и обычный прокси.
Достаточно сделать так:
http_port 127.0.0.1:8080 transparent
http_port 8080
Естественно заворачивать прозрачно 80 порт на 127.0.0.1

С PF вообще выглядит всё ужасно :)
Макрос private_nets заменить на таблицу и выкинуть от туда мультикаст подсетку:
table <private_nets> const { 10.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16, 255.255.255.255/32 }
Ещё рекомендуется: set skip on lo0, с антиспуфа можете выкинуть его после этого.
Не у всех IP статический, да ещё и пул, поэтому правильнее писать:
nat on $ext_if0 inet from !($ext_if0) to any -> ($ext_if0) # Nat to internet
Ещё лучше в pass конструкции добавить quick, один фиг это переписка с ipfw правил, и работает линейно.
Ещё bsd = "192.168.0.1/32" - фигово.
table <int_if0_addr> persist const { $int_if0 } ## Address on int_if0 - шикарно :)
ещё есть макросы: self - все адреса на машине, self:network - все подсети машины, если некоторые адреса динамические то нужно брать в скобки, пример: (self)

synproxy state - вы с ума сошли!!!!!
Эта штука потребляет в два раза больше ресурсов, чем modulate state, да ещё иногда создаёт грабли, когда непонятно почему соединение не устанавливается или данные не идут.
synproxy state должна использоватся только в правилах публикации внутренних сервисов наружу, и то не всегда. Локалку в инет - модулейтом. От локал хоста и к локал хосту - вообще keep state можно ставить.

># Разрешаем нашему шлюзу полный выход с обоих интерфейсов
>        pass out on $ext_if proto tcp from any to any
>        pass out on $ext_if proto udp from any to any keep state
>        pass out on $int_if proto tcp from any to any
>        pass out on $int_if proto udp from any to any keep state

Тоже ужасно.
pass out from (self) to any flags S/SA modulate state # allow out self to anywere - красота.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Alchemist , 16-Июн-09 15:23 
>synproxy state должна использоватся только в правилах публикации внутренних сервисов наружу

собственно так и сделано
>От локал хоста и к локал хосту - вообще keep state можно ставить

В этой версии PF keep state подразумевается даже там, где он не прописан

По всему остальному - конструктивно, спасибо.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено iZEN , 16-Июн-09 18:20 
>># Разрешаем нашему шлюзу полный выход с обоих интерфейсов
>>        pass out on $ext_if proto tcp from any to any
>>        pass out on $ext_if proto udp from any to any keep state
>>        pass out on $int_if proto tcp from any to any
>>        pass out on $int_if proto udp from any to any keep state
>
>Тоже ужасно.
>pass out from (self) to any flags S/SA modulate state # allow
>out self to anywere - красота.

% pfctl -nf /etc/pf.conf
/etc/pf.conf:XY: syntax error

Лучше так:
pass out all


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено Ivan_83 , 16-Июн-09 18:58 
>>pass out from (self) to any flags S/SA modulate state # allow
>>out self to anywere - красота.
>
>% pfctl -nf /etc/pf.conf
>/etc/pf.conf:XY: syntax error
>
>Лучше так:
>pass out all

"pass out quick from (self) to any modulate state"
Без кавычек, фряха 7 и выше (ниже не тестил).
В других версиях бсд список поддерживаемых возможностей для пф может отличатся.
В DragonFlyBSD пф не полный, относительно фряхи.

В вашем случае траффик вышел, но записи в таблице состояний не создалось и как он будет возвращатся зависит от погоды и правил остальных.
Более того, с точки зрения скорости вы теряете, ибо пф ответные пакеты всё равно проверяет по таблице состояний, и только после этого пф лезет в правила.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено iZEN , 17-Июн-09 12:14 
>[оверквотинг удален]
>>>out self to anywere - красота.
>>
>>% pfctl -nf /etc/pf.conf
>>/etc/pf.conf:XY: syntax error
>>
>>Лучше так:
>>pass out all
>
>"pass out quick from (self) to any modulate state"
>Без кавычек, фряха 7 и выше (ниже не тестил).

У меня -- ошибка и на этой строчке:
pass out quick from (self) to any modulate state

% uname -rsm
FreeBSD 7.2-STABLE amd64

>В вашем случае траффик вышел, но записи в таблице состояний не создалось
>и как он будет возвращатся зависит от погоды и правил остальных.

man pf.conf
По умолчанию PF использует "flags S/SA" и "keep state" ВЕЗДЕ, если не указано иное.

В выводе команды pfctl -s all правило "pass out all" у меня разворачивается в "pass out all flags S/SA keep state".

>Более того, с точки зрения скорости вы теряете, ибо пф ответные пакеты
>всё равно проверяет по таблице состояний, и только после этого пф
>лезет в правила.

Я в курсе.


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено klim , 06-Янв-10 22:56 
В роли шлюза - вирт. машина:
FreeBSD 7.2 +
Памяти 1 гб
2 сетевые по 1 гб\сек в бридже
2 проц. по 2.4 ггц

Скорость передачи данных через нат не превышает 10 магабайт в секунду.

Статистика при передаче:
процессор 30.21% natd (пиковая цифра)
свободно памяти больше половины
snmp показывает что на сетевых интерфейсах скорость не больше 10 мегабайт в секунду

Где узкое место? Как добиться увеличения скорости?


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено artemrts , 07-Янв-10 14:07 
>В роли шлюза - вирт. машина:

  Вот в этом походу и проблема. Что за виртуалка? или это гипервизор?

  Это имеет значение.

>[оверквотинг удален]
>
>Скорость передачи данных через нат не превышает 10 магабайт в секунду.
>
>Статистика при передаче:
>процессор 30.21% natd (пиковая цифра)
>свободно памяти больше половины
>snmp показывает что на сетевых интерфейсах скорость не больше 10 мегабайт в
>секунду
>
>Где узкое место? Как добиться увеличения скорости?


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf f..."
Отправлено klim , 08-Янв-10 13:57 
>  Вот в этом походу и проблема. Что за виртуалка? или
>это гипервизор?
>
>  Это имеет значение.
>

Гипервизор - VMWare ESXi 4 (на Sun Fire X6250)
Виртуалка - FreeBSD 7.2 (2Gb RAM, 2xGLAN, 2x2.33 E5410 Intel Xeon)


"Интернет шлюз на FreeBSD - часть 2 (freebsd gateway nat pf firewall squid proxy)"
Отправлено Стас , 10-Авг-11 12:03 
Доброго времени, сделал по мануалу, все заработало. Только, пожалуй, слишком. Такое чувство что в работе вообще сквид не участвует: комментил его порты, перезапускал, интернет все равно пашет.
А хочу всего лишь написать правило, которое будет разрешать определенным пользователям доступ в интернет.
Помогите пожалуйста разобраться. Если можно, то подсткажите как сделать еще авторизацию по логину и пароль