Какое правило добавить для доступа к nginx в LAN ?



  • Всем привет!
    Какая-то затыка возникла у меня... Есть pfsense с белым IP от провайдера, никакого моста нет.
    За pfsense стоит ubuntu с поднятым nginx на 80 порту.
    В NAT pfSense прописано 80 и 443 порты для доступа к nginx. Сайты открываются, все ок.
    Но из LAN нет доступа к этим сайтам, хотя пинг идет.
    Не могу сообразить, какое правило нужно еще прописать?! Помогите плз!



  • @maxyca здр
    А как Вы из lan обращаетесь к этим серверам? По доменному имени? По внешнему ip? По внутреннему ip?
    Моё предположение - ассиметричная маршрутизация.



  • @maxyca

    1. Изменить порты вебки со стандартных 80 и 443 на нестандартные
    2. А на кой ляд вы из ЛАН к ВАН обращаетесь? Зачем вам петля? Настройте Split DNS на пф и радуйтесь.


  • @Konstanti По доменному имени. А по-подробнее как это реализовать??



  • @werter

    1. Тоже так думал, но пока нет такой возможности.
    2. Юзеры на собственный сайт заходят из LAN.


  • Я тут подумал и решил прописать такое правило:
    alt text
    С ним все работает, т.е. из локалки юзверь заходит на свои сайты, которые находятся на Ubuntu в нашей же локалке и все ок.
    Надеюсь правильно сделал :) Гуру, поправьте плз, если что..



  • @maxyca
    Хм. Костыль, но работает ) Однако, лучше так не делать.

    Юзеры на собственный сайт заходят из LAN.

    Повторюсь.
    Если сайт имеет РЕАЛЬНОЕ внешнее имя, то или руками файл hosts править на клиентах или настроить ОДИН раз Split DNS на пф.

    Ps. Мой вам совет. Не пользуйте сети 192.168.0|1.0 в продакшене.



  • Тогда уж:

    Firewall_ NAT_ Port Forward_ Edit.png



  • @werter said in Какое правило добавить для доступа к nginx в LAN ?:

    Split DNS

    А как этого зверя настроить? У нас речь просто про 30 человек идет и пару десятков сайтов своих)) Просто не хотелось с hosts возиться, к тому же после перестановки системы и пр..потом снова делать, вспоминать. Один раз хочется настроить и все :)



  • @maxyca Split DNS - это просто DNS сервер внутри Вашей сети , где будет настроен Ваш домен с нужной Вам адресацией
    Те , например ,при обращении к внешнему DNS серверу с доменом maxyca.ru - ответ будет ВАШ_ВНЕШНИЙ_БЕЛЫЙ_IP
    а при обращении к Вашему внутреннему DNS maxyca.ru - ответ локальный_ip_сервера



  • @maxyca
    Split DNS умеет dns resolver на пф.
    Особенно если принудительно завернуть все днс-запросы от лан-клиентов на его локальный ip. Что еще и крайне полезно в плане нетворк секурити.



  • @werter Буду очень признателен, если скриншот правила на образец сделаете :)



  • @maxyca
    Попробуйте вариант по моему скрину выше. Это не Сплит ДНС, но работать будет.



  • @werter Попробую, отпишусь. Только я не совсем уловил разницу между своим вариантом и этим?
    Для списка сайта я тогда алиас сделаю, чтобы кучу правил не городить.



  • Алиас - эт хорошо. Только вы туда адреса и site.name и www.site.name вносите.

    И для портов 80 и 443 - тоже алиас, чтобы правила не плодить. Имя алиаса www_ports подойдет )



  • @werter В DNS Resolver в поле Domain Overrides заносить домены для split dns?

    Сорри за офф, но у меня проблема случилась со включенным dns resolver. За pfsense стоит еще Asterisk и resolver блокировал пакеты на исходящие вызовы, т.к. asterisk заворачивал исходящие звонки. Его можно в исключения будет добавить?



  • @maxyca said in Какое правило добавить для доступа к nginx в LAN ?:

    В DNS Resolver в поле Domain Overrides заносить домены для split dns?

    Там внимательно надо и смотреть по ситуации. Если у вас в сети есть собственный ДНС-сервер, то нужно в настройках резольвера на пф указать, что такой-то домен обслуживает такой-то ДНС-сервер с таким-то IP.
    Главное условие, чтобы пф выступал в роли ДНС-сервера для клиентов, т.е. его ip был 1-ым в сетевых настройках клиентов. Хорошо бы все ДНС-запросы клиентов заворачивать на ЛАН-адрес пф. Это не сложно сделать с пом. правила Port Forwd на ЛАН.

    и resolver блокировал пакеты на исходящие вызовы

    Причем тут резольвер?



  • @werter said in Какое правило добавить для доступа к nginx в LAN ?:

    Причем тут резольвер?
    Методом исключения выявил. Со включенным dns resolver блокировались исходящие вызовы на asterisk. Есть подозрения, что пакеты блокировал. Пока вернул forwarder, все стало норм. Буду копать...



  • @maxyca
    Не надо форвардер (dnsmasq) без надобности пользовать. Не зря резольвер вкл. по умолч. Попробуйте разобраться.



  • Здравствуйте!
    Скорее всего, ваш сайт конфликтует с веб-интерфесом роутера. Поменяйте порт веб-интерфейса на 8080 и проверьте заново.



  • Вообщем так и не получилось нормально DNS Resolver настроить. Т.е. он настроен, все работает, в Host Overrides я добавил домены и с www в алиасе в том числе. Но как без моего правила в NAT нельзя было зайти на сайты, которые находятся в локальном веб-сервере nginx - так и нельзя.

    @werter Кстати по Вашей рекомендации тоже не работает :( т.е. именно Source - WAN, dest - Any. И всё! По-другому никак.

    Понимаю, что где-то тупо пакеты не проходят обратно, но где - не могу разобраться. Помогите плз!!!



  • This post is deleted!


  • Разобрался. Включил в System > Advanced > Firewall & NAT >Enable NAT Reflection for 1:1 NAT и Enable automatic outbound NAT for Reflection согласно руководству https://docs.netgate.com/pfsense/en/latest/book/nat/nat-reflection.html.
    Теперь юзвери могут заходить по доменному имени на сайты, которые находятся на nginx в LAN без моих правил в NAT.



  • @maxyca
    Снова костыль. Снова в дом через окно.

    1. Завернуть ВСЕ днс-запросы клиентов на лок. адрес пф правилом port forward.
    2. Настроить на пф split dns.
    3. Profit!


  • Теперь вроде не костыль :)

    1. Снял 2 чекбокса в System > Advanced > Firewall & NAT >Enable NAT Reflection for 1:1 NAT и Enable automatic outbound NAT for Reflection
    2. Создал правило:
      alt text
    3. В DNS Resolver создал Host overrides для всех доменов на локальный nginx
      Теперь profit ? :))


  • @maxyca
    Src - LAN net
    Dst -any
    Redirect ip - локальный ip пф

    В DNS Resolver создал Host overrides для всех доменов на локальный nginx

    Скрин.



  • В source - LAN net - согласен, понял. А зачем в destination - any? Ведь запросы внутри LAN идут.
    В redirect ip - как раз pfsense стоит, это алиас на него.

    DNS Resolver:
    alt text



  • @maxyca said in Какое правило добавить для доступа к nginx в LAN ?:

    А зачем в destination - any? Ведь запросы внутри LAN идут.

    Еще раз. Пф ВНУТРИ сети ничего не регулирует. Возможно "регулирование" только между интерфейсами (LAN < - > WAN и т.д.)
    DNS-запросы ко ВНЕШНИМ серверам заворачиваете - значит в Dst - any.



  • @werter Благодарю за ответ! Сбила с толку еще инструкция - https://docs.netgate.com/pfsense/en/latest/dns/redirecting-all-dns-requests-to-pfsense.html

    В качестве бонуса помогите еще с загвоздкой. После всех манипуляций со включением DNS Resolver и переопределением хостов с ubuntu перестал работать phpmail (и sendmail). SMTP работает.
    В логе Ubuntu после отправки появляется ошибка:
    Feb 16 18:45:54 ubuntu sm-mta[29969]: 01GFjsjJ029967: to=****@mydomain.ru, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=120906, relay=mydomain.ru. [192.168.1.11], dsn=4.0.0, stat=Deferred: Connection refused by mydomain.ru.

    С DNS Forwarder проходит без проблем. Как возвращаюсь на Resolver - такая же ошибка. Чувствую, надо еще правило создавать?



  • @maxyca
    Релей вовне живет? Почему у него адрес серый? Может что напутали в host override? Или у вас и веб-сервер и релей на одном ip живут и одно имя имеют?



  • This post is deleted!


  • @werter
    Схема следующая:
    alt text

    Проблемы на сегодняшний день следующие:

    1. При попытке отправить письмо через php или sendmail через Ubuntu в логе - Connection refused.
    2. Тоже самое при отправке сообщений через внутренний SMTP с Asterisk (PBX).
    3. При подключении через OpenVPN к pfSense клиенты не могут подключиться к Asterisk.

    Стоит только выключить DNS Resolver и включить DNS Forwarder - все начинает прекрасно работать. В Ubuntu в Resolver настроил, что DNS это IP pfSense. Все равно результата нет.
    Не понимаю куда еще копать... Буду очень признателен за совет.



  • перестал работать phpmail (и sendmail)
    relay=mydomain.ru.

    Вкл. debug в настройках на почтовике и смотрите, что там происходит. Может почтовый сервис привязан ко внешнему ip-адресу и ему локальный адрес 192,168,1,11 не нравится?

    При подключении через OpenVPN к pfSense клиенты не могут подключиться к Asterisk.

    Смотрите логи Астериска.



  • @werter
    В связе Asterisk через OpenVPN - был поставлен чекбокс "Respond to incoming SSL/TLS queries from local clients" в DNS Resolver. Сейчас все клиенты подключаются успешно.

    Насчет RELAY, наш IP действительно привязан к почтовому сервису, т.к. у нас почта на доменах поступает в ящики mail.ru в рамках biz.mail.ru. В DNS для обслуживаемых доменах имеются SPF записи с указанием нашего белого IP.
    Я так думаю, что надо именно RELAY настроить в sendmail, чтобы все заработало))



  • @werter
    Наконец все удалось настроить. Проблема была связана с тем, что mail.ru очень капризный в плане отправки сообщений с сайта.
    Сорри за офф, все думаю и решаю насчет включения pfblocker. Все таки более 20 сайтов сейчас висят. Будет ли слишком строго заблочить все левые IP или нет?
    Для теста через Tor Browser удалось заходить через раз. С разных VPN тоже 50/50%. Одним словом, как в классике - "быть или не быть?" :))


Log in to reply