Задача: Организовать съем трафика с сервера и передачу его по сети на другой сервер для последующего анализа. В простейшем случае — реализации средствами ОС Linux функции SPAN коммутаторов Cisco. Подобная задача возникает, если мы хотим провести анализ содержимого не на существующем сервере, а на выделенном сервере для анализа. В простейшем случае реализуем схему, изображенную на рисунке.
В этой схеме, мы проверяем весь проходящий через шлюз трафик пользователя. Для анализа можно использовать систему обнаружения вторжений, например Snorm.
Для реализации такой схемы потребуется kernelspace модуль для netfilter ipt_ROUTE и поддержка цели ROUTE в userspace iptables(есть из коробки в debian). Модуль ядра ipt_ROUTE.c был выброшен из patch-o-matic и не поддерживается, поэтому не собирается с новыми ядрами >=2.6.24. Я портировал его на новые ядра и выложил на google code.
Для установки нужно выполнить следующие действия:
В результате мы установили 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 интерфейс съема, в него будет дублироваться весь трафик, который пропускает наш шлюз
Добавляем виртуальный сервер, который будет принимать наш трафик.
Дублируем весь трафик, проходящий через цепочку FORWARD на адрес сервера съема 172.16.1.2:
После всех манипуляций мы можем анализировать весь трафик, проходящий через наш шлюз; для этого достаточно присоединится к интерфейсу eth2.
Аналогичным способом легко можно анализировать трафик, идущий с веб или почтового сервера.
Изначально такая схема была придумано для анализа трафика внутри шифрованных PPtP и OpenVPN туннелей на выделенном сервере.
В этой схеме, мы проверяем весь проходящий через шлюз трафик пользователя. Для анализа можно использовать систему обнаружения вторжений, например 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 туннелей на выделенном сервере.