作者:【吴业亮】云计算开发工程师
博客:http://blog.csdn.net/wylfengyujiancheng
一、架构:
二、防火墙与安全组区别
防火墙一般放在网关上,用来隔离子网之间的访问。因此,防火墙即服务也是在网络节点上(具体说来是在路由器命名空间中)来实现。
安全组的对象是虚拟网卡,由L2 Agent来实现,比如neutron_openvswitch_agent 和 neutron_linuxbridge_agent,会在计算节点上通过配置 iptables 规则来限制虚拟网卡的进出访问。防火墙可以在安全组之前隔离外部过来的恶意流量,但是对于同个子网内部不同虚拟网卡间的通讯不能过滤(除非它要跨子网)。
可以同时部署防火墙和安全组实现双重防护
三、安装fwaas
1. 控制节点:
安装软件包
yum install openstack-neutron-fwaas -y
修改配置文件 /etc/neutron/neutron.conf
service_plugins = router,firewall
[service_providers]
service_provider=FIREWALL:Iptables:neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver:default
重启服务
# systemctl restart neutron-server.service
在数据库中创建所要求的表:
# neutron-db-manage --service fwaas upgrade head
- 网络节点:
安装软件包
# yum install openstack-neutron-fwaas -y
修改配置文件/etc/neutron/fwaas_driver.ini
driver=neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver
enabled = True
修改配置文件/etc/neutron/neutron.conf
service_plugins = router,firewall
重# systemctl restart neutron-l3-agent.service文件 /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py中打开fwaas
OPENSTACK_NEUTRON_NETWORK = {
...
'enable_firewall' = True,
...}
重启http服务
# service httpd restart
四、命令行
创建一个规则:
# neutron firewall-rule-create --protocol {tcp|udp|icmp|any} --destination-port PORT_RANGE --action {allow|deny}
创建一个策略
# neutron firewall-policy-create --firewall-rules "FIREWALL_RULE_IDS_OR_NAMES" myfirewallpolicy
创建一个防火墙
# neutron firewall-create FIREWALL_POLICY_UUID
五、dashboard上操作
1、创建规则,允许ping通,但不允许ssh
2、创建一个策略
支持规则先后顺序
注意:防火墙默认deny所以得数据包
3、创建一个防火墙
六、测试:
不能ssh
可以ping通