网络安全防范

实践内容
学习总结
  • 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规则是如何自动升级的:

    对个人来说,读这种源码基本是让我读注释:

  1. 查看/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以用来控制匹配命令。

  2. IPTables规则列表

    命令 iptables --list|less观察规则列表:

  3. 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,配置文件中也只有一些默认网络变量设置,不需人为设置)查看执行参数:

  4. 网关开机后,防火墙、NIDS、NIPS是如何启动的,Snort规则是如何自动升级的:

    命令 chkconfig --list|grep [服务]查询服务状态(这里操作没看源码,也不知道配置文件写没写这些,参考的同学博客),发现snort_inline的开启与防火墙(系统)同步,snortd需手动设置:

    Snort规则的手动升级可通过编辑local.rules文件,自动升级则需通过Oinkmaster(社区默认工具)或者pullpork等工具。

学习问题及解决
  1. 找不到书上指定的文件
实践总结

安全防护通过防火墙,入侵检测等方式进行,需系统掌握工具的命令及一些安全防护的思想。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QSS样式表 - ⑤】:QLineEdit控件样式

文章目录 QLineEdit控件样式QSS示例1 - select-QSS示例2 - read-onlyQSS示例3 - echoModeQSS示例4 - 自定义密码模式 QLineEdit控件样式 常用属性 常用选择器 QSS示例1 - select- 代码&#xff1a; QLineEdit{selection-color: red;selection-background-color: yellow…

ScottPlot学习的常用笔记-02

ScottPlot学习的常用笔记-02 写在前面Why&Target&#xff1a;这里记一些杂项。上下文&背景 先记一下这几个小时的新收获先说一下&#xff0c;为什么可开发可视工具缩放的问题ScottPlot5.0起步.net Core: WinExe.Net Framework也是可以的 写在前面 Why&Target&…

机器学习基础算法 (二)-逻辑回归

python 环境的配置参考 从零开始&#xff1a;Python 环境搭建与工具配置 逻辑回归是一种用于解决二分类问题的机器学习算法&#xff0c;它可以预测输入数据属于某个类别的概率。本文将详细介绍逻辑回归的原理、Python 实现、模型评估和调优&#xff0c;并结合垃圾邮件分类案例进…

Docker_常用命令详解

这篇文章分享一下笔者常用的Docker命令供各位读者参考。 为什么要用Docker? 简单来说&#xff1a;Docker通过提供轻量级、隔离且可移植的容器化环境&#xff0c;使得应用在不同平台上保持一致性、易于部署和管理&#xff0c;具体如下 环境一致性&#xff1a; Docker容器使得…

冯诺依曼架构与哈佛架构的对比与应用

冯诺依曼架构&#xff08;Von Neumann Architecture&#xff09;&#xff0c;也称为 冯诺依曼模型&#xff0c;是由著名数学家和计算机科学家约翰冯诺依曼&#xff08;John von Neumann&#xff09;在1945年提出的。冯诺依曼架构为现代计算机奠定了基础&#xff0c;几乎所有现代…

malloc 分配大堆块(128KB)的一次探索

前言 一次意外执行了 malloc(0x5000)&#xff0c;结构使用 gdb 调试发现其分配的位置在 TLS 区域&#xff0c;这令我不解&#xff08;&#xff1a;最后去看了下 malloc 源码和 mmap 源码实现&#xff0c;发现似乎可能是 gdb 插件的问题&#xff0c;乐 场景复现 #include <…

CS 144 check5: down the stack (the network interface)

Lectures Note 略 Exercises TCP片段传输到对等方的过程&#xff1a; TCP-in-UDP-in-IP. Linux 提供了一种接口&#xff08;即“数据报套接字”&#xff0c;UDPSocket&#xff09;&#xff0c;它允许应用程序仅提供用户数据报的有效载荷和目标地址&#xff0c;而内核则负责…

内核执行时动态的vmlinux的反汇编解析方法及static_branch_likely机制

一、背景 在之前的博客里&#xff0c;我们讲到了tracepoint&#xff08;内核tracepoint的注册回调及添加的方法_tracepoint 自定义回调-CSDN博客&#xff09;和kprobe&#xff08;获取任意一个进程的共享内存的fd对应的资源&#xff0c;增加引用&#xff0c;实现数据的接管——…

Unity 3D饼状图效果

