全新概念firewalld防火墙

CentOS7 Firewalld防火墙

一、理论部分

    CentOS7最大的改变之一firewalld防火墙,FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。

    下面来看看firewalld的九大区域:

firewalld防火墙有九大区域

丢弃区域(Drop Zone:如果使用丢弃区域,任何进入的数据包将被丢弃。这个类似与我们之前使用iptables -j drop。使用丢弃规则意味着将不存在响应。

阻塞区域(Block Zone:阻塞区域会拒绝进入的网络连接,返回icmp-host-prohibited,只有服务器已经建立的连接会被通过即只允许由该系统初始化的网络连接。

公共区域(Public Zone:只接受那些被选中的连接,默认只允许 ssh dhcpv6-client。这个 zone 是缺省 zone

外部区域(External Zone:这个区域相当于路由器的启用伪装(masquerading)选项。只有指定的连接会被接受,即ssh,而其它的连接将被丢弃或者不被接受。

隔离区域(DMZ Zone:如果想要只允许给部分服务能被外部访问,可以在DMZ区域中定义。它也拥有只通过被选中连接的特性,即ssh

工作区域(Work Zone:在这个区域,我们只能定义内部网络。比如私有网络通信才被允许,只允许sshipp-client dhcpv6-client

家庭区域(Home Zone:这个区域专门用于家庭环境。它同样只允许被选中的连接,即sshipp-clientmdnssamba-client dhcpv6-client

内部区域(Internal Zone:这个区域和工作区域(WorkZone)类似,只有通过被选中的连接,和home区域一样。

信任区域(Trusted Zone:信任区域允许所有网络通信通过。

Firewalld的基本操作:

1获取firewalld状态

wKiom1hzCUTRnYRBAAAONUotLaI164.gif

2在不改变状态的条件下重新加载防火墙

wKioL1hzCUTiFDJNAAAOMj_Vte4322.gif

如果使用--complete-reload ,状态信息将会丢失。

3获取支持的区域列表

wKiom1hzCUXy1gggAAAUMtgs83g229.gif

4获取所有支持的服务

wKioL1hzCUXhiLcaAABp2IWhxxY481.gif

想要列出默认有效的服务,也可以进入下面的目录也能够取得。

cd /usr/lib/firewalld/services/

wKioL1hzCUWiN6jqAABfZIJPn-w315.gif

自己创建服务,任选一个服务复制一份,服务名叫rhel 端口号是1937

wKiom1hzCUazrDrIAAAuumXSPDw473.gif

wKioL1hzCUbjhaIhAAAh4LJvoqA885.gif

vim rhel.xml

 修改文件内容

wKiom1hzCUaRaXoHAAAjEj11YBY910.gif

prot=1937 第三行改成rhel. [firewall-cmd  --reload]

确认服务是否启动:

firewall-cmd --get-services

wKioL1hzCUbjNxx9AAAwQP29wgY205.gif

5、获取所有支持的ICMP类型

wKiom1hzCUfDX9SRAAAczpP6PTs035.gif

二、操作部分

实验拓扑:

wKiom1hzC1bC3jaoAAA9ly6bLHA386.jpg

实验要求:

一、web主机

         1、通过8000端口提供www服务,22端口提供ssh服务

         2、其他主机通过80端口访问web服务

         3、允许ssh远程管理

         4、禁止ping请求

二、gateway主机   开启路由转发

         1、通过地址伪装实现内网访问外网

         2、外网主机可以访问内网web(通过80端口访问)和ssh(通过222端口访问)

实验步骤:

1、配置Web服务器IP地址并安装httpd服务

yum -y install httpd

2、关闭selinux

       永久关闭:编辑

vim  /etc/selinux/config

将文件中的SELINUX=""  disabled ,然后重启。

wKioL1hzC1bjp8tAAABKq16h364936.jpg

如果不想重启系统,使用命令setenforce 0注:setenforce 1 设置SELinux 成为enforcing模式。

       临时关闭:输入“setenforce  0 设置SELinux 成为permissive模式

3、修改httpd端口为8000

修改httpd配置文件:

# vim /etc/httpd/conf/httpd.conf

wKiom1hzC1bwvS_7AAATWlivB9Q115.jpg

Listen的值改为8000后保存退出

重启httpd服务:

systemctl restart httpd

wKiom1hzC1aApe4nAAA9FfGYy2Q828.jpg

验证效果如下:

wKioL1hzC1eRrVhOAABSVUIxQr8919.jpg

5、配置防火墙支持shh访问

wKioL1hzC1iQfjDvAAAtC9n5l3M510.jpg

firewall防火墙默认允许ssh端口访问,如需设置请输入一下命令:

firewall-cmd [--zone= 区域] --add-service=ssh

6、禁止ping请求

wKiom1hzC1jxfKW7AAA5iU0_Bv4247.jpg

7、配置gateway主机实现通过地址伪装实现内网访问外网

         开启路由转发功能:

 vim /etc/sysctl.conf

wKiom1hzC1ix6Xo-AAAmaIuyvH8413.jpg

 然后将两个网卡分别加入相应的区域

wKioL1hzC1nzrdvgAAA_rB4X_Gc815.jpg

externet外部区域设置地址伪装

wKioL1hzC1njfFmvAAAfsw_91Ok425.jpg

在这里默认就是开启状态,如需开启请输入以下命令:

 firewall-cmd --zone=external --add-masquerade

8、实现外网主机可以访问内网web通过80端口访问和通过222端口访问ssh服务

wKiom1hzC1qDhLfwAABYJDIEnzM132.jpg

实验效果1

wKiom1hzC1qDHbRcAAB1yuP0U_8471.jpg

实验效果2

wKioL1hzC1vRYIFjAAAhWzpdfMo352.jpgwKiom1hzC1uAde5nAAAcjDrhj5Y933.jpg



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章