网络安全防范
实践内容
学习总结
-
PDR,$$P^2$$DR安全模型。
-
防火墙(Firewall):
网络访问控制机制,布置在网际间通信的唯一通道上。
不足:无法防护内部威胁,无法阻止非网络传播形式的病毒,安全策略不够精细。
包过滤技术:数据包包头信息的检查和安全策略匹配。
代理(Proxy):建立非直接网络连接。
netfilter/iptables:前者为功能模块,后者为管理工具。包含最基本的三个表,filter(包过滤处理),nat(地址转换),mangle(数据包修改)。
其中的五个规则链对应者netfilter在TCP/IP协议中的五个Hook检查点(上下两部分分别对应外内数据通道)。
PREROUTING 对应检查点 1,检查进入主机的数据包,用于源地址NAT转换;INPUT对应检查点2,检查发往本地网络协议栈的数据包,用于过滤本地网络服务的连接;FORWARD对应检查点3,用于经由本地路由转发的数据包检查,过滤网络连接;ROSTROUTING对应检查点4,用于目的地址NAT转换;OUTPUT对应检查点5,对本地发出的数据包进行检查,可用于本地对外的访问控制。
Iptables:基本命令为
iptables [-t table] command [match][target]-t 指定表, command 指定规则链,match 指定匹配条件,target指定目标操作
eg: iptables -t filter -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
即指定filter表,对路由转发的数据进行网段流量的筛选,-A 追加命令规则至规则链尾,-s,-t 源目的地址 -j ACCEPT 指定ACCEPT操作(常用默认为ACCEPT或DROP)
动态包过滤命令(状态跟踪命令)
eg: iptables -t filter -A FORWARD -d [WEB_SERVER] -m state --state NEW -j ACCEPT
即允许连接目标为Web_server的ip, 当前状态为NEW(新建连接)的网络连接可通过防火墙转发
ip伪装(利用nat规则链)
通过一个在防火墙绑定一个外网ip共享进行外部访问
eg: iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j MASQUERADE
-MASQUERADE(ip伪装)
eg: iptables -t -nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023
将通过路由发出的tcp网络连接的源ip改为1.2.3.4,端口为前1023个端口(除0端口外的保留端口)
转化目的ip
eg: iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8
将目的地址转换为5.6.7.8
-
入侵检测:
入侵者分类:
检测指标:检测率(True Positive)和误报率(False Positive),前者为捕获到的攻击数和全部攻击数目之比,后者为对正常行为的误报数和全部报警数目之比。综合分析可用ROC曲线(改变算法阈值,得到检-误曲线)。
snort(sniffer and more,解码器(sniffer)+ 预处理器 + 检测引擎 + 出输出模块):
解码器:将网卡设置为混杂模式,利用libpacp抓包函数进行数据包监听和捕获,在调用循环pacp_loop()中调用ProcessPacket(),利用decode.c解码。
预处理器:会话重组,编码规范,一些检测的预处理。
检测引擎:入侵检测功能的主体模块,主要包含规则库解析,多模式匹配,规则插件检测。其中Snort规则采用文本格式,分为规则头和规则选项。
规则头:
eg:alert tcp $EXTERNAL_NET any -> $HOME_NET 21 alert 输出格式,报警信息方式,此外还有 log,pass,dynamic等 TCP 协议字段 $EXTERNAL_NET 源ip地址匹配范围位置,这里为外部网段网络 any 源端口位置,这里设为任何源端口 $HOME_NET 目标地址匹配范围位置 21 攻击目的端口位置,这里为21
规则选项:
eg:(msg:"FTP EXPLOIT wu-ftpd 2.6.0 site exec format string overflow Linux"; flow:to_server, established; content: "|131c0000000000db|"; reference:bugtraq, 1387; reference:cve, CAN-2000-0573; reference:arachnids, 287; class type:attempted; sid:344; rev:4) msg: 报警信息 flow: 匹配当前连接状态及流方向 content:标识用于字符串匹配的攻击特征 reference: 对第三方攻击的解释 classtype: 分类目录,识别攻击及优先级 sid: 规则的唯一标识号 rev: 规则版本号
五个解析后的规则表:Activation, Dynamic, Alert, Pass, Log(只记录不报警)。
输出模块:处理信息的记录。
实践内容
- 过滤ICMP数据包,使主机不接受Ping包。
- 只允许特定IP地址访问主机的某一网络服务。
- 从离线的pcap文件读取网络日志数据源。
- 在snort.conf中配置明文输出报警日志文件。
- 指定报警日志log目录(/var/log/snort)。
- 分析脚本:/etc/init.d/rc.firewall, /etc/init.c/hflow-snort, /etc/snort/snort.conf, /etc/init.d/hflow-snort_inline, /etc/snort_online/snort_inline.conf。包括网关的捕获和数据控制机制,IPTables规则列表,Snort和Snort_inline执行参数,网关开机后,防火墙、NIDS、NIPS是如何启动的,Snort规则是如何自动升级的。
实践过程
实验机器 | ip |
---|---|
A(kali) | 192.168.200.7 |
B(SEED) | 192.168.200.2 |
C(metas..linux) | 192.168.200.125 |
命令详情查询 | iptables -h, snort -h及上述内容 |
-
过滤ICMP数据包,使主机不接受Ping包
选取A,B,确定A,B可相ping通后,在A中输入命令
iptables -t filter -A INPUT -p icmp -j DROP
阻塞ping包,发现B已经不能ping通A:
查看 chain rules list确认阻塞ping包规则:
-
只允许特定IP地址访问主机的某一网络服务
此实验为禁止某一ip访问操作,“只允许”实验操作步骤为禁止所有ip访问某端口后添加可访问的ip,参考iptables 设置特定IP访问指定端口 。
操作类似阻塞ping包操作。首先选取A,B,C,其中A访问被控制,B提供服务,确认实验之前A,C皆可访问B的网络服务,本实验访问ftp服务。然后在B中输入命令
iptables -t -filter -A INPUT -s 192.168.200.7 -p tcp --dport 21 -j DROP
:发现A已经不能访问B的ftp服务,但C依然可以:
查看 chain rules list确认阻塞端口21访问规则:
-
从离线的pcap文件读取网络日志数据源
命令snort -r /file/path:
得到文件listen.pcap输出的一大长串报告:
分析上次写过了,这次就不写了。
-
在snort.conf中配置明文输出报警日志文件
貌似默认明文(-K<model> ascii)输出,但是还是进入配置文件查看,在output模块输出配置中并未发现关于编码格式的配置(可能在预处理模块中)。
-
指定报警日志log目录(/var/log/snort)
虽然在配置文件中未找到输出编码格式配置,但发现了log_to_dir 配置注释:
命令
snort -l /var/log/snort
执行后初始化output模块插件,并作一次网口抓包分析(也不知道为啥进行这次操作,可能是为了验证上述命令生效):查看目录,有刚扫描的文件:
-
分析脚本:/etc/init.d/rc.firewall, /etc/init.d/hflow-snort, /etc/snort/snort.conf, /etc/init.d/hflow-snort_inline, /etc/snort_online/snort_inline.conf。包括网关的捕获和数据控制机制,IPTables规则列表,Snort和Snort_inline执行参数,网关开机后,防火墙、NIDS、NIPS是如何启动的,Snort规则是如何自动升级的:
对个人来说,读这种源码基本是让我读注释:
-
查看/etc/init.d/rc.firewall分析数据的捕获和控制:
基本上就是利用一些基本模块(),flush模块(用于清除all tables),create_chains模块(创建规则链),default_policy和localhost_policy模块(用于控制本地主机访问和缺省访问数据的策略),management_policy模块(管理的访问权限设置)进行数据包捕获和控制:
捕获到数据包后,检查其变量(ip啥的),如果在blacklist(creat_chains)里,就丢弃且不log:
如果在whitelist里,接受且不log:
如果在fencelist里,接受且log:
然后就是根据网卡模式进行一些防火墙的设置,并且进行一些更细致的命令设置和协议handle以用来控制匹配命令。
-
IPTables规则列表
命令
iptables --list|less
观察规则列表: -
Snort和Snort_inline执行参数
snort:
查看/etc/snort/snort.conf(没有文件/etc/init.d/hflow-snort,只有.../hflow,难顶 ),variable设置包括 HOME_NET, server lists, service ports for attacks,以及一些其他的variables:
snort_inline:
查看/etc/init.d/hw-snort_inline(同样没找到文件.../hflow-snort_inline,配置文件中也只有一些默认网络变量设置,不需人为设置)查看执行参数:
-
网关开机后,防火墙、NIDS、NIPS是如何启动的,Snort规则是如何自动升级的:
命令 chkconfig --list|grep [服务]查询服务状态(这里操作没看源码,也不知道配置文件写没写这些,参考的同学博客),发现snort_inline的开启与防火墙(系统)同步,snortd需手动设置:
Snort规则的手动升级可通过编辑local.rules文件,自动升级则需通过Oinkmaster(社区默认工具)或者pullpork等工具。
学习问题及解决
- 找不到书上指定的文件
实践总结
安全防护通过防火墙,入侵检测等方式进行,需系统掌握工具的命令及一些安全防护的思想。
相关文章:

