Свет мой, зеркальце, скажи… или одна история о port-mirroring

Доброго дня, уважаемые.

Предвосхищая вопросы вроде «а нафига оно надо?», сразу отвечу — «по большому счету, нафиг не надо». Дома, на мой взгляд вполне достаточно хорошего антивируса на компьютерах, хорошо настроенного роутера со сложными паролями для ви-фи, ну и, самое главное, прямых рук самих пользователей (чтобы не открывать подозрительные файлы, не переходить по странным ссылкам).

А дальше есть энтузиазм — вот захотелось дома IDS и все тут.

Благо роутер был давно прошит Gargoyle софтом, в основе которого лежит openwrt, а значит доступно и множество пакетов для расширения его (роутера) функционала.

Среди всего этого множества есть прекрасный пакет — port-mirroring, позволяющий за несколько минут организовать зеркалирование трафика. До того, как найти этот пакет я испробовал различные извращения с Iptables, но заставить заработать зеркалирование в этом случае мне так и не удалось.

Итак, установка очень проста.

1. определяем ОС нашего роутера:

# cat /etc/banner
OpenWrt Chaos Calmer branch

2. определяем чипсет:

# cat /proc/cpuinfo
system type : Qualcomm Atheros QCA9558 ver 1 rev 0

3. устанавливаем пакет для нашей ОС:

# opkg update
#opkg install http://port-mirroring.googlecode.com/files/port-mirroring_1.2-1_OSVERSION_CHIPSET.ipk

4. конфигурируем port-mirroring редактируя файл /etc/config/port-mirroring. Он имеет следующий вид:

config 'port-mirroring'
option source_ports 'br-lan' # интерфейс с которого будут копироваться пакеты
option target '172.16.7.133' # интерфейс или IP на который будет отправляться копия трафика
option protocol 'TEE' # используемый механизм - 'TEE' iptables или 'TZSP' TaZmen Sniffer Protocol
option filter '' # опционально. фильтры tcpdump для фильтрации отправляемого трафика

5. И, наконец, стартуем port-mirroring:

# /etc/init.d/port_mirroring start

В итоге у меня получилось следующее: весь трафик, проходящий через порт внутреннего коммутатора br-lan копируется и отсылается на IP адрес, назначенный порту небольшого неттопа, на котором его встречает Suricata.

Что весьма обрадовало, так это то, что при работе port-mirroring  загрузка CPU роутера выросла всего на пару процентов.

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