Linux安全技术与防火墙

一、安全技术和防火墙
1.1 安全技术
入侵检测系统:特点是不阻断网络访问,主要是提供报警和时候报警,不主动介入。

入侵防御系统:透明模式工作,对数据包、网络监控、服务攻击、木马蠕虫、系统漏洞等等进行准确的分析和判断。在判定为攻击行为后会立即阻断,主动防御。所有数据在进入本机之前,必须要通过的设备或软件。

防火墙:核心功能:隔离,工作在网络或者主机的边缘,一般在Internet和内网之间。对网络或者主机的数据包基于一定的规则进行检查,根据匹配到的规则放行或拒绝(丢弃数据包)。

只开放允许访问的策略。(白名单机制,拒绝所有,允许个别。)

防水墙:是一种防止内部信息泄露的产品。对外有防火墙的功能,对内是透明模式工作,类似于监控。

 1.2 防火墙
iptables :这个linux自带的防火墙,一般用于内部配置。对外一般不适用(对外都使用专业的)。

firewalld :CentOS7以后默认的防火墙。功能和iptables大体一致。

ufw :是ubantu自带的防火墙,ubantu也有iptables,功能也一致

iptables ufw 和 firewalld都是包过滤防火墙,对数据包进行控制。在网络层对数据包进行选择,选择的依据是防火墙设置的策略。

策略:IP地址,端口,协议。

优点:处理速度快,利于维护。

缺点:无法检查应用层数据,无法对病毒进行处理。

  1. 应用层防火墙:在应用层对数据进行检查,比较安全。

​ 优点:相对更安全,可以精准定位问题。

​ 缺点:所有数据都要检查,会增加防火墙的负载。

  2.iptables防火墙

iptables防火墙工作在网络层,针对数据包实施过滤和限制,属于包过滤防火墙

1.3 内核态和用户态
内核态

涉及到软件的底层代码或者是系统的基层逻辑,以及一些硬件的编码。相对比较复杂,开发人员更关注内核态。

如果数据是内核态处理的,处理速度相对较快。

iptables的过滤规则就是由内核来进行控制的。

用户态

应用层软件层面,多是人为控制的一系列操作,使用功能等。

运维人员一般只考虑用户态。

数据只通过用户态处理,速度相对较慢。

二、iptables防火墙
iptables的配置和策略

2.1 四表五链
iptables的四表:

1.Raw表 :用于控制数据包的状态,可以跟踪数据包的状态

2.Mangle表 :用于修改数据包的头部信息

3.Nat表 :用于网络地址转换,可以改变数据包的源地址和目的地址

4.Filter表 :也是iptables的默认表,不做声明时,默认就是filter表,过滤数据包的进出,以及接收和拒绝数据包

iptables的五链:

PREROUTING链 :处理数据包进入本机之前的规则(路由前)(Nat表)

INPUT链 :处理数据包进入本机的规则(Filter表,是否允许数据包进入)

OUTPUT链 :处理本机发出的数据包的规则,或者是数据包离开本机的规则(Filter表,是否允许数据包发出,一般不做设置)

FORWARD链 :处理数据包转发到其他主机的规则,或者是否允许本机进行数据包转发

POSTROUTING链 :处理数据包离开本机之后的规则(路由后)(Nat表)

通俗的说法:表里面有链,链里面有规则。

四表的优先级

Raw > Mangle > Nat > Filter,匹配规则由高到低。

2.2 数据流向
例:数据转发的过程
按优先级高低查四表里的链,并匹配链里的规则

查PREROUTING链和POSTROUTING链查看地址变换规则,

查FORWARD链是否允许转发,以及转发的具体规则。

例:请求响应的过程(http https服务等)
按优先级高低查四表里的链,并匹配链里的规则

请求:查INPUT链的规则:是否允许该地址或者端口访问web服务。若拒绝,数据包将直接丢弃

响应:查OUTPUT链的规则:是否允许响应,一般不做约束。如拒绝,响应的数据包也被丢弃
 2.3 iptables命令

管理选项 :在表的链中插入、增加、删除、查看规则。

匹配的条件 :数据包的IP地址、端口、协议。

控制类型 :允许,拒绝,丢弃,地址转换。

