fedora20的防火墙配置

使用 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官网

14
image-2009

修改及配置防火墙

/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