DosGate и FlowCollector на одной аппаратой платформе
Архитектура ПО DosGate и ПО FlowCollector позволяет разместить сразу две системы на одной серверной платформе. Это может быть полезно в инфраструктурах где не планируется использовать кластеризацию или устанавливать более 1 серверной платформы, но хочется получить все преимущества анализатора сетевого трафика.
Комбинация с FlowCollector позволяет управлять маршрутизацией с использованием протокола BGP, в том числе активировать механизмы облачной сигнализации, например в сторону MSSP. FlowCollector в сети также позволяет инсталлировать систему "сбоку" (outline) с возможностью автоматического перестроения маршрутов при детекции сетевой аномалии.
Требования к платформе
ПАК в сетевой инфраструктуре заказчика может быть размещен до или после маршрутизатора. Если до - рекомендуется использовать сетевые карты с аппаратным байпассом (например, Silicom PE310G4BPI9-SR-SD)
- Два или более CPU
- Две или более сетевые карты
- От 8 ядер на CPU
- От 16GB RAM
- От 240GB дискового пространства
Установка DoSGate и FlowCollector
Инструкция по установке DosGate
- При настройке направления маршрутизации трафика /etc/dosgate.conf, указывайте сетевые интерфейсы NIC1
Инструкция по установке FlowCollector
- Рекомедуется выбрать установку в режиме зеркалирования
- При настройке сетевых интерфейсов, выберите сетевой интерфейс NIC2
- При настройке кол-ва логических ядер, требуется указать не более чем общее кол-во ядер CPU2
Настройка GoBGP в FlowCollector (опционально)
GoBGP - демон управления BGP-маршрутами с которым нативно интегрируется FC. Он сильно расширяет возможности настройки политик маршрутизации. Именно GoBGP позволяет параллельно активации очистки на своей сети, активировать механизмы облачной сигнализации у MSSP.
Установите GoBGP
sudo apt install gobgpd=3.19.0
Активируйте GoBGP на FlowCollector в файле analyzer.yaml
При детекции сетевой аномалии (DDoS-атаки) - будут активироваться политики указанные в GoBGP
gobgp:
enable: true
# Хост GoBGP API
host: localhost
# Порт GoBGP API
port: 50051
Конфигурация политик маршрутизации
sudo nano /etc/gobgpd.conf
Замените в примере конфигурации следующие данные:
192.0.100.103
- IP-адрес FlowCollector192.0.100.101
- IP первого BGP соседа192.0.100.102
- IP второго BGP соседа65003
- AS FlowCollector65001
и65002
- AS BGP соседей192.0.1.101
- nexthop для первого BGP соседа192.0.1.102
- nexthop для второго BGP соседа
[global.config]
as = 65003
router-id = "192.0.100.103"
port = 179
[global.apply-policy.config]
export-policy-list = ["first-export-policy", "second-export-policy"]
[[neighbors]]
[neighbors.config]
neighbor-address = "192.0.100.101"
peer-as = 65001
[neighbors.ebgp-multihop.config]
enabled = true
[[neighbors.afi-safis]]
[neighbors.afi-safis.config]
afi-safi-name = "ipv4-unicast"
[neighbors.transport.config]
local-address = "192.0.100.103"
[neighbors.apply-policy.config]
default-import-policy = "reject-route"
default-export-policy = "reject-route"
[[neighbors]]
[neighbors.config]
neighbor-address = "192.0.100.102"
peer-as = 65002
[neighbors.ebgp-multihop.config]
enabled = true
[[neighbors.afi-safis]]
[neighbors.afi-safis.config]
afi-safi-name = "ipv4-unicast"
[neighbors.transport.config]
local-address = "192.0.100.103"
[neighbors.apply-policy.config]
default-import-policy = "reject-route"
default-export-policy = "reject-route"
[[defined-sets.neighbor-sets]]
neighbor-set-name = "first-neighbor"
neighbor-info-list = ["192.0.100.101"]
[[defined-sets.neighbor-sets]]
neighbor-set-name = "second-neighbor"
neighbor-info-list = ["192.0.100.102"]
[[defined-sets.prefix-sets]]
prefix-set-name = "allowed-prefixes"
[[defined-sets.prefix-sets.prefix-list]]
ip-prefix = "0.0.0.0/0"
masklength-range = "25..32"
[[policy-definitions]]
name = "first-export-policy"
[[policy-definitions.statements]]
name = "first-statement"
[policy-definitions.statements.conditions.match-prefix-set]
prefix-set = "allowed-prefixes"
[policy-definitions.statements.conditions.match-neighbor-set]
neighbor-set = "first-neighbor"
[policy-definitions.statements.actions]
route-disposition = "accept-route"
[policy-definitions.statements.actions.bgp-actions]
set-next-hop = "192.0.1.101"
[[policy-definitions]]
name = "second-export-policy"
[[policy-definitions.statements]]
name = "second-statement"
[policy-definitions.statements.conditions.match-prefix-set]
prefix-set = "allowed-prefixes"
[policy-definitions.statements.conditions.match-neighbor-set]
neighbor-set = "second-neighbor"
[policy-definitions.statements.actions]
route-disposition = "accept-route"
[policy-definitions.statements.actions.bgp-actions]
set-next-hop = "192.0.1.102"
Перезапустите GoBGP
Перезапустите сервис, убедитесь что запустился демон
sudo systemctl enable --now gobgpd
sudo service gobgpd restart
sudo service gobgpd status
Перезапустите FlowCollector
Перезапуск сервиса нужен для применения изменений к analyzer.yaml
sudo service analyzer restart
sudo service analyzer status
Проверьте активные BGP-сессии
Команда покажет BGP-соседей и статус каждой сессии. Если всё настроено - все сессии должны быть успешно установлены ("Established")
sudo gobgpd nei