网络安全防范
实践内容 学习总结 PDR,$$P^2$$DR安全模型。 防火墙(Firewall): 网络访问控制机制,布置在网际间通信的唯一通道上。 不足:无法防护内部威胁,无法阻止非网络传播形式的病毒,安全策略…...

重拾设计模式--组合模式
文章目录 1 、组合模式(Composite Pattern)概述2. 组合模式的结构3. C 代码示例4. C示例代码25 .应用场景 1 、组合模式(Composite Pattern)概述 定义:组合模式是一种结构型设计模式,它允许你将对象组合成…...

红米Note 9 Pro5G刷小米官方系统
前言 刷机有2种方式:线刷 和 卡刷。 线刷 线刷:需要用电脑刷机工具,例如:XiaoMiFlash.exe,通过电脑和数据线对设备进行刷机。 适用场景: 系统损坏无法开机。恢复官方出厂固件。刷机失败导致软砖、硬砖的…...

渗透测试-前端加密分析之RSA加密登录(密钥来源服务器)
本文是高级前端加解密与验签实战的第6篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过RSA加密来爆破登录。 分析 这里的代码跟上文的类似,但是加密的公钥是通过请求服务端获取的 http://127.0.0.1:8787/crypto/js/…...

踩准智能汽车+机器人两大风口,速腾聚创AI+机器人应用双线爆发
日前,RoboSense速腾聚创交出了一份亮眼的Q3财报。受到多重利好消息影响,其股价也应势连续大涨。截止12月9日发稿前,速腾聚创股价近一个月内累计涨幅已超88%。 财务数据方面,速腾聚创在今年前三季度实现总收入约11.3亿元࿰…...

