Организация съема трафика с Linux сервера для последующего анализа

    Задача: Организовать съем трафика с сервера и передачу его по сети на другой сервер для последующего анализа. В простейшем случае — реализации средствами ОС Linux функции SPAN коммутаторов Cisco. Подобная задача возникает, если мы хотим провести анализ содержимого не на существующем сервере, а на выделенном сервере для анализа. В простейшем случае реализуем схему, изображенную на рисунке.

    В этой схеме, мы проверяем весь проходящий через шлюз трафик пользователя. Для анализа можно использовать систему обнаружения вторжений, например Snorm.

    Для реализации такой схемы потребуется kernelspace модуль для netfilter ipt_ROUTE и поддержка цели ROUTE в userspace iptables(есть из коробки в debian). Модуль ядра ipt_ROUTE.c был выброшен из patch-o-matic и не поддерживается, поэтому не собирается с новыми ядрами >=2.6.24. Я портировал его на новые ядра и выложил на google code.

    Для установки нужно выполнить следующие действия:

    $svn co iptroute.googlecode.com/svn/trunk iptroute
    $cd iptroute
    $make
    $sudo make install


    В результате мы установили ipt_ROUTE модуль для netfilter.

    Теперь нам осталось только организовать интерфейс, куда мы будем отправлять снятый трафик. Это может быть физический интерфейс, vlan-интерфейс или тунель.Рассмотрим самый простой вариант, изображенный на рисунке:
    eth0 — inet addr:10.10.10.2 интерфейс, смотрящий в интернет
    eth1 — inet addr:192.168.1.1 интерфейс, смотрящий в локальную сеть
    eth2 — inet addr:172.16.0.1 интерфейс съема, в него будет дублироваться весь трафик, который пропускает наш шлюз

    Добавляем виртуальный сервер, который будет принимать наш трафик.
    #arp -i eth2 -s 172.16.1.2 00:00:00:00:00:01

    Дублируем весь трафик, проходящий через цепочку FORWARD на адрес сервера съема 172.16.1.2:
    #iptables -t mangle -A FORWARD -j ROUTE --tee --gw 172.16.1.2

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

    Аналогичным способом легко можно анализировать трафик, идущий с веб или почтового сервера.
    Изначально такая схема была придумано для анализа трафика внутри шифрованных PPtP и OpenVPN туннелей на выделенном сервере.
    Поделиться публикацией

    Комментарии 13

      0
      Для анализа можно использовать систему обнаружения вторжений, например Snorm

      Опечаточка в последнем слове :) А так статья занятная, спасибо :)
        –1
        "… систему обнаружения вторжений, например Snorm."
        исправьте пожалуйста — Snort.
          +4
          Да, было бы очень хорошо, если бы вы описали что с этим трафиком можно делать потом :) То есть, более детально подойти к вопросам собственно анализа трафика.
            +3
            поддерживаю, очень хотелось бы почитать статью про правильную настройку например того — же snort
              +1
              хорошо. соберусь и напишу, как его можно использовать в реальной жизни.
                0
                Про snort очень много написано Здесь и Здесь. В настройке он очень легок и удобен.
              +1
              Анализировать содержимое пакетов при большой сетевой активности — очень ресурсоёмкая задача.
              Если достаточно заголовков пакетов (для анализа, либо статистики), то предпочтительней использовать netflow, либо ULOG… да вариантов масса.
              • НЛО прилетело и опубликовало эту надпись здесь
                  +1
                  Visio, microsoft office живет в virtual box. Openoffice draw не очень удобен и клипарта в нем нет.
                  +1
                  #iptables -t mangle -A FORWARD -j ROUTE --tee --gw 172.20.1.2


                  172.16.1.2?
                    +1
                    опечатался. конечно 172.16.1.2
                    0
                    >Модуль ядра ipt_ROUTE.c был выброшен из patch-o-matic и не поддерживается, поэтому не собирается с новыми ядрами >=2.6.24.

                    выкинули и не представили официальной замены? что побудило разработчиков на такой шаг?
                      0
                      Дело в том, что этот модуль считается dirty hack'ом. Все его возможности, кроме --tee(копирование пакетов) реализуются при помощи iproute2. Считается, что iptables маршрутизацией не должен заниматься, для этого есть iproute2 со своими таблицами.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое