【openstack】Neutron实验三安全组基本概念和操作步骤(附源码)
该实验是在SDNLab的未来网络学院学习肖宏辉的《Openstack Neutron应用入门》课程时,借助其实验平台所做的实验。同样也适应其他环境想要自学openstack的小伙伴。
实验平台:https://www.sdnlab.com/experimental-platform/(也可以使用自己搭建的openstack环境)
该实验是在实验二的基础上进行的,所以在看本实验之前应先学习实验二的内容:
实验二链接:https://blog.****.net/zswang9/article/details/79977370
实验环境:
1.一个子网
2.一台主机:HOST1(all_in_one节点)
IP: 192.168.1.10
登录用户:xiaohhui
登录密码:passw0rd
系统:Ubuntu 16.04LTS
规格:CPU-4核,内存-8GB
3.HOST1中的openstack创建的Neutron环境
net1 :
subnet:11.0.0.0/24
网关:11.0.0.1/24
DHCP sever:11.0.0.2/24
VM1:
ip地址:11.0.0.8
用户名:cirros
密码:cubswin:)
一、安全组规则和默认安全组规则内容
(1)定义安全组的基本参数:定义放行规则:
主要设置以下参数:
Direction :ingress/egress 例如:ingress
Ethertype:ipv4/ipv6 例如:ipv4
protocol:TCP/UDP/ICMP 例如:tcp
port range:传输层端口号范围 例如:port_range_max 22 port_range_min 22 :即只对22端口放行
remote ip prefix:y 例如:0.0.0.0/0
remote group ID:
对此ID对应的安全组关联的所有端口对应的IP地址进行放行
(2)默认安全组规则:
允许所有egress(出)流量
允许同一个安全组的端口的ingress流量
禁止所有ingress流量
允许所有DHCP流量(隐藏)
打开MAC spoof prevention 欺诈(隐藏)
实验2.2:手动添加安全组规则并验证
实验内容:
手动添加安全组规则
- 手动添加入方向的ICMP允许规则
- 验证可以从外部ping到主机
新建一个tenant/project
- 查看默认安全组规则
- 删除tenant/project
步骤:
一切还是在实验2.1的基础上操作,登陆实验环境:
在 DHCP namespace 中操作
验证 ping 虚拟机
ping 11.0.0.8
一直不能ping通,因为在实验二中,已经将准入ICMP规则删除了,所以不能ping通。
在all_in_one 节点中操作:
查看port列表
neutron port-list
找到虚拟机对应的port id
查看对应ID的port 的数据
neutron port-show (port ID -虚拟机)
找到 security_groups ID(以后对这个ID进行操作)
查看 neutron 帮助
neutron help security-group-rule-create
添加规则
neutron security-group-rule-create (group ID)--direction ingress --ethertype ipv4 --protocal icmp --remote-ip-prefix 0.0.0.0/0
对ID对应的安全组进行操作,可以看到DHCP server可以ping通虚拟机VM1了。
查看默认安全组
在all_in_one节点上
创建租户
opnestack project create test
可以得到test project的id
查看次project id 对应的默认安全组
neutron security-group-list --tenant-id (project的id)
删除刚才创建的租户
openstack project delete test
————————————————————————————————————————
实验2.2:手动添加安全组规则并验证(无插图版)
实验内容:
手动添加安全组规则
- 手动添加入方向的ICMP允许规则
- 验证可以从外部ping到主机
新建一个tenant/project
- 查看默认安全组规则
- 删除tenant/project
步骤:
一切还是在实验2.1的基础上操作,登陆实验环境:
在 DHCP namespace 中操作
验证 ping 虚拟机
ping 11.0.0.8
一直不能ping通,因为在实验二中,已经将准入ICMP规则删除了,所以不能ping通。
在all_in_one 节点中操作:
查看port列表
neutron port-list
找到虚拟机对应的port id
查看对应ID的port 的数据
neutron port-show (port ID -虚拟机)
找到 security_groups ID(以后对这个ID进行操作)
查看 neutron 帮助
neutron help security-group-rule-create
添加规则
neutron security-group-rule-create (group ID)--direction ingress --ethertype ipv4 --protocal icmp --remote-ip-prefix 0.0.0.0/0
对ID对应的安全组进行操作,可以看到DHCP server可以ping通虚拟机VM1了。
查看默认安全组
在all_in_one节点上
创建租户
opnestack project create test
可以得到test project的id
查看次project id 对应的默认安全组
neutron security-group-list --tenant-id (project的id)
删除刚才创建的租户
openstack project delete test