网络安全防范

实践内容
学习总结
  • 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. 找不到书上指定的文件
实践总结

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

网络安全学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

需要网络安全学习路线和视频教程的可以在评论区留言哦~

最后
  • 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!

给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失

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

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

相关文章

Java 设计模式之组合模式

文章目录 Java 设计模式之组合模式概述UML代码实现 Java 设计模式之组合模式 概述 组合模式(Composite)&#xff1a;将对象组合成树形结构以表示’部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。优点&#xff1a;客户端可以统一处理单个对象…

基于VS2022在Windows上首次尝试开发C++ gRPC服务端和客户端的详细步骤

文章目录 **1. 创建解决方案与项目****2. 编写proto文件****3. 生成gRPC代码****4. 配置项目属性****服务端项目&#xff08;gRPCServer&#xff09;****客户端项目&#xff08;gRPCClient&#xff09;** **5. 实现服务端代码****6. 实现客户端代码****7. 编译与运行****注意事…

云创智城充电系统:基于 SpringCloud 的高可用、可扩展架构详解-多租户、多协议兼容、分账与互联互通功能实现

在新能源汽车越来越普及的今天&#xff0c;充电基础设施的管理和运营变得越来越重要。云创智城充电系统&#xff0c;就像一个超级智能管家&#xff0c;为新能源充电带来了全新的解决方案&#xff0c;让充电这件事变得更方便、更高效、更安全。 一、厉害的技术架构&#xff0c;让…

【第2章:神经网络基础与实现——2.4 实战案例:使用TensorFlow或PyTorch实现简单的MLP模型】

一、神经网络基础 咱先聊聊神经网络的基础概念。神经网络,简单来说,就是模仿人类大脑神经元结构构建的计算模型。它由大量的节点(也就是神经元)和连接这些节点的边组成。这些节点就像大脑里的一个个小处理器,而边则负责传递信息。 神经元 神经元是神经网络的基本单元。…

【Uniapp】关于实现下拉刷新的三种方式

在小程序、h5等地方中&#xff0c;常常会用到下拉刷新这个功能&#xff0c;今天来讲解实现这个功能的三种方式&#xff1a;全局下拉刷新&#xff0c;组件局部下拉刷新&#xff0c;嵌套组件下拉刷新。 全局下拉刷新 这个方式简单&#xff0c;性能佳&#xff0c;最推荐&#xf…

生成式聊天机器人 -- 基于Transformer实现的SeqToSeq模型 -- 上

生成式聊天机器人 -- 基于Transformer实现的SeqToSeq模型 -- 上 引言数据预处理下载并处理数据数据加载 Transformer模型嵌入层&位置编码层多头注意力机制EncoderLayerDecoderLayerPoint-wise Feed Forward NetworkTransformer 引言 在此之前&#xff0c;我们已经了解了如…

TCP文件传输

文件传输 工作原理 本质:客户端通过标准IO或者文件IO&#xff0c;读取文件中的信息 然后将读取到的信息&#xff0c;通过套接字发送给服务器 服务器接收到这些数据之后&#xff0c;立刻通过标准IO或者文件IO写到文件里面去 这个过程里面&#xff0c;服务器需要知道2件事情 1&…

欧拉函数杂记

定义 φ ( n ) \varphi (n) φ(n)表示 [ 1 , n ] [1,n] [1,n]中与 n n n互质的数的个数。 性质 φ ( p ) p − 1 , p ∈ P \varphi (p)p-1,\ p\in \mathbb {P} φ(p)p−1, p∈P φ ( n ) n ∏ i 1 m p i − 1 p i \varphi (n)n\prod_{i1}^{m} \frac{p_i-1}{p_i} φ(n)ni1∏…

在 CentOS 上更改 SSH 默认端口以提升服务器安全性

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …

Spring Boot(8)深入理解 @Autowired 注解:使用场景与实战示例

