Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Базовая функциональность RouterOS
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Здравствуйте. Есть локальная сеть стоящая за роутером MikroTik(прошивка: MikroTik RouterOS 4.1).
Внутри этой сети, имеется 5-6 машин с вэб-мордой(в том числе и на одинаковых портах).
Есть несколько сайтов на одной машине, выполняющей роль сервера(Win7 с поднятым сервисом IIS).
Кроме того, есть мысль, поднять отдельный "сайтик" на другой машине. Обусловлено это тем, что его нагрузка довольно велика, но только в рабочее время. То-есть, уходя с работы я могу погасить эту машину и не париться, что сайт будет не доступен. С другой стороны, в рабочее время, основной сервер будет разгружен от лишнего траффика...
Как пробрасывать порты в MikroTik-е я уже давно знаю и с этим проблем нет. Проблема возникла когда я задался целью, пробросить один и тот же порт, но на разные машины. В интерфейсе NAT-rules такого не предусмотрено.... В итоге ситуация такова:

Статичный внешний IP адрес 258.165.25.125
MikroTik
1я Машина: site.one.ru:80, site2.two.com:80
2я Машина: site3.three.ua:80
3я Машина: 192.168.0.5:5000
4я Машина: 192.168.0.6:5000

Проблемы сразу две.
1)Как пробросить 80й порт на две первые машины?(там подняты сайты и три их разных домена, направляются на один и тот же статичный IP(258.165.25.125))
2)Как пробросить 5000й порт на 3ю и 4ю машины?

Второму вопросу, я кажется вижу приблизительное решение, которое однако на прямую зависит от решения первого. Как я понимаю, в принципе, мне достаточно зарегистрировать под-домены для: site.one.ru (например first.site.one.ru и second.site.one.ru) и тогда можно будет обращаться к ним по тому-же статичному внешнему ip-адресу: 258.165.25.125. И тогда, я снова возвращаюсь к первой проблеме: две машины за NATом с используемым одинаковым портом.

На просторах инэта, я прочитал вот это:
http://wiki.mikrotik.com/wiki/Multiple_Web_Servers
Ситуация вроде бы подходящая... однако первые же строчки скрипта конфигурации из этой статьи, у меня не работают. Конкретно вот здесь затык:

Код: Выделить всё

/ip web-proxy 
set enabled=yes src-address=0.0.0.0 port=8080 hostname="your.proxy" \ 
терминал ругается, что после 8080 не должно быть hostname.....
В GUI WinBox-а, я так же не нашёл этого пункта:
Изображение

Вот собственно и всё...
Помогите пожалуйста чем сможете...
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение Chupaka »

NAT тут никак не поможет, поскольку данные о hostname по соединению передаются уже после того, как соединение куда-то снатировано и установлено. поэтому остаётся какой-нибудь reverse proxy. например, установить на выделенной машине nginx или squid. или использовать встроенный в RouterOS Web Proxy :)

касательно hostname - просто удалите этот параметр из команды, он не принципиален (в последних версиях я его тоже не наблюдаю, видимо, что-то из пятой версии). вам главное понять принцип, а не тупо вводить взятые из Вики команды

к слову,все подключения веб-серверы будут видеть, естественно, с адреса роутера, но прокси (насчёт 4-1 версии не уверен) добавляет заголовок X-Forwarded-For с реальным адресом клиента

з.ы. версия 4.1 вышла более пяти лет назад, и Web Proxy в последующих версиях был много раз доработан в плане стабильности. будут интересные проблемы - подумайте об обновлении :)
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Chupaka писал(а):будут интересные проблемы - подумайте об обновлении :)
Да вот они как раз таки есть )))
Сделал вручную(через GUI) все настройки которые указаны в том скрипте, игнорируя те которых нет или которым аналога я не нашёл. Но переадресации нет..(( Траффик WebProxy намертво висит на нуле...
С обновлением прошивки тут такая штука...
У меня раньше стоял один-в-один такой же роутер. Там я обновил прошивку до последней на тот момент стабильной(дело было где то 2 года назад). По-моему какая то 6.10 или около того. Так вот с ней, у меня роутер начал время от времени подвисать по не понятной причине. При этом соответсвенно фризилась и вся локальная сеть. Разобраться с этой проблемой так и не смог... в итоге просто поставил идентичный роутер с такой же прошивкой как была до обновления, влил в него соответсвующий бэкап и сейчас всё работает... Вот теперь, побаиваясь, что проблема была именно в прошивке(хотя не исключаю совпадения по времени, выхода из строя самого роутера с моментом обновления прошивки), не очень уверен, что стоит снова наступать на те-же грабли...
И кстати... можно ли сдаунгрейдить прошивку в МикроТике?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение Chupaka »

Что клиент видит при открытии сайта извне? Какая ошибка? А то телепаты временно в отпуске...

Работает ли правило NAT redirect (растут ли счётчики)?

Снаружи доступ к порту прокси не закрыт ли фильтром файрвола?

Сдаунгрейдить - можно. Залить нужные файлы и нажать "Downgrade" в System -> Packages
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Chupaka писал(а):Что клиент видит при открытии сайта извне? Какая ошибка? А то телепаты временно в отпуске...
Сорри...
Не удаётся получить доступ к сайту
Сайт бла-бла-бла.ком не позволяет установить соединение
Chupaka писал(а):Работает ли правило NAT redirect (растут ли счётчики)?
Нет. Точно так же мертво как и в WebProxy
Chupaka писал(а):Снаружи доступ к порту прокси не закрыт ли фильтром файрвола?
8080? Похож что нет. Прикладываю файл с конфигами...
Это обычный текстовый документ с изменённым расширением, потому как txt файлы невозможно прикрепить....
MikroTik.zip
Chupaka писал(а):Сдаунгрейдить - можно. Залить нужные файлы и нажать "Downgrade" в System -> Packages
Спасибо! Попробую оживить старый роутер.. В хозяйстве пригодится))) А не подскажите, какие то особенности по прошивкам? Есть ли какая то из не самых последних, которая по каким либо причинам предпочтительнее последних?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение Chupaka »

