Skip to content

NetFlow сенсор

AlexanderLevenskikh edited this page Dec 22, 2019 · 28 revisions

TODO: выкинуть, netflow не будем использовать

https://packages.debian.org/source/sid/iptables-netflow

Подробнее про NetFlow: https://www.osp.ru/lan/2018/09/13054476/

Модули ядра: http://www.rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/ch-kernel-modules.html

Ipt-netflow (debian, ubuntu):

Фичи
  • Высокая производительность
  • Поддержка v5, v9, IPFIX
  • Неразборчивый режим
Установка
  1. Загрузка последней версии ipt-netflow
# git clone git://github.com/aabc/ipt-netflow.git ipt-netflow
# cd ipt-netflow
  1. Подготовка ядра Далее, необходимо установить module-assistant и загрузить необходимые заголовочные файлы ядра и пакеты:
# apt-get install module-assistant
# m-a prepare
  1. Подготовка Iptables Установка pkg-config (управление флагами компилятора и компоновщика для библиотек), iptables-devel:
# apt install iptables-dev pkg-config
  1. Сборка модуля
  • DKMS нужен для автоматической компиляции модуля после обновления ядра (--disable-snmp-agent)
  • Включим NAT events (--enable-natevents)
  • Экспортировать MAC-адрес источника/назначения, MAC-адрес становится частью ключа потока (--enable-macaddress)
  • Отслеживание направления (--enable-direction)
  • В данной конфигурации SNMP отключен, если необходимо, обратитесь к официальной документации ipt-netflow
  • Неразборчивый режим (--enable-promisc)
# apt-get install dkms
~/ipt-netflow# ./configure --disable-snmp-agent --enable-natevents --enable-macaddress  --enable-direction --enable-promisc
~/ipt-netflow# make all install
~/ipt-netflow# depmod

Модуль будет расположен в /lib/modules/'uname -r'/extra/ipt_NETFLOW.ko

Запуск

Добавим конфигурацию ipt_NETFLOW:

touch /etc/modprobe.d/ipt_NETFLOW.conf
echo options ipt_NETFLOW destination=$HOST:$PORT protocol=10 natevents=1 promisc=1 > /etc/modprobe.d/ipt_NETFLOW.conf
modprobe ipt_NETFLOW

Настроим iptables и интерфейс:

# iptables -I FORWARD -j NETFLOW
# iptables -A PREROUTING -t raw -i ensX -j NETFLOW
# ifconfig ensX promisc

Пример

Локальная пользовательская сеть: 192.168.2.0/24
Локальная сеть netflow (сенсоры, коллекторы, анализатор) 192.168.1.0/24 Для упрощения пусть сенсор 192.168.1.10 располагается на границе сети 192.168.2.0/24, предоставляет доступ пользователям в сеть Интернет и передает потоки коллектору 192.168.1.50

Настройка сенсора (Ubuntu server)
  • Выполним все описанные выше шаги для установки ipt_NETFLOW
  • Включим ip forwarding:
/etc/sysctl.conf:
net.ipv4.ip_forward=1

Включим NAT:

iptables -t nat -A POSTROUTING -o $EXT_INTERFACE -j SNAT --to-source $EXT_IP_ADDRESS 
  • /etc/netplan/*.yml:
network:
    ethernets:
        ens33:
            dhcp4: true
        ens38:
            addresses: [192.168.1.10/24]
            dhcp4: no
        ens39:
            addresses: [192.168.2.10/24]
            dhcp4: no
    version: 2

Настройка коллектора

  • /etc/netplan/*.yml:
network:
    ethernets:
        ens33:
            dhcp4: true
        ens38:
            addresses:
            - 192.168.1.50/24
            nameservers: {}
    version: 2

Настройка АРМ (Windows 7)

IP: 192.168.2.51
Gateway: 192.168.2.10
Primary DNS: любой (например, 8.8.8.8)

Готово. Смотрим логи в кибане: