版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章
配置与管理防火墙本章导读防火墙作为网络安全体系中的关键屏障,不仅能够有效过滤非法访问和恶意流量,更是守护系统服务、保障数据安全的核心手段。正确配置和管理防火墙,对于构建可靠的生产环境、防范网络攻击具有不可替代的重要意义。本章将系统介绍Linux操作系统中防火墙的配置与管理,重点围绕iptables展开。通过本章学习,读者将理解防火墙的基本概念、工作原理及其在实际运维中的核心价值。学习目标1.知识目标理解防火墙的基本概念、作用及分类。掌握iptables和firewalld的工作原理及主要特性。熟悉iptables的工作流程、规则语法及命令使用。了解网络地址转换(NetworkAddressTranslation,NAT)的基本概念及实现方法。2.技能目标能够安装、启动、停止、重启iptables服务,会设置开机自启。能够根据实际需求编写iptables规则,实现网站访问控制、内网对外发布Web服务等功能。能够运用iptables实现NAT,解决IP地址不足的问题。能够进行防火墙安全分析,识别潜在的安全威胁,并进行故障排除。3.素养目标培养严谨的网络安全意识,意识到防火墙在网络安全中的重要性。提升问题解决能力,能够独立分析并解决防火墙配置与管理中遇到的问题。增强团队协作能力,能够与团队成员有效沟通,共同维护网络安全。目录-CONTENTS3.1防火墙相关知识3.2iptables服务的安装与启动3.3iptables服务的配置3.4安全分析与故障排除3.1防火墙相关知识3.1.1防火墙概述3.1.2NAT概述3.1防火墙相关知识防火墙是网络安全领域中的关键组件,用于监控和控制进出网络的数据流,依据预设的安全策略对数据包进行过滤,从而保护内部网络免受未经授权的访问和潜在的网络攻击。防火墙通过定义规则集,决定允许或拒绝哪些网络流量通过,为网络边界提供了一道重要的安全屏障,如图在Linux操作系统中,防火墙不仅用于阻止外部威胁,还用于管理内部网络流量,确保只有符合安全策略的数据包能够穿越网络边界。防火墙可以是硬件设备,也可以是软件程序,Linux操作系统主要使用软件防火墙来实现网络安全防护。3.1.1防火墙概述3.1防火墙相关知识1.firewalld防火墙
firewalld是Linux操作系统下的一个动态防火墙管理工具,它提供了便捷的接口,允许服务或应用程序直接添加防火墙规则,省去了用户手动编辑防火墙规则的烦琐过程。通过D-Bus接口,firewalld实现了防火墙配置的动态更新,无须重启防火墙服务即可即时生效,显著提升了防火墙管理的灵活性和效率。firewalld将网络流量划分为多个“区域”,每个区域都包含了一套预定义的规则集。这些区域说明如下。①public:默认区域,用于对入站连接进行限制,以确保系统的安全。②trusted:允许所有网络流量无阻碍地通过,适用于高度信任的网络环境。③dmz:针对非军事区(DenniliarizedZone,DMZ)服务器,实施中等信任策略,以平衡安全性和访问需求。用户可以根据实际网络环境需求,灵活地将网络接口分配到不同的区域中,从而实现更加精细的网络流量控制。3.1.1防火墙概述3.1防火墙相关知识2.iptablesnetfilter是Linux内核中的一个框架,用于实现网络数据包的过滤、NAT和其他数据包处理功能。iptables是用户空间工具,用于配置netfilter的规则集。通过iptables,管理员可以定义复杂的规则链,对进入、离开或经由Linux操作系统转发数据包进行过滤和处理。iptables规则是基于表、链和规则的三层结构。表包含多个链,链中包含多个规则,每个规则定义了匹配条件和处理动作。常见的表包括filter表(用于过滤数据包)、nat表(用于NAT)和mangle表(用于修改数据包的服务类型)。iptables的工作流程3.1.1防火墙概述①
数据包进入:当数据包到达Linux操作系统时,首先经过PREROUTING链,此链用于目标地址转换(DestinationNAT,DNAT)。②
路由决策:系统根据路由表决定数据包的去向(是送往本地进程、转发到其他接口还是丢弃)。③
输入处理:如果数据包是送往本地进程的,它将经过INPUT链,此链用于过滤进入本地系统的数据包。④
本地进程处理:数据包被送往本地进程处理。⑤
输出处理:本地进程产生的响应数据包将经过OUTPUT链,此链用于过滤从本地系统发出的数据包。⑥
转发处理:如果数据包需要被转发到其他接口,它将经过FORWARD链,此链用于过滤被转发的数据包。⑦
数据包离开:在数据包离开系统之前,它将经过POSTROUTING链,此链用于源地址转换(SourceNAT,SNAT)。3.1防火墙相关知识NAT是一种在IP数据包通过路由器或防火墙时重写其源IP地址或目的IP地址的技术。NAT的核心目标在于节约IP地址资源、强化网络安全以及促进内外网络间的有效通信。NAT可以分为以下几种类型。①SNAT:用于将内部网络的私有IP地址转换为公共IP地址,确保内部网络中的设备能够顺利访问外部网络。②DNAT:用于将外部网络对公共IP地址的请求重定向到内部网络的特定主机上,常用于端口转发和服务发布场景。③MASQUERADE:动态源地址转换,是SNAT的一种特殊形式,通常用于动态分配的IP地址环境,如拨号上网或DHCP环境。在Linux系统中,NAT功能通常通过iptables的nat表来实现,通过灵活配置PREROUTING、POSTROUTING等链的规则,能够轻松实现多样化的NAT策略。3.1.2NAT概述3.2iptables服务的安装与启动3.2.1iptables服务的安装3.2.2iptables服务的启动、停止、重启和开机自启3.2iptables服务的安装与启动(1)更新软件包索引在安装任何新软件之前,建议先更新系统的软件包索引,以确保获取最新的软件包信息,命令如下。3.2.1iptables服务的安装[root@localhost~]#dnfupdate-y(2)安装iptables使用dnf包管理器来安装iptables及其相关工具,命令如下:[root@localhost~]#dnfinstall-yiptables-services(3)验证安装安装完成后,可以通过以下命令验证iptables是否已正确安装并查看iptables的安装版本:[root@localhost~]#iptables--versioniptablesv1.8.10(nf_tables)3.2iptables服务的安装与启动iptables服务可以通过
systemd系统和服务管理器进行控制。以下是管理iptables服务的基本操作。(1)启动iptables服务3.2.2iptables服务的启动、停止、重启和开机自启[root@localhost~]#systemctlstartiptables(2)停止iptables服务[root@localhost~]#systemctlstopiptables(3)重启iptables服务[root@localhost~]#systemctlrestartiptables(4)设置iptables服务开机自启[root@localhost~]#systemctlenableiptables(5)禁止iptables服务开机自启[root@localhost~]#systemctldisableiptables(6)检查iptables服务的状态[root@localhost~]#systemctlstatusiptables3.3iptables服务的配置3.3.1iptables命令3.3.2设置默认策略和iptables规则3.3.3知识案例:网站访问控制3.3.4知识案例:内网对外发布Web3.3iptables服务的配置1.iptables命令的基本语法iptables[-t表名]命令[链名]规则[-j目标]参数说明如下。(1)-t表名:用于指定要操作的表,默认为filter表。(2)命令:用于指定对规则进行的操作,如添加(-A)、插入(-I)、删除(-D)、查看(-L)等,如表1。(3)链名:用于指定规则要添加到的链,如input键(进入本机的数据包)、output键(从本机发出的数据包)和forward键(经过本机转发的数据包)。(4)规则:用于定义匹配数据包的条件,如协议、源地址、目的地址、端口等,如表2(5)-j目标:用于指定匹配规则后的处理方式,如ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)等。3.3.1iptables命令3.3iptables服务的配置3.3.1iptables命令选项说明-A,--append在指定链的末尾添加一条规则。-I,--insert在指定链的指定位置插入一条规则(可以通过行号指定位置)。-D,--delete删除指定链中的一条规则,可以通过规则本身或行号指定。-L,--list列出指定链中的所有规则。-F,--flush清空指定链中的所有规则。-P,--policy设置指定链的默认策略(如
ACCEPT或DROP)。-n,--numeric以数字形式显示地址和端口号,避免反向解析,提高显示速度。-v,--verbose提供详细输出信息,包括数据包计数器和字节数。--line-numbers在列出规则时显示行号,便于删除或修改特定规则。-x,--exact扩展数字显示,显示更精确的数据包计数器和字节数。-Z,--zero将指定链或所有链的计数器清零。-t,--table指定要操作的表(如
filter、nat、mangle等)。-R,--replace替换指定链中的某条规则(需要指定行号)。表1表2条件说明-p,--protocol指定要匹配的协议,如tcp、udp、icmp等。-s,--source指定要匹配的源地址或地址范围。-d,--destination指定要匹配的目的地址或地址范围。--sport指定要匹配的源端口或端口范围。--dport指定要匹配的目的端口或端口范围。-i,--in-interface指定数据包进入本机的网络接口。-o,--out-interface指定数据包离开本机的网络接口。-m,--match扩展匹配模块,如state(连接状态)、multiport(多端口)等。3.3iptables服务的配置2.iptables的基本命令(1)查看当前规则该命令将列出当前所有的iptables规则,其中-v选项用于提供详细信息;-n选项用于避免反向解析IP地址和端口号,提高显示速度。3.3.1iptables命令[root@localhost~]#iptables-L-v-n3.3iptables服务的配置(2)添加规则iptables-A<chain><rules>【例3-1】添加一条允许SSH(SecureShell,安全外壳协议)访问的规则。3.3.1iptables命令[root@localhost~]#iptables-AINPUT-ptcp--dport22-jACCEPT(3)插入规则iptables-I<chain><rule-number><rules>【例3-2】在INPUT链的第一个位置插入一条规则,允许所有进入本机的TCP80端口流量。[root@localhost~]#iptables-IINPUT1-ptcp--dport80-jACCEPT该命令会在INPUT链的末尾添加一条规则,允许所有进入本机的TCP22端口流量通过。<chain>指定规则要添加到的链,<rules>定义匹配条件和处理方式。3.3iptables服务的配置(4)删除规则iptables-D<chain><rules>【例3-3】删除INPUT链中所有匹配-ptcp--dport22-jACCEPT的规则。如果有多条匹配规则,可以使用行号指定要删除的规则:iptables-DINPUT<rule-number>3.3.1iptables命令[root@localhost~]#iptables-DINPUT-ptcp--dport22-jACCEPT(5)保存规则在基于iptables服务的系统中,可以使用以下命令保存规则,以便重启后生效:在某些系统中也可以使用以下命令保存规则:[root@localhost~]#serviceiptablessaveiptables:Savingfirewallrulesto/etc/sysconfig/iptables:[OK][root@localhost~]#iptables-save>/etc/sysconfig/iptables3.3iptables服务的配置1.设置默认策略
默认策略是指在没有匹配到任何规则时iptables对数据包的处理方式。通常,可以设置3种链(INPUT、OUTPUT、FORWARD)的默认策略为ACCEPT(接受)或DROP(丢弃)。(1)设置默认策略为DROP3.3.2设置默认策略和iptables规则iptables-PINPUTDROPiptables-POUTPUTDROPiptables-PFORWARDDROP(2)设置默认策略为ACCEPTiptables-PINPUTACCEPTiptables-POUTPUTACCEPTiptables-PFORWARDACCEPT3.3iptables服务的配置2.设置iptables规则
设置iptables规则时,需要指定链(INPUT、OUTPUT、FORWARD)、匹配条件(如协议、源地址、目的地址、端口等)和目标(ACCEPT、DROP、REJECT等)。(1)允许特定IP地址访问特定端口iptables-AINPUT-ptcp-s<source-ip>--dport<port>-jACCEPT3.3.2设置默认策略和iptables规则【例3-4】允许来自IP地址为00的主机访问本机的TCP80端口。[root@localhost~]#iptables-AINPUT-ptcp-s00--dport80-jACCEPT●-AINPUT:将规则追加到INPUT链,表示处理进入本机的数据包。●-ptcp:指定协议为TCP。●-s<source-ip>:指定数据包的源IP地址(即允许访问的特定IP)。●--dport<port>:指定目的端口(即允许访问的特定端口)。●-jACCEPT:匹配到规则后接受数据包。3.3iptables服务的配置(2)拒绝所有来自特定IP地址的流量iptables-AINPUT-s<source-ip>-jDROP3.3.2设置默认策略和iptables规则【例3-5】拒绝所有来自IP地址00的流量。[root@localhost~]#iptables-AINPUT-s00-jDROP●-AINPUT:将规则追加到INPUT链。●-s<source-ip>:指定数据包的源IP地址(即要拒绝的特定IP)。●-jDROP:匹配到规则后丢弃数据包,不返回任何响应。(3)允许已建立的连接和相关流量通过iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT【例3-6】允许所有已建立的连接和相关流量通过。[root@localhost~]#iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT●-AINPUT:将规则追加到INPUT链。●-mstate:使用state匹配模块,用于匹配连接状态。●--stateESTABLISHED,RELATED:ESTABLISHED表示匹配已建立的连接,即已经通过三次握手的TCP连接);RELATED表示匹配与已建立连接相关的流量,如FTP数据连接。●-jACCEPT:匹配到规则后接受数据包。3.3iptables服务的配置1.案例背景
在企业或个人网络环境中,经常需要对外部访问进行精细控制,以确保只有特定的服务(如网站)能够被访问,同时拒绝其他不必要的流量。这不仅可以提高网络的安全性,还可以优化网络性能。本案例将介绍如何使用iptables实现网站访问控制,允许外部访问本机的HTTP(80端口)和HTTPS(443端口)服务,同时拒绝其他所有输入流量。2.操作步骤
(1)设置默认策略为DROP3.3.3知识案例:网站访问控制[root@localhost~]#iptables-PINPUTDROP[root@localhost~]#iptables-POUTPUTACCEPT[root@localhost~]#iptables-PFORWARDDROP①INPUT链:处理进入本机的数据包,设置为DROP,以拒绝所有未明确允许的输入流量。②OUTPUT链:处理从本机发出的数据包,通常设置为ACCEPT,以允许所有输出流量。③FORWARD链:处理经过本机转发的数据包。如果不需要转发功能,可以设置为DROP。3.3iptables服务的配置(2)允许已建立的连接和相关流量通过3.3.3知识案例:网站访问控制[root@localhost~]#iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT(3)允许HTTP和HTTPS访问[root@localhost~]#iptables-AINPUT-ptcp--dport80-jACCEPT[root@localhost~]#iptables-AINPUT-ptcp--dport443-jACCEPT(4)保存规则[root@localhost~]#serviceiptablessaveiptables:Savingfirewallrulesto/etc/sysconfig/iptables:[OK]3.防火墙验证3.3iptables服务的配置4.访问测试
使用其他虚拟主机或外部设备通过curl命令或浏览器访问本机的HTTP和HTTPS服务,验证服务是否能够正常响应;然后访问本机未开放的端口(如22端口),确认访问请求被正确拒绝,具体如图3.3.3知识案例:网站访问控制3.3iptables服务的配置1.案例背景
在企业网络中,出于安全考虑,Web服务器通常部署在内网环境中,而内网服务器无法直接被外网用户访问。为了使外网用户能够访问内网的Web服务,需要通过NAT技术,特别是端口转发或DNAT技术,将外网请求转发到内网的Web服务器上。本案例将演示如何在RockyLinux系统上配置iptables,实现内网Web服务器对外网发布。本案例的环境假设如下。①
外网接口:ens160,IP地址为99(假设为公网IP)。②
内网Web服务器:ens224,28,Web服务(Apache或NGing服务)运行在默认的80端口。③
外网用户:通过访问防火墙的外网IP地址来访问内网的Web服务。3.3.4知识案例:内网对外发布Web3.3iptables服务的配置2.实现步骤
(1)确保iptables服务已安装并运行在进行配置之前,应确保iptables服务已经安装并处于运行状态。如果未安装,请参考3.2节进行安装和启动。(2)配置FORWARD规则在Linux操作系统中,要实现NAT功能,首先需要启用IP转发。这可以通过修改/proc/sys/net/ipv4/ip_forward文件或使用sysctl命令来完成:3.3.4知识案例:内网对外发布Web#永久启用IP转发(编辑/etc/sysctl.conf文件或创建/etc/sysctl.d/目录下的配置文件)[root@localhost~]#echo"net.ipv4.ip_forward=1">>/etc/sysctl.conf重新加载配置,使更改生效:[root@localhost~]#sysctl-pnet.ipv4.ip_forward=13.3iptables服务的配置(3)配置iptables规则接下来使用iptables配置DNAT规则,将外网对防火墙公网IP的80端口访问转发到内网Web服务器的80端口,命令如下:3.3.4知识案例:内网对外发布Web#配置DNAT规则,将外网访问99:80的请求转发至内网28:80[root@localhost~]#iptables-tnat-APREROUTING-iens160-ptcp--dport80-jDNAT--to-destination28:80#允许转发到内网Web服务器的流量[root@localhost~]#iptables-AFORWARD-ptcp-d28--dport80-jACCEPT#确保返回流量也能通过防火墙(通常FORWARD链的默认策略为ACCEPT时不需要此条规则,但为明确起见可以加上)[root@localhost~]#iptables-AFORWARD-mstate--stateESTABLISHED,RELATED-jACCEPT(4)保存iptables规则[root@localhost~]#iptables-save>/etc/sysconfig/iptables[root@localhost~]#systemctlenableiptables[root@localhost~]#systemctlstartiptables3.3iptables服务的配置3.配置测试
在外网机器上,使用浏览器或curl命令访问防火墙的外网IP地址(如99,注意:在实际环境中应使用公网IP或域名)。如果配置正确,可以看到内网Web服务器提供的网页内容,如图3.3.3知识案例:网站访问控制4.验证和调试
使用iptables-tnat-L-n-v命令查看nat表的规则,确保DNAT规则已正确添加,如图使用iptables-L-n-v命令查看filter表的规则,确保FORWARD链已允许必要的流量通过,如图由于提前安装了Nginx,所以显示的是Nginx的访问页面。3.4安全分析与故障排除1安全分析2故障排除3.4安全分析与故障排除1.安全分析
(1)日志分析iptables和firewalld的日志通常记录在系统的日志文件中,如/var/log/messages、/var/log/secure或专用于firewalld的/var/log/firewalld。日志中包含了防火墙规则匹配、拒绝连接、允许连接等关键信息。可以使用grep、awk、sed等命令行工具对日志进行筛选和分析,也可以使用专业的日志分析工具,如ELKStack(Elasticsearch,Logstash,Ki
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 线面平行的判定课件(几何法)2027届高三数学一轮复习
- 2025年教育行业产品差异化案例
- 安全标准化之工作许可制度培训课件
- 账款转移协议书
- 购买产品售后协议书
- 购房腾房协议书
- 2025年班组奖惩制度培训
- 阑尾继发恶性肿瘤护理查房
- 小儿白血病护理查房
- 冷却器生产项目可行性研究报告
- 通航桥梁基础知识课件
- DB51-T 3267-2025 公路应急抢通保通技术规程
- 广东省2025届普通高中毕业班第一次调研考试 语文试卷(含答案)
- DL∕T 531-2016 电站高温高压截止阀闸阀技术条件
- 智能制造概论
- 单元写作任务 统编版高中语文必修下册
- 个人查摆问题清单和整改措施
- 架空配电线路及设备运行规程
- GB/T 2484-2023固结磨具形状类型、标记和标志
- 苏泊尔电磁炉标准板电路分析
- 五行称命书--源自唐朝手抄本(檀香四逸)
评论
0/150
提交评论