从网络基础到安全防护:网安运维小白的入门学习路线
今天的主题是给网络安全运维小白的学习建议。
事情是这样的,最近有一位想学网安(偏向网络运维)的新手小白询问我学习的方向和建议。我建议他可以从网络和Linux入手。后来他问了一个我认为非常有价值的问题:“网络部分到底是指什么?”相信大多数网安界的前辈都会同意,网络和网络安全息息相关。但如果我想走专职网安(尽管网安也有很多不同的领域),到底需要掌握哪些网络知识才算足够?难道必须先学CCNA吗?还是必须将《O’Reilly TCP/IP》全书背得滚瓜烂熟才能开始接触网安?
我觉得,网络本身就是一个可以深入研究的专业。如果要学网安,其实不一定要具备过于深厚的网络技术背景才能入门。因此,我想通过一些简洁且主观的方式,为新手推荐学习网安所需的最低限度的网络知识。
这篇文章的核心是帮助学习网安的人理解必须掌握的基础网络知识和技能。虽然会涉及一些网安的攻防技术和设备,但重点仍然是“网络”部分。因此,像是密码学、网站安全、系统安全、应用程序安全等内容会尽量避免提及。这并不是说网络不重要,只是这篇文章专注于网络方面的学习。实际上,学习网安时,网络、系统和程序的学习是相辅相成的。
从我开始学习网安起,我一直觉得,学网安就像拼拼图。一块块拼图来自不同的领域——编程语言、数据库、网络协议等,而这些都与网安有着千丝万缕的关系。每一块拼图的知识都会对整体安全理解产生影响。某些区域可能需要拼合多块拼图才能看得更清晰,有些领域是大家普遍建议从这里入手的,可能因为它们比较简单,或者是基础不牢,后续的学习可能会受到制约。基础网络知识大概就是这样的“基础拼图”。虽然我不会告诉你网安就是网络,但我确实建议想做网安的人先掌握基础网络知识,这对后续发展非常重要。
再次声明,这篇文章的目的是分享我在网安领域的学习经验,并非想给大家提供一条通向网络安全专家的明确路线。内容可能比较基础,尤其对于网络相关专业的朋友来说,可能会觉得有些啰嗦。但我写这篇文章的目的是希望跨领域学习的人能够抓住这些重要的基础概念。
第一阶段:基础网络知识
- 了解OSI七层网络模型
- 了解数据封装(Encapsulation/Decapsulation)
- 了解分段(Segmentation/Reassembly)
- 了解TCP/IP模型
- 了解网络拓扑
- 区分WAN和LAN的区别
- 了解IP地址
- 公网IP与私网IP
- 静态IP与动态IP
- 熟悉私网IP的范围及特殊IP(避免使用私网IP做远程作业,且没有提供VPN)
- 理解IPv4与IPv6的区别
- 了解子网和子网划分
- 了解为什么需要子网
- 理解子网掩码和CIDR概念
- 会计算子网(工具辅助计算即可,例:给定IP段如123.123.123.123/29,能够找出可用IP)
- 了解路由的基本概念
- 了解MAC地址及ARP工作机制
- 了解ARP欺骗(ARP Spoofing)攻击原理
- 了解常见网络设备
- 集线器、交换机、路由器等设备的基本功能和差异
- 如果不接触企业级设备,基础理解即可
- 了解内网与外网的概念
- 了解TCP与UDP的区别
- 了解TCP三次握手过程
- 了解两者的应用场景差异
- 了解IP与TCP头部格式
- 不需要熟背,但建议理解和见过一次
- 了解ICMP协议
- 了解端口与服务的概念
- 理解客户端-服务器架构(Client-Server)
- 例如HTTP使用80端口,但并不是所有HTTP都只能在80端口
- 了解DNS的工作机制
- 了解常见的企业安全防护设备
- 防火墙(Firewall)、入侵检测系统(IDS)、入侵防御系统(IPS)、WAF
- 了解Server Farm、DMZ区及其重要性
- 理解防火墙的基本技术原理
- 了解代理(Proxy)的概念
- 了解常见协议及其用途
- 如DHCP、HTTP、SSH、Telnet、FTP、SMTP、SNMP、NTP等
- 记住一些常见协议的端口号,例如SSH使用22端口
- 了解DDoS攻击
- 了解VPN技术
- 了解中间人攻击(MitM)
实操技术:
- 会进行基本的网络配置
- 能配置网卡的IP、子网掩码和网关,确保能够上网
- 能调试网络问题
- 掌握基本的网络故障排除技能:检查网卡、网络设置、Ping测试、nslookup、抓包分析
- 会使用Wireshark进行抓包并分析
- 学会用Wireshark观察DNS、TCP三次握手、DHCP等协议的工作原理
- 了解虚拟机中的网络模式
- 熟悉VM中的NAT、Bridged、Host-Only等不同网络模式
这些内容通常会在网络安全概论的课程或书籍中提到,像《鸟哥的Linux私房菜》就有详细介绍。
第二阶段:进阶网络知识
第一阶段是我觉得不论你走偏红队(攻击)或是偏蓝队(防御),都需要的基础知识和技能。 接下来其实走向不同的领域、不同位置、不同专业可能需要的知识会比较不同。 有的属于前面的进阶,有的则可能不是难易度的问题,而是职务有没有这个需求的原因居多。虽然这些知识不一定是每个人都需要,但如果你在深入某些网安领域时,可能会接触到。
- 了解VLAN
- 了解Proxy的不同类型
- 转发代理、反向代理、透明代理
- 了解Tunneling技术
- 学会使用SSH Tunnel等技术
- 更深入学习网络协议
- 理解协议的工作机制、安全问题及防御方式
- 例如Mac Spoofing、DHCP Starvation Attack、DHCP Snooping,或是设定上的安全问题像是 SNMP Public泄漏、SMTP列举等等
- 了解常见的DNS攻击
- 如DNS放大攻击、DNS劫持、DNS中毒
- 进阶:DNS Rebinding攻击
- 进一步熟悉Wireshark和tcpdump
- 理解电子邮件安全
- 了解SPF、DKIM、DMARC等安全机制
- 掌握防火墙的安全配置
- 了解WAN端网络技术
- 分析网络架构并识别安全问题
- 学会识别网络架构中的安全漏洞
- 具有「网络架构检视」的能力
第三阶段:更专业的领域
- 掌握各种网络协议的渗透测试
- 熟悉网络设备的安全配置
- 精通网络封包分析
- 理解IDS/IPS/NDR的运作
- 架设、测试、判断并编写规则
- 能够规划安全的企业级网络架构
最后,如果各位大佬有任何宝贵的补充或建议,欢迎在下方留言分享。网络安全是一个充满挑战的领域,学习过程中不可避免会遇到各种难题,但正是这些挑战成就了我们的成长。保持对技术的热情,保持好奇心,持续探索,不断提升自己的技能,才是通向成功的关键。无论遇到多少挫折,都不要轻言放弃,因为每一次的努力和积累,都是迈向更高水平的阶梯。希望大家都能在这条路上坚持走下去,享受学习与成长的过程,最终在网络安全的世界中找到属于自己的位置!
相关文章:
从网络基础到安全防护:网安运维小白的入门学习路线
今天的主题是给网络安全运维小白的学习建议。 事情是这样的,最近有一位想学网安(偏向网络运维)的新手小白询问我学习的方向和建议。我建议他可以从网络和Linux入手。后来他问了一个我认为非常有价值的问题:“网络部分到底是指什么…...
Python 进阶特性深度解析:从语法糖到内存管理的统一视角
生成式(推导式)的用法与内存效率分析 Python 的推导式不仅仅是语法糖,它们在内存管理和性能方面有着深刻的影响。理解推导式的工作原理,有助于我们写出更高效的代码。 推导式的内存模型分析 列表推导式在 CPython 解释器中的实现实际上比等价的 for 循环更为高效: # 列…...
Linux DMA Engine 基础
1 DMA基础信息查看 /sys/class/dma root:~# ls /sys/class/dma/ dma0chan0 dma1chan10 dma1chan27 dma2chan14 dma2chan30 dma2chan47 dma2chan63 dma3chan21 dma3chan38 dma3chan54 dma0chan1 dma1chan11 dma1chan28 dma2chan15 dma2chan31 dma2chan48 dma2…...
【JavaEE】SpringMVC 请求传参
目录 一、请求二、传递单个参数三、传递多个参数四、传递对象五、RequestParam注解 后端参数重命名(后端参数映射)六、传递数组七、传递集合,RequestParam八、传递JSON数据8.1 JSON字符串和Java对象互转8.1.1 Test注解8.1.2 Java对象转JSON8.…...
观察者模式说明(C语言版本)
观察者模式主要是为了实现一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。下面使用C语言实现了一个具体的应用示例,有需要的可以参考…...
LeetCode 230.二叉搜索树中第K小的元素
题目:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 思路: 代码: /*** Definition for a binary tree node.* public class Tre…...
11、集合框架
一、简介 Java集合框架位于java.util包中 Collection是Set和List的父类,Collections是工具类,提供了对集合进行排序、遍历等多种算法的实现。 ArrayList: 有序(放进去顺序和拿出来顺序一致),可重复 HashSet: 无序(放进去顺序和拿出来顺序不…...
git常用指令详解
文章目录 Git 基本指令的使用Git 远程仓库Git的分支管理 Git 基本指令的使用 git init //初始化一个git仓库,在当前目录下生成.git文件夹,并且会默认生成一个master分支。git clone <url> [directory] //url为git仓库地址,directory为本地目录 gi…...
Debezium 报错:“The db history topic is missing” 的处理方法
Debezium 报错:“The db history topic is missing” 的处理方法 一、引言 在使用 Debezium 进行数据同步时,可能会遇到一个常见的错误:“The db history topic is missing”。这个错误表明 Debezium 无法找到或访问其数据库历史记录主题(db history topic),这通常是由…...
Grok 3.0 Beta 版大语言模型评测
2025年2月17日至18日,全球首富埃隆马斯克(Elon Musk)携手其人工智能公司xAI,在美国重磅发布了Grok 3.0 Beta版。这款被誉为“迄今为止世界上最智能的语言模型”的AI,不仅集成了先进的“DeepSearch”搜索功能࿰…...
AcWing 3691:有向树形态 ← 卡特兰数 + 复旦大学考研机试题
【题目来源】 https://www.acwing.com/problem/content/3694/ 【题目描述】 求 N 个相同结点能够组成的二叉树的个数。 【输入格式】 一个整数 N。 【输出格式】 输出能组成的二叉树的个数。 【数据范围】 1≤N≤20 【输入样例】 3 【输出样例】 5 【算法分析】 ● 卡特…...
便携式动平衡仪Qt应用层详细设计方案(基于Qt Widgets)
便携式动平衡仪Qt应用层详细设计方案(基于Qt Widgets) 版本:1.0 日期:2023年10月 一、系统概述 1.1 功能需求 开机流程:长按电源键启动,全屏显示商标动画(快闪3~4次)。主界面&…...
SpringBoot源码解析(十一):准备应用上下文
SpringBoot源码系列文章 SpringBoot源码解析(一):SpringApplication构造方法 SpringBoot源码解析(二):引导上下文DefaultBootstrapContext SpringBoot源码解析(三):启动开始阶段 SpringBoot源码解析(四):解析应用参数args Sp…...
CSS 使用white-space属性换行
一、white-space属性的常见值 * 原本格式: 1、white-space:normal 默认值,空格和换行符会被忽略过滤掉;宽度不够时文本会自动换行 * 宽度足够时,normal 处理后的格式 * 宽度不够时, normal 处理后的格式 2、white-spa…...
论文笔记(七十二)Reward Centering(四)
Reward Centering(四) 文章概括摘要附录A 伪代码 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.09999…...
Matlab——图像保存导出成好看的.pdf格式文件
点击图像的右上角,点击第一个保存按钮键。...
官方文档学习TArray容器
一.TArray中的元素相等 1.重载一下 元素中的 运算符,有时需要重载排序。接下来,我们将id 作为判断结构体的标识。 定义结构体 USTRUCT() struct FXGEqualStructInfo {GENERATED_USTRUCT_BODY() public:FXGEqualStructInfo(){};FXGEqualStructInfo(in…...
unxi-进程间通信
1.进程间通信实现方式 【1】同一主机 linux下通信方式: a.传统的进程间通信方式 管道 --- 进行数据传输的"管道" 无名管道 有名管道 信号 --- b.system v 进程间通信 (posix 进程间通信) 共享内存 (进程间…...
微型分组加密算法TEA、XTEA、XXTEA
微型分组加密算法TEA、XTEA、XXTEA TEA(Tiny Encryption Algorithm)算法是一种分组加密算法,由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明。TEA、XTEA、XXTEA算法采用64位的明文分组和128位的密钥。它使用Feistel…...
conda 基本命令
1、查询当前所有的环境 conda env list 2、创建虚拟环境 conda create -n 环境名 [pythonpython版本号] 其中[pythonpython版本号]可以不写 conda create -n test python3.12 我们输入conda env list看到我们的环境创建成功了,但是发现他是创建在我们默认的C盘的…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...
链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...
更新 Docker 容器中的某一个文件
🔄 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法,适用于不同场景。 ✅ 方法一:使用 docker cp 拷贝文件到容器中(最简单) 🧰 命令格式: docker cp <…...
