Решено: Маршрутизация (Доступ к веб серверу локально)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Dzam
Сообщения: 56
ОС: Kubuntu 9.10, ArchLinux

Решено: Маршрутизация

Сообщение Dzam »

Структура сети:
Комп1(Далее С1):
1. ОС:Linux Ubuntu 8.10
2. ПО:apache2, php5, mysql, joomla
3. Интерфейсы: eth1 192.198.1.2 (через него идет инет. АДСЛ модем 192.168.1.1), eth0 192.168.2.1 (интеренет уходит на Комп2. Адрес 192.168.2.3)
Веб сервер на С1 работает нормально.

Комп2(Далее С2):
1. ОС: "Не линукс"
2. Интерфейсы: eth1 192.168.2.3 (через него приходит инет с линукса), eth0 192.168.0.1 (интернет идет в локалку через свич)

Локалка:
1. Все компы "Не линукс"

Интернет есть везде. Проблема в том что веб сервер извне работает нормально. ФТП извне работает нормально. По SSH на Линукс сервер захожу. В локалке ни на С2 ни с любого другого компа не работает ФТП. При попытке зайти на внешний адрес веб сервера попадаем на АДСЛ модем (с любого компа кроме С1), то же самое происходит при попытке подключиться к ФТП.

Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: Маршрутизация

Сообщение Ленивая Бестолочь »

Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.

как понятно - есть подозрение на hosts? по ай-пи работает, чтоли?
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Dzam
Сообщения: 56
ОС: Kubuntu 9.10, ArchLinux

Re: Решено: Маршрутизация

Сообщение Dzam »

Ленивая Бестолочь писал(а):
18.03.2009 11:26
Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.

как понятно - есть подозрение на hosts? по ай-пи работает, чтоли?

Если в локалке набрать 192.168.2.1 то попадаем на веб сервер, но не работают css, так как в настройках configuration.php Joomla в качестве переменной LiveSite стоит реальный внешний адрес, и все ссылки работают через этот адрес. Ну и соответсвенно не работают ссылки на странице.
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: Решено: Маршрутизация

Сообщение danger08 »

Dzam писал(а):
18.03.2009 11:22
Интернет есть везде. Проблема в том что веб сервер извне работает нормально. ФТП извне работает нормально. По SSH на Линукс сервер захожу. В локалке ни на С2 ни с любого другого компа не работает ФТП. При попытке зайти на внешний адрес веб сервера попадаем на АДСЛ модем (с любого компа кроме С1), то же самое происходит при попытке подключиться к ФТП.

Что может быть? Есть подозрение на Hosts, но даже не знаю что еще можно попробовать.

Грабли классические, объяснение сути проблемы (и один из способов решения) есть в IPTables Tutorial (6.5.2. Действие DNAT), и еще возможно, не совсем правильно сконфигурирован проброс портов на ADSL-модеме.

Вообще, приведенный в мануале способ решения мне не нравится по ряду причин (одна из которых - сокрытие реального адреса источника). Рекомендую для локалки завести отдельную DNS-зону, в которой вашим "внешним" доменным именам сопоставлены локальные IP-адреса. Т.е. к вашим ресурсам, находящимся в локальной сети, из локалки обращаться по локальным адресам (к модему и дальше не ходить :rolleyes:
Тогда обращение по доменным именам у вас будет работать без проблем, и для локальных пользователей, и при доступе извне.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
Dzam
Сообщения: 56
ОС: Kubuntu 9.10, ArchLinux

Re: Решено: Маршрутизация

Сообщение Dzam »

danger08 писал(а):
18.03.2009 12:00
Грабли классические, объяснение сути проблемы (и один из способов решения) есть в IPTables Tutorial (6.5.2. Действие DNAT), и еще возможно, не совсем правильно сконфигурирован проброс портов на ADSL-модеме.


Проброс портов на АДСЛ модеме прост. Внешние адреса с 0.0.0.0 по 255.255.255.255 портов с 80 (для HTTP, для FTP и для SSH тоже соответсвующие) по 80, на адрес 192.168.1.2 на порт 80.
Честно говоря до меня не совсем доходит как тоакое может происходить. Вводя внешний ИП адрес мы должны попадать во внешнюю сеть, т.е. на АДСЛ модем, а модем нас соответсвенно должен выкинуть в инет и вернуть ответ (хотя ответ находится в локалке). Просто не понятно как при такой структуре сети можно с Адреса 192.168.0.10 попасть на 192.168.1.1... Куда рыть даже не знаю.
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: Решено: Маршрутизация

Сообщение danger08 »

Dzam писал(а):
18.03.2009 12:19
danger08 писал(а):
18.03.2009 12:00
Грабли классические, объяснение сути проблемы (и один из способов решения) есть в IPTables Tutorial (6.5.2. Действие DNAT), и еще возможно, не совсем правильно сконфигурирован проброс портов на ADSL-модеме.


Проброс портов на АДСЛ модеме прост. Внешние адреса с 0.0.0.0 по 255.255.255.255 портов с 80 (для HTTP, для FTP и для SSH тоже соответсвующие) по 80, на адрес 192.168.1.2 на порт 80.
Честно говоря до меня не совсем доходит как тоакое может происходить. Вводя внешний ИП адрес мы должны попадать во внешнюю сеть, т.е. на АДСЛ модем, а модем нас соответсвенно должен выкинуть в инет и вернуть ответ (хотя ответ находится в локалке). Просто не понятно как при такой структуре сети можно с Адреса 192.168.0.10 попасть на 192.168.1.1...

Предполагаю, что ваш модем не может делать проброс с портов, при доступе с локального интерфейса (результирующий запрос идет снова через локальный интерфейс). Некоторые D-Link-и - вообще не отслеживают пробросы с локального на локальный интерфейс, и правила NAT там работают для пары локальный-глобальный (SNAT) и глобальный-локальный (DNAT).

Dzam писал(а):
18.03.2009 12:19
Куда рыть даже не знаю.

Универсальное решение (работающее в любой ситуации) я вам предложил.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
Dzam
Сообщения: 56
ОС: Kubuntu 9.10, ArchLinux

Re: Решено: Маршрутизация

Сообщение Dzam »

Dzam писал(а):
18.03.2009 12:19
Куда рыть даже не знаю.

Универсальное решение (работающее в любой ситуации) я вам предложил.


Если честно, трудно представляю как работает DNAT :), даже после прочтения статьи (не всей конечно). НО!!! Указав в Hosts
192.168.2.1 ВнешнийАдресСайта
Мы из локалки видим сайт, но все также как и при обращении из локалки по 192.168.1.2. И что можно прописать для DNATA? Чтобы все пакеты отправленные на внешний адрес шли на eth1 192.168.2.1? Тогда как с точки зрения Joomla будет выглядет LiveSite (Реальный адрес), относительно которого работают адреса всех страниц и CSS?
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: Решено: Маршрутизация

