- zstack-iptables限制虚拟机
- 实现策略
- 虚拟机介绍
- 172.16.21.25宿主机 [root@172-16-21-25 ~]# virsh list --all Id Name State
- [root@172-16-21-25 ~]# virsh domifaddr 992cc1e62d4849518805a4abfeecbcb8 --source arp Name MAC address Protocol Address
- 宿主机上创建172.16.10.27和26出入口网卡名的安全表
- 案列
宿主机
172.16.21.25
虚拟机
172.16.21.26
172.16.21.27
- 入方向 —协议【all | tcp|udp】–端口【3389】–ip 【2个】
- 入方向方通icmp
- 出不限制
- 入限制所有
[root@172-16-21-25 ~]# virsh list --all
Id Name State
1 992cc1e62d4849518805a4abfeecbcb8 running
3 eb53e089352249498688039f2b2d97c8 running
Name MAC address Protocol Address
vnic4.0 fa:d0:e1:83:f2:00 ipv4 172.16.21.26/0
查看虚拟机ip地址以及虚拟机的虚拟网卡名字
出现bug的情况不显示
查看
查看你虚拟机的arp信息
注意:用命令作用于zstack平台 iptables配置会丢失
命令
iptables –N 创建新的链路规则
iptables -N vnic4.0-in(虚拟网卡名-in)
iptables -N vnic4.0-out (虚拟网卡名-out)
详解如下:
iptables -A sg-default -m physdev --physdev-out vnic4.0 --physdev-is-bridged -j vnic4.0-in
物理设备出physdev --physdev- 到 虚拟网卡vnic9.0 物理网卡模式–physdev-is-bridged –j 应用于vnic9.0-out 链路
iptables -A sg-default -m physdev --physdev-out vnic9.0 --physdev-is-bridged -j vnic4.0-in
在sg-default 新建一条规则
物理设备出physdev --physdev-out 到 虚拟网卡vnic9.0 物理网卡模式–physdev-is-bridged –j 应用于vnic9.0-in 链路
iptables -I sg-default 4 -m physdev --physdev-out vnic9.0 --physdev-is-bridged -j vnic9.0-in
iptables -I sg-default 5 -m physdev --physdev-in vnic9.0 --physdev-is-bridged -j vnic9.0-out
案列iptables -L -n --line-number
[root@172-16-21-25 ~]# iptables -I sg-default -m physdev --physdev-out vnic4.0 --physdev-is-bridged -j vnic4.0-in
[root@172-16-21-25 ~]# iptables -I sg-default -m physdev --physdev-in vnic4.0 --physdev-is-bridged -j vnic4.0-out
[root@172-16-21-25 ~]# iptables -I sg-default -m physdev --physdev-out vnic5.0 --physdev-is-bridged -j vnic5.0-in
[root@172-16-21-25 ~]# iptables -I sg-default -m physdev --physdev-in vnic5.0 --physdev-is-bridged -j vnic5.0-out
禁止 同网段互通,出口无限制
[root@172-16-21-25 ~]# iptables -A vnic4.0-out -s 172.16.21.0/24 -d 172.16.21.0/24 -j DROP
[root@172-16-21-25 ~]# iptables -A vnic5.0-out -s 172.16.21.0/24 -d 172.16.21.0/24 -j DROP
[root@172-16-21-25 ~]# iptables -A vnic5.0-out -j RETURN
[root@172-16-21-25 ~]# iptables -A vnic4.0-out -j RETURN
centos做允许
入口限制 开放22 拒绝同网段icmp 拒绝所有
[root@172-16-21-25 ~]# iptables -I vnic4.0-in -p tcp --dport 22 -j ACCEPT
[root@172-16-21-25 ~]# iptables -I vnic5.0-in -p tcp --dport 22 -j ACCEPT
[root@172-16-21-25 ~]# iptables -I vnic5.0-in -p icmp --icmp 8 -j ACCEPT
[root@172-16-21-25 ~]# iptables -I vnic4.0-in -p icmp --icmp 8 -j ACCEPT
[root@172-16-21-25 ~]# iptables -I vnic4.0-in -s ! 172.16.21.0/24 -p icmp -m icmp --icmp-type 0 -j ACCEPT
[root@172-16-21-25 ~]# iptables -I vnic4.0-in -s ! 172.16.21.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
[root@172-16-21-25 ~]# iptables -I vnic5.0-in -s ! 172.16.21.0/24 -p icmp -m icmp --icmp-type 0 -j ACCEPT
[root@172-16-21-25 ~]# iptables -I vnic5.0-in -s ! 172.16.21.0/24 -p icmp -m icmp --icmp-type 8 -j ACCEPT
[root@172-16-21-25 ~]# iptables -A vnic4.0-in -j DROP
[root@172-16-21-25 ~]# iptables -A vnic5.0-in -j DROP
Windwos 做拒绝
入口限制 默认限制
[
出口限制禁止虚拟机同网段互通
[root@172-16-21-25 ~]# iptables -A vnic9.0-out -s 172.16.21.0/24 -d 172.16.21.0/24 -j DROP
[root@172-16-21-25 ~]# iptables -A vnic9.0-out -j RETURN
[[root@172-16-21-25 ~]# iptables -A vnic9.0-in -j RETURN
[root@172-16-21-25 ~]# iptables -A vnic9.0-out -j RETURN
禁止ip访问
iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP
iptables -A INPUT -p icmp --icmp 8 -j ACCEPT #允许请求进来
iptables -A OUTPUT -p icmp --icmp 0 -j ACCEPT #允许响应出去
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
允许所有,不安全,默认。
iptables -A INPUT -s 172.29.73.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
限制指定IP范围能SSH,可取
iptables -A INPUT -s 10.30.0.0/16 -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
允许一个IP段访问多个端口
iptables -A INPUT -s 10.30.26.0/24 -p tcp -m tcp --dport 80 -j DROP
禁止某IP段访问80端口,将-j DROP改成 -j REJECT --reject-with icmp-host-prohibited作用相同。



