从网络基础到安全防护:网安运维小白的入门学习路线
今天的主题是给网络安全运维小白的学习建议。
事情是这样的,最近有一位想学网安(偏向网络运维)的新手小白询问我学习的方向和建议。我建议他可以从网络和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盘的…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...