设计一个完整的静态网站,wordpress 画廊,西安企业建站,网站建设报价方案.xls随着互联网行业快速发展#xff0c;服务器成为用户部署网络业务重要的网络工具#xff0c;但随之而来的就是更密集的网络攻击#xff0c;这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备#xff0c;可以很好的抵御网络攻击。
防火墙基本上使用硬件和软件两种…随着互联网行业快速发展服务器成为用户部署网络业务重要的网络工具但随之而来的就是更密集的网络攻击这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备可以很好的抵御网络攻击。
防火墙基本上使用硬件和软件两种机制来限制流量。可以使用硬件如电路级网关、代理服务器、应用网关等来提供深入的保护。亦可以使用软件如包过滤等手段允许/禁止流量。如同时使用软硬件进行防护效果会更好。本文仅讨论软件机制。
从centos7开始引入firewalld防火墙管理工具引入区域概念。相较于原版本一直使用的iptables工具有重大改变。
对于初次接触防火墙管理的读者只需关注区域、服务、端口、目标和源等概念全面使用firewalld工具而对于使用linux老系统、低版本的读者则只能尽快熟悉五表五键等概念使用iptables管理工具。
PS:centos7系统默认没有安装iptables工具想训练其使用需要单独下载、安装。
防火墙底层原理
管理员在用户态通过防火墙管理工具来设置防火墙的规则配置在相关文件中。是否应用或启动由iptables命令接口传递到内核netfilter模块。需要执行时防火墙的规则由内核中的netfilter模块具体执行。
当数据包经过防火墙时系统内核会将客户请求逐一与所设置的规则进行匹配当匹配成功之后由防火墙执行规则中定义的行为如放行、阻止、丢弃等。
配置防火墙就是添加、删除、修改这些规则。例如设置一条规则拒绝所有的ICMP数据包设置好该规则之后该规则就会保存到内核的netfilter模块之后所有的ICMP数据包都会被拒绝。
防火墙的规则早期的CentOS 5/6操作系统默认使用iptables工具从CentOS 7开始默认使用firewalld工具。
两个管理工具的底层原理在于iptables从细节入手从物理层面设置规则分析网络连接的各个层次有表有链等。而firewalld从大处着手从逻辑层面设置规则与要求。区域、目标、源是其核心概念而关注端口、服务亦具独特视角。
一个系统中只能选择一项管理工具不能同时使用。原因在于:iptables允许所有流量通过只限制指定规则的流量而firewalld则相反禁止所有流量通过只允许符合规则的才允许通过。二者原理与手段完全相左。本文主要讨论firewalld的概念与使用。
一、firewalld服务
在CentOS 7中新引入了firewalld服务取代了CentOS 6之前的iptables服务。
1.firewalld特点
比较而言firewalld允许哪些服务可用哪些端口可用属于更高一层的防火墙。firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4、IPv6防火墙设置以及以太网桥在某些高级服务可能会用到比如云计算并且拥有两种配置模式运行时Runtime模式和永久Permanent模式。
firewalld是一种动态的、用户友好的Linux防火墙管理工具。相较于传统的iptablesfirewalld提供了更灵活、更方便的防火墙配置方式使得管理员能够更容易地管理网络安全策略。
传统的iptables配置可能比较复杂尤其是对于新手来说。firewalld通过引入概念化的“区域”、“服务”和“端口”等概念简化了防火墙的配置。管理员无需深入了解iptables的规则语法只需使用简单的命令和配置文件就能轻松管理防火墙。
2.firewalld核心概念
区域Zones
Firewalld引入了区域的概念用于定义不同的网络区域每个区域可以有不同的防火墙规则。常见的区域包括public、private、work、home等。默认情况下网络接口会被分配到public区域。
服务Services
服务是一组预定义的规则用于定义允许通过防火墙的特定网络服务。例如HTTP、SSH等服务都可以被定义为服务从而简化防火墙规则的配置。
端口Ports
端口用于标识网络通信中的特定应用程序。Firewalld允许你通过端口来控制流入或流出的数据包。可以打开或关闭特定端口也可以定义自定义端口。
源和目标
firewalld允许你根据数据包的来源和目标来定义规则。这使得你可以限制特定IP地址或地址范围的访问增强了网络安全性。
3.使用方式
a.firewall-cmd
firewall-cmd是firewalld的字符界面管理工具
可以通过远程连接工具配置防火墙规则。 b.firewall-config
firewall-config是firewalld的图形用户界面管理工具
在系统桌面中命令行执行firewall-config命令打开firewalld的图形用户界面管理工具。 如用远程连接工具如xshell执行命令firewall-config将不能打开图形管理工具提示在windows系统中安装xmanager可以直接打开该工具且配置防火墙规则。
c.修改firewalld配置文件
firewalld的配置文件分为主配置文件和区域/服务/端口配置文件。
主配置文件位于/etc/firewalld/firewalld.conf包含一般的Firewalld设置如默认区域等。
每个区域都有一个对应的配置文件位于/etc/firewalld/zones/目录下。这些文件包含特定区域的防火墙规则。
服务配置文件位于/etc/firewalld/services/目录下定义了预定义服务的防火墙规则。
4.管理工具关系
现有防火墙管理手段的基本框架如下供参考。 二、命令语法
在三种使用firewalld的方法中我们重点讨论firewall-cmd。
1.启动firewalld
CentOS Stream 9操作系统默认开启了firewalld服务用户可以使用systemctl命令查看firewalld服务状态。
2.命令格式
firewalld命令格式简单 firewall-cmd [options..]
firewall-cmd命令常用选项 参数 含义 --get-default-zone 查询默认的区域名称 --set-default-zone区域名称 设置默认的区域使其永久生效 --get-zones 显示可用的区域 --get--services 显示预先定义的服务 --get-active-zones 显示当前正在使用的区域与网卡名称 --add-source 将源自此IP或子网的流量导向指定的区域 --remove-source 不再将源自此IP或子网的流量都导向某个指定区域 --add-service服务名 设置默认区域允许该服务的流量 --add-port端口号/协议 设置默认区域允许该端口的流量 --remove-service服务名 设置默认区域不再允许该端口的流量 --add-interface网卡名称 将源自该的所有流量都导向某个指定区域 --change-interface网卡名称 将某个网卡与区域进行关联 --list-all 显示当前区域的配置参数、资源、端口以及服务等信息 --list-all-zones 显示所有区域的配置参数、资源、端口以及服务等信息 --reload 让永久生效的配置规则立即生效并覆盖当前的配置规则 --panic-on 开启应急状况模式 --panic-off 关闭应急状况模式
3.常见区域
firewalld常见区域及相应策略规则 区域 策略 trusted 允许所有数据包 home 拒绝流入的流量除非与流出的流量相关。若流量与ssh、mdns、ipp-client、amba-client、dhcpv6-client服务相关则允许流量通过 internal 等同于home区域 work 拒绝流入的流量除非与流出的流量相关若流量与ssh、ipp-client、dhcpv6-client相关则允许流量通过 public 拒绝流入的流量除非与流出的流量相关若流量与ssh、dhcpv6-client服务相关则允许流量通过 external 拒绝流入的流量除非与流出的流量相关若流量与ssh服务相关则允许流量通过 dmz 拒绝流入的流量除非与流出的流量相关若流量与ssh服务相关则允许流量通过 block 拒绝流入的流量除非与流出的流量相关阻断 drop 拒绝流入的流量除非与流出的流量相关丢弃
4.帮助信息
firewalld命令众多一般可以通过帮助查看详细使用方法。 5.模式选择
firewalld配置的防火墙策略分为运行时Runtime模式、永久Permanent模式两种。
默认的是运行时Runtime模式配置的策略便会立即生效但是系统一旦重启就会失效。
永久生效Permanent模式可以使firewalld配置永久生效但是此模式需要重启系统或者手动执行firewall-cmd --reload命令配置的策略才会立即生效。
三、使用技巧
1.命令应用别名
firewalld命令比较复杂也不易录入可以设置别名加快录入并确保正确无误。建议如下 alias ffirewall-cmd alias fzfirewall-cmd --zonepublic alias fpfirewall-cmd --permanent alias flfirewall-cmd --list-all alias frfirewall-cmd --reload 2.简写参数/选项
在firewalld命令使用中系统支持简写。这是系统一大特点各版本都可应用。
一般是用单词的前三个字母。 --state 简写 --st[ate] --masquerade 简写 --mas --permanent 简写 --per --list-service 简写 --list-ser --remove-masquerade 简写 --remove-mas --add-service 简写 --add-ser 3.补全
正常使用firewall-cmd命令录入参数时可以按Tab键补全命令按两次可以提示可选择的内容。
如使用别名不再支持Tab键补全。
4.符号使用
a.空格
在使用firewalld命令中可以用空格代替号 执行上述命令时可用空格代替号功能相同。 了解这一特性后可用空格代替命令中的号录入时相对容易些。
b.双引号
在配置富规则时根据习惯可以加双引号。
配置一条富规则拒绝192.168.100.2主机的ssh服务
firewall-cmd --zonepublic --add-rich-rulerule familyipv4 source address192.168.100.2 service namessh reject 第1次添加时命令中加双引号。查看效果后删除该富规则。
firewall-cmd --zonepublic --remove-rich-rulerule familyipv4 source address192.168.100.2 service namessh reject 第2次添加时不加双引号效果相同
firewall-cmd --zonepublic --add-rich-rulerule familyipv4 source address192.168.100.2 service namessh reject c.号
我们添加一个httpd服务把号替换为空格结果相同
firewall-cmd --add-service http d.-
添加多个端口时开始端口加上“-”结束端口 四、案例
首先使用systemctl命令查看firewalld防火墙的状态status、重新启动restart、临时关闭stop、临时开启start防火墙服务。
1.查看使用区域
查看firewalld服务当前所使用的区域
命令 firewall-cmd --get-default-zone
效果 2.查看所有信息
查看firewalld当前区域的配置参数、资源、服务等信息
命令 firewall-cmd --list-all
效果 3查看单项信息
查看public区域是否允许https服务和FTP协议数据包通过
命令 firewall-cmd --zonepublic --query-servicehttps firewall-cmd --zonepublic --query-serviceftp
效果 4永久设置
将https设置为永久允许并立即生效
命令中添加选项--permanent为永久设置没有此选项为临时设置。
命令 firewall-cmd --permanent --zonepublic --add-servicehttps #设置规则 firewall-cmd –reload #立即生效 firewall-cmd --zonepublic --query-servicehttps
效果 将http设置为永久允许并立即生效
命令 f --zone public --add-ser http --per #--per位置任意 f –rel #使规则生效用命令别名和简写 f --list-ser #查看所有允许的服务
效果 5设置端口
将10000端口的数据包设置为允许仅限当前有效
命令 firewall-cmd --list-port #默认查看当前的区域 firewall-cmd --zonepublic --add-port10000/tcp firewall-cmd --list-port #不加--zonepublic时默认查看当前的区域
效果 6设置富规则
配置一条富规则拒绝172.168.1.0/24网段的所有用户访问本机的ssh服务
命令 firewall-cmd --zonepublic --add-rich-rulerule familyipv4 source address192.168.1.0/24 servicessh reject
效果 基础规则是设置前几项而最后一项是富规则。