2 Внутренних сайта на одном ip



  • Подскажите пожалуйста. Возможно ли, настроить правила pfsene, для доступа к двум внутренним сайтам.
    Имеется pfsense и один внешний ip адрес к примеру 109.52.56.23
    Локальная сеть 192.168.0.0/16
    Внутри локалки есть 2 разных сервера с разными сайтами,
    соответственно есть два разных доменных имени.
    К примеру mycompany.com и mycompan.net
    На pfsense в NAT сделал проброс на эти сайты. но происходит рандом, либо один открывется либо другой.
    Как сделать, что бы каждое доменное имя отрабатывало верно.
    При заходе на mycompane.com открывал 192.168.0.9
    А при mycompan.net открывал 192.168.15.5
    Заранее спасибо, за наводки.



  • Добрый
    Попробуйте пакет haproxy. Можно даже let's encrt прикрутить.



  • Спасибо за ответ!
    Установил, но возможно я чего-то не знаю.
    Может есть инструкция как с ним подружиться и настроить?





  • @nintendoos
    Здр
    Первое , что приходит на ум , это использовать разные порты при установлении соединения (WAN интерфейс)
    Например ,
    mycompany.com:6000 -> 192.168.0.9 ( внутренний номер порта сервера)
    mycompan.net:7000 -> 192.168.15.5 ( внутренний номер порта сервера)

    HAProxy , по-моему, все-таки немного для другого сделан



  • Спасибо за ответы. И так и так буду пробовать)
    Про идею на разные порты это хорошо, но в днс провайдера я не смогу указать ip:port)
    А про haproxy, сижу разбираюсь



  • @nintendoos
    А при чем тут DNS провайдера ?
    DNS вернет ip адрес домена и все .
    Тут вопрос решается настройками софта клиента и настройками проброса портов Вашего PFSense.

    Или нужен второй ip адрес на wan интерфейсе . Тогда каждому сайту будет соответствовать свой ip



  • У меня один внешний ип адрес.
    Вот скажите мне, как клиент будет попадать на сайт, если он введёт к примеру popa.popa.ru?
    Да на сенсе, я сделаю проброс портов, что если кто то ломиться на 10.10.10.10:7000 он попадёт куда надо) но если мы возьмём доменные адреса, то тут у меня встаёт затык. Он будет попадать на другую страницу. А это не то что мне надо.
    У меня в сети есть веб сервера с pops.ru и tot.ru и Mail.roui.com и не только. По этому и вопрос был.



  • @nintendoos
    Он введет не popa.popa.ru
    а введет в строке браузера
    popa.popa.ru:7000

    в результате браузер будет пытаться установить соединение по адресу
    109.52.56.23 на порту 7000



  • Как он это будет делать? В ручную вводить?
    Мне нужно что бы просто при открытии pops.pops.ru открывал 192.168.5.4
    И если клиент набирает popa.popa.ru открывал 192.168.14.8

    Про то что вы говорите, я так раньше делал, пока все не объеденили в одну Итить его сеть....



  • @nintendoos
    Я прекрасно понимаю , что Вам нужно
    но на этапе установления соединения Вы никак не сможете выяснить , какой домен был введен в адресную строку браузера .
    Соединение клиента с сервером устанавливается по ip адресу на определенном порту.
    Если соединение устанавливается с использованием https , то единственная точка, где можно узнать на какой сайт хотел попасть клиент , это анализ пакета ClientHello при TLS рукопожатии (поле SNI) . И все. Но тут для Вас затык , так как до того как пойдет пакет ClientHello , пройдет tcp рукопожатие (те tcp соединение уже будет установлено).

    В теории, есть гипотеза , как такое можно реализовать ( схема немного "извращенная") , но проще вводить адрес в строке браузера.



  • Я правильно Вас понял, что проще клиенту выдать сайт к примеру popa.popa.ru:7000 и на этом успокоиться?
    Я сейчас читаю про Haproxy, и там вроде реализуется то что я хочу. Но там затык в ssl, и https - который будет смотреть весь https трафик на Firewall
    Мне конечно хотелось бы в идеале решить вопрос, что бы когда клиент просто открывал страницу сразу переадресовывался туда куда нужно, либо плюнуть на сенс и поднять все на фряхе по отдельности и уже не мучать ни кого....



  • @nintendoos

    До того как пойдет ssl и https , будет пройден tcp handshake. Те соединение с каким-то из серверов будет установлено. Речь идет о пакетах 70,71,72.
    Например ,
    adcd618b-62d9-4dcc-83a2-4bb353a48e99-image.png

    Поэтому мое мнение прежнее - каждому сайту свой порт. Самое нормальное и простое решение



  • Спасибо!
    Попробую и так и почитаю про Haproxy. Если заработает через Haproxy, отпишусь тут.
    А нет, сделаю как вы предложили, хотя на данный момент у меня в принципе так и сделано....
    Но душа хочет красоты.....)



  • А если использовать http/https-переадресацию, указав в целевом URL номер порта (если такое доступно в управлении DNS)
    Это избавит клиента от необходимости вводить номер порта.

    Или обслуживать оба (и более) сайта одним HTTP-сервером?
    У апача это виртуальные хосты
    https://habr.com/en/sandbox/3533/
    Если нужен SSL
    https://losst.ru/nastrojka-virtualnyh-hostov-apache



  • К сожалению, в управлении DNS (хостинга) это не возможно
    Может быть и проще тогда поднять за сенсом отдельный http сервер и на нем все делать....
    Я нашел как один человек реализовал такую связку acme + pfsense
    https://www.youtube.com/watch?v=gVOEdt-BHDY
    Сейчас сижу изучаю.



  • @Konstanti said in 2 Внутренних сайта на одном ip:

    Сделай нат на обратный прокси nginx. а от туда раскидай на разные web сервера


Log in to reply