LINUX.ORG.RU
ФорумAdmin

Macvtap и Iptables, фильтрация трафика

 , ,


0

1

Добрый день. Имеется хост машина и виртуальные машины KVM (LibVirt), подключенные к сети через macvtap.

Возникла необходимость блокировать трафик на хост машине через iptables, но как я понял, macvtap минует стек хост машины.

Как можно фильтровать входящий трафик macvtap с хост машины?

пофиг, что это macvlan. KVM все равно его через бридж подключает. Сморти фильтрацию на бридже средствами ebtables или если ядро поддерживает CONFIG_BRIDGE_NETFILTER, то средствами netfilter

vel ★★★★★
()
Ответ на: комментарий от vel

С ebtables также не работает.

Ни одно из правил не сработало:

sudo ebtables -A FORWARD -p ip --ip-source $IP_SRC -j DROP
sudo ebtables -A INPUT -p ip --ip-source $IP_SRC -j DROP

sudo ebtables -A FORWARD -p ipv4 --ip-dst $IP_DST -j DROP
sudo ebtables -A INPUT -p ipv4 --ip-dst $IP_DST -j DROP

Может какие-то настройки написать, которые внесут ясности в картину?!

EENNOOTT
() автор топика
Ответ на: комментарий от EENNOOTT

Вот такая хрент у меня замечательно считала трафик виртуальной машины.

# Generated by ebtables-save v1.0 on Wed Dec 23 13:48:23 MSK 2009
*nat
:PREROUTING ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT

*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A FORWARD -p IPv4 -i tap1 --ip-src 10.13.38.19 --ip-proto tcp -j CONTINUE
-A FORWARD -p IPv4 -o tap1 --ip-dst 10.13.38.19 --ip-proto tcp -j CONTINUE

*broute
:BROUTING ACCEPT

vel ★★★★★
()
Ответ на: комментарий от vel

А параметры виртуалки какие были?

У меня всё вот так:

/etc/libvirt/nwfilter# sudo ebtables --list
Bridge table: filter

Bridge chain: INPUT, entries: 2, policy: ACCEPT
-p IPv4 --ip-proto tcp -j DROP 

Bridge chain: FORWARD, entries: 2, policy: ACCEPT
-p IPv4 -i tap4 --ip-proto tcp -j DROP 
-p IPv4 --ip-proto tcp -j DROP 
Перепробовал по всякому...

Из xml виртуалки:

    <interface type='direct'>
      <mac address='52:54:00:86:d8:10'/>
      <source dev='eth0' mode='bridge'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

EENNOOTT
() автор топика
Ответ на: комментарий от EENNOOTT

а оно имя tapX каждый раз новое создает?

При запущенной виртуалке посмотри что говорит «brctl show»

vel ★★★★★
()
Ответ на: комментарий от vel

Каждый раз новое. Только, если быть точнее, то macvtapX.

В brctl show никаких упоминаний о tapX и macvtapX нет:

bridge name	bridge id		STP enabled	interfaces
virbr0		8000.000000000000	yes	

EENNOOTT
() автор топика
Ответ на: комментарий от EENNOOTT

Извини, перепутал macvtap с macvlan :(

по «ip li» будет видно устройство c @eth0 в имени. Вот на нем нужно смортеть/фильтровать трафик.

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.