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

    Заблокировать внешнюю сеть по src признаку

    Scheduled Pinned Locked Moved Russian
    16 Posts 4 Posters 2.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.
    • M
      misant
      last edited by

      @NegoroX:

      разрешаю 01vk алиас - несколько ip адресов сети кому "можно" в ВК

      Это самый лучший вариант, но к сожалению задача стоит именно запретить нескольким.
      В качестве костыля я временно закрыл доступ по той же логике но сквидом - добавил всех кому можно в вайтлист сквида, добавил разные сочетания для ОК и ВК в соотв. раздел контроля доступа сквида. Вижу, что больше не пролазят. Но это не красивое решение.

      К тому же хочется разобраться, как это так получается, что пакет сначала попадает в сквид, если обращение идет по 80 порту. Правило прекрасно работает для все остальных запросов.

      1 Reply Last reply Reply Quote 0
      • M
        misant
        last edited by

        Ответов не много, но продолжаю разбираться.

        Если выполнить в cli  "pfctl -sn", то можно увидеть все правила трансляции, даже те, что не видно в gui:

        no nat proto carp all
        nat-anchor "natearly/" all
        nat-anchor "natrules/
        " all
        no rdr proto carp all
        rdr-anchor "relayd/" all
        rdr-anchor "tftp-proxy/
        " all
        rdr on xl0 inet proto tcp from any to ! (xl0) port = http -> 127.0.0.1 port 3128
        rdr-anchor "miniupnpd" all

        Выделена строка, которая как раз исключает моих жертв из запрещающего правила. Стало понятно почему запросы от них по 80 порту не попадают в запрет. Теперь нужно придумать как красиво это обойти.

        1 Reply Last reply Reply Quote 0
        • M
          misant
          last edited by

          Сделал так:

          rdr on xl0 proto tcp from <disable_soc>to <vkontakte_nets>port = http -> <vkontakte_nets>port 444 round-robin
          rdr on xl0 proto tcp from <disable_soc>to <odnoklassniki_nets>port = http -> <odnoklassniki_nets>port 444 round-robin
          rdr on xl0 inet proto tcp from any to ! (xl0) port = http -> 127.0.0.1 port 3128

          Теперь сижу в засаде, жду когда полезут, запросы должны попасть в первоначальное правило, в логе должно быть обращение по 444 порту.</odnoklassniki_nets></odnoklassniki_nets></disable_soc></vkontakte_nets></vkontakte_nets></disable_soc>

          1 Reply Last reply Reply Quote 0
          • M
            misant
            last edited by

            Да, всё работает. Тема закрыта.
            Если кто сюда попадет поиском, буду нюансы постить, вдруг пригодится.

            1 Reply Last reply Reply Quote 0
            • M
              misant
              last edited by

              Ну что коллеги, все работает. Может быть и не совсем красиво, зато надежно.

              Формулировка для поисковиков: Как заблокировать Вконтакте и Одноклассники pfSense?
              Формулировка задачи от бизнеса: Нужно закрыть доступ к Вконтакте и Одноклассники для нескольких ПК.

              Решение.

              1. Создание алиасов. В Disable_soc вносим хосты, которым нужно запретить. Vkontakte_nets и Odnoklassniki_nets соответственно хосты\подсети блокируемых ресурсов. Удобный инструмент против таких монстров: http://bgp.he.net/search?search%5Bsearch%5D=odnoklassniki&commit=Search

              2. Создаем правило для файрволла. См. картинку 1.

              3. Создаем правило для ната. См. картинку 2. Т.к. у меня прокси в прозрачном режиме, то запросы на 80 порт перехватывает squid и шлет уже от своего имени, поэтому правило не блокирует такие запросы (только https, т.к. они идет на 443 порт). Редирект можно сделать и на корпоративный сервер, у меня так сделано, чтобы попадало в лог правила из пункта 2.

              4. Профит!

              ЗЫ:  Блокировать https трафик средствами одного сквида сейчас не удалось (в прозрачном режиме), хотя потенциально возможно, если настроить что-то из Dansquard, Squid3 + man in the middle. Возможно когда починят Layer7, можно будет закрыть регулярными выражениями и кастомными фильтрами L7

              02_rules_firewall.png
              02_rules_firewall.png_thumb
              ![01_port forward.png](/public/imported_attachments/1/01_port forward.png)
              ![01_port forward.png_thumb](/public/imported_attachments/1/01_port forward.png_thumb)

              1 Reply Last reply Reply Quote 0
              • S
                Scodezan
                last edited by

                Думаю, можно обойтись без первого скрина, если во втором не указывать dest port.

                1 Reply Last reply Reply Quote 0
                • M
                  misant
                  last edited by

                  @Scodezan:

                  Думаю, можно обойтись без первого скрина, если во втором не указывать dest port.

                  Да, это мысль правильная. Можно логировать нат попадания в правило?

                  1 Reply Last reply Reply Quote 0
                  • S
                    Scodezan
                    last edited by

                    Поставьте соответствующую галочку в связанном правиле fw.

                    1 Reply Last reply Reply Quote 0
                    • M
                      misant
                      last edited by

                      Может быть есть успешный опыт фильтрации https трафика?
                      Какое оптимальное решение? Можно ли обойтись squid2 или обязательно третий нужен? Видел мануалы с разными вариантами, за 5 минут не вышло, возможно будет позже время поразбираться, но если кто-то поделится опытом, буду признателен.

                      1 Reply Last reply Reply Quote 0
                      • werterW
                        werter
                        last edited by

                        2 misant
                        Исп-те reject вместо block в Ваших правилах по соцсетям.  Иначе при откр страниц со ссылками на соцсети будут дикие "тормоза".
                        И это не панацея. Про анонимайзеры слыхали ?
                        Рекомендую squid + squidguard + http://blog.bigbytenetworks.com/2014/09/pfsense-squid-squidguard-configuration/ + https-фильтрация.
                        Прийдется сертификаты пользователям "доверять" для серфинга, но это дело поправимое.

                        P.s. Зачем Вы Port forwarding вообще трогаете? Что это за перенаправление с 80-го на 444-ый причем на теже адреса ? Оно вообще работает ?
                        Если нужна прозрачная фильтрация - исп. squid со вкл. опцией transparent (описал выше)

                        1 Reply Last reply Reply Quote 0
                        • M
                          misant
                          last edited by

                          Про reject дельный совет, спасибо.
                          Про анонимайзеры конечно знаю, но т.к. ведется журнал посещений, то тут уже сотрудник не сможет сказать что случайно нажал на иконку соц сети на нормальном сайте. Использование анонимайзеров это умышленный обход запрета при использовании корпоративных ресурсов, это уже административно должно решаться.

                          Спасибо за рекомендацию, на тестовом стенде при возможности посмотрю. Squid2 там хватит или третий обязательно? Сертификаты подсунем если что, не проблема.

                          PS: Порт форвардинг нужен, в моих сообщениях сначала темы описывается зачем. Да, оно работает. Редирект можно делать куда угодно, мне так было нужно, чтобы в лог попадало по тому же правилу, что и запросы на 443 порт. Сквид работает как прозрачный прокси.

                          1 Reply Last reply Reply Quote 0
                          • werterW
                            werter
                            last edited by

                            Squid2 там хватит или третий обязательно?

                            Squid3

                            1 Reply Last reply Reply Quote 0
                            • M
                              misant
                              last edited by

                              @werter:

                              Squid3

                              Да, спасибо. Удалось добиться нормальной работы squid3 + squidguard для фильтрации https. Сходу не получилось - генерились сертификаты для ip адресов вместо доменных имен. В IE хоть как-то работало, в Chrome вообще никак, несмотря на добавленный в доверенный корневой сертификат.

                              Спасла строчка "ssl_bump server-first all" в секции Custom ACLS (After_Auth) настроек squid3.

                              Тестирую, пока проблем не всплыло.

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