YOLOv8全解析:高效、精准的目标检测新时代——创新架构与性能提升
目录 前言 一、模型介绍 二、网络结构 Backbone改进 特征增强网络(neck) 检测头(head) 其它部分 三、Loss计算 四、性能表现 五、YOLOv8使用详解 添加模型 其它部分 创建数据集 数据标注 模型训练 模型预测 六、YOLOv8总结 前言 YOLO(You Only Lo…...
【Python】使用Selenium 操作浏览器 自动化测试 记录
【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等-CSDN博客文章浏览阅读389次。【自动化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565691?spm1001.2014.3001.5501【学习记录】浏览器指纹相关学习记录&am…...
GDPU软件工程习题(挖空版)
答案: GDPU软件工程24期末复习-CSDN博客 1.8 练习题 一、填空题 软件工程是一门综合性的交叉学科,它涉及计算机学科、( )学科、( )学科和( )学科。软件工程研究的主要内容是 ( )、( )、( ) 三个方…...

【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap
re:Invent 是全球云计算领域的顶级盛会,每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂,分享最新的技术成果和创新实践,深圳 UG 作为亚马逊云科技技术社区的重要组成部分,将借助 re:Invent 的东风,举办此…...
Hutool工具包的常用工具类的使用介绍
前言 Hutool 是一个轻量级的 Java 工具类库,提供了非常丰富的工具方法,可以大大减少开发时的重复性工作。它的目标是让 Java 开发更简单、更高效。Hutool 提供了多种常用功能,以下是一些常用工具类的使用介绍: 1. StrUtil - 字符…...
C++简明教程(文章要求学过一点C语言)(2)
一、什么是代码文件(头文件和源文件) 想象你在写一篇很长的故事(这就好比是一个 C 程序),你可能会把故事分成不同的章节(类似于 C 中的文件)。 头文件(.h):它…...
防火墙技术与网络安全
网络已经成为了人类所构建的最丰富多彩的虚拟世界,网络的迅速发展,给我们的工作和学习生活带来了巨大的改变。我们通过网络获得信息,共享资源。如今,Internet遍布世界任何一个角落,并且欢迎任何一个人加入其中…...
html 中 表格和表单的关系与区别
在 HTML 中,表格 (<table>) 和表单 (<form>) 是两种常用于展示数据和收集用户输入的元素。它们具有不同的功能和结构。以下是关于这两者的详细介绍: 1. HTML 表格(<table>) 表格用于展示结构化的数据…...
基于Java的购物网站毕业论文
标题:基于 Java 的购物网站 内容:1.研究背景 1.1.国内研究进展 近年来,随着我国电子商务市场的不断发展,越来越多的企业开始涉足电子商务领域。其中,基于 Java 的购物网站成为了众多企业的首选。Java 语言具有跨平台、安全性高、稳定性好等优…...
Redis——缓存预热+缓存雪崩+缓存击穿+缓存穿透
文章目录 1、 缓存预热2、 缓存雪崩3、 缓存击穿4、 缓存穿透总结 1、 缓存预热 什么是预热: mysql加入新增100条记录,一般默认以mysql为准作为底单数据,如何同步给redis(布隆过滤器)这100条新数据。 为什么需要预热…...

wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势
开发CuteMySQL/CuteSqlite开源客户端的时候,需要使用Scintilla编辑器,来高亮显示SQL语句,作为C/C领域最成熟稳定又小巧的开源编辑器,Scintilla提供了强大的功能,wxWidgets对Scintilla进行包装后的是控件类:…...

【ETCD】【实操篇(二)】如何从源码编译并在window上搭建etcd集群?
要在 Windows 上编译 etcd 及 etcdctl 工具,并使用 bat 脚本启动 etcd 集群,首先需要准备好开发环境并确保依赖项正确安装。下面是从 etcd 3.5 源码开始编译和启动 etcd 集群的详细步骤: 目录 1. 安装 Go 环境2. 获取 etcd 源码3. 编译 etcd…...

服务器数据恢复—V7000存储中多块磁盘出现故障导致业务中断的数据恢复案例
服务器存储数据恢复环境: 一台V7000存储上共12块SAS机械硬盘(其中1块是热备盘),组建了2组Mdisk,创建了一个pool。挂载在小型机上作为逻辑盘使用,小型机上安装的AIXSybase。 服务器存储故障: V7…...

冯诺依曼架构与哈佛架构的对比与应用
冯诺依曼架构(Von Neumann Architecture),也称为 冯诺依曼模型,是由著名数学家和计算机科学家约翰冯诺依曼(John von Neumann)在1945年提出的。冯诺依曼架构为现代计算机奠定了基础,几乎所有现代…...

Hive其四,Hive的数据导出,案例展示,表类型介绍
目录 一、Hive的数据导出 1)导出数据到本地目录 2)导出到hdfs的目录下 3)直接将结果导出到本地文件中 二、一个案例 三、表类型 1、表类型介绍 2、内部表和外部表转换 3、两种表的区别 4、练习 一、Hive的数据导出 数据导出的分类&…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...