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

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

    Scheduled Pinned Locked Moved Russian
    13 Posts 2 Posters 9.2k 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

      А средствами virtualhost
      http://thin.kiev.ua/index.php?option=com_content&view=article&id=464:vhost&catid=50:pfsense&Itemid=81

      Или ежели уже на внутренний веб есть форвард, средствами хтмл

      1. Переадресация на нужный нам адрес
      В файле index.php прописываем

      FAQ PfSense 2.0

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

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

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

        @dr.gopher:

        А средствами virtualhost
        http://thin.kiev.ua/index.php?option=com_content&view=article&id=464:vhost&catid=50:pfsense&Itemid=81

        Или ежели уже на внутренний веб есть форвард, средствами хтмл

        1. Переадресация на нужный нам адрес
        В файле index.php прописываем

        Хм, а не совсем понимаю зачем в примере по ссылке хосты поднимаются на внешнем интерфейсе? Предполагается, что это белый адресс и он видится из интернета?
        И если мы делаем переадресацию наоборот (из локальной сети), то сервер висит, соответственно, на локальном интерфейсе. Все верно?

        Но, по сути, тут без файрвольного редиректа не обойтись(сам lighthttpd, насколько я знаю, не умеет переадресовывать). А при успешной реализации редиректа - vhosts уже не нужны.
        Это, по сути, просто веб-сервер.

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

        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 порту, П.Ф. ругался:

          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.