Интернет точно приходит на ether1? Не на какой-нибудь pppoe/pptp?

Вроде на ветку bugfix жалоб особо нет :)
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Chupaka писал(а):Интернет точно приходит на ether1? Не на какой-нибудь pppoe/pptp?
Первоначальную настройку делал не я. Как точно выяснить какой порт указывать в правиле NATа?
Физически, интернет точно приходит на порт ether1. Есть так же подключение pppoe-out1. Весь траффик вроде как через него тоже ходит. Возможно в этом моя проблема?....
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение Chupaka »

Да. Значит, меняйте in-interface на pppoe-out1
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Ю-ху!! ))) Спасибо огромное. Заработало!
Меняется ли при этом нагрузка на роутер? На сколько важно кеширование? Я его сейчас отключил, субъективно ничего не изменилось..
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение Chupaka »

Ну, теоретически, если есть, что кэшировать, то роутер за этими файлами не будет обращаться к серверам :)
Думаю, лучше отключенным держать :D
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Ещё вопрос....
Согласно статье, про которую я написал в первом посте, вот эти настройки:

Код: Выделить всё

/ip proxy access 
add dst-port=80 dst-host="123.com" action=allow disabled=no
add dst-port=80 dst-host="abc.com" action=allow disabled=no
add dst-port=80 dst-host="456.com" action=allow disabled=no
add action=deny disabled=no
в моём случае, никак не влияют на ход крейсера... То-есть, хоть включены они, хоть выключены - всё работает. Всё-бы ничего.. но только я беспокоюсь за это:

Код: Выделить всё

/ip web-proxy access 
add dst-port=23-25 action=deny comment="block telnet & spam e-mail relaying" \ 
disabled=no 
add dst-port=80 action=allow comment="Enable Http Connection" disabled=no 
Эти настройки лежат там же, и если они не работают.. значит ли это, что "злоумышленники" будут иметь возможность пытаться воспользоваться моими ресурсами? В частности слать через меня ту же почту... Я попробовал по telnet подключится использую внешний ip, соединения не происходит. Но... возможно этому препятствует мой домашний роутер..
Вообщем... стоит ли мне париться из за этого?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение Chupaka »

влияют. когда первый блок добавляется - можно ходить только на обозначенные сайты (которые берутся с внутренних серверов). когда же этих правил нет - роутер работает обычным открытым прокси, т.е. можно прописать в настройках системы/браузера его адрес - и ходить в Интернет через него на любой сайт

по Telnet подключаться не надо, я так понимаю, это работает для proxy-протокола (непрозрачного проксирования): если подключиться к прокси и сказать "CONNECT чё-то-там на порт 23", то...
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Возникла проблема (((
С включенным WebProxy, роутер работает только 3-4 часа.. Потом виснет наглухо. К нему не достучаться по Winbox-у, и соответственно пропадает интернет для локальных юзеров + "снаружи" тоже невозможно попасть на наши сервера.
Как-то можно отследить от куда ноги растут? Какое то логгирование включить? Сейчас если зайти в System/Logs, отображается только текущая сессия. Как то можно просмотреть что было в прошлой сессии?
И ещё... немножко в оффтоп.. в логах видно, что по тельнету ломятся "левый" admin, root, user, administrator и т.д. и т.п. Не подскажите как их банить по IP автоматом после нескольких неудачных попыток авторизации?
Аватара пользователя
Chupaka
Сообщения: 4086
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение Chupaka »

taravasya писал(а):С включенным WebProxy, роутер работает только 3-4 часа.. Потом виснет наглухо. К нему не достучаться по Winbox-у, и соответственно пропадает интернет для локальных юзеров + "снаружи" тоже невозможно попасть на наши сервера.
именно это я и имел в виду, написав тогда:
Chupaka писал(а):з.ы. версия 4.1 вышла более пяти лет назад, и Web Proxy в последующих версиях был много раз доработан в плане стабильности. будут интересные проблемы - подумайте об обновлении :)
taravasya писал(а):Сейчас если зайти в System/Logs, отображается только текущая сессия. Как то можно просмотреть что было в прошлой сессии?
можно в System -> Logging -> Rules включить логирование на disk, а не в memory. Но не факт, что в логе будет что-то интересное
taravasya писал(а):в логах видно, что по тельнету ломятся "левый" admin, root, user, administrator и т.д. и т.п. Не подскажите как их банить автоматом после нескольких неудачных попыток авторизации?
я бы просто выключил telnet:

Код: Выделить всё

/ip service disable telnet
taravasya
Сообщения: 23
Зарегистрирован: 07 авг 2016, 20:32

Re: Порт-форвардинг с одного внешнего IP на разные домены в локальной сети

Сообщение taravasya »

Хм... Тельнет я сразу отключил. В принципе он мне и не нужен по-большому счёту(я его и раньше выключенным держал, а недавно включил, что бы проверить его доступность извне... да и забыл выключить). И вот что интересно... после его отключения перестал подвисать роутер с включённым web-прокси! Во всяком случае, на момент написания этого сообщения прошло вот уже 10 часов и полёт нормальный.
В любом случае - большое Вам спасибо за подсказки.