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

    Закрыть доступ к шлюзу с внехи

    Russian
    3
    6
    995
    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.
    • R
      Rearden
      last edited by

      Добрый день!
      В продолжении этой темы https://forum.pfsense.org/index.php?topic=77367.0

      На pfSense статично смаршрутизированы белые адреса. На первом скриншоте правила на стороне абонента. На втором скриншоте правила на WAN интерфейсе для этого абонента. С обеих сторон правила настроены таким образом, что пользователь не может обратится к какому-либо адресу, принадлежащему роутеру, кроме как пингануть их. Для интерфейса абонента правила выглядят хорошо, а вот для WAN нет. Т.к. вместо одного правила приходится делать целых три. На маршрутизаторе около 40 VLAN /30 с белыми адресами и получается, что для каждого интерфейса надо делать три правила.

      Кто-нибудь знает более изящные варианты написания правил/запрета доступа к адресам роутера?
      onlan.png
      onlan.png_thumb
      onwan.PNG
      onwan.PNG_thumb

      1 Reply Last reply Reply Quote 0
      • D
        dvserg
        last edited by

        Разрешите только то, что Вам нужно. По умолчанию все запрещено и так.

        SquidGuardDoc EN  RU Tutorial
        Localization ru_PFSense

        1 Reply Last reply Reply Quote 0
        • R
          rubic
          last edited by

          @Rearden:

          Кто-нибудь знает более изящные варианты написания правил/запрета доступа к адресам роутера?

          В pfSense 2.2 обещают возможность использования ключевого слова "self" в правилах. "self" - это и есть все адреса роутера.
          В 2.1 можно просто сделать Alias "SELF" со всеми этими адресами и создать Floating Rule:
          Action: Block
          Quick: да
          Interface: не выбирать ни один (т. е. для всех)
          Direction: in
          Protocol: any
          Destination: Type: Single host or alias, Address: SELF

          Себе самому только доступ оставить не забудьте, и тоже обязательно через Floating Rule (они работают до правил интерфейсов). Выше приведенного должно быть правило доступа для админа, либо в приведенном сделайте Source:  Type: Single host or alias, Address: !ADMIN

          Если интерфейсы постоянно заводятся/удаляются, то в принципе наполнение алиаса "SELF" можно автоматизировать, т. к. алиас в терминах pfSense - это table в терминах pf. Как наполнить/обнулить table - все в man pfctl(8). Т. е. в скрипте выдергиваете адреса роутера, типа netstat -rnf inet | grep lo0 | awk '{print($1)}' и суете их через pfctl в таблицу SELF прямо на ходу.

          1 Reply Last reply Reply Quote 0
          • R
            Rearden
            last edited by

            Спасибо, rubic.
            Создал алиас в вэб-интерфейсе, назвал self. В этот алиасе ничего не прописывал.
            По планировщику выполняю следующий скрипт:

            
            #!/bin/sh
            GETADDR=`/usr/bin/netstat -rn inet | grep lo0 | grep -v 127.0.0.1 | awk '{print($1)}'`
            
            /sbin/pfctl -q -t self -T flush
            
            for i in $GETADDR; do
                /sbin/pfctl -q -t self -T add $i
            done
            
            

            Все успешно отрабатывает, в разделе Diagnostic–>tables отображается табличка с адресами маршрутника.
            Но фишка в том, что когда редактируем какой либо алиас в вэб-интерфейсе, то табличка selft флушится.

            1 Reply Last reply Reply Quote 0
            • R
              Rearden
              last edited by

              Решил следующим способом:

              Скрипт приобрел следующий вид

              /usr/bin/netstat -rn inet | grep lo0 | grep -vE '127.0.0.1|fe80::' | awk '{print($1)}' > /usr/local/www/my_address.txt
              

              и далее через Alias/URLs.

              1 Reply Last reply Reply Quote 0
              • R
                rubic
                last edited by

                Ну или так. Проблема по сути в том, что alias хранится в config.xml и пишется в table после редактирования. Т. е. пустой alias в конфиге флэшит table при сохранении((
                Бегло посмотрел тут: https://www.mail-archive.com/list@lists.pfsense.org/msg03702.html и там: https://doc.pfsense.org/index.php/Using_the_PHP_pfSense_Shell
                но красивое решение как-то не придумалось

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