| ||||||||||
Ключевые слова: freebsd, pf, firewall, nat, (найти похожие документы)
From: Кравчук Андрей <krava13@gmail.com.> Newsgroups: email Date: Mon, 8 Jun 2009 17:02:14 +0000 (UTC) Subject: PBR на freeBSD посредством pf Доступ к внутренним ресурсам сети с нескольких внешних IP адресов ipnat pf и ipfilter+ipmon - это совершенно разные вещи (я наивно полагал, что натится все через ipnat, а, файрволится через pf). Короче ipnat нам не нужен. Конфигурационный файл pf - /etc/pf.conf, a pf.rules. Редактируй только его, то не будет работать :) ipfw + natd - использовать не рекомендую из-за запутанности правил и связки natd + ipfw. При работе с ipfw+natd ttl вырастал до бешенных резмеров что привело к тому, что пинги ходили с задержками в 2-3 секунды Собственно, установка: Ядро device pf device pflog device pfsync options ALTQ Подключение к системе в файле /etc/rc.conf pf_enable="YES" Настройка правил pf. Сохраняем на всякий случай оригинальный файл настроек pf: cp pf.conf pf.conf.orig удаляем все из pf.conf Правила /etc/pf.conf web_server="192.168.100.55" #наш веб сервер, к которому нужно сделать доступ из двух внешних IP lan_net="192.168.100.0/24" # внутрення сеть, в которой находится веб-сервер int_if="rl2" # внутренний интерфейс (он один для всех) ext_if1="nve0" # первый внешний интерфейс ext_if2="rl3" #второй внешний интерфейс ext_gw1="192.168.0.15" # первый gw для первого внешнего интерфейса ext_gw2="192.168.2.1" # второй gw для второго внешнего интерфейса # первым делом редиректим все, что идет на 80-й порт (www) с первого интерф. на вебсервер на 80-й порт rdr on nve0 inet proto tcp to nve0 port www -> $web_server port 80 # теперь редиректим все со второго внешнего интерфейса на навебсервер на 80-й порт. rdr on $ext_if2 inet proto tcp to $ext_if2 port www -> $web_server port 80 #rdr on rl2 inet proto tcp from any to any port www -> 127.0.0.1 port 3128 # натим первый канал на первом внешнем интерфейсе nat on $ext_if1 inet from any to any -> { $ext_if1 } # натим второй внешний канал на втором внешнем интефейсе nat on $ext_if2 inet from any to any -> { $ext_if2 } # Ставим вот такую связку (2 правила) для того, чтобы пакеты у # нас возвращались не по default-route, а туда куда нам нужно. В # данном случае к пользователю, который # запрашивает доступ к web серверу через второй внешний интерфейс. pass in quick on $int_if from $lan_net to $int_if pass in on $int_if route-to ($ext_if2 $ext_gw2) from $lan_net to any Используемая литература. 1. Огненный блокпост, Хакер № 099, стр 4. http://www.xakep.ru/magazine/xa/099/154/1.asp - Разница между файрволлами 2. Policy base routing на основе pf. Сообщение от Запуниди Сергей email on 23-Авг-07, 20:59 на Opennet.ru. http://www.opennet.ru/openforum/vsluhforumID1/63044.html - Смотри сообщение № 3, там все доступно написано 3. Мои вопросы на "Форуме системных администраторов" http://forum.sysfaq.ru/index.php?showtopic=19127 - как все начиналось и к чему пришло Благодарности Incognito http://forum.sysfaq.ru/index.php?showuser=6 o.k. http://forum.sysfaq.ru/index.php?showuser=2768 Сергей Супрунов (amsand at rambler.ru) Запуниди Сергей (zap at proc.ru)
| ||||||||||
|
|
|