目录
Linux Firewalld防火墙
一、安全技术
安全技术
入侵检测系统(Intrusion Detection Systems)︰特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类似于监控系统一般采用旁路部署(默默的看着你)方式。
入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为局立即予以阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)
防火墙(FireWall ) :隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ(demilitarized zone)网络中
二、防火墙
Netfilter
Linux 防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在Linux内核中
防火墙的分类
按保护范围划分
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
按实现方式划分
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件
按网络协议划分
网络层防火墙:OSI模式下四层,又称为包过滤防火墙
应用层防火墙 / 代理服务器:proxy 代理网关,OSI模型七层
防火墙工具
iptables
由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包
firewallld
centos7中默认打开
nftables
适用于centos8
firewalld 和 iptables 的区别
Firewalld iptables
配置文件 /usr/lib/firewalld/
/etc/firewalld/ /etc/sysconfig/iptables
对规则的修改 不需要全部刷新策略,不丢失
现行连接 需要全部刷新策略,丢失连接
防火墙类型 动态防火墙 静态防火墙
三、Firewalld
Firewalld zone 分类
zone名称 默认配置
trusted 允许所有流量
home 拒绝除和传出流量相关的,以及ssh,mdsn,ipp-client,samba- client,dhcpv6-client预定义服务之外其它所有传入流量
internal 和home相同
work 拒绝除和传出流量相关的,以及ssh,ipp-client,dhcpv6-client预定义服务之外的其它所有传入流量
public 拒绝除和传出流量相关的,以及ssh,dhcpv6-client预定义服务之外的其它所有传入流量,新加的网卡默认属于public zone
external 拒绝除和传出流量相关的,以及ssh预定义服务之外的其它所有传入流量,属于external zone的传出ipv4流量的源地址将被伪装为传出网卡的地址。
dmz 拒绝除和传出流量相关的,以及ssh预定义服务之外的其它所有传入流量
block 拒绝除和传出流量相关的所有传入流量
drop 拒绝除和传出流量相关的所有传入流量(甚至不以ICMP错误进行回应)
预定义服务
服务名称 配置
ssh Local sSH server.Traffic to 22/tcp
ipp-client Local lPP printing.Traffic to 631/udp.
dhcpv6-client Local DHCPv6 client.Traffic to 546/udp on the fe80::/64 IPv6 network
samba-client Local Windows file and print sharing client.Traffic to 137/udp and 138/udp.
mdns Multicast DNS (mDNS) local-link name resolution.Traffic to 5353/udp to the
224.0.0.251(IPv4) or ff02:fb (IPv6) multicast addresses
Firewalld 预定义配置服务
firewall-cmd --get-services查看预定义服务列表
/usrllib/firewalld/services/*.xml预定义服务的配置
Firewalld 三种配置方法
firewall-config图形工具:需安装firewall-config包
firewall-cmd命令行工具: firewalld包,默认安装
/etc/firewalld/配置文件,一般不建议
Firewalld 防火墙配置
运行时配置
实时生效,并持续至Firewalld重新启动或重新加载配置
不中断现有连接
不能修改服务配置
永久配置
不立即生效,除非Firewalld重新启动或重新加载配置
中断现有连接
可以修改服务配置
Firewalld 命令
安装firewalld:# yum install firewalld
启动:# systemctl start firewalld
查看状态:# systemctl status firewalld 或者 firewall-cmd --state
停止:# systemctl disable firewalld
禁用:# systemctl stop firewalld
查看版本:# firewall-cmd --version
查看帮助:# firewall-cmd --help
显示状态:# firewall-cmd --state
查看区域信息:# firewall-cmd --get-active-zones
查看指定接口所属区域:$ firewall-cmd --get-zone-of-interface=ens33
拒绝所有包:# firewall-cmd --panic-on
取消拒绝状态:# firewall-cmd --panic-off
查看是否拒绝:# firewall-cmd --query-panic
更新防火墙规则:# firewall-cmd --reload (无需断开连接)
更新防火墙规则:# firewall-cmd --complete-reload(需要重启服务)
列出所有支持的 zone:# firewall-cmd --get-zones
查看当前的默认 zone:# firewall-cmd --get-default-zone
设置默认接口区域:# firewall-cmd --set-default-zone=public (立即生效无需重启)
查看所有打开的端口:# firewall-cmd --zone=dmz --list-ports
加入一个端口到区域:# firewall-cmd --zone=dmz --add-port=8080/tcp (永久生效加--permanent)