-
Notifications
You must be signed in to change notification settings - Fork 4
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
- Высокая производительность
- Поддержка v5, v9, IPFIX
- Неразборчивый режим
- Загрузка последней версии ipt-netflow
# git clone git://github.com/aabc/ipt-netflow.git ipt-netflow
# cd ipt-netflow
- Подготовка ядра
Далее, необходимо установить
module-assistant
и загрузить необходимые заголовочные файлы ядра и пакеты:
# apt-get install module-assistant
# m-a prepare
- Подготовка Iptables
Установка
pkg-config
(управление флагами компилятора и компоновщика для библиотек),iptables-devel
:
# apt install iptables-dev pkg-config
- Сборка модуля
- 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
- Выполним все описанные выше шаги для установки 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
IP: 192.168.2.51
Gateway: 192.168.2.10
Primary DNS: любой (например, 8.8.8.8)
Готово. Смотрим логи в кибане: