Начал делать фаир. Как на сайте "Штатный фаирволл"
Нечего не получилось. В результате пришел к следующему конфигу который меня вообще не устраивает.
Надо добиться следующего:
Есть интерфейс A который подключен к провайдеру rl0( )rc.conf
defaultrouter="212.56.205.193"
gateway_enable="YES"
ifconfig_rl0="inet 212.56.205.194 netmask 255.255.255.252"
rc.firewall
LanOut0="rl0"
NetOut0="212.56.205.192/30"
IpOut0="212.56.205.194"
Есть интерфейс B. Сеть из 16 реальных IP для серверов.
rc.conf
ifconfig_vr0="inet 212.56.205.177 netmask 255.255.255.240"
rc.firewall
LanOut="vr0"
NetOut="212.56.205.176/28"
IpOut="212.56.205.177"
Есть внутренние сети C,D
rc.conf
ifconfig_rl2="inet 172.16.2.254 netmask 255.255.255.0"
ifconfig_rl3="inet 172.16.3.254 netmask 255.255.255.0"
rc.firewall
LanIn2="rl2"
NetIn2="172.16.2.0/24"
LanIn3="rl3"
NetIn3="172.16.3.0/24"
Задача:
Сети C и D должны ходить в интернет через нат используя интерфейс B и чтоб с наружи был виден IP 212.56.205.177.
Сеть реальных IP должна ходить в интернет сама по себе (без ната и т.д.)
----------------------------------
В чем проблема у меня вот мой конфиг, который надо переделать но ума не приложу как.
/etc/rc.firewall
#!/bin/sh
FwCMD="/sbin/ipfw"
LanOut="vr0"
NetOut="212.56.205.176/28"
IpOut="212.56.205.177"
LanOut0="rl0"
NetOut0="212.56.205.192/30"
IpOut0="212.56.205.194"
LanIn2="rl2"
NetIn2="172.16.2.0/24"
LanIn3="rl3"
NetIn3="172.16.3.0/24"
${FwCMD} -f flush
${FwCMD} -f pipe flush
${FwCMD} -f queue flush
${FwCMD} add divert natd all from any to any via ${LanOut0}
#${FwCMD} add divert natd all from ${LanIn3} to any via ${LanOut0}
${FwCMD} add allow all from any to any
-----------------
/etc/rc.conf
natd_enable="YES"
natd_interface="rl0"
natd_flags="-m -u"
----------------------
Если я использую ${FwCMD} add divert natd all from any to any via ${LanOut0} нат работает, но естественно через интерфейс А "212.56.205.194. Натятся все сетки и реальные тоже.
natd_flags="-m -u" флаг -u не работает почему-то.
Если я в rc.conf ставлю natd_interface="vr0" и использую тоже правило только ${LanOut0} меняю на
${LanOut}. ${FwCMD} add divert natd all from any to any via ${LanOut} - не работает ничего. ТЕ. в интернет никто попасть из сетей не может.
Если я использую natd_interface="rl0", но пишу в фаире #${FwCMD} add divert natd all from ${LanIn3} to any via ${LanOut0} - нат для сети LanIn3="rl3" NetIn3="172.16.3.0/24" не работает.
Если я использую natd_interface="vr0", и пишу в фаире #${FwCMD} add divert natd all from ${LanIn3} to any via ${LanOut0} - нат для сети LanIn3="rl3" NetIn3="172.16.3.0/24" также не пашет.
Я бы хотел сделать в фаирволе правила нат для каждой из внутрених сетей. ТК. Будет ещё один интерфейс к провайдеру, для местного траффика. И одна из сетей должна будет на него переехать.
Но это уже другая пестня, когда доберусь до этого буду спрашивать если не получится.
Скажите, что я не так делаю? ОС FreeBSD 6.2 В ядро вкомпилил всё что надо.
Заранее спасибо. При встрече - ставлю ПИВО!