基于network filter的虚拟机访问控制

什么是nwfilter

在公有云的环境中,经常需要对云主机的网络环境进行控制,实现对虚拟机网络流量的接收或者拒收。而nwfilter就可以实现这样的功能,目前已经被广泛地嵌套在KVM中,可以精准的实现以上的功能。

nwfilter目的是让管理员在host上控制vm的每块网卡。同一个nwfilter规则可以被不同vm重复使用,也可以为每个VM创建不同的filter规则。并且进入或者流出VM的流量无法避开nwfilter机制,因此这种限制就成为了强制性的,有点像linux中的iptables的功能。

nwfilter文件路径

默认存放在/etc/libvirt/nwfilter的文件夹中,一个xml文件代表一个设定的nwfilter规则,当你想指定一条nwfilter规则的时候,在这个目录中新增一个xml文件即可。

基于network filter的虚拟机访问控制

如何应用nwfilter

Nwfilter是需要配置在虚拟机的xml文件中生效的,通过过虚拟机的xml文件增加一个<filterref filter='name-of-nwfilter'/>的参数,就可以实现对应的效果。

比如对“bridge1”这个虚拟机网桥,新增一个“drop80”的nwfilter的规则,这个规则的作用是将虚拟机的80端口进行封阻。那么,我们就可以这么做:

编写一个drop80.xml的nw文件

<filter name='drop80' chain='root'>

<uuid>a1dadb35-3a7d-417d-8ca1-17d63036179b</uuid>

<rule action='drop' direction='out' priority='500'>

<tcp dstportstart='80' dstportend='80'/>

</rule>

</filter>

编辑完成之后声明这个nw规则生效

virsh nwfilter-define limit

查看目前已经定义的nw规则列表

virsh nwfilter-list

将其应用到应用到虚拟机中

编辑某台虚拟机的XML文件,在network部分中,加入以下的参数,就可以生效了。

[...]

<interface type='bridge'>

<source bridge='bridge1'/>

<filterref filter='drop80'/>

</interface>

[...]

以上就是关于nwfilter的基础用法,下面我再举个例子,希望可以帮助你更好地理解nwfilter的用法;

连接数限制

假设一个虚拟机只允许一个IP在同一之间发起一个ping链接。防止某个IP对虚拟机恶意***。

<rule action='drop' direction='out' priority='400'>

<icmp connlimit-above='1'/>

</rule>

<rule action='accept' direction='out' priority='500'>

<icmp/>

</rule>

<rule action='drop' direction='inout' priority='1000'>

<all/>

</rule>

好了,关于nwfilter的用法已经介绍完了,希望对你有帮,具体详细的学习,你可以参考nwfilter的官方用法解析:https://libvirt.org/formatnwfilter.html#nwfelemsRulesAdv

基于network filter的虚拟机访问控制
睿江云官网链接:https://www.eflycloud.com/home?from=RJ0024

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值