搞个引言 在 Spring 框架的开发中&#xff0c;依赖注入&#xff08;Dependency Injection&#xff0c;简称 DI&#xff09;是它的一个核心特性&#xff0c;它能够让代码更加模块化、可测试&#xff0c;并且易于维护。而 Autowired 注解作为 Spring 实现依赖注入的关键工具&…

搜狗拼音输入法自定义短语设置

点击搜狗拼音输入法 选择设置 选择高级->自定义短语->自定义短语设置 选择添加新的短语 填入想设置的短语&#xff0c;点击确定 效果展示

反射概率以及一些基本API的使用

请问&#xff0c;获取对象有几种方式&#xff1f; 1、通过构造函数来new一个对象&#xff1b; 2、通过clone来克隆一个对象&#xff1b; 3、通过序列化反序列化来构建一个对象&#xff1b; 4、通过反射来创建对象&#xff1b;a、通过Class类来创建&#xff1b;b、通过Const…

从零搭建:Canal实时数据管道打通MySQL与Elasticsearch

Canal实时同步Mysql Binlog至 Elasticsearch 文章目录 Canal实时同步Mysql **Binlog**至**Elasticsearch** 一. 环境准备1.环境检查检查Mysql是否开启BinLog开启Mysql BinlogJava环境检查 2.新建测试库和表3.新建Es索引 二.**部署 Canal Server****2.1 解压安装包****2.2 配置 …

五、k8s:容忍 存储卷

容忍&#xff1a; 即使节点上有污点&#xff0c;依然可以部署pod。 tolerations: operator: "Exists" 不指定key&#xff0c;表示容忍所有的污点 cordon和drain cordon: 直接标记节点为不可用&#xff0c;pod不能部署到该节点。新建的pod不会再部署到该节点&#…

Springboot_实战

项目开发 lombok使用 自动为实体类提供get、set、toString方法 引入依赖 实体类上添加注解 统一响应结果 注意要写get、set方法&#xff1b;下面是错误的&#xff0c;因此要加上Data注解 一个注册的接口的示例 Controller层 Service层 Mapper层 参数校验 但是同样存在一…

稀土抑烟剂——为纺织品安全加持,保护您的每一寸触感

一、稀土抑烟剂的基本概念 稀土抑烟剂是基于稀土元素&#xff08;如稀土氧化物和稀土金属化合物&#xff09;研发的一类新型阻燃材料。它能够有效提高纺织品的阻燃性&#xff0c;抑制火灾发生时产生的烟雾和有害气体&#xff0c;减少火灾对人体的危害。稀土抑烟剂具有更强的稳…

本地部署SafeLine详细指南:抵御网络攻击构建更安全的网站环境

文章目录 前言1.关于SafeLine2.安装Docker3.本地部署SafeLine4.使用SafeLine5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址前言 各位建站小能手们,无论是想搭建个人博客、企业官网还是各种应用平台来推广自己的内容或产品,在这个数字时代都已经…

Chrome 浏览器可以读写本地文件了,虽说是实验api,但是基本86+已经支持了

目前该API只能在https域名上使用&#xff01;&#xff01;&#xff01; 实现逻辑&#xff1a; 1.唤醒浏览器选择文件夹、文件权限 document.getElementById(button).addEventListener(click, async () > {getFile()});async function getFile () {// 打开文件选择器 记…

华宇TAS应用中间件与因朵科技多款产品完成兼容互认证

在数字化浪潮澎湃向前的当下&#xff0c;信息技术的深度融合与协同发展成为推动各行业创新变革的关键力量。近日&#xff0c;华宇TAS应用中间件携手河北因朵科技有限公司&#xff0c;完成了多项核心产品的兼容互认证。 此次兼容性测试的良好表现&#xff0c;为双方的进一步深入…

数字IC秋招知识点—1

数字IC秋招准备知识点—1 时序逻辑与组合逻辑 1. 定义与核心原理 组合逻辑&#xff1a; 输入决定输出&#xff1a;当前的输出仅由输入决定&#xff0c;无记忆功能。无反馈回路示例&#xff1a;基本逻辑单元&#xff0c;加法器&#xff0c;多路选择器MUX&#xff0c;译码器&am…