注意事项

  1. 不指定表名的话,默认指的是filter
  2. 不指定链名的话,默认指的是所有链(此乃禁止行为!)
  3. 除非设置了链的默认策略,否则必须指定匹配条件(一般都要指定匹配条件)
  4. 大部分选项、所有的链名和控制类型都是大写

2.3.1 控制类型
ACCEPT :允许数据包通过

DROP :直接丢弃数据包,且没有任何回应信息

REJECT :拒绝数据包通过,数据包也会被丢弃,但是会有响应的信息

SNAT :修改数据包的源地址(source)

DNAT :修改数据包的目的地址(destination)
 

2.3.2 常用管理选项
-A :在链中添加一条规则,在链尾添加。

-I :指定位置插入一条规则。

-P :默认指定规则,链的规则一般都是设置成拒绝(默认是允许)

-D :删除规则

-R :修改规则(慎用)

-vnL :-v显示详细信息,-n数字形式展示内容,-L查看

--line-numbers :显示规则的编号,一般和查看一起使用

-F :清空链中的所有规则(慎用)

-X :清除自定义链中的规则
 

2.3.3 常用匹配条件
-p :指定协议类型

-s :指定匹配的源IP地址

-d :指定匹配的目的IP地址

-i :指定数据包进入本机的网络设备(指定网卡设备,如ens33)

-o :指定数据包离开本机的网络设备

--sport :指定源端口

--dprot :指定目的端口

-m :使用扩展模块,扩展模块的使用方法在2.4内容中有介绍
 2.3.4 iptables的命令格式 

注意事项

  1. [-t 表名]不指定时默认指定filter
  2. [-j 控制类型],所有控制都要在前面 -j
  3. 需要先安装iptablesiptables-services,安装完成后启动并enable服务iptables
  4. 命令立即生效,不需要重启服务,重启服务会恢复默认策略
2.3.5 iptables匹配原则
  1. 每个链中的规则都是从上到下的顺序依次匹配,匹配到之后就不再向下匹配。
  2. 如果链中没有规则,则执行链的默认策略进行处理。
2.4 iptables实例

例:插入规则

拒绝所有主机来ping本机

在上一行后再添加一行

在第一行插入规则

指定源IP地址20.0.0.20进行控制

对多个源IP地址时,用逗号隔开

指定端口,端口要写在协议后面

拒绝指定IP20.0.0.20通过ssh服务远程登录主机

拒绝指定IP20.0.0.20获取本机的web服务

2.5 iptables的备份和保存
​ iptables 的配置文件保存在 /etc/sysconfig/iptables,每次重启服务都会重新读取配置文件里的规则

也可以通过iptables-save把当前防火墙配置保存在文件中,每次需要读取这个配置时通过iptables-restore命令获取配置,这个获取配置也是临时生效。可以配合脚本在系统启动时自动加载配置
 

2.6 iptables自定义链

创建自定义链

修改自定义链名

删除自定义链

2.7 地址转换
2.7.1 snat和dnat
snat :源地址转换

内网—外网 :内网IP转换成可以访问外网的IP

内网的多个主机可以只有一个有效的公网IP地址访问外部网络

dnat :目的地址转换

外部用户,可以通过一个公网地址访问服务器内部的私网服务。

私网的IP和公网的IP做一个映射。
 

2.7.2 实验
1、test1 :20.0.0.10 ,nginx服务

2、test2 :两个网卡设备:

      ens33:20.0.0.254(私网的网关)
      ens36:12.0.0.254(用来模拟test3的地址是公网地址)
    模拟test1的公网IP :10.0.0.10(test1的地址转换成10.0.0.10和test3进行通信)
3、test3 :12.0.0.10 ,nginx服务

要求:在test2上配置防火墙,使test1作为私网地址,test3作为公网地址,观察双方获取对方web服务时,/var/log/nginx/access.log中记录的访问主机地址,理解NAT的工作方式。

对test1,test2,test3的IP地址分别设置。其中test2两个网卡的IP地址分别作为test1和test3的网关地址。

对test2:

Linux 内核参数的配置文件/etc/sysctl.conf

源地址转换:

  • -t nat :指定表为nat表
  • -A POSTROUTING :添加规则到链
  • -s 20.0.0.0/24 :指定网段
  • -o :指定输出设备
  • -j SNAT :指定控制参数SNAT
  • --to 10.0.0.10 :20.0.0.0/24网段的源地址转换为10.0.0.10这个公网IP地址

