Документация по ОС FreeBSD Пятница, 19.04.2024, 12:44
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
IPFW [58]

Главная » Статьи » FireWall » IPFW

PBR with pf over FreeBSD [2009]
1. ipnat, pf и ipfilter+ipmon - это совершенно разные вещи (я наивно полагал, что натится все через ipnat, а, файрволится через pf). Короче ipnat нафик не нужен!
1.1 конфигурационный файл pf - /etc/pf.conf, a не pf.rules. Редактируй только его, то не будет работать :)

2. ipfw + natd - отстой, использовать не рекомендую из-за запутанности правил и связки natd + ipfw

3. при извращении с ipfw+natd ttl вырастал до бешенных резмеров что привело к тому, что пинги ходили с задержками в 2-3 секунды

4. Собственно, установка:

4.1 Ядро
device pf
device pflog

4.2 Подключение к системе

в файле /etc/rc.conf   
pf_enable="YES"

4.3 Настройка правил pf.

4.3.1 Сохраняем на всякий случай оригинальный файл настроек pf:
  
cp pf.conf pf.conf.orig

4.3.2  удаляем все из pf.conf

4.3.3 Правила /etc/pf.conf
   
web_server="192.168.100.55" 
#наш веб сервер, к которому нужно сделать доступ из двух внешних ай-пи
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 для второго внешнего интерфейса


rdr on ext_if1 inet proto tcp to ext_if1 port www tag 
 WEB_SERVER -> $web_server port 80
# первым делом редиректим все, что идет на 80-й порт (www) 
№ с первого интерф. на вебсервер на 80-й порт
 
rdr on $ext_if2 inet proto tcp to $ext_if2 port www tag 
 WEB_SERVER -> $web_server port 80
# теперь редиректим все со второго внешнего интерфейса на 
№ навебсервер на 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 }
# натим второй внешний канал на втором внешнем интефейсе

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
# Ставим вот такую связку (2 правила) для того, чтобы пакеты у нас 
# возвращались не по default-route, а туда куда нам нужно. В данном 
# случае к пользователю, который запрашивает доступ к web серверу 
# через второй внешний интерфейс.

5. Используемая литература.
5.1 Огненный блокпост, Хакер № 099, стр 4. http://www.xakep.ru/magazine/xa/099/154/1.asp - Разница между файрволлами
5.2 Policy base routing на основе pf. Сообщение от Запуниди Сергей email on 23-Авг-07, 20:59 на Opennet.ru. http://www.opennet.ru/openforum/vsluhforumID1/63044.html - Смотри сообщение № 3, там все доступно написано
5.3 Мои вопросы на "Форуме системных администраторов" http://forum.sysfaq.ru/index.php?showtopic=19127 - как все начиналось и к чему пришло



Источник: http://www.lissyara.su/?id=1923
Категория: IPFW | Добавил: oleg (21.04.2009) | Автор: krava13
Просмотров: 1229 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024