如何使用 libirt 的 nwfilter 针对特定 mac(VM) 阻止一系列 IP 地址

如何使用 libirt 的 nwfilter 针对特定 mac(VM) 阻止一系列 IP 地址

我有点不知道如何阻止一系列 Ip 地址(最好是虚拟机的特定 mac 地址)

<filter name='local-fileserver-only' chain='ipv4' priority='-700'>
<uuid>blank for now</uuid>
<rule action='drop' direction='inout' priority='500'>
 <mac srcmacaddr='52:54:00:c9:88:0b'/>
<ip start='192.168.1.0' end'192.168.1.255/>
</rule>
<rule action='drop' direction='inout' priority='500'>
 <mac dstmacaddr='52:54:00:c9:88:0b'/>
<ip start='192.168.1.0' end'192.168.1.255/>
</rule>
</filter>

我开始怀疑 nwfilter 是否可行

答案1

根据文档,没有start or对 IPv4 规则的 end` 属性支持。您的选择是:

srcmacaddr
srcmacmask
dstmacaddr
dstmacmask
srcipaddr
srcipmask
dstipaddr
dstipmask
protocol
srcportstart
srcportend
dstportstart
dstportend
dscp
comment

如果你想黑进出出192.168.1.0的流量192.168.1.255,那就对应网络192.168.1.0/24。 24 位网络掩码表示255.255.255.0.这给了我们:

<filter name="block-192-168-1-0" chain="ipv4">
  <rule action="drop" direction="in" >
    <ip srcipaddr="192.168.1.0" srcipmask="255.255.255.0"/>
  </rule>
  <rule action="drop" direction="out" >
    <ip dstipaddr="192.168.1.0" dstipmask="255.255.255.0"/>
  </rule>
</filter>

如果我使用以下命令将其应用于正在运行的虚拟机virt-xml

virt-xml --edit --update --network filterref.filter=block-192-168-1-0 my-test-vm

该虚拟机无法再访问 192.168.1.0/24 网络上的主机。

相关内容