防火墙
认识防火墙
防火墙是整个数据包进入主机前的第一道关卡。防火墙就是通过定义一些有序的规则,并管理进入到网络内的主机数据数据包的一种机制。更广义来说,只要能够过滤出我们设置过滤条件的数据,就可以称位防火墙。
防火墙可以分为硬件防火墙和软件防火墙。
硬件防火墙内的操作系统主要以提供数据包的过滤机制为主,并将其不重要的功能拿掉。因为单纯作为防火墙功能使用,所以器数据包过滤的效率更佳;
软件防火墙本身就是保护系统网络安全的一套软件。
firewalld
1、什么是firewalld
(1)firewalld的防火墙策略是交由内核层面的nftables包过滤框架来处理。相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
(2)系统提供了图像化的配置工具firewall-config、system-config-firewall,提供命令行客户端firewall-cmd,用于配置firewalld永久或非永久性运行时间的改变。
firewall的配置
1、在系统中,iptables和firewall是共存的,要看到fireall的配置效果,将iptables服务先关闭;
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
2、开启firewalld服务
systemctl start firewalld
systemctl enable firewalld
3、firewalld支持动态更新技术并加入了区域(zone)的概念,那么在firewalld中都有哪些服域的存在呢?我们可以看下:
(1)firewall-cmd --get-zones 查看firewalld中所有的域
trusted(信任) 可接受所有的网络连接
home(家庭) 用于家庭网路,仅接受ssh、mdns、ipp-client、samba-client、或dhcpv6-client服务连接
internal(内部) 用于内部网络,仅接受ssh、mdns、ipp-client、samba-client、或dhcpv6-client服务连接
work (工作) 用于工作区,仅接受ssh、ipp-client或dhcpv6-client服务连接
public(公共) 在公共区域内使用,仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域
external(外部) 出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
dmz(非军事区) 仅接受ssh服务连接
block(限制) 拒绝所有网络连接
drop(丢弃) 任何接受到网络数据包都被丢弃,没有任何回复
4、默认域的查看、设置
5、火墙的常用命令
firewal-cmd --state ///查看火墙的状态
firewall-cmd --get-active-zones ///查看火墙当前生效的域
firewall-cmd --zone=public --list-all ##查看public域的火墙策略
firewall-cmd --get-services ##查看所有支持能开放的服务
firewall-cmd --list-all ##查看默认域的火墙策略
firewall-cmd --list-all-zones ##查看所有火墙域的策略
firewall-cmd --add-service=ftp ##添加ftp服务为默认域的开放服务,临时生效
firewall-cmd --permanent --add-service=http ##永久生效,生效需要重新加载配置文件,或者重启服务
使用firewalld-cmd --reload再查看的时候可以看到,http服务已经被添加上了;
指定或移除某个IP通过某个域访问系统以及重新加载配置火墙配置文件
我们现在的默认火墙域为public,开放的服务只有ssh;
这里面开放的服务并没有http,我们现在尝试在192.168.181.142-node01的主机上能否访问192.168.181.141-node01的http服务。