firewalld防火墙管理
认识防火墙
防火墙事实上是一个过滤器,对进出计算机系统或者网络的每一个网络数据包或者应用程序请求进行检查,防火墙就是通过定义一些有顺序的规则,并管理进入到网络内的主机数据数据包的一种机制。
防火墙的分类
根据功能的不同,可分为:
- 防火墙要么基于网络,要么基于主机。基于网络的防火墙主要是用来保护整个网络或者子网。网络防火墙的一个示例是用来保护网络的屏蔽路由器的防火墙。基于主机的防火墙主要是运行在单个主机或服务器上并提供保护的防火墙的防火墙
- 防火墙要么是硬件防火墙,要么是软件防火墙。防火墙可以位于网络设备中,比如路由器,其中路由器的固件配置了防火墙的过滤器。防火墙也可以以应用程序的形式存在于计算机系统中。该应用程序允许设置过滤规则,进而对传入流量进行过滤,软件防火墙也被成为基于规则的防火墙
- 防火墙要么是网络层过滤器,要么是应用层过滤器。用来检查单个网络数据包的防火墙也被成为数据包过滤器。网络层防火墙仅允许某些数据包进出系统。它运行在OSI参考模型的较低层。应用层防火墙在OSI参考模型的较高层进行过滤。该防火墙允许某些应用程序对系统进行访问
为何需要防火墙
防火墙最大功能就是帮助你限制某些服务的访问来源。例如:
- 你可以限制文件传输服务(FTP)之在子域内的主机才能够使用,而不是对整个Internet开放
- 你可以限制整台Linux主机仅可以接受客户端WWW要求,其他的服务都关闭
- 你还可以限制整台主机仅能主动对外连接,也就是说,若有客户端对我们主机发送主动连接的数据包状态就给于过滤
防火墙最主要的任务就是规划出:
- 切割被信任(如子域)与不被信任(如Internet)的网段。
- 划分出可能提供internet的服务与必须受保护的服务
- 分析出可接受与不可接受的数据包状态
一、实现防火墙
1.firewalld
1.1配置文件所在地址:
firewall将配置存储在/usr/lib/firewall/和/etc/firewall中的各种.XML文件里
1.2firewall域
home(家庭):用于家庭网络,仅接受dhcpv6-client、ipp-client、mdns、 samba-client、ssh服务
internal(内部):用于内部网络,仅接受dhcpv6-client、ipp-client、mdns、samba-client、ssh服务
public(公共):用于公共区域使用,仅接受dhcpv6-client、ssh服务
trusted(信任):接受所有网络连接
work(工作):用于工作区,仅接受dhcpv6-client、ipp-client、ssh服务
block(限制):拒绝所有网络连接
dmz(非军事区):仅接受ssh服务连接
drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复
external(外部):出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
1.3启用firewalld
yum install firewlld firewall-config
systemctl start firewalld
systemctl enable firewalld
1.4使用命令行接口配置火墙
- firewall-cmd --state
- firewall-cmd --get-active-zones
- firewall-cmd --get-default-zone
- firewall-cmd --get-zones
- firewall-cmd --zone=public --list-all
- firewall-cmd --get-zones
-
firewall-cmd --set-defauls-zone=dmz
-
firewall-cmd --add-source=172.25.254.86 --zone=trusted
-
firewall-cmd --list-all --zone=trusted
-
firewall-cmd --add-service=http
-
firewall-cmd --remove-service=http
永久性移除
-
firewall-cmd --permanent --remove-service=http
-
firewall-cmd --remove-port=8080/tcp
-
firewall-cmd --add-port=8080/tcp
-
firewall-cm --add-port=8080/tcp
-
firewall-cmd --remove-port=8080/tcp
测试:在/var/www/html下面编写 index.html文件
-
firewall-cmd --add-source=172.25.254.17 --zone=trusted
-
firewall-cmd --remove-source=172.25.254.17 --zone=trusted
之前火墙执行的那些命令都是暂时的,重启后就会消失,要想永久生效需要加参数--permanent
-
firewall-cmd --permanent --add-source=172.25.154.17 --zone=trusted
-
firewall-cmd --remove-source=172.25.154.17 --zone=trusted
用文件方式添加(配置文件在/etc/firewalld/zones里)
2.地址转发
当别的主机通过22端口连接17时会转发至217这台主机
测试:
取消地址转发
3.地址伪装
在desktop中,添加两块网卡,分别将ip修改为eth0为172.25.254.117和eth1为192.168.0.117
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
测试:在server中,修改网关为192.168.0.117,在测试:ping 172.25.254.17