目的地址转换:

-d 10.0.0.10 :指定作为目的地址转换的IP地址
-i :从指定设备进入本机
-p :指定协议
--dport :指定端口
-j DNAT :使用目的地址转换
--to 20.0.0.10:80 :外网想要访问内网的20.0.0.10:80(端口号80也可以不加)的web服务,只需要访问公网的10.0.0.10这个IP地址。

2.7.3 tcpdump抓包工具

tcpdump是Linux系统自带的抓包工具。

固定抓包:

tcp :指定抓包的协议,这个位置是第一个参数,也可以不指定
-i :只抓经过指定设备的包
-t :不显示时间戳(可以不加)
-s0 :抓取完整的数据包
-c 10 :抓几个数据包(10就是抓10个包)
dst port :指定抓包的目的端口
src net :指定抓包的IP网段,如果要指定主机把net改成host
-w :保存结果到指定文件


  动态抓包:

 

 一般把抓包的记录保存在.cap文件,导出到Windows系统用wireshark之类的抓包软件分析。需要注意的是,使用wireshark分析,需要tcpdump指定选项-s0获取抓包的完整格式。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

两个视频怎么剪辑成一个视频?3个方法分享

两个视频怎么剪辑成一个视频?将两个视频剪辑成一个视频,是现代数字内容创作中的高频需求,它不仅简化了素材管理,还能通过创意剪辑提升作品连贯性与表现力。通过精心编排,两个视频片段可以无缝融合,讲述更完…

如何通过兔子和窝窝的故事理解“在机器人学习和研究中的获得成本与维护成本”(节选)

获得成本 掌握一门课程,以最为简单的学校成绩过60为例,需要按要求提交材料,包括作业、报告、实验和考试等,依据学分和考核要求的不同,需要对于花费时间和经历进行完成。 维护成本 考完了,如果被动学习那…

Django 删除单行数据

1,添加模型 from django.db import modelsclass Post(models.Model):title models.CharField(max_length200)content models.TextField()pub_date models.DateTimeField(date published)class Book(models.Model):title models.CharField(max_length100)author…

FastAPI 学习之路(四十七)WebSockets(三)登录后才可以聊天

之前我们是通过前端自动生成的token信息&#xff0c;这次我们通过注册登录&#xff0c;保存到本地去实现。首先&#xff0c;我们实现一个登录页面&#xff0c;放在templates目录下。 <!DOCTYPE html> <html lang"en"> <head><meta charset&quo…

基于PCIe总线架构的2路1GSPS AD、4路1GSPS DA信号处理平台(100%国产化)

板卡概述 PCIE723-165是基于PCIE总线架构的2通道1GSPS采样率14位分辨率、4通道1GSPS采样率16位分辨率信号处理平台&#xff0c;该板卡采用国产16nm FPGA作为实时处理器&#xff0c;支持2路高速采集以及4路高速数据回放&#xff0c;板载2组DDR4 SDRAM大容量数据缓存&#xff0c;…

gradle 和 java 版本对应关系

文章目录 gradle 和 java 版本对应关系原地址 gradle 和 java 版本对应关系 原地址 https://docs.gradle.org/current/userguide/compatibility.html#compatibility

Python进阶 2024/7/10

文件编码概念 文件的读取操作 打开文件 open&#xff08;&#xff09;打开函数 open&#xff08;name&#xff0c;mode,encoding&#xff09; name:打开的目标文件的字符串&#xff0c;可以包含文件所在的具体路径 mode&#xff1a;访问模式&#xff0c;只读&#xff0c;只…

MySQL修改表名:重命名RENAME

RENAME命令 RENAME命令用于修改表的名称&#xff0c;命令格式&#xff1a;rename table 原表名 to 新表名; 例如&#xff1a;将user表改成user_info rename table user to user_info;使用场景 第一个场景重命名 最常用的场景就是使用rename修改表名。 rename table user t…

js页面跳转

最近&#xff0c;自己学习前端时发现有趣的js跳转页面&#xff0c;下面和大家分享小知识。 网上有许多跳转方法&#xff0c;我只选择了一种。如下代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

