事情是这样的,最近有一位想学网安(偏向网络运维)的新手小白询问我学习的方向和建议。我建议他可以从网络和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、子网掩码和网关,确保能够上网
- 能调试网络问题
- 会使用Wireshark进行抓包并分析
- 学会用Wireshark观察DNS、TCP三次握手、DHCP等协议的工作原理
- 了解虚拟机中的网络模式
- 熟悉VM中的NAT、Bridged、Host-Only等不同网络模式
这些内容通常会在网络安全概论的课程或书籍中提到,像《鸟哥的Linux私房菜》就有详细介绍。
第二阶段:进阶网络知识
第一阶段是我觉得不论你走偏红队(攻击)或是偏蓝队(防御),都需要的基础知识和技能。 接下来其实走向不同的领域、不同位置、不同专业可能需要的知识会比较不同。 有的属于前面的进阶,有的则可能不是难易度的问题,而是职务有没有这个需求的原因居多。虽然这些知识不一定是每个人都需要,但如果你在深入某些网安领域时,可能会接触到。
- 了解VLAN
- 了解Proxy的不同类型
- 转发代理、反向代理、透明代理
- 了解Tunneling技术
- 学会使用SSH Tunnel等技术
- 更深入学习网络协议
- 了解常见的DNS攻击
- 如DNS放大攻击、DNS劫持、DNS中毒
- 进阶:DNS Rebinding攻击
- 进一步熟悉Wireshark和tcpdump
- 理解电子邮件安全
- 了解SPF、DKIM、DMARC等安全机制
- 掌握防火墙的安全配置
- 了解WAN端网络技术
- 分析网络架构并识别安全问题
第三阶段:更专业的领域
最后,如果各位大佬有任何宝贵的补充或建议,欢迎在下方留言分享。网络安全是一个充满挑战的领域,学习过程中不可避免会遇到各种难题,但正是这些挑战成就了我们的成长。保持对技术的热情,保持好奇心,持续探索,不断提升自己的技能,才是通向成功的关键。无论遇到多少挫折,都不要轻言放弃,因为每一次的努力和积累,都是迈向更高水平的阶梯。希望大家都能在这条路上坚持走下去,享受学习与成长的过程,最终在网络安全的世界中找到属于自己的位置!