对于CentOS/RHEL 7或Fedora 18以上版本的系统,要管理FirewallD服务,使用如下命令。
启动FirewallD服务 # systemctl firewalld start 停止FirewallD服务 # systemctl firewalld stop 检查FirewallD服务的状态 # systemctl status firewalld 检查FirewallD服务的状态 # firewall-cmd --state 可能会返回running,表示正在运行。 还可以禁用FirewallD服务,关闭那些规则。 禁用FirewallD服务 # systemctl disable firewalld 启用FirewallD服务 # systemctl enable firewalld 屏蔽FirewallD服务 # systemctl mask firewalld 还可以通过创建一个firewall.service到/dev/null的符号连接来屏蔽防火墙服务。 反屏蔽FirewallD服务 # systemctl unmask firewalld 这是反屏蔽FirewallD服务,它会移除屏蔽FirewallD服务时创建的符号链接,故能重新启用服务。 检查是否已安装防火墙 # yum install firewalld firewall-config 1、iptables服务的基本操作 在RHEL/CentOS 6/5/4系统和Fedora 12-18系统中,iptables是默认的防火墙,如果服务不存在,可以这样安装: # yum install iptables-services 然后就可以对iptables服务进行启动、停止、重启等操作了。 启动iptables服务 # systemctl start iptables 或 # service iptables start 停止iptables服务 # systemctl stop iptables 或 # service iptables stop 禁用iptables服务 # systemctl disable iptables 或 # service iptables save # service iptables stop 启用iptables服务 # systemctl enable iptables 或 # service iptables start 检查iptables服务的状态 # systemctl status iptables 或 # service iptables status 在Ubuntu及其它Linux发行版中,ufw是用于管理iptables防火墙服务的工具。ufw提供了一个简易的界面让用户可以很方便的处理iptables防火墙服务。 启用ufw iptables防火墙服务 $ sudo ufw enable 禁用ufw iptables防火墙服务 $ sudo ufw disable 检查ufw iptables防火墙服务的状态 $ sudo ufw status 但是,如果想列出iptables包含的所有规则链列表,应使用如下命令: $ iptables -L -n -v 2、理解网络区 在CentOS/RHEL 7系统中,基于用户对网络中设备和通信所给与的信任程度,防火墙可用于将网络划分成不同的区域,区域类型如下: drop(丢弃) 任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。 block(限制) 任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。 public(公共) 在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。 external(外部) 特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算机,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。 dmz(非军事区) 用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。 work(工作) 用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。 home(家庭) 用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。 internal(内部) 用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。 trusted(信任) 可接受所有的网络连接。 对于区域的修改,可使用网络管理器NetworkManager搞定。 3、理解直接接口 FirewallD包含了一个名为直接接口(direct interface)的概念,意思是可以直接通过iptables、ip6tables和ebtables的规则。直接接口适用于应用程序,不适用于用户。如果不熟悉iptables,那么使用直接接口是很危险的,因为可能会导致防火墙被入侵。 FirewallD保持对所增加规则项的追踪,所以能质询FirewallD,发现由使用直接端口模式的程序造成的更改。要使用直接端口,增加–direct选项到firewall-cmd命令来使用。 4、改用iptables服务 在CentOS/RHEL 7系统中,要用iptables和ip6tables服务代替FirewallD服务,需要以root身份运行以下命令,先禁用FirewallD: # systemctl disable firewalld # systemctl stop firewalld 然后安装iptables-services程序包,以root身份输入以下命令: # yum install iptables-services iptables-services程序包包含了iptables和ip6tables服务。然后,以root身份运行iptables和ip6tables命令: # systemctl start iptables # systemctl start ip6tables # systemctl enable iptables # systemctl enable ip6tables 5、启动图形化防火墙设置工具 用命令行启动图形化防火墙配置工具,则以root用户身份输入以下命令: # firewall-config 可以看到图形化界面