Сообщение danger08 »

Dzam писал(а):
18.03.2009 13:26
Dzam писал(а):
18.03.2009 12:19
Куда рыть даже не знаю.

Универсальное решение (работающее в любой ситуации) я вам предложил.


Если честно, трудно представляю как работает DNAT :), даже после прочтения статьи (не всей конечно).

А как вы тогда делали этот самый проброс на модеме, не представляя как он работает? :rolleyes:

Dzam писал(а):
18.03.2009 13:26
Указав в Hosts
192.168.2.1 ВнешнийАдресСайта
Мы из локалки видим сайт, но все также как и при обращении из локалки по 192.168.1.2.

Можете у себя везде в hosts прописать "192.168.2.1 ВнешнийАдресСайта", а можно поднять DNS-сервер и сделать там зону "ВнешнийАдресСайта".

И все, локальные клиенты видят "ВнешнийАдресСайта" как локальный (не ходят за ним через модем и прочие дебри), а клиенты извне не используют ваш внутренний DNS-сервер - для них "ВнешнийАдресСайта" - это ваш модем, который перебрасывает их на HTTP-сервер в вашей локалке.

Если в вашей Joomla LiveSite (Реальный адрес) является "ВнешнийАдресСайта" (т.е. например yourcompany.ru), то проблем не возникнет, потому что в HTTP-заголовках везде будут присутствовать нужное имя хоста - yourcompany.ru, и при обращении с локалки, и при обращении извне.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
Dzam
Сообщения: 56
ОС: Kubuntu 9.10, ArchLinux

Re: Решено: Маршрутизация

Сообщение Dzam »

Можете у себя везде в hosts прописать "192.168.2.1 ВнешнийАдресСайта", а можно поднять DNS-сервер и сделать там зону "ВнешнийАдресСайта".

"Везде" это означает на всех компах локальной сети?
И где можно про DNS прочитать в разрезе моих задач? Или может вы подскажите как это организовать? если не трудно/ хотя бы в общих чертах/
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: Решено: Маршрутизация

Сообщение danger08 »

Dzam писал(а):
18.03.2009 15:44
Можете у себя везде в hosts прописать "192.168.2.1 ВнешнийАдресСайта", а можно поднять DNS-сервер и сделать там зону "ВнешнийАдресСайта".

"Везде" это означает на всех компах локальной сети?

да, на всех компах, с которых хотите иметь доступ к "ВнешнийАдресСайта" как к внутреннему ресурсу 192.168.2.1.
а можете автоматизировать эту задачу с hosts, и поднять в локальной сети DNS-сервер с зоной "ВнешнийАдресСайта", и назначить его для клиентов локальной сети (при этом прописать для него родительскими серверами те, которые у вас сейчас назначены в DNS).

Dzam писал(а):
18.03.2009 15:44
И где можно про DNS прочитать в разрезе моих задач? Или может вы подскажите как это организовать? если не трудно/ хотя бы в общих чертах/

Да любой мануал на тему, "поднимаем свой DNS-сервер", и поиском по форуму.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
Dzam
Сообщения: 56
ОС: Kubuntu 9.10, ArchLinux

Re: Решено: Маршрутизация

Сообщение Dzam »

Вообщем все решилось очень просто: :)

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.3 -j MASQUERADE
Все кто идет с 192.168.2.3 (Наверно просят инет) попадают на eth1 (Как раз туда куда надо)
sudo iptables -t nat -A PREROUTING -i eth0 -d 90.151.61.181 -j DNAT --to 192.168.1.2
Все кто приходит с eth0 (локальная сеть) и пытаются попасть на 90.151.61.181 идут на.... на 192.168.1.2 (это локальный адрес сервера)
Спасибо сказали: