先说一句实在话:我做安全相关工作这些年,带过不少新人,也参与过一些内部攻防演练,最明显的感觉是——很多刚入门的朋友把精力全放在刷漏洞、装工具上,反而对计算机网络基础这一块一知半解。可一旦遇到真实环境,比如内网访问不通、抓包看不懂、服务扫不出来,卡壳的地方恰恰都是网络基础。网络基础不是“课本知识”,它是安全排查、漏洞分析、攻击链理解的地基。这篇文章不跟你扯大而全的教程,就围绕“网络安全必学”这个切入点,把计算机网络中最核心、最常用的知识点,结合实战视角重新捋一遍,让你看完能直接用起来。
1. 网络协议栈:安全视角下的分层思维
1.1 先建立一张“数据旅行”的分层地图
计算机网络为什么要分层?最简单的一句话解释:每一层只干自己那一摊事,出了问题也好定位,开发协议的人不用互相“打架”。你往路由器、交换机、服务器上随便抓一把包,看到的都不是一整块数据,而是从上到下逐层封装好的结构。很多安全问题就藏在层与层的交界处,不了解分层,你连问题出在哪一层都判断不了。
经典OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。实际互联网用的TCP/IP模型把它压缩成四层:链路层、网络层、传输层、应用层。安全人员不需要把七层每个定义背得滚瓜烂熟,但必须做到一点:看到任何一条流量,能快速说出它对应的工作层次。比如ARP报文工作在链路层,IP包路由是网络层,TCP/UDP连接是传输层,HTTP、DNS、SSH这些都算应用层。
打个比方:你要寄一个快递。应用层是“你要寄的东西”,传输层负责决定“用顺丰还是普通快递、要不要保价”,网络层负责写“收件人和寄件人地址”,链路层就是“快递车在小区里按门牌号送货”。不同层各司其职,共同保证数据从源到目的地。网络安全的很多事,本质上就是“在寄快递的某个环节动手脚”——有人偷看你包裹内容,有人改了地址标签,有人把快递箱换了个空壳。
1.2 分层模型在排查和加固中怎么落地
当你拿到一个“网络不通”或者“服务异常”的问题,第一反应不是去猜,而是按层往下剥。这个习惯在安全排查里尤其重要,省掉大量无用功。
我常用的定位顺序是:
- 先看链路层:网线/无线有没有连上,ARP能不能解析,MAC地址有没有冲突。
- 再看网络层:IP配置对不对,网关通不通,路由表有没有异常条目。
- 然后看传输层:端口有没有监听,连接能不能建立,有没有大量SYN_RECV状态堆积。
- 最后才到应用层:HTTP状态码、DNS解析结果、服务日志到底报了什么错。
这个顺序看起来简单,但很多人喜欢一上来就查应用日志,结果折腾半天,发现是网线被拔了,或者IP段配错。安全视角下分层思维还有另一层含义:你要知道每一层可能暴露哪些攻击面。链路层有ARP欺骗、VLAN跳跃;网络层有IP欺骗、路由劫持;传输层有端口扫描、连接耗尽;应用层更是重灾区,注入、越权、逻辑漏洞全都在这层。只有脑子里有这张分层地图,你分析攻击链的时候才能顺着链路一层层追下去,而不是像无头苍蝇一样乱撞。
提示:抓包工具里看到的数据帧,从底层往上看是“帧头 + IP头 + TCP/UDP头 + 应用数据”。所谓数据封装,就是发送端一层层加头,接收端一层层去头。抓包时如果某个层解析异常,先检查是不是这一层的问题,不要在应用层数据里找链路层的原因。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 地址、子网掩码与路由:先把“门牌”和“导航”搞清楚
2.1 IP地址与子网掩码的快速换算
IP地址是网络层的门牌号,这个大家都熟。但一到子网掩码计算,很多人就开始头晕。其实安全场景下你不需要做个精算师,但必须能做到“看到一个IP和掩码,心里有数它在哪个网段,广播地址是多少,合法主机范围是什么”。
IPv4地址一共32位,写成点分十进制,比如192.168.1.66。子网掩码的作用就是告诉你怎么划分网络号和主机号。常用的表达方式是CIDR,比如192.168.1.66/26,意思是前26位是网络号,后6位是主机号。
我教你一个笨但极其好使的换算办法:把掩码长度对应成“2的幂次”。
- /24就是255.255.255.0,主机位8位,每个网段256个地址,可用254个。
- /25就是255.255.255.128,主机位7位,每个子网128个地址。
- /26就是255.255.255.192,主机位6位,每个子网64个地址。
- /27就是255.255.255.224,主机位5位,每个子网32个地址。
网络安全里判断“两个IP是不是同一网段”太常见了。比如你拿到两个地址192.168.1.66/26和192.168.1.130/26,你会不会立刻判断它们不在同一网段?66所在网段是192.168.1.64到192.168.1.127,130已经跑到下一个网段192.168.1.128到192.168.1.191了。这种情况下,两台机器不配网关或者路由,直接二层互通是做不到的。
下面给个速查表,是你排查内网时最常用的几个网段划分:
| 掩码长度 | 子网掩码 | 每个子网IP数 | 可用IP数 | 典型场景 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 256 | 254 | 小型办公网、家庭网络 |
| /25 | 255.255.255.128 | 128 | 126 | 无线办公子网 |
| /26 | 255.255.255.192 | 64 | 62 | 隔离的部门子网 |
| /28 | 255.255.255.240 | 16 | 14 | 云上安全组常用最小子网 |
| /30 | 255.255.255.252 | 4 | 2 | 路由器点对点互联链路 |
提示:真机上判断同网段,不要靠心算硬猜,最稳妥的办法是在终端执行
ipcalc或subnetcalc这类工具,但面试和应急时心算真派得上用场。记住口诀“掩码越长,子网越小,主机越少,隔离越强”。
2.2 路由、网关与NAT到底替你干了什么
IP地址写了门牌号,但数据包还得知道怎么走到那个地方,这件事由路由负责。每一台主机和路由器上都维护着一张路由表,路由表里记录着“要去哪个网段,从哪个接口出去,下一跳找谁”。你机器上看到的那个“默认网关”,本质是一条默认路由,意思是所有不在本网段的流量都扔给网关处理。
安全视角下,路由表是一个必须检查的地方。曾经有攻击者在内网设备上篡改路由表,把所有流量导向中间设备,做数据窃听。这个手法不算高级,但隐蔽性不错,尤其在一些老旧的网络设备上,默认口令没改,攻击者登录上去加一条高优先级路由,就能做“路过式监听”。日常巡检的时候,至少得会用 route -n 或 ip route 看一眼路由表有没有陌生条目,尤其要注意有没有指向奇怪地址的默认路由。
NAT,全称网络地址转换,则是另一类关键机制。它主要解决一个问题:内部设备用私网地址,和外网通信时把源地址统一改成一个公网出口地址。内网一台机器访问外部服务时,NAT设备会记住内部IP和端口到外部端口的对应关系,回包时再反查回来,把包送到正确的主机。这个机制对安全的影响非常直接:它天然形成了一层隔离,外部主动访问内部设备通常比较困难,因为外部根本不知道内部设备的真实地址。
但NAT也会带来安全隐患。最常见的问题是“端口映射”配置太随意。不少人为了方便,把内网一台设备的22端口或者远程桌面端口直接映射到公网,还开着默认口令。这在安全巡检里属于高危行为。正确的做法是:能不做映射就不做映射,必须做映射时限制来源IP白名单,同时用非对称密钥、强口令、双因素认证把登录保护起来。映射出去一个服务,等于给外部开了一扇门,门的好坏直接决定你的安全底线。
3. 传输层的握手、重传与端口判断
3.1 三次握手和四次挥手,要看得懂抓包
传输层最核心的协议自然是TCP和UDP。TCP面向连接、提供可靠传输,UDP无连接、追求低延迟。安全岗位必须把TCP的握手过程吃透,因为大量攻击手法都建立在对握手过程的理解之上。
TCP三次握手:客户端先发送一个SYN包,服务端收到后回一个SYN+ACK包,客户端再回一个ACK包,连接建立。三次握手的核心是“双方确认彼此的收发能力都没问题”。抓包验证非常简单,直接在服务端抓包,过滤条件填上目标端口,然后从另一台机器访问,你会看到三行关键记录:SYN、SYN-ACK、ACK。只要少了一环,连接就建立不起来。
顺序号(SEQ)和确认号(ACK)的概念也要懂。每次传输的字节位置都有一个编号,接收方收到之后会回一个确认,表示“你发到哪个序号我都收到了”。如果发送方没收到确认,会触发超时重传。安全层面看这个机制很有意思:攻击者可以故意只发SYN不完成握手,大量堆积半连接状态,把服务的连接队列耗尽,这就是经典的SYN泛洪。你在服务器上看到大量SYN_RECV状态,首先要怀疑是不是有人在搞资源耗尽攻击,而不是简单地重启服务。
四次挥手则是TCP关闭连接的过程:主动关闭方发FIN,对方回ACK,对方再发FIN,主动方回ACK。注意四次挥手有一个TIME_WAIT状态要停留一段时间,这个状态太多通常不影响正常业务,但如果大量连接都卡在TIME_WAIT,说明短连接创建得太频繁,可能存在连接耗尽风险。
下面是我常用的一个抓包姿势,给个可直接照抄的命令:
bash复制# 在服务器上抓取来自某个IP访问本机443端口的TCP握手过程
sudo tcpdump -i eth0 -nn "tcp port 443 and host 192.168.100.12" -c 20
# 只看TCP标志位字段输出
sudo tcpdump -i eth0 -nn "tcp[13] & 2 != 0"
第二条命令里的 tcp[13] 拿到的是TCP头部的标志位字节,& 2 是拿SYN标志位。如果你不熟悉这种写法,可以先用 tcpdump -nn "tcp port 443" 抓一把,肉眼观察S、S.、F等标志。多看几次,比背命令管用得多。
3.2 端口扫描、服务识别与常见误判
端口扫描是安全评估的常规动作,但不少人扫完就照单全收,最后把误报当成漏洞报上去,闹出过不少笑话。我给你梳理一下端口扫描的基本原理和该有的判断逻辑。
扫描器发探测包到目标端口,根据回应判断端口状态。比如TCP SYN扫描,向目标端口发SYN包,如果对方回了SYN+ACK,说明端口开放;如果回了RST,说明端口关闭;如果没回应,可能是被过滤器拦截。UDP扫描则看ICMP端口不可达和是否有响应,可靠度比TCP低很多。
拿到扫描结果之后,还得做一步服务版本识别。不同服务常常默认用特定端口,比如:
| 端口 | 默认服务 | 常见风险 |
|---|---|---|
| 22 | SSH远程管理 | 口令爆破、后门入口 |
| 53 | DNS域名解析 | 缓存投毒、区域传送 |
| 80/443 | HTTP/HTTPS Web服务 | Web漏洞、管理后台暴露 |
| 3389 | 远程桌面 | 爆破、横向移动跳板 |
| 3306 | 数据库 | 弱口令、未授权访问 |
| 6379 | 缓存服务 | 未授权访问、数据篡改 |
注意,端口号不是判断服务类型的唯一依据。服务可以配置成任意端口,有些攻击者会把后门程序伪装在高位端口上,比如8080、8000、9000。所以看到端口开放后,一定要用协议交互去确认服务指纹,而不是看到3306就认定是数据库。我自己排查时习惯看一眼服务返回的数据包,比如SSH服务会返回以“SSH-2.0”开头的版本字样;HTTP服务会返回Server头;这些指纹信息比端口号可靠得多。
提示:扫描结果里出现“开放”不代表真的能利用,还要看服务本身是否存在可利用漏洞、是否达到弱口令基线。而“关闭”也不代表绝对安全,有些防火墙会模拟RST包来隐藏真实端口。结论要在验证之后下,别让扫描器替你背锅。
4. 应用层:DNS、HTTP与数据裸奔现场
4.1 DNS解析链路与常见劫持风险
DNS是应用层的“翻译员”,负责把域名转成IP地址。你访问一个网站,第一步不是直接连接目标服务器,而是先问DNS服务器:“这个域名对应哪个IP?”这个过程如果被篡改,你访问的网站就会变成假站点,这就是DNS劫持的风险所在。
完整解析流程大致是:
- 查询本地DNS缓存和hosts文件。
- 向本地DNS服务器发起递归查询。
- 本地DNS服务器从根域名服务器、顶级域服务器一路查下来,拿到最终的权威记录。
在这个链条里,任意一环被污染或者篡改,都可能让你看到错误的结果。常见的风险点包括:本地hosts文件被篡改、DNS缓存投毒、配置的DNS服务器不可信、公共WiFi下的DNS响应劫持等等。安全巡检时,检查主机使用的DNS地址是个基础动作。如果一台服务器原来用的是内网DNS,突然变成了奇怪的公共DNS地址,必须验证变更来源。
在命令行里快速查看当前配置和解析结果,用这几个命令足够:
bash复制# Linux环境
cat /etc/resolv.conf
nslookup example.com
# 查看本地DNS缓存(部分系统需要sudo)
sudo systemd-resolve --statistics
DNS常见记录类型也要有个印象:A记录直接指向IPv4地址,AAAA记录指向IPv6地址,CNAME做别名指向,MX记录指向邮件服务器,TXT记录通常做域名验证和SPF防伪。攻击者经常利用TXT记录做二次命令传输,因为TXT字段能放任意文本,有些恶意软件会把它当命令通道用。
4.2 HTTP请求里的信息暴露与HTTPS加密
HTTP协议的特征是明文传输,所有数据在网络中间设备上都是裸奔的。你想象一下,一封信不套信封,直接写上内容寄出去,沿途每一个中转站都能看见信的内容。安全岗位必须对这种明文风险保持敏感。
一个典型的HTTP请求会包含以下信息:
- 请求行:方法、路径、协议版本。
- Host头:告诉服务器要访问哪个域名。
- User-Agent:客户端标识,可能泄露操作系统和浏览器版本。
- Referer头:上一跳页面地址,可能暴露浏览路径。
- Cookie:身份凭证,一旦被截获,攻击者可以直接“借用”登录状态。
其中Cookie泄露是重大安全隐患。明文HTTP传输下,攻击者在同网段监听流量,就能直接看到Cookie内容。这比拿密码还省事,因为很多时候密码还有加密和验证码保护,Cookie是直接能用的“钥匙”。因此凡涉及登录、支付、个人数据的网站,必须启用HTTPS。HTTPS在HTTP和TCP之间加了一层TLS加密,把数据包内容变成密文,即使被截获,拿到手也是一堆乱码。
抓包验证HTTPS加密效果,最直观的方式是看应用层数据是否还能识别出明文协议。HTTP的抓包里能看到GET、Host、User-Agent等字样,HTTPS抓包只显示Application Data之类的一堆密文,除非你提前导入服务器的私钥做中间层解密。我自己做安全测试时,第一件事就是确认目标站点是不是强制HTTPS,有没有把敏感页面混放在HTTP下。很多站点的登录页是HTTPS,登录后的业务接口却回落到HTTP,这种一半加密一半裸奔的情况最危险。
5. 局域网安全基线:广播域里的攻防暗流
5.1 二层网络的工作机制与VLAN隔离
局域网里最常见的是二层交换网络。交换机根据MAC地址转发数据帧,但它天然有个弱点:广播报文会被转发到同一个广播域内的所有端口。ARP请求就是一种广播报文,任何一台设备问“这个IP的MAC是多少”,广播域里所有设备都能听到。
攻击者利用这个机制能做不少事情。经典的ARP欺骗就是伪造ARP响应,告诉目标主机“网关的MAC地址是攻击者的MAC”,然后所有发往网关的流量都会先经过攻击者。攻击者开个IP转发,既能正常通信,又能把数据复制一份。这就是典型的中间人攻击场景。
防御思路很明确:管控信任边界。把大广播域拆成多个VLAN,不同部门、不同业务、不同信任级别的设备放在不同VLAN里,VLAN之间通过三层设备做访问控制。这样即便一个VLAN内部发生ARP欺骗,影响范围也被限制在小子网里,不会一锅端。交换机端口安全也能起到作用:限制端口上可学习的MAC地址数量,避免攻击者随便接入设备。对安全要求高的环境,还可以启用动态ARP检测机制,由交换机验证ARP报文中的IP-MAC对应关系是否合法。
5.2 无线网络的安全配置要点
无线网络是另一个很容易出问题的入口。很多企业网管图省事,给无线设一个很简单的密码,或者干脆用老旧的加密协议,这等于把机房门敞开在空气里。
选择无线加密方式时,优先顺序是WPA3 > WPA2(企业级) > WPA2(个人级)。WPA3是当前最推荐的,个人版就能抵御大部分离线字典攻击。WPA2个人版至少要把预共享密钥设置成足够长的随机字符串,别用生日、电话号这种能被社工猜到的内容。另外,隐藏SSID并不能真正提高安全性,因为探测报文里一样能看到网络名称,最多是挡一下眼睛,真正要命的是加密强度和密钥长度。
一旦攻击者接入无线网络,就等于进入你的二层网络。如果无线和有线共用同一广播域,攻击者可以直接对办公电脑发起ARP欺骗、端口扫描甚至漏洞利用。所以无线接入网和信息敏感区之间,建议用VLAN隔离,再加一道认证或访问控制策略,别让无线设备直接触达核心资产。
提示:无线渗透和数据包嗅探是安全测试的常见项目。如果你做的是无线安全评估,记得遵守授权范围,评估对象必须是允许测试的网络,绝对不能拿公共场所网络做实验。合规比技术更重要。
6. 常见排查命令与现场实战复盘
6.1 五个高频排查命令和它们背后的原理
安全排查命令不在多在精,下面这几个我几乎每天都在用,每个都有明确的使用场景。
| 命令 | 作用 | 安全排查关注点 |
|---|---|---|
ip a |
查看网卡和IP地址配置 | 有没有多出来陌生的IP地址 |
ip route |
查看路由表 | 有没有可疑的默认路由或静态路由 |
arp -a |
查看ARP缓存表 | 网关MAC地址是否被篡改 |
ss -tunap |
查看监听端口和连接状态 | 有没有异常端口、大量半连接状态 |
tcpdump |
抓包分析流量 | 报文内容、错误标志位、异常重传 |
比如 arp -a,这条命令能直接看到本机缓存的IP和MAC对应关系。正常环境下,网关IP对应的MAC应该是路由器或交换机的真实MAC。如果突然变成了其他设备的MAC,并且全网大面积出现同样现象,基本可以确定有人在搞ARP欺骗。遇到这种情况,马上把被篡改的MAC地址在交换机上做定位,找到对应接入端口,再检查接入设备。
ss -tunap 是排查端口和连接状态的利器。平时巡检时我会重点看两个指标:一个是监听端口里有没有从没见过的端口号,另一个是连接状态里是否存在大量SYN_RECV或者ESTABLISHED异常激增。前者可能代表被植入后门,后者往往意味着正在被爆破或者发起连接洪泛。
6.2 一次现场内网“卡顿和掉线”故障复盘
讲一个之前遇到过的具体案例,这个案例能串起上面大部分知识点。
某天早上,前方反馈内网访问变得极慢,经常掉线,连打开个内部系统页面都要转好几圈。初步按“先通路后协议”的顺序排查:我先在故障区域的一台电脑上执行 ip route 和 arp -a,发现网关地址对应的MAC并不是网关设备的MAC。再对比几台机器的ARP表,发现网关MAC被指向同一串陌生的地址,判断是ARP欺骗攻击。
接着我带着笔记本接到现场交换机,跑抓包确认。抓包结果显示局域网内持续有大量的ARP应答包,源MAC都是同一个地址,这就进一步验证了我的猜测:有设备在主动伪造网关MAC,尝试把整个区域的流量都骗到自己身上。之后登录交换机,查端口转发表,定位到那台陌生MAC接入的物理端口,沿着端口找到一台接入办公网的异常设备。断开设备后,网络迅速恢复正常。
事后复盘,问题的根源是故障区域所有设备都在同一个广播域里,缺少VLAN隔离,才导致一台异常设备能影响到整个区域。这个案例告诉我们:出现网络卡顿,不要一上来就怀疑运营商或服务器,先做ARP缓存检查,五秒钟就能排除一个高频因素。我后来养成了习惯,凡是做内网安全基线核查,ARP表、路由表、监听端口三件套永远是第一步。
最后再分享一个小习惯:每次做完网络排查,把抓包文件、命令输出和处置记录整理成文档存档,不要只靠脑子记。下次遇到类似的异常,直接翻旧档对比,定位速度快得不是一点半点。网络安全这行,经验和记录都是资产,别浪费每一次踩坑的机会。
