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.
    • 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.