Привет всем! Помогите разрешить следующую проблему. Есть шлюз FreeBSD c реальным IP. Есть сайт на машине в локалке с серым адресом 172.16.0.20. Надо чтоб сайт все могли видеть. Ну мир видит, т.к. сделал следущее:rc.conf
natd_interface=внешний ифейс
natd_flags="-redirect_port tcp 172.16.0.20:80 80"rc.firewall
$fwcmd add divert natd all from any to ${oip} in via ${natd_interface}
$fwcmd add divert natd all from 172.16.0.20 to any out via ${natd_interface}
$fwcmd add allow all from any to 172.16.0.20
$fwcmd add allow all from 172.16.0.20 to anyА вот локалка не видит, т.к. ей прокся, которая стоит на шлюзе отдает локальный сайт, который, тоже стоит на этом же шлюзе (он только для внутреннего пользования).
Т.е. как бы исходящие пакеты на внешний интерфейс, надо как то обратно на него загонять? Или я не прав, может не в этом дело?
Подскажите.
>Привет всем! Помогите разрешить следующую проблему. Есть шлюз FreeBSD c реальным IP.
>Есть сайт на машине в локалке с серым адресом 172.16.0.20. Надо
>чтоб сайт все могли видеть. Ну мир видит, т.к. сделал следущее:
>
>
>rc.conf
>natd_interface=внешний ифейс
>natd_flags="-redirect_port tcp 172.16.0.20:80 80"
>
>rc.firewall
>$fwcmd add divert natd all from any to ${oip} in via ${natd_interface}
>
>$fwcmd add divert natd all from 172.16.0.20 to any out via ${natd_interface}
>
>$fwcmd add allow all from any to 172.16.0.20
>$fwcmd add allow all from 172.16.0.20 to any
>
>А вот локалка не видит, т.к. ей прокся, которая стоит на шлюзе
>отдает локальный сайт, который, тоже стоит на этом же шлюзе (он
>только для внутреннего пользования).
>Т.е. как бы исходящие пакеты на внешний интерфейс, надо как то обратно
>на него загонять? Или я не прав, может не в этом
>дело?
>Подскажите.
По поводу FreeBSD и Squidа ничего сказать немогу, я линухом занимаюсь, а Sqiud не юзаю. Но может поможет описание принципов работы через Firewall.https://www.opennet.ru/docs/RUS/iptables/index.html#DNATTARGET
там после описания действия изложено решение такой прорблемы, правда через firewall.
Может отслеживать обращения к шлюзу с внутреннего интерфейса на его внешний айпи порт 80 и пробрасывать????? Если не прав, то поправьте самому некогда проверить, и конечно в этом случае жутко извиняюсь (новичок я!!!!)!!!!
$fwcmd add divert natd all from not ${local_net} to ${oip} in via ${natd_interface}
$fwcmd add divert natd all from 172.16.0.20 to not ${local_net} out via ${natd_interface
Да и вообще, неплохо бы на локальные сайты ходить без прокси.
>Да и вообще, неплохо бы на локальные сайты ходить без прокси.Правила, хоть и стали более точными, но проблему не решили. А как средствами сервера заставить ходить без прокси?
>>Да и вообще, неплохо бы на локальные сайты ходить без прокси.
>
>Правила, хоть и стали более точными, но проблему не решили. А как
>средствами сервера заставить ходить без прокси?
Средствами сервера наверное никак....function FindProxyForURL(url, host) {
if (isPlainHostName(host))
return "DIRECT";if (shExpMatch(host, "внутренняя сеть")||
shExpMatch(host, "внешний ip")||
shExpMatch(host, "локалхост"))
return "DIRECT";if (dnsDomainIs(host,"домен")||
dnsDomainIs(host,"доменное имя2")
return "DIRECT";if (!isResolvable(host))
return "DIRECT";return "PROXY squid.domain.ru:3128; DIRECT";
}это помещается в файлик с расширением *.pac и выкладывается на веб. Клиенты прописывают у себя Автоматическое обнаружение прокси и указывают линк на скрипт.
Кстати, вообще не очень понятно как у вас человек попадает на локальный сайт. Смотрите на httpd.conf, смотрите на виртуальные хосты. Апач не должен отдавать myweb.lan если вы идете на myweb.ru, даже если они висят на одном адресе и на одном порту, прокся тут не причем....
>Кстати, вообще не очень понятно как у вас человек попадает на локальный
>сайт. Смотрите на httpd.conf, смотрите на виртуальные хосты. Апач не должен
>отдавать myweb.lan если вы идете на myweb.ru, даже если они висят
>на одном адресе и на одном порту, прокся тут не причем....
>Прокси не причем - не спорю.
А как он попадает на локальный сайт шлюза мне тоже не понятно.
В апаче слущается только внутрений итерфейс, виртуальных хостов нет.
>>Кстати, вообще не очень понятно как у вас человек попадает на локальный
>>сайт. Смотрите на httpd.conf, смотрите на виртуальные хосты. Апач не должен
>>отдавать myweb.lan если вы идете на myweb.ru, даже если они висят
>>на одном адресе и на одном порту, прокся тут не причем....
>>
>
>Прокси не причем - не спорю.
>А как он попадает на локальный сайт шлюза мне тоже не понятно.
>
>В апаче слущается только внутрений итерфейс, виртуальных хостов нет.Ну так создайте виртуальные хосты, пропишите в днс
external_ip virtual_host1(внешний сайт)
internal_ip virtual_host2(внутрений сайт)и все, все обращение к external_ip 80 заворачиваете на вебсервер, он по заголовку (virtual_host1) выдает внешний сайт
внутренние пользователи при обращении в внешнему сайту пойдут наравне со внешними через прокси, а при обращеннии к внутреннему сайту в обход фаервола на запрос virtual_host2 будут получать внутренний сайт
Спасибо за советы. Видимо так и придется сделать.