Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Выборочная переадресация 2

    Scheduled Pinned Locked Moved Russian
    13 Posts 2 Posters 9.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dr.gopher
      last edited by

      @goliy:

      Хм, а не совсем понимаю зачем в примере по ссылке хосты поднимаются на внешнем интерфейсе?

      При попытке создания виртуального хоста на лан интерфейсе на 80 порту, П.Ф. ругался:

      Potential DNS Rebind attack detected, see http://en.wikipedia.org/wiki/DNS_rebinding
      Try accessing the router by IP address instead of by hostname.

      @goliy:

      И если мы делаем переадресацию наоборот (из локальной сети), то сервер висит, соответственно, на локальном интерфейсе. Все верно?

      Да верно. Похоже пакет виртуал хост слушает лан и ван.

      @goliy:

      Тогда уж nginx ставить лучше, там встроенные средства редиректа. Но это все дополнительная нагрузка и лишние элементы.

      Вам решать. Я лишь предложил вариант. :-)

      FAQ PfSense 2.0

      И не забываем про Adblock дабы не видеть баннеров.

      И многое другое на www.thin.kiev.ua

      1 Reply Last reply Reply Quote 0
      • G
        goliy
        last edited by

        Подскажите, пожалуйста, что может быть не так:
        правило
        rdr on em1 proto tcp from 1.0.0.0/29 to any port 80 -> 1.0.0.1 port 8001 (создается в Firewall -.>NAT -> Port Forward)
        Правило работает хорошо, может редиректить любые запросы на нужный порт. Дело за малым
        Ставлю vhosts, он работает на ура, но при переадресации какая-то шляпа..

        Т.е., фактически, на какой бы порт я не перевесил админку - на нее я могу переслать запрос (1.0.0.1:2222), но как я ни старался редирект на порт 2222 хоста abc, который прописан в dns как 1.0.0.1, не проходит.  точнее на сервер мы попадаем, но вместо страницы видим печальный 404 - Not Found (локального сервера) Есть особенность, что ту же страницу 404 можно увидеть при редиректе на локалхост в случае попытке входа в не дефолтную на сервере локацию, т.е. любое место кроме hostname.domain (прим, c ya.ru переадресация работает, а  с ya.ru/*/ уже 404)
        Короче, что-то не так с vhost'ом, мне кажется, он не может обработать запрос типа 1.0.0.1:port, такое ощущение, что он его заменяет на что-то, получается редирект видит 404

        Пол ночи голову ломаю - все не могу придумать, что же это.. Неужели придется доп. веб-сервер ставить для одной страницы.?!

        2.0.2-RELEASE (i386)
        Intel(R) Atom(TM) CPU 330 @ 1.60GHz
        eth: Intel 82574L
        DOM sata, 1Gb
        over 150 users

        1 Reply Last reply Reply Quote 0
        • D
          dr.gopher
          last edited by

          Вы редиректите IP, а вхост ждет доменное имя. :-(
          Думаю должна быть дефолтовая дириктория, куда можно зайти по ip.

          FAQ PfSense 2.0

          И не забываем про Adblock дабы не видеть баннеров.

          И многое другое на www.thin.kiev.ua

          1 Reply Last reply Reply Quote 0
          • G
            goliy
            last edited by

            @dr.gopher:

            Вы редиректите IP, а вхост ждет доменное имя. :-(
            Думаю должна быть дефолтовая дириктория, куда можно зайти по ip.

            Именно так -) сегодня пол дня пытался понять и подкрутить и из дефолтной директории все заработало. Отлично!
            Кому интересно, после стандартного добавления хоста, заходим в конфиг файл и правим (/var/etc/vhosts-http.conf):

            $SERVER["socket"] == "lan_if_ip:8001" {
            $HTTP["host"] == "info" {                                                      #находим имя созданного ранее хоста       
            server.document-root        = "/usr/local/www"                  #меняем тут папку на указанную
            }
            }
            url.rewrite-once = ("^/(.*)$" => "/info.php")                                      #эта регулярка позволит нам по любому адресу попадать на указанную страницу (конечно, там ее надо создать самому =)

            сохраняем, перезапускаем сервис и вуаля - все работает!

            Да, вот правило фаервола для редиректа:
            no rdr on $lan_if proto tcp from <test>to any port = http
            rdr on $lan_if inet proto tcp from $lan_subnet to any port = http -> $web_serv_ip port 8001

            Первое правило позволяет пропускать группу разрешенных адресов</test>

            2.0.2-RELEASE (i386)
            Intel(R) Atom(TM) CPU 330 @ 1.60GHz
            eth: Intel 82574L
            DOM sata, 1Gb
            over 150 users

            1 Reply Last reply Reply Quote 0
            • D
              dr.gopher
              last edited by

              @goliy:

              Да, вот правило фаервола для редиректа:
              no rdr on $lan_if proto tcp from <test>to any port = http
              rdr on $lan_if inet proto tcp from $lan_subnet to any port = http -> $web_serv_ip port 8001</test>

              Стесняюсь спросить, а куда его вставлять (где его прописывать)? :-)
              Рад что у Вас вс

              FAQ PfSense 2.0

              И не забываем про Adblock дабы не видеть баннеров.

              И многое другое на www.thin.kiev.ua

              1 Reply Last reply Reply Quote 0
              • G
                goliy
                last edited by

                @dr.gopher:

                Стесняюсь спросить, а куда его вставлять (где его прописывать)? :-)

                Я же уже описывал в посте выше:
                Firewall -.>NAT -> Port Forward, жмем плюс,лан интерфейс,tcp, сурс - лан подсеть, дестанэйшен - хттп, таржет ип - локальный адресс веб-сервера(в случае vhosts лан адресс машины-пф), редирект порт - тот порт, на котором висит vhost (в моем случае 8001, стандартный)
                проверяем правило в command prompt , pfctl -sa | grep rdr , там должно появиться правило, как я приводил в посте выше. Если правило такое, и vhosts работают по айпи-адресу (т.е. в строке браузера введя именно ИП:порт и попадаем на нужную страницу), то переадресация будет работать!  и никаких сквидов, сквидгвардов, каптив порталов и прочей лабуды =)_

                2.0.2-RELEASE (i386)
                Intel(R) Atom(TM) CPU 330 @ 1.60GHz
                eth: Intel 82574L
                DOM sata, 1Gb
                over 150 users

                1 Reply Last reply Reply Quote 0
                • D
                  dr.gopher
                  last edited by

                  @goliy:

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

                  Все неучтенные….

                  Я так понимаю, что учтенные это зарезервированные в дхцп и имеющие право работать в сети. А как вы сделаете, чтобы они (зарезервированные) не попадали под правило форварда и не попадали на веб страничку вхоста?

                  FAQ PfSense 2.0

                  И не забываем про Adblock дабы не видеть баннеров.

                  И многое другое на www.thin.kiev.ua

                  1 Reply Last reply Reply Quote 0
                  • G
                    goliy
                    last edited by

                    @dr.gopher:

                    @goliy:

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

                    Все неучтенные….

                    Я так понимаю, что учтенные это зарезервированные в дхцп и имеющие право работать в сети. А как вы сделаете, чтобы они (зарезервированные) не попадали под правило форварда и не попадали на веб страничку вхоста?

                    http://forum.pfsense.org/index.php/topic,47447.msg250168.html#msg250168

                    @goliy:

                    Да, вот правило фаервола для редиректа:
                    no rdr on $lan_if proto tcp from <test>to any port = http
                    rdr on $lan_if inet proto tcp from $lan_subnet to any port = http -> $web_serv_ip port 8001
                    Первое правило позволяет пропускать группу разрешенных адресов</test>

                    По сути, в веб-интерфейсе там же, где создавали редирект, нужно щелкнуть на + от правила редиректа, и включить галку на No rdr, заменить lan subnet на нужный алиас. Переместить это правило Перед правилом редиректа.

                    2.0.2-RELEASE (i386)
                    Intel(R) Atom(TM) CPU 330 @ 1.60GHz
                    eth: Intel 82574L
                    DOM sata, 1Gb
                    over 150 users

                    1 Reply Last reply Reply Quote 0
                    • D
                      dr.gopher
                      last edited by

                      Опробовал и описал. Возможно кто-то найдет применение данному решению
                      http://thin.kiev.ua/index.php?option=com_content&view=article&id=550:pf-vhost&catid=50:pfsense&Itemid=81

                      FAQ PfSense 2.0

                      И не забываем про Adblock дабы не видеть баннеров.

                      И многое другое на www.thin.kiev.ua

                      1 Reply Last reply Reply Quote 0
                      • G
                        goliy
                        last edited by

                        Проблема затерания файла после перезагрузки элегантно решается установком флага "неизменяемости" следующим образом:
                        chflags uchange /var/etc/vhosts-http.conf

                        2.0.2-RELEASE (i386)
                        Intel(R) Atom(TM) CPU 330 @ 1.60GHz
                        eth: Intel 82574L
                        DOM sata, 1Gb
                        over 150 users

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.