一. 效果展示 二.基础类 using System.Collections; using System.Collections.Generic; using UnityEngine;public class DrawCylinder : MonoBehaviour {// 网格渲染器MeshRenderer meshRenderer;// 网格过滤器MeshFilter meshFilter;// 用来存放顶点数据List<Vector3>…

精通 Numpy 数组:详解数据类型查看、转换与索引要点

1、查看数据类型 通过访问数组的dtype属性时会创建一个表示数据类型的对象&#xff0c; 这个对象其实就是numpy.dtype类型的对象。 如果要想获取数组中元素数据类型的名称&#xff0c;则需要先通过数组访问dtype属性得到numpy. dtype类型的对象&#xff0c;再通过该对象访问n…

分布式系统架构5:限流设计模式

这是小卷对分布式系统架构学习的第5篇文章&#xff0c;今天来学习限流器和限流设计模式 1.为什么要限流&#xff1f; 任何一个系统的运算、存储、网络资源都不是无限的&#xff0c;当系统资源不足以支撑外部超过预期的突发流量时&#xff0c;就应该要有取舍&#xff0c;建立面…

山景BP1048蓝牙音频任务后台运行设置方法

1、 问题 山景BP1048提供的蓝牙音箱SDK蓝牙音频是不能在后台运行的。例如&#xff1a;现在进入U盘模式播放蓝牙音乐&#xff0c;那么此时蓝牙就会关闭。 但是在特定场景下&#xff0c;需要蓝牙保持连接。 2、解决办法 打开sys_param.c文件 #include <string.h> #incl…

【AI知识】为什么激活值过大/过小,初始权重过大/过小,可能导致梯度爆炸/消失?具体例子举例

1.梯度爆炸的公式计算 计算一个简单的两层神经网络的前向传播和反向传播过程。在这里&#xff0c;我们故意选择过大的初始权重值&#xff0c;查看梯度如何爆炸。 总结&#xff1a; 梯度值很大&#xff0c;这是梯度爆炸的一个典型例子。此时&#xff0c;如果我们使用梯度下降进…

在福昕(pdf)阅读器中导航到上次阅读页面的方法

文章目录 在福昕(pdf)阅读器中导航到上次阅读页面的方法概述笔记用书签的方法来导航用导航按钮的方法来导航 备注END 在福昕(pdf)阅读器中导航到上次阅读页面的方法 概述 喜欢用福昕(pdf)阅读器来看pdf文件。 但是有个小问题困扰了我好久。 e.g. 300页的pdf看了一半&#xff…

CCF-GESP 等级考试 2023年9月认证C++一级真题解析

2023年9月真题 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 正确答案&#xff1a;C 解析&#xff1a;考察知识点&#xff1a;计算机基础 本题属于考察计算机基础知识中的存储设备问题&#xff1b;内存是一种存储设备&#xff0c;也可以考虑关联内存中的“存…

重拾设计模式--建造者模式

文章目录 建造者模式&#xff08;Builder Pattern&#xff09;概述建造者模式UML图作用&#xff1a;建造者模式的结构产品&#xff08;Product&#xff09;&#xff1a;抽象建造者&#xff08;Builder&#xff09;&#xff1a;具体建造者&#xff08;Concrete Builder&#xff…

关于使用拓扑排序算法实现解析勾稽关系优先级的研究和实现

1. 勾稽关系 勾稽关系&#xff08;Reconciliation Relationship&#xff09;是一个财务术语&#xff0c;指的是在会计和审计中&#xff0c;不同会计报表或报表项目之间存在的逻辑对应关系。这种关系可以用来验证会计数据的准确性和完整性。勾稽关系通常体现在以下几个方面&…

电商项目-网站首页高可用(二)

一、LUA基本语法 lua有交互式编程和脚本式编程。 交互式编程就是直接输入语法&#xff0c;就能执行。 脚本式编程需要编写脚本文件&#xff0c;然后再执行。 一般采用脚本式编程。&#xff08;例如&#xff1a;编写一个hello.lua的文件&#xff0c;输入文件内容&#xff0c;并执…

flink实现复杂kafka数据读取

接上文&#xff1a;一文说清flink从编码到部署上线 环境说明&#xff1a;MySQL&#xff1a;5.7&#xff1b;flink&#xff1a;1.14.0&#xff1b;hadoop&#xff1a;3.0.0&#xff1b;操作系统&#xff1a;CentOS 7.6&#xff1b;JDK&#xff1a;1.8.0_401。 常见的文章中&…

第十五届蓝桥杯Scratch01月stema选拔赛—排序

排序 具体要求&#xff1a; 1). 点击绿旗&#xff0c;在舞台上出现4张点数不同的扑克牌&#xff0c;牌上的点数是随机的&#xff08;4-9点&#xff09;&#xff0c;如图所示&#xff1b; 完整题目可点击下方链接查看&#xff1a; 排序_scratch_嗨信奥-玩嗨信息奥林匹克竞赛-…