Начну тему наверно все-таки с извинения за уже избитый вопрос в интернете: «Почему у меня не работает проброс портов?»… И все таки он у меня не работает...
Вкратце о конфигурации сети:
Есть шлюз (компьютер) под управлением Windows Serwer 2008 с двумя сетевыми картами. На одной карте статический белый IP, смотрящий в мир, на второй карте 192.168.0.100 с маской 255.255.255.0 Имеется локальная сеть 192.168.0. с кучей компьютеров (далее сеть №1). К этой сети подключен компьютер с FreeBSD 9.0 (на котором и собираюсь пробрасывать порты) с двумя сетевыми картами re1 с IP 192.168.0.210 смотрящей в сеть №1 (типа внешняя) и re2 с IP 192.168.20.210 которая смотрит в другую сеть 192.168.20. (далее сеть №2) с небольшой группой компьютеров, которые прекрасно выходят в интернет. В сети №2 есть компьютер с IP-адресом 192.168.20.2, который получает по DHCP с привязкой к MAC-адресу (в общем это у него постоянный IP), на котором поднят WEB-сервер.
Задача: пробросить порты, чтобы клиенты из сети №1 заходили по ссылке в браузере http://192.168.0.210:8080 и попадали на WEB-сервер из сети №2.
Ниже привожу примеры файлов конфигурации. Также хочу заметить, что пробовал конфигурации с http://www.xakep.ru/post/54483/ , http://mdex-nn.ru/page/probros-portov-v ... w-nat.html , http://how-it.ru/public/root/232-freebs ... z_nat.html , http://likeunix.ru/freebsd-ipfw-natd/, частично с http://freebsd.3dn.ru/publ/redirekt_por ... 18-1-0-994 , а также с http://forum.lissyara.su/viewtopic.php?f=8&t=22695 любезно предоставленным vlaryk, естественно со свими данными, и еще очень много-много страниц из Рунета, посвещенных этой теме, но, к сожалению, у меня ничего не получилось.
В качестве эксперимента пробовал файл rc.conf со строчкой firewall_type=”OPEN” дабы исключить какую бы то ни было ошибку в правилах IPFW, но это тоже не помогло.
Подскажите пожалуйста, что я делаю не так и что и где нужно дописать?
Операционная система FreeBSD 9.0
Файл rc.conf
Код: Выделить всё
hostname=”FreeBSD”
ifconfog_re1=” inet 192.168.0.210 netmask 255.255.255.0”
ifconfog_re2=” inet 192.168.20.210 netmask 255.255.255.0”
gateway_enable=”YES”
firewall_enable=”YES”
firewall_script=”/etc/ipfw.rules”
natd_enable=”YES”
natd_interface=”re1”
natd_flags=”-f /etc/natd.conf
defaultrouter=”192.168.0.100”
sshd_enable=”YES”
dhcpd_enable=”YES”
dhcpd_ interface=re2
nmbd_ enable=”YES”
smbd_ enable=”YES”
dumpdev=”AUTO”
(здесь убраны правила редиректа портов т.к. все равно не работают.)
Код: Выделить всё
ipfw -q -f flush
LanOut=”re1”
LanIn=”re2”
IpOut=”192.168.0.210”
IpIn=”192.168.20.210”
dns1="217.12.81.129"
dns2="217.12.81.131"
cmd="ipfw -q add"
ks="keep-state"
skip="skipto 800"
$cmd 005 allow all from any to any via $LanIn
$cmd 010 allow all from any to any via lo0
$cmd 014 divert natd ip from any to any in via $LanOut
$cmd 015 check-state
$cmd 020 $skip tcp from any to 217.12.81.129 53 out via $LanOut setup $ks
$cmd 021 $skip tcp from any to 217.12.81.131 53 out via $LanOut setup $ks
$cmd 040 $skip tcp from any to any 80 out via $LanOut setup $ks
$cmd 050 $skip tcp from any to any 443 out via $LanOut setup $ks
$cmd 060 $skip tcp from any to any 25 out via $LanOut setup $ks
$cmd 061 $skip tcp from any to any 110 out via $LanOut setup $ks
$cmd 070 $skip tcp from me to any out via $LanOut setup $ks uid root
$cmd 080 $skip icmp from any to any out via $LanOut $ks
$cmd 090 $skip tcp from any to any 37 out via $LanOut setup $ks
$cmd 100 $skip tcp from any to any 119 out via $LanOut setup $ks
$cmd 110 $skip tcp from any to any 22 out via $LanOut setup $ks
$cmd 120 $skip tcp from any to any 43 out via $LanOut setup $ks
$cmd 130 $skip udp from any to any 123 out via $LanOut $ks
$cmd 301 deny all from 172.16.0.0/12 to any in via $LanOut
$cmd 302 deny all from 10.0.0.0/8 to any in via $LanOut
$cmd 303 deny all from 127.0.0.0/8 to any in via $LanOut
$cmd 304 deny all from 0.0.0.0/8 to any in via $LanOut
$cmd 305 deny all from 169.254.0.0/16 to any in via $LanOut
$cmd 306 deny all from 192.0.2.0/24 to any in via $LanOut
$cmd 307 deny all from 204.152.64.0/23 to any in via $LanOut
$cmd 308 deny all from 224.0.0.0/3 to any in via $LanOut
$cmd 315 deny tcp from any to any 113 in via $LanOut
$cmd 320 deny tcp from any to any 137 in via $LanOut
$cmd 321 deny tcp from any to any 138 in via $LanOut
$cmd 322 deny tcp from any to any 139 in via $LanOut
$cmd 323 deny tcp from any to any 81 in via $LanOut
$cmd 330 deny all from any to any frag in via $LanOut
$cmd 332 deny tcp from any to any established in via $LanOut
$cmd 370 allow tcp from any to me 80 in via $LanOut setup limit src-addr 2
$cmd 380 allow tcp from any to me 22 in via $LanOut setup limit src-addr 2
$cmd 399 deny icmp from any to any in via $LanOut
$cmd 800 divert natd ip from any to any out via $LanOut
$cmd 801 allow ip from any to any
$cmd 999 deny log all from any to any
Файл natd.conf
Код: Выделить всё
use_sockets yes
same_ports yes
unregistered_only yes
interface re1 (внутренний сетевой интерфейс)
redirect_port tcp 192.168.20.2:80 8080
Подозреваю, что приписка в источние http://how-it.ru/public/root/232-freebs ... z_nat.html говоряшая: «P.S. Распространенная ошибка - пробовать рабоать с пробросом портов изнутри локальной сети - т.е. с серых адресов. Работать не будет - ибо трафик должен прилетать из интернета на сетевую карту, смотрящую во-вне. Поэтому изнутри Вашей же сети проброс портов банально не проверить.», Но ведь у меня получается физически две разные подсети пусть даже и серые. Или FreeBSD пусть даже и 9.0 обязательно нужен «белый» IP-адрес на внешнем интерфейсе? Тогда возникает вопрос: а как FreeBSD различает белый адрес от серого? Ведь может же это быть «белый» адрес за серой сетью?
Помогите пожалуйста, кто чем сможет!
Заранее всем благодарен за любые Ваши советы и примеры!
С уважением
Илья