CentOS7防火墙服务FirewallD指南

本文发布时间: 2019-Mar-21
CentOS 7防火墙服务FirewallD指南作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs防火墙是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙通常工作在网络层,也即IPv4或IPv6的IP包上。是否允许包通过防火墙,取决于防火墙配置的规则。这些规则既可以是内建的,也可以是用户自定义的。每一个包要进出防火墙,均需要满足防火墙配置的规则。每一条规则均有一个目标动作,具有相同动作的规则可以分组在一起。对于Linux系统,最常用的防火墙有:FirewallD或iptables。Linux的发行版种类极多,但是公认的仍然是这两种。1、什么是FirewallDFirewallD即Dynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器。FirewallD是一个服务,用于配置网络连接,从而哪些内外部网络的数据包可以允许穿过网络或阻止穿过网络。FirewallD允许两种类型的配置:永久类型和运行时类型。运行时类型的配置在防火墙被重启后会丢失相应的规则配置;而永久类型的配置即使遇到系统重启,也会保留生效。对应于上面两种类型的配置,FirewallD相应的有两个目录:针对运行时类型配置的目录/usr/lib/firewall;以及针对永久类型配置的目录/etc/firewall.在RHEL/CentOS 7或Fedora 18的默认服务可以看到。防火墙栈的整体图如下: 2、什么是iptablesiptables是另一种服务,它可以决定是否允许、删除或返回IP数据包。iptables服务管理IPv4数据包,而ip6tables则管理IPv6数据包。此服务管理了一堆规则表,其中每个表分别用于维护不同的目的,比如过滤表(filter table)为防火墙规则,NAT表供新连接查询使用,mangle表用于数据包的转换等。更进一步,每个表还具有规则链,规则链可以是内建的或是用户自定义的,它表示适用于一个数据包的规则集合,从而决定数据包应该执行哪些目标动作,比如允许ALLOWED、阻塞BLOCKED或返回RETURNED。iptables服务在RHEL/CentOS 6/5、Fedora、ArchLinux、Ubuntu等Linux发行版中是系统默认的服务。3、FirewallD服务的基本操作对于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-config4、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 -v5、理解网络区在CentOS/RHEL 7系统中,基于用户对网络中设备和通信所给与的信任程度,防火墙可用于将网络划分成不同的区域,区域类型如下:drop(丢弃) 任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。block(限制) 任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。public(公共) 在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。external(外部) 特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算机,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。dmz(非军事区) 用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。work(工作) 用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。home(家庭) 用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。internal(内部) 用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。trusted(信任) 可接受所有的网络连接。对于区域的修改,可使用网络管理器NetworkManager搞定。5、理解直接接口FirewallD包含了一个名为直接接口(direct interface)的概念,意思是可以直接通过iptables、ip6tables和ebtables的规则。直接接口适用于应用程序,不适用于用户。如果不熟悉iptables,那么使用直接接口是很危险的,因为可能会导致防火墙被入侵。FirewallD保持对所增加规则项的追踪,所以能质询FirewallD,发现由使用直接端口模式的程序造成的更改。要使用直接端口,增加–direct选项到firewall-cmd命令来使用。6、改用iptables服务在CentOS/RHEL 7系统中,要用iptables和ip6tables服务代替FirewallD服务,需要以root身份运行以下命令,先禁用FirewallD:# systemctl disable firewalld# systemctl stop firewalld然后安装iptables-services程序包,以root身份输入以下命令:# yum install iptables-servicesiptables-services程序包包含了iptables和ip6tables服务。然后,以root身份运行iptables和ip6tables命令:# systemctl start iptables# systemctl start ip6tables# systemctl enable iptables# systemctl enable ip6tables7、启动图形化防火墙设置工具用命令行启动图形化防火墙配置工具,则以root用户身份输入以下命令:# firewall-config可以看到如下界面:


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:08pm
栏目列表