列出所有安全组:
1 |
openstack security group list |
列出所有名叫default的安全组的ID:
1 |
openstack security group list -fjson|jq -r '.[]|select(.Name == "default")|.ID' |
列出指定安全组下的所有规则: (–long 显示每条规则的方向,默认不显示方向)
1 |
openstack security group rule list --long bc462cd9-1957-4a33-ac22-d3941e5113b5 |
可以通过–ingress –egress 只显示指定方向上的规则; 通过 –protocol 显示指定协议相关的规则
实际应用:
检查是否所有的“default” 安全组都设置了允许所有tcp、udp都可以主动外出的规则:
1 2 3 4 5 |
openstack security group list -fjson|jq -r '.[]|select(.Name == "default")|.ID'| while read id; do echo $id; openstack security group rule list --long $id -f json |jq -r '.[]|select((.["IP Protocol"] == "tcp" or .["IP Protocol"] == "udp") and .["IP Range"] == "0.0.0.0/0" and .["Direction"] == "egress" and .["Port Range"] == "1:65535" and .["Ethertype"] == "IPv4") |.["IP Protocol"]' echo done |
结果输出:
1 2 3 |
1bfd33d7-6278-4718-9680-fd6f3328561d tcp udp |
如果输出了tcp和udp就意味着是正确的
添加安全组规则:
允许所有tcp主动外出访问:
1 |
openstack security group rule create --protocol tcp --remote-ip 0.0.0.0/0 --dst-port "1:65535" --egress --ethertype IPv4 --description "allow all tcp active request" eb9dd2e8-129d-4135-bee8-f92744f5fbdd |