使用 FirewallD 构建动态防火墙
老文[适用于fedora19及之前的版本]:iptables默认安全规则脚本
FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。 以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。
相反,firewall daemon 动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要重载所有内核防火墙模块了。不过,要使用 firewall daemon 就要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的。另外,firewall daemon 无法解析由 ip*tables 和 ebtables 命令行工具添加的防火墙规则。
守护进程通过 D-BUS 提供当前激活的防火墙设置信息,也通过 D-BUS 接受使用 PolicyKit 认证方式做的更改。引用自:fedora官网
修改及配置防火墙
/etc/sysconfig/iptables文件在fedora20上无法使用.
常用命令:
1 2 3 4 5 | firewall-cmd --state //查看防火墙状态 firewall-cmd --reload //不改变状态的情况下重新加载防火墙 firewall-cmd --get-zones //获取支持区域列表 |
啰嗦几句,firewalld[fedora20防火墙]的配置文件变成了一个xml文件,我的配置是这样的[供参考](文件位置:/etc/firewalld/zones/public.xml):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="ftp"/> <service name="mdns"/> <service name="http"/> <service name="ntp"/> <service name="dhcpv6-client"/> <service name="telnet"/> <service name="ssh"/> <service name="https"/> <!-- <service name="mysql" /> 写服务或者写端口都可以 --> <service name="dhcp"/> <port protocol="tcp" port="8080"/><!-- tomcat --> <port protocol="udp" port="8080"/> <port protocol="tcp" port="25" /> <!-- smtp --> <port protocol="udp" port="25"/> <port protocol="tcp" port="465" /> <!-- smtp ssl --> <port protocol="udp" port="465"/> <port protocol="tcp" port="3306" /> <!-- mysql --> <port protocol="udp" port="3306"/> </zone> |
参考资料:FirewallD