12

У меня есть выделенный корневой сервер Linux (Debian 7.5) с настроенным количеством гостей. Гости являются экземплярами KVM и получают доступ к сети через bridge-utils (NAT, внутренние IP-адреса, используют хост в качестве шлюза).

Например, один KVM - мой гость WebServer, и он становится доступным через IP-адрес хоста следующим образом:

    iptables -t nat -I PREROUTING -p tcp -d 148.251.Y.Z 
--dport 80 -j DNAT --to-destination  192.168.100.X:80 

Я делаю то же самое с другими службами, сохраняя их автономными, NAT и изолированными.

Но один гость должен быть сетевым монитором и должен выполнять проверку сетевого трафика (например, IDS). Обычно в не виртуальной установке я бы использовал VACL или порты SPAN для зеркалирования трафика. Конечно, внутри этого хоста я не могу этого сделать (легко, потому что я не хочу использовать сложные подходы виртуальной коммутации).

  1. Могу ли я получить зеркало порта с помощью iptables и перенаправить весь входящий и исходящий трафик одному гостю KVM? Все гости имеют выделенный интерфейс, например, vnet1 .
  2. Можно ли выборочно пересылать трафик на основе протокола (например, правила пересылки VACL, которое захватывает только HTTP)?
  3. нужны ли гостям особые настройки интерфейса, когда мне нужно сохранить vnet1 в качестве интерфейса управления (с IP)?

Я был бы рад за точку в правильном направлении:

iptables         1.4.14-3.1
linux            3.2.55
bridge-utils     1.5-6

Большое спасибо :)

1 ответ1

15

Как насчет того, чтобы добавить модуль предварительной маршрутизации корневого сервера.

iptables -I PREROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee

а затем добавив модуль правил Mangle таблицы post-Routing чем-то вроде

iptables -I POSTROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee 

где 192.168.200.1 - сетевой монитор.

Эти правила будут отражать весь входящий и исходящий трафик, перенаправляя его на 192.168.200.1

редактировать:

mangle table specific
  -j ROUTE            (explicitly route packets, valid at PREROUTING)
      options:
      --iface <iface_name>
      --ifindex <iface_idx> 

но вы также можете использовать что-то вроде

iptables -I PREROUTING –t mangle –i eth0 –j TEE –gateway 192.168.200.1

а также

iptables -I POSTROUTING –t mangle –j TEE –gateway 192.168.200.1

где TEE сейчас является целью, которая в PREROUTING использует больше параметров, таких как -i , -p и т. д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .