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

    Агент Mail.ru и Captive Portal. Загрузка CPU.

    Scheduled Pinned Locked Moved Russian
    10 Posts 3 Posters 6.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.
    • S
      schrek
      last edited by

      Доброго времени суток!
      Использую Pfsense 2.0 и Captive Portal.
      Столкнулся с проблемкой. В сети есть пользователи, у которых установлен Агент Mail.ru. Так вот если пользователь запускает агента (как правило в автозагрузке), то агент начинает долбиться на порт 8001 и создавать кучу соединений, что в свою очередь нагружает Pfsense. При этом агент постоянно меняет порты и отследить его не получается.
      Подскажите как с этим бороться?

      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
        • S
          schrek
          last edited by

          Я пробовал ограничивать пользователей в 100 соединений, но это не помогло. Но дело в том, что агент делает генерирует большое количество пакетов на порт 8001, и ему хватает этого чтобы нагрузить pfsense.

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

            Я кажется нашёл в чём проблема. Проанализировав пакеты через Wireshark, было замечено что агент ломиться на хост remote.mra.mail.ru.
            В настройках Captive Portal открыл его напрямую по имени хоста и прижал по скорости. Буду смотреть.

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

              @schrek:

              Я кажется нашёл в чём проблема. Проанализировав пакеты через Wireshark, было замечено что агент ломиться на хост remote.mra.mail.ru.
              В настройках Captive Portal открыл его напрямую по имени хоста и прижал по скорости. Буду смотреть.

              А если его в DNS прописать как 127.0.0.1 ?

              SquidGuardDoc EN  RU Tutorial
              Localization ru_PFSense

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

                Не заработало. Агент продолжает ломиться на 8001 порт.

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

                  Нашёл проблему почему так сильно загружает агент. Дело в том что есть несколько приложение, которые неправильно обрабатываю редирект Captive Portal и начинают долбать его авторизацию, при этом нагружая его.
                  Может кто нибудь пробовал убрать Captive Portal с 80/443 портов, т.е. что бы он слушал определённый порт, а всё остальное дропил до авторизации.

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

                    Проблему решил допиливанием PFSENSE.

                    Было сделано следующее.
                    1. Поправлен файл /etc/inc/captiveportal.inc
                    в нём изменены следующие строчки
                    закометировал строчку add 65531 set 1 fwd 127.0.0.1,8000 tcp from any to any in (делает форвард на авторизацию)
                    вставил строчки
                    add 65529 set 1 fwd 127.0.0.1,8000 tcp from any to IP-адрес внешний in
                    add 65531 set 1 fwd 127.0.0.1:8800 tcp from any to any 80 in
                    Для того чтобы на авторизацию перенаправлял только при обращению на определённый адрес в инете.
                    вторая строчка просто порт заглушка на squid.
                    2. Установил пакет squid.
                    3. Сконфигурировал squid 
                    /usr/local/etc/squid/squid.conf

                    Do not edit manually !

                    http_port 127.0.0.1:8800
                    icp_port 0
                    pid_filename /var/run/squid.pid
                    cache_effective_user proxy
                    cache_effective_group proxy
                    error_directory /usr/local/etc/squid/errors/Russian-1251
                    icon_directory /usr/local/etc/squid/icons
                    visible_hostname localhost
                    cache_mgr admin@localhost
                    access_log /dev/null
                    cache_log /var/squid/logs/cache.log
                    cache_store_log none
                    logfile_rotate 0
                    shutdown_lifetime 3 seconds

                    Allow local network(s) on interface(s)

                    acl localnet src  127.0.0.0/255.0.0.0
                    uri_whitespace deny
                    cache_mem 8 MB
                    maximum_object_size_in_memory 32 KB
                    memory_replacement_policy heap GDSF
                    cache_replacement_policy heap LFUDA
                    cache_dir ufs /var/squid/cache 100 16 256
                    minimum_object_size 0 KB
                    maximum_object_size 10 KB
                    offline_mode off

                    No redirector configured

                    Setup some default acls

                    acl all src 0.0.0.0/0.0.0.0
                    acl localhost src 127.0.0.1/255.255.255.255
                    acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 8050 3128 1025-65535
                    acl sslports port 443 563 8050
                    acl manager proto cache_object
                    acl purge method PURGE
                    acl connect method CONNECT
                    acl dynamic urlpath_regex cgi-bin ?
                    cache deny dynamic
                    http_access allow manager localhost
                    http_access deny manager
                    http_access allow purge localhost
                    http_access deny purge
                    http_access deny !safeports
                    http_access deny CONNECT !sslports

                    Always allow localhost connections

                    http_access allow localhost
                    request_body_max_size 0 KB
                    reply_body_max_size 0 deny all
                    delay_pools 1
                    delay_class 1 2
                    delay_parameters 1 -1/-1 -1/-1
                    delay_initial_bucket_level 100
                    delay_access 1 allow all

                    Setup allowed acls

                    Allow local network(s) on interface(s)

                    http_access allow localnet

                    Default block all to be sure

                    http_access deny all
                    4. В папке /usr/local/etc/squid/errors/Russian-1251 изменил файлы с ошибками (кинул маленькую инструкцию для пользователей). Все файлы в каталоге должны быть UTF-8, чтобы отображались правильно.
                    И всё, как говорится, перезагрузка.
                    В результате, при 400 одновременно работающих клиентах на машине с 256 MB RAM и 1 CPU 1.8 Ghz, CPU выше 20% не поднимается.

                    1 Reply Last reply Reply Quote 0
                    • A
                      anzak84
                      last edited by

                      Подскажи, правильно понял, что до авторизации например через портал не будет генерироваться множество соединений по разным портам, если изменить  строчку add 65531 set 1 fwd 127.0.0.1:8000 tcp from any to any 80 in? после удачной авторизации разрешено будет any to any?

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

                        to  anzak84
                        Немного не так. Ты только изменишь правила файервола. А для того чтобы клиенты получали правильный отбой при соединении у меня стоит squid. Суть проблемы заключается в том, что некоторые клиенты не могут правильно обработать приглашение Captive Portal, и поэтому начинают создавать новые соединения, а squid корректно говорит, что соединения нет. Я в правиле 65529 дописал только один адрес, по которому будет авторизация. После удачной авторизации разрешается any to any, или как описано в правилах.

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