基于粒子滤波和帧差法的目标跟踪matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 帧差法 4.2 粒子滤波 4.3 粒子滤波与帧差法的结合 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 原重采样方法&#xff1a; 改进重采样方法&#xff1a; 2.算法…

The Web3 社区 Web3 产品经理课程

概述 / 深耕区块链行业 11 年&#xff0c;和很多产品经理都打过交道&#xff1b;遇到过优秀的产品经理&#xff0c;也遇到过比较拉垮的产品经理。多年工作中&#xff0c;曾在某些团队&#xff0c;承载技术兼产品经理的角色&#xff1b;也参与过很多 Web3 外包项目&#xff0c;包…

【原创教程】埃斯顿机器人:弯管机推力解决方式(上)

现的功能及应用的场合 本项目为弯管机设备改造工程,在不破坏设备原有的功能的情况下通过只更换设备原来的永宏PLC,使弯管机能够与埃斯顿机器人进行信号交互,通过机器人对弯管机进行上料、下料动作,即节约了人工成本,又提高了生产效率。 本文所述内容为“弯管机推力”的解决…

从汇编层看64位程序运行——栈帧(Stack Frame)边界

大纲 RBP&#xff0c;RSP栈帧边界总结参考资料 在《从汇编层看64位程序运行——栈帧(Stack Frame)入门》中&#xff0c;我们简单介绍了栈帧的概念&#xff0c;以及它和函数调用之间的关系。如文中所述&#xff0c;栈帧是一种虚拟的概念&#xff0c;它表达了一个执行中的函数的栈…

基于AT89C51单片机GSM模块的家庭防火防盗报警系统设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机GSM模块的家庭防火防盗报警系统设计的详情介绍&#xff0c;如果对您有帮助的话&#xff0c;还请关注一下哦&#xff0c;如果有资源方面的需要可以联系我。 目录 摘 要 原理图 仿真图 元器件清单 代码 系统论文 参考文献 资源下载…

细说MCU用定时器控制ADC采样频率的实现方法

目录 一、工程依赖的硬件及背景 二、设计目的 三、 建立工程 1.选择时钟源和Debug模式 2.配置系统时钟和ADC时钟 3.配置串口 4.配置ADC 5.设置TIM3 6.设置TIM4 7.配置中断 8.GPIO 四、代码修改 1.重新定义ADC回调函数 2.在主程序中编写数据发送代码 3.使能ADC和…

如何从gitlab删除仓库

嗨&#xff0c;我是兰若姐姐。今天发现gitlab上有些仓库的代码没有用&#xff0c;是个多余的仓库&#xff0c;想要删掉&#xff0c;经过一番操作之后&#xff0c;成功的删除了&#xff0c;git上没有 多余的仓库&#xff0c;看着干净舒服很多&#xff0c;现在把删除的过程分享出…

PostgreSQL 怎样处理数据仓库中维度表和事实表的关联性能?

文章目录 PostgreSQL 中维度表和事实表关联性能的处理 PostgreSQL 中维度表和事实表关联性能的处理 在数据仓库的领域中&#xff0c;PostgreSQL 作为一款强大的关系型数据库管理系统&#xff0c;对于处理维度表和事实表的关联性能是一个关键的问题。维度表和事实表的关联是数据…

数学建模--数据统计类赛题分析~~神经网络引入

1.缺失值的处理 &#xff08;1&#xff09;像在下面的这个表格里面&#xff0c;这个对于缺失的数据&#xff0c;我们需要分情况进行分析&#xff0c;如果这个数据就是一个数值型的数据&#xff0c;我们可以使用平均值进行处理&#xff1b; &#xff08;2&#xff09;对于这个…

Linux--USB驱动开发(二)USB总线程序

一、USB总线驱动程序的作用 a&#xff09;识别USB设备 1.1 分配地址 1.2 并告诉USB设备(set address) 1.3 发出命令获取描述符 b&#xff09;查找并安装对应的设备驱动程序 c&#xff09;提供USB读写函数 二、USB设备工作流程 由于内核自带了USB驱动,所以我们先插入一个U…

【漏洞复现】飞企互联-FE企业运营管理平台 uploadAttachmentServlet—文件上传漏洞

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 企互联-FE企业运营管理平台是一个利用云计算、人工智能、大数据、物联网和移动互联网等现代技术构建的云…