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

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

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

Policy-based routing & FreeBSD [2009]
Как то давно у меня зашел спор с одним администратором о возможностях ipfw. Он мне долго доказывал, что фаервол туповатый и вообщем-то совсем не кошерный. Переубеждать я его не стал и как-то об этом позабылось. Я пользовался ipfw а он ipf.
Но теперь вернемся к теме. На написание статьи меня побудила одна интересная и простая с первого взгляда задача.
Имеем:
FreeBSD 7.0 release, инет от прова (замечу в данном случае одного), сеть адресов 1.1.1.192/29, естесно шлюз в этой же сети :-)
Надо:
В силу того, что сервер выполняет функции фаервола, прокси и почтосервера, захотелось разделить трафик по назначению и выделить для почтовика отдельный апишник, с заполненой обратной зоной PTR.
Решение:
Как могло показаться на первый взгляд, то что может быть проще, чем взять и использовать ipforward2, включив его в ядро? Но данное решение, естественно, моглобы существовать в разных VLSM, что в данном случае неприемлемо, ввиду сходимости сети.
Для сервера прокси выделен ip: 1.1.1.195/29, для почты ip: 1.1.1.197/29, шлюз соответственно ip: 1.1.1.193.
Листинг ifconfig:
fxp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
 options=b<RXCSUM,TXCSUM,VLAN_MTU>
 ether 00:02:b3:b0:xx:xx
 inet 1.1.1.195 netmask 0xfffffff8 broadcast 79.175.18.199
 inet 1.1.1.197 netmask 0xfffffff8 broadcast 79.175.18.199
 media: Ethernet autoselect (10baseT/UTP)
 status: active

Первое, что пришло в голову, это разделить входящий трафик, что и было сделано:
00050 allow ip from any to 1.1.1.195 dst-port 22,53,80,433,1024-65535 in via fxp1
00055 allow ip from any to 1.1.1.197 dst-port 25,110 in via fxp1
00060 allow ip from 1.1.1.195 22,53,80,433,1024-65535 to any out via fxp1
00065 allow ip from 1.1.1.197 25,110 to any out via fxp1
00090 allow ip from any to any via lo0
65535 deny ip from any to any

Входящий трафик разрешен на 1.1.1.197 только на 25 и 110 порты, т.е. почта, на 1.1.1.195 - ssh, dns, www, https, непревилегия. Исходящий же трафик прописываем соответственно.
Далее возникает логичная стенка, из-за того, что у нас одна подсеть. И независимо от того, что мы напишем в фаерволе, исходящий трафик будет идти с интерфейса, ближайшего к шлюзу, в данном случае это 1.1.1.195. ipforward вообще не помощьник, т.к. шлюз у нас один. Пришлось извращаться. Итак. Поднимаем NAT(PAT - точнее) на адресе 1.1.1.197.

/sbin/natd -a 1.1.1.197 -p 8669

Поднимается сокет 8669, может 8668 нам еще пригодится :-)
Далее конфигурим фаервол (обращайте внимание на номер правил):
00030 skipto 900 ip from me to any dst-port 25 out
00040 skipto 900 ip from any 25 to me in
00100 skipto 20000 ip from any to any
00900 divert 8669 ip from any to any via fxp1
00910 allow ip from any to any

Итого, получается нечто общее:
00010 skipto 900 ip from me to any dst-port 22 out
00020 skipto 900 ip from any 22 to me in
00030 skipto 900 ip from me to any dst-port 25 out
00040 skipto 900 ip from any 25 to me in
00050 allow ip from any to 1.1.1.195 dst-port 22,53,80,433,1024-65535 in via fxp1
00055 allow ip from any to 1.1.1.197 dst-port 25,110 in via fxp1
00060 allow ip from 1.1.1.195 22,53,80,433,1024-65535 to any out via fxp1
00065 allow ip from 1.1.1.197 25,110 to any out via fxp1
00070 allow ip from any to 192.168.1.2 in via fxp0 (LAN)
00080 allow ip from 192.168.1.2 to any out via fxp0 (LAN)
00090 allow ip from any to any via lo0
00100 skipto 20000 ip from any to any
00900 divert 8669 ip from any to any via fxp1
00910 allow ip from any to any
65535 deny ip from any to anу

В общем то имеем полное разделение трафика (входящего и исходящего), исключая тем самым попадания ip в black list.



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

Beastie

Друзья сайта

Статистика

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

Copyright MyCorp © 2024