iptables配置禁止虚拟机之间通信
记个笔记 顺便记一下 iptables规则的取反要放在一条匹配项之前 而不是参数之前
#以下规则要允许所有非172.20.0.64/26的地址通过访问
#正确
-A KVM ! -s 172.20.0.64/26 -j ACCEPT #错误
-A KVM -s ! 172.20.0.64/26 -j ACCEPT
我的虚拟机网络NAT转换的 地址为172.20.0.64/26 网卡为virbr1
配置策略 让虚拟机允许访问宿主机 但禁止各个虚拟机之间访问
使用防火墙iptables 操作系统 kali(基于debian)
因为虚拟机间通讯走的是virbr1网卡 而且流量不走本机
所有外网流量
所以我们要操作FORWARD链
建议不要把所有的规则直接扔FORWARD里面 太乱了
#设置FORWARD链的策略为丢弃 一般INPUT和FORWARD的策略都要设置成DROP方便规则的编写
-P FORWARD DROP
#定义用户链
-N KVM
在FORWARD里面加两条
-A FORWARD -i virbr1 -j KVM
-A FORWARD -o virbr1 -j KVM
这两条规则将所有走virbr1网卡的流量都走一遍KVM链
# 这两条允许访问宿主机 -A KVM -s 172.20.0.65 -j ACCEPT -A KVM -d 172.20.0.65 -j ACCEPT # 这两条允许广播 -A KVM -s 172.20.0.255 -j ACCEPT -A KVM -d 172.20.0.255 -j ACCEPT # 这两条禁止虚拟机间通信 必须要放在最后 不然上面那两条都没用了 -A KVM ! -s 172.20.0.64/26 -j ACCEPT -A KVM ! -d 172.20.0.64/26 -j ACCEPT
# 或者写成(说实话 我不太喜欢这种写法 虽然和上面的写法没区别 大概是心理作用吧)
-A KVM -s 172.20.0.64/26 -d 172.20.0.64/26 -j DROP
-A KVM -j ACCEPT
配置Docker容器间禁止互相访问也和这个一样
Erika 20190722
来自1942年冬季攻势中的中央集团军的037号17吨救援拖车