系列文章目录
RHCE第0章:RHCE开始前的准备
RHCE第1章:Web服务器(上)
RHCE第1章:Web服务器(下)
RHCE第2章:DNS服务
RHCE第3章:DHCP服务器
RHCE第4章:Firewall服务
文章目录
- 系列文章目录
- 前言
- 一、Firewall介绍
- 二、Firewall临时操作
- 三、Firewall永久操作
- 四、Firewall禁ping
- 五、Firewall应急阻断
- 五、Firewall恢复
- 六、Firewall优先级
- 七、Firewall复杂规则
- 总结
前言
这次博客内容记录firewall防火墙的知识,以前这个功能都是关闭的,现在咱们要把它打开。
systemctl unmask firewalld.service
systemctl enable firewalld.service
systemctl restart firewalld.service
然后reboot在打一张快照,以后的实验就要在防火墙启动的情况下进行,两台虚拟机都要这么做。
一、Firewall介绍
1.firewall配置文件
firewall服务有两个配置文件夹分别在如下区域。
这两者有什么区别的前者一般存放的是我们编写的配置文件,后者是一份系统默认的,可以理解为一个系统自带的备份。
2.firewall配置方法
官方提供了命令行和可视化界面两种管理方法,现在演示一下。
命令行
firewall-cmd+参数
yum install firewall-config.noarch
图形化,这个需要另外安装一下
yum install firewall-config.noarch -y
firewall-config
大概就是这个样子
现在简单给说一下这Zones,这里面有11个Zones,可以理解为11个通道,每一个数据包过来,必须从其中的某一个通道里里通过,才能进入我们主机,不同的Zones可以有不同的防护规则,常用的比如block是拒绝,drop是丢弃包,public是公开默认的,trusted是信任,允许所有数据包访问。
举个例子
我现在拿chao2 ping chao1现在是能通的。
然后修改chao1的firewall配置,把zone转到block上,这些只是例子演示,不用记的。
firewall-cmd --change-interface=ens160 --zone=block
然后再ping
现在就不通了
再把zone转到drop
firewall-cmd --change-interface=ens160 --zone=drop
然后再ping
现在是直接就卡住了,那你说这两个有什么区别呢,随便说一个,拒绝代表者的ip是存在的,卡住了,说明这个IP可能写错了,或者电脑关机等其他原因。
现在把zone修改回去,或者还原快照,正式开始实验。
二、Firewall临时操作
1.firewall获得信息
firewall-cmd --get- +参数
获取zone信息
获取某一个zone的全部信息
firewall-cmd --list-all
这里可以看到,允许的服务里没有httpd服务,所以其他电脑应该是无法访问我们这台机器的。我们可以做一下测试,前期准备不说了,直接看结果。
可以看到本机可以正常访问,因为本机是不过防火墙的,现在用chao2访问
可以看到是无法访问的。
2.firewall修改规则
现在我们把http服务加到zone里
然后再用chao2访问
现在就可以正常访问了。
以下命令可以查询那些服务可以直接添加。
firewall-cmd --get-services
有了添加就会有删除,删除就是把add改成remove就行。
添加service可以实现访问,类似的添加端口也可以。
firewall-cmd --add-port=80/tcp
可以看到我的服务里没有http,但是端口里有80,现在再用chao2访问。
现在依旧可以访问。
端口可以,网段自然也可以,我现在将某些网段规矩进行限制。
firewall-cmd --add-source=192.168.100.0/24 --zone=drop
现在我将这个网段传过来数据包都转到drop丢掉,再用chao2访问
他就和ping一样直接卡住了,现在就有一个问题我网段是拒绝,端口是允许的,这样的规则是有矛盾了,生产时间中该怎么办呢?这个其实是有优先级,后边会详细说明。
以上操作就是临时生效,当你的服务重启或者重读配置文件的时候就是失效了。
firewall-cmd --reload
三、Firewall永久操作
1.–permanent
可以看到现在规则已经添加成功了,但是还没有生效,所以我们需要重读配置文件。
四、Firewall禁ping
为什么要禁ping呢,这里讲一个小故事,你可以直接跳过。
大该20年前吧,国外的某个网站发表了一些不好的对华言论,北方某个大学里边就出了个注意,咱们去ping它,ping本身只是发送一个一个数据包,占不了多少资源,但架不住中国人多,早上决定去ping它,上午北方基本就知道了,下午南方也知道了,到了晚上港澳台也都知道了,然后那个国外的网站就down了。
现在先把之前的全部规则都去掉。怎么去,你可以挨个删除,也可以还原快照。
可以看到现在是可以通的。
firewall-cmd --add-icmp-block=echo-request
然后就不痛了。
五、Firewall应急阻断
当你发现你的服务器被莫名攻击,来不及检查原因可以进入这个模式,可以拒绝所有数据包,基本相当于直接拽网线。
firewall-cmd --panic-on
已经不通了,要退出,直接off就行。
我刚刚已经拒绝ping了,所以现在是访问拒绝。
五、Firewall恢复
假设,我现在做了很多修改,改烂了,虚拟机可以还原快照,但生产中肯定不行。
这是我已经重读后的规则,我现在想让他直接恢复该怎么办,前边说过红帽留了一个默认配置,其实只要直接拷一份新的过来就行
将文件拷贝过来,重读配置文件,然后就全部恢复了,如果你不是具体文件是哪个,把整个文件夹拿过来也行
六、Firewall优先级
再firewall之中优先级的顺序是source > interfaces > zone
说不太好理解,现在我们还原快照做实验。
安装httpd并创建测试页。
本机肯定可以访问,但是chao2是不行的
现在给防火墙添加规则
现在chao2就可以正常访问了。
我现在添加一条冲突规则,然从ens160来的信息都到drop中。
现在又无法访问了
我们现在用优先级最高的source再添加一条允许的操作。
然后就又通了。
这是举例说明优先级,实际生产中没事别瞎设置
七、Firewall复杂规则
随便说个例子,我现在端口又两个分别是80和8899,我希望所有访问我80的都自动跳转到8899的端口。现在还原快照,做测试页,不演示了。直接看结果。
现在为其添加端口规则。
现在chao2也可以对其正常访问。
端口转发规则
firewall-cmd --add-rich-rule="rule family="ipv4" forward-port port=80 protocol=tcp to-port=8899"
这个代码可以看到有很长记起来是很复杂的,这还只是一个普通的端口转发,如果规则更复杂改怎么办呢。
你就随便找一个有可视化界面的电脑里点鼠标配置。
然后随便写点
之后再用list-all查看
可以看到他会给你写好,直接拷一份用就行,这也是一个小技巧。
总结
这次博客记录的内容就这些,记得最后把防火墙打开之后将前边的那些实验再做一次,加深理解。