Linux系统管理 –RHEL-7 防火墙篇

 

 

Linux系统的防火墙功能是由内核实现的:

2.0 版内核中,包过滤机制是ipfw,管理工具是ipfwadm

2.2 版内核中,包过滤机制是ipchain,管理工具是ipchains

2.4 版及以后的内核中,包过滤机制是netfilter,管理工具是iptables

3.10版内核中,包过滤机制是firewalld,管理工具是firewall-cmd

 

大家应该都知道RHEL7内核的版本是3.10,在此版本的内核里防火墙的包过滤机制是firewalld ,虽然说它的工具变了,但是‘firewall-cmd’ 命令其实是调用的iptables

[root@serverX ~]# for SERVICE in iptables ip6tables ebtables; do

>   systemctl mask${SERVICE}.service

> done

包过滤防火墙是工作在TCP/IP的网络层

附件  TCP/IP


规则表

具有某一类相似用途的防火墙规则,按照不同处理时机区分到不同的规则链以后,被归置到不同的“表”中规则表是规则链的集合

     默认的4个规则表

 raw表:确定是否对该数据包进行状态跟踪

mangle表:为数据包设置标记

nat表:修改数据包中的源、目标IP地址或端口

 filter表:确定是否放行该数据包(过滤)

其中filter表、nat表是最常用的,每个表的功能不同,通过数据的匹配规则也不同,在今后使用中请确认后再去使用mangle表可以对数据包进行特殊标记,结合这些标记可以在filter表中对数据包进行有选择性的处理(如“策略路由”,举个例子,网关主机有两条ADSL线路,分别使用网通、电信的接口,可以将访问网通服务器的数据交给网通ADSL接口,而访问电信服务器的数据交给电信ADSL接口)raw表是自1.2.9以后版本的iptables新增的表,主要用于决定数据包是否被状态跟踪机制处理,目前raw表中的应用尚不多见

 

 附件 规则表

规则链

包过滤防火墙的主要特点是过滤网络层的IP数据包。实际上在应用iptables规则的时候会发现,有些规则应用是针对传输层、链路层的这些规则的实现是由一个叫“规则链”的规则的作用在于对数据包进行过滤或处理,根据处理时机的不同,各种规则被组织在不同的“链”中规则链是防火墙规则/策略的集合。这些规则链有五种默认的分别是:

INPUT                        处理入站数据包

OUTPUT                     处理出站数据包

FORWARD                处理转发数据包

POSTROUTING :在进行路由选择后处理数据包

PREROUTING   在进行路由选择前处理数据包

在“主机防火墙中,主要针对服务器本机进出的数据实施控制,多以INPUTOUTPUT链的应用为主在“网络防火墙中,主要针对数据转发实施控制,特别是防火墙主机作为网关使用时的情况,因此多以FORWARDPREROUTINGPOSTROUTING链的应用为主

   入站数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机(如Internet用户访问防火墙主机中Web服务的数据包),那么内核将其传递给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如httpd服务器)进行响应

   转发数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其他外部地址(如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理

   出站数据流向:防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网DNS服务时),首先被OUTPUT规则链处理,之后进行路由选择,然传递给POSTTOUTING规则链(是否修改数据包的地址等)进行处理

 附件 规则链

防火墙区域

firewall区域许多预定义的区域运输firewalld,每个都有自己的用途,每一个区域都和其他区域是有联系的,不指定区域时,默认区域为public,默认的区域不是一个独立的区域;相反,它指向一个在系统定义的其他区域,在RHEL7中常见的区域有

trusted:允许所有传入的流量

 home    拒绝传入流量,允许外出及服务sshmdnsipp-clientsamba-clientdhcpv6-client

internal:拒绝传入流量,允许外出及服务sshmdnsipp-clientsamba-clientdhcpv6-client(同home

  work      拒绝传入流量,允许外出及服务ssh ipp-client dhcpv6-client

  public   拒绝传入流量,允许外出及服务sshdhcpv6-client,新添加的网络接口缺省的默认区域。

  external:拒绝传入流量,允许外出及服务sshmdnsipp-clientsamba-clientdhcpv6-client,允许IPV4的流量输出

   dmz         拒绝传入流量,允许外出及服务ssh

   block      拒绝流量进出

   drop       放弃所有的传入流量,除非外出交通相关(甚至不响应ICMP协议错误)

如果传入的数据包的源地址相匹配的一个区的规则设置,数据包将通过该区域路由如果一个数据包传入接口与一个区域规则的设置匹配,该区域将被使用。

 

防火墙的配置

     RHEL7内提供了三种防火墙的管理方式:①命令模式下使用命令 firewall-cmd  ② 图形界面下使用命令 firewall-config③修改配置文件在/etc/firewalld/,在这里我们重点介绍第一种命令行模式。

firewall-cmd 不得不说RHEL7中的防火墙命令动不动就两三行,而且还有好多我都没见过的选项和参数,至于有哪些选项和参数呢,我列出来给大家看看

 

设置 wab服务的访问权限

验证firewall是否启用

第一步Systemctl status firewalld.Service

 

Linux系统管理 –RHEL-7 防火墙篇_第1张图片

第二步安装 httpdmod_ssl 软件包并开启 httpd 服务以及自启动

Linux系统管理 –RHEL-7 防火墙篇_第2张图片

wKiom1QFxWWTffm3AADzxMovUrA562.jpg

第三步 创建wab服务的首页文件

wKioL1QFxWqxfcPsAADb0ozFIEI442.jpg

第四步  默认配置 防火墙对 主机server1 允许所有流量通过DMZ区域

firewall-cmd –set-defaule-zone=dmz

wKioL1QFxWejJfMgAABdTE9U6ZM650.jpg

第五步配置防火墙对主机server1所在网

的流量通过 即允许172.25.1.0/24通过DMZ区域

firewall-cmd   --permanent  --zone=work   --add-source=172.25.1.0/24

wKioL1QFxWjBJ3OIAABT0Vyj2hw631.jpg

第六步配置区域work 允许访问wab服务的流

量进出(https

firewall-cmd  --permanent --zone=work  --add-service=https

wKioL1QFxWmghGKZAABa6kv7GQ4186.jpg

第六步使防火墙的配置生效

firewall-cmd  --reload

wKiom1QFxWjzOC07AABK9WTl4zc618.jpg

第七步  检测对server1 网段防火墙的配置

Firewall-cmd  --get-default-zone

Firewall-cmd  --get-active-z

ones

Firewall-cmd  --zone=work --list-all

Linux系统管理 –RHEL-7 防火墙篇_第3张图片

第八步  切换到server1验证网页是否能访问

Curl http//server0.example.com

Linux系统管理 –RHEL-7 防火墙篇_第4张图片