运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)

news2025/4/10 17:36:09

运维之 Centos7 防火墙

图片

1.介绍

Linux CentOS 7 防火墙/端口设置: 基础概念: 防火墙是一种网络安全设备,用于监控和控制网络流量,以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的防火墙工具,用于配置和管理网络流量。

优势:

1. 提供网络安全:防火墙可以限制网络流量,阻止未经授权的访问和恶意攻击,提高系统的安全性。

2. 灵活性:iptables工具提供了丰富的配置选项,可以根据具体需求进行定制化设置。

3. 可扩展性:可以通过添加规则来支持新的网络服务和应用程序。  

类型: 在Linux CentOS 7中,防火墙主要有两种类型:

1. 传统防火墙:基于iptables工具,可以通过命令行进行配置。

2. 新一代防火墙:基于firewalld服务,提供了更高级的配置选项,并支持动态更新。  

应用场景:

1. 保护服务器:防火墙可以限制对服务器的访问,防止未经授权的用户或恶意攻击者入侵系统。

2. 网络分割:通过配置防火墙规则,可以将网络分割成多个安全区域,提高网络的安全性。

3. 限制网络服务访问:可以使用防火墙规则限制特定网络服务的访问,例如只允许特定IP地址访问SSH服务。

在centos7中,有几种防火墙共存:firewald , iptables . 默认情况下,CentOS是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables

2.firewalld 和 iptables区别

  1. firewalld 可以动态修改单挑规则,而不像iptables那样,在修改了规则后必须全部刷新才可以生效。

  2. firewalld在使用上比iptables人性化很多,即使不明白"五张表五条链"而且对TCP/IP协议也不理解也可以实现大部分功能。

  3. firewalld跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认每个服务是允许,需要拒绝才去限制。

  4. firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和iptables一样,他们的作用是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。

3.区域管理概念

区域管理

通过将网络划分成不同的区域,制定不同区域之间的访问控制策略来控制不同程序间传送的数据流。例如,互联网不是可信任的区域,而内部网络是高度信任的区域。网络安全模型可以在安装,初次启动和首次建立网络连接时选择初始化。该模型描述了主机所连接的整个网络环境的可信级别,并定义了新连接的处理方式。

有如下几种不同的初始化区域:

  • 阻塞区域(block):任何传入的网络数据包都将被阻止

  • 工作区域(work):相信网络上的其他计算机,不会损害你的计算机

  • 家庭区域(home):相信网络上的其他计算机,不会损害你的计算机

  • 公共区域(public):不相信网络上的任何计算机,只有选择接受传入的网络连接

  • 隔离区域(DMZ):隔离区域也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用。对于隔离区域,只有选择接受传入的网络连接。

  • 信任区域(trusted):所有的网络连接都可以接受

  • 丢弃区域(drop):任何传入的网络连接都被拒绝

  • 内部区域(internal):信任网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接

  • 外部区域(external):不相信网络上的其他计算机,不会损害你的计算机。只有选择接受传入的网络连接

注:Firewalld的默认区域是public

firewalld默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,他们都保存在“/usr/lib /firewalld/zones/”目录下。

4.iptables的配置

1.简述

iptables防火墙由Netfilter项目(http://www.netfilter.org) 开发,自2001年1月在Linux2.4内核发布以来就是Linux的一部分了。

Netfilter是由Linux提供的所有包过滤和包修改设施的官方项目名称,但这个术语同时也指Linux内核的一个框架,他可以用于在不同的阶段将函数挂接(hook)进网络栈。另一方面,iptables使用Netfilter框架指在将对数据包进行操作(如过滤)的函数挂接进网络栈。

所以,你可以认为Netfilter提供了一个框架,而iptables在它之上建立了防火墙功能

2.基本原理

规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规 则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则

3.iptables传输数据包的过程

  1. 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去

  2. 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出

  3. 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出

4、iptables规则表和链

表(tables):

iptables一共有四张表,称为filter, nat, mangle, raw。filter用于过滤,nat用于网络地址转换,mangle用于给数据包做标记以修改分组数据的特定规则,raw表则独立于Netfilter连接跟踪子系统

因此,如果你的目标是保护主机安全,那么着重考虑的是filter表,而如果像OpenStack那样,目的是做网络地址转换,就用NAT表,而mangle则用于QoS(服务质量控制),如对打上某个标记的分组数据分配较多带宽等等

链(chains):

是数据包传播的路径,每个链其实就是众多规则中的一个检查清单,每一条链中可以有1条或者数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看数据包是否满足规则所定义的条件,如果满足,就会根据该规则所定义的方法处理该数据包。否则iptables将继续检查下一条规则,如果数据包不符合链中任一条规则,iptables就会根据该链预先定义的策略来处理数据包。

5.规则表处理的优先顺序

Raw--mangle--nat--filter

对filter表来说,最重要的是内置链INPUT/OUTPUT/FORWARD。顾名思义,INPUT应用于外部网络进入到本地主机的数据包,OUPTU则应用于从本地主机发送到外部网络的数据包。FORWARD则可以理解为将本地主机作为路由器,数据包从本地主机经过,但目标位于本地主机的下游。

6.管理和设置iptables规则

7.配置iptables之前firewalld的关闭

CentOS7默认的防火墙是firewall,所以要使用iptables得先将默认的firewall关闭,并另安装iptables进行防火墙的规则设定

[root@localhost ~]# systemctl stop firewalld.service //停止firewall
[root@localhost ~]# systemctl disable firewalld.service //禁止firewall开机启动

8.iptables的安装

先检查iptables是否有安装:

[root@localhost ~]# rpm –qa | grep iptables
iptables-1.4.21-16.el7.x86_64 //如果有显示这个,则说明已经安装了iptables

安装iptables

[root@localhost ~]# yum install –y iptables
[root@localhost ~]# yum install –y iptables-services

9.iptables的基本语法格式

iptables [-t 表名] 命令选项 [链名][条件匹配] [-j 目标动作或跳转]

说明:表名、链名用于指定 iptables命令所操作的表和链,命令选项用于指定管理iptables规则的方式(比如:插入、增加、删除、查看等;条件匹配用于指定对符合什么样 条件的数据包进行处理;目标动作或跳转用于指定数据包的处理方式(比如允许通过、拒绝、丢弃、跳转(Jump)给其它链处理。

10.iptables命令的管理控制选项

-A 在指定链的末尾添加(append)一条新的规则

-D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除

-I 在指定链中插入(insert)一条新的规则,默认在第一行添加

-R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换

-L 列出(list)指定链中所有的规则进行查看

-E 重命名用户定义的链,不改变链本身

-F 清空(flush)

-N 新建(new-chain)一条用户自己定义的规则链

-X 删除指定表中用户自定义的规则链(delete-chain)

-P 设置指定链的默认策略(policy)

-Z 将所有表的所有链的字节和数据包计数器清零

-n 使用数字形式(numeric)显示输出结果

-v 查看规则表详细信息(verbose)的信息

-V 查看版本(version)

-h 获取帮助(help)

11.iptables命令的保存

[root@localhost ~]# service iptables save

12.iptables的基本操作

清除所有规则

⑴清除预设表filter中所有规则链中的规则

[root@localhost ~]# iptables -F

⑵清除预设表filter中使用者自定义链中的规则

[root@localhost ~]# iptables –X
[root@localhost ~]# iptables -Z

⑶清除NAT表规则

[root@localhost ~]# iptables –F –t nat

设置链的默认策略,一般有二种方法

⑴允许所有的包,然后再禁止所有危险的包通过防火墙

[root@localhost ~]# iptables –P INPUT ACCEPT
[root@localhost ~]# iptables –P OUTPUT ACCEPT
[root@localhost ~]# iptables –P FORWARD ACCEPT

⑵首先禁止所有的包,然后根据需要的服务允许特定的包通过防火墙

[root@localhost ~]# iptables –P INPUT DROP
[root@localhost ~]# iptables –P OUTPUT DROP
[root@localhost ~]# iptables –P FORWARD DROP

向链中添加规则(下面的语句用于允许SSH连接本服务器)

[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

向链中添加规则(下面的语句用于允许PING命令测试本服务器)

[root@localhost ~]# iptables -A INPUT -p icmp -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p icmp -j ACCEPT

iptables的配置文件

直接编辑iptables的配置文件:

[root@localhost ~]# vim /etc/sysconfig/iptables[root@localhost ~]# systemctl restart iptables.service //最后重启防火墙使配置生效
[root@localhost ~]# systemctl enable iptables.service //设置防火墙开机启动[root@localhost ~]# iptables -L
//查看防火墙规则,默认的是-t filter,如果是nat表查看,即iptables -t n

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2328039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开发一个小程序需要多久时间?小程序软件开发周期

开发一个小程序所需时间受多种因素影响,以下为你详细列举: 一、需求复杂度。若只是简单展示类小程序,如企业宣传、产品介绍,功能单一,大概 1 - 2 周可完成。若涉及复杂交互,像电商小程序,涵盖商…

【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林

文章目录 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 一、 什么是算法1. 算法的定义1.1 算法的五个特征1.2 好算法的特质 2. 时间复杂度3. 空间复杂度 【数据结构篇】算法征途:穿越时间复杂度与空间复杂度的迷雾森林 💬欢…

新增帧能耗指标|UWA Gears V1.0.9

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。 本次版本更新主要新增帧能耗指标,帮助大家对每一帧的能耗进行精准监控,快速…

蓝桥杯嵌入式16届———LCD模块

LCD有官方给我们提供的库,我们使用其非常简单,唯一要注意的就是LCD和LED的引脚冲突。 引脚状况 STM32CubeMX 端口配置 使能 比赛给的选手 资源数据包中有以下三个文件,(除去led相关的),将他们复制到自己…

CMake在Windows环境下Visual Studio Code的使用

1,安装下载 地址:Visual Studio Code - Code Editing. Redefined 双击安装 选择安装路径 可勾选微软的AI工具 2,环境介绍 2.1 ,界面介绍 2.2中文包的安装 下载中文简体 汉化后的界面 2.3 配置C/C环境 VSCode安装好之后&#xf…

注意力机制在大语言模型中的原理与实现总结

注意力机制在大语言模型中的原理与实现总结 1. 章节介绍 在大语言模型的学习中,理解注意力机制至关重要。本章节旨在深入剖析注意力机制的原理及其在大语言模型中的应用,为构建和优化大语言模型提供理论与实践基础。通过回顾神经网络基础及传统架构的局…

大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程

一、说明 目前DeepSeek R1及其蒸馏模型均支持使用ollama进行调用,可以在模型主页查看调用情况 deepseek-r1https://ollama.com/library/deepseek-r1 显存需求 ,我们显存是16G,可以玩好几个 二、以14B模型演示 1、安装ollama curl -fsSL htt…

RAGFlow部署与使用介绍-深度文档理解和检索增强生成

ragflow部署与使用教程-智能文档处理与知识管理的创新引擎 1. ragflow简介 ​ RAGFlow作为新一代智能文档处理平台,深度融合检索增强生成(RAG)技术与自动化工作流引擎,为企业级知识管理提供全栈解决方案。通过结合多模态解析、语…

【AI赋能:58招聘数据的深度剖析之旅】

影刀出鞘,抓取数据 在当今数字化时代,数据分析已成为企业决策和发展的关键驱动力。而获取高质量的数据则是数据分析的首要任务。在这个信息爆炸的时代,网络上蕴含着海量的数据,其中招聘网站的数据对于人力资源分析、市场趋势研究…

几何法证明卡特兰数_栈混洗

模型&#xff1a; 考虑从坐标原点 (0, 0) 到点 (n, n) 的路径&#xff0c;要求路径只能向右&#xff08;x 方向&#xff09;或向上&#xff08;y 方向&#xff09;移动&#xff0c;并且路径不能越过直线 y x&#xff08;即始终满足 y< x &#xff09;。这样的路径数量就是…

Kafka的安装与使用(windows下python使用等)

一、下载 可以去官网下载&#xff1a;https://kafka.apache.org/downloads 版本可选择&#xff0c;建议下载比较新的&#xff0c;新版本里面自带zookeeper 二、安装 创建一个目录&#xff0c;此处是D:\kafka&#xff0c;将文件放进去解压 如果文件后缀是gz&#xff0c;解压…

数据结构初阶: 顺序表的增删查改

顺序表 概念 顺序表是⽤⼀段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;⼀般情况下采⽤数组存储。如图1&#xff1a; 顺序表和数组有什么区别&#xff1f; 顺序表的底层是用数组实现的&#xff0c;是对数组的封装&#xff0c;实现了增删查改等接口。 分…

详解AI采集框架Crawl4AI,打造智能网络爬虫

大家好&#xff0c;Crawl4AI作为开源Python库&#xff0c;专门用来简化网页爬取和数据提取的工作。它不仅功能强大、灵活&#xff0c;而且全异步的设计让处理速度更快&#xff0c;稳定性更好。无论是构建AI项目还是提升语言模型的性能&#xff0c;Crawl4AI都能帮您简化工作流程…

【爬虫开发】爬虫开发从0到1全知识教程第14篇:scrapy爬虫框架,介绍【附代码文档】

本教程的知识点为&#xff1a;爬虫概要 爬虫基础 爬虫概述 知识点&#xff1a; 1. 爬虫的概念 requests模块 requests模块 知识点&#xff1a; 1. requests模块介绍 1.1 requests模块的作用&#xff1a; 数据提取概要 数据提取概述 知识点 1. 响应内容的分类 知识点&#xff1a…

SQLark:一款国产免费数据库开发和管理工具

SQLark&#xff08;百灵连接&#xff09;是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;目前可以支持达梦数据库、Oracle 以及 MySQL。 对象管理 SQLark 支持丰富的数据库对象管理功能&#xff0c;包括…

防爆对讲机VS非防爆对讲机,如何选择?

在通信设备的广阔市场中&#xff0c;对讲机以其高效、便捷的特点&#xff0c;成为众多行业不可或缺的沟通工具。而面对防爆对讲机与非防爆对讲机&#xff0c;许多用户常常陷入选择困境。究竟该如何抉择&#xff0c;且听我为您细细道来。 防爆对讲机&#xff0c;专为危险作业场…

微信小程序开发:开发实践

微信小程序开发实践研究 摘要 随着移动互联网的迅猛发展&#xff0c;微信小程序作为一种轻量化、无需安装的应用形式&#xff0c;逐渐成为开发者和用户的首选。本文以“个人名片”小程序为例&#xff0c;详细阐述了微信小程序的开发流程&#xff0c;包括需求分析、项目规划、…

操作 Office Excel 文档类库Excelize

Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库&#xff0c;基于 ECMA-376 OOXML 技术标准。可以使用它来读取、写入 XLSX 文件&#xff0c;相比较其他的开源类库&#xff0c;Excelize 支持操作带有数据透视表、切片器、图表与图片的 Excel 并支持向 Excel 中插…

青铜与信隼的史诗——TCP与UDP的千年博弈

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 第一章 契约之匣与自由之羽 熔岩尚未冷却的铸造台上&#xff0c;初代信使长欧诺弥亚将液态秘银倒入双生模具。左侧模具刻着交握的青铜手掌&#xff0c;右侧则是展开的隼翼纹章。当星辰…

「青牛科技」GC5849 12V三相无感正弦波电机驱动芯片

芯片描述&#xff1a; • 4 &#xff5e; 20V 工作电压&#xff0c; 30V 最大耐压 • 驱动峰值电流 2.0A &#xff0c;连续电流 800mA 以内 • 芯片内阻&#xff1a; 900mΩ &#xff08;上桥 下桥&#xff09; • eSOP-8 封装&#xff0c;底部 ePAD 散热&#xff0c;引…