运维/网安系统化学习记录(网络排查及防火墙)

发布时间:2026/7/27 23:26:21
运维/网安系统化学习记录(网络排查及防火墙) 在了解网络相关知识前我们必须要了解一下OSI七层模型以及TCP/IP协议在实际流量中的运作模式在这里我推荐一个链接这个博主讲的很详细图文兼具对于三次牵手四次握手都讲的简单易懂https://blog.csdn.net/Javachichi/article/details/1427271611.网络端口检测当我们了解过理论过后就可以直接进入实际环境中查看代码的效果了输入以下代码ss -tlnp代码用于查看本机监听端口-t 意为查看tcp端口-l 查看监听状态端口-n 不解析服务名-p 显示进程名与PID单纯看监听状态还不够我们还需要查看已连接状态的端口如果有连接不上的情况我们可以通过此代码来立即查看通过-a 查看所有状态的端口ss -tanp还可以通过管道符与grep快速锁定端口状态ss -tlnp | grep 3333知道了端口在监听我们怎么确认流量真的到达了我们通过使用tcpdump它能实时抓取网卡上的数据包让我们实时检测流量的传输sudo tcpdump -i ens33(对应网卡通过ip a查询-nn不解析域名和端口让输出更快 port 3333(对应的ssh服务端口我这边改成了3333 and host 192.168.48.130(只显示此ip流量误区为什么我抓包只看到[.]和[P.]没有[S]第一次使用时都以为tcpdump能看到完整的握手过程但往往只抓到一堆ACK包。原因很简单——你开始抓包的时候连接已经建立了。 要看到完整的[S] - [S.] - [.]三次握手必须先开始抓包tcpdump -i ens33 port 3333再发起新连接比如重新ssh -p 3333 stone192.168.48.1322.防火墙开启及规则运用当我们是使用远程服务连接机器时一旦开启防火墙就会直接把我们拦截在外头所以我们应该先设置防火墙规则然后再启动sudo ufw allow 3333/tcp # 放行你正在连接的SSH端口然后就可以在机器上开启防火墙开启防火墙并设置成开机自启sudo ufw enable #启用后默认拒绝所有入站允许所有出站 sudo ufw status #查看规则我们可以尝试封禁一个IP就用我上面ssh的kali机进行测试在我未开启防火墙以及未设置规则之前kali是可以正常连接ubuntu的当我们设置了以下规则后kali那边就已经无法连接了sudo ufw insert 1 deny from 192.168.48.130 #插入到规则的最高位有最高优先级 sudo ufw status # 查看是否为第一位规则规则之间是按照从高到低匹配的当我们没有特别设置第一位时是默认存在第二位的如果第一条规则允许了kali通过那即使第二位规则设置了封禁ip那也不会出现效果。设置好之后我们可以看到kali那边已经无法连接上ubuntu了。进阶ufw背后的iptables规则1.当我们执行ufw allow 3333/tcp时系统底层发生了什么iptables分为三个大链inputoutputforwardINPUT大门进来的流量别人访问你别人要进你家走INPUT。OUTPUT后门出去的流量你访问别人你要出门走OUTPUT。FORWARD过道/中转站路过的流量你不是终点你家开了个快递中转站包裹不进门只是从你家过道传到隔壁走FORWARD。这条规则的意思是不管来自哪里源IP任意不管从哪个网卡进来*只要你想访问本机的3333端口tcp dpt:3333我就允许你ACCEPT目前有1个这样的包41字节通过了2.当实际生产环境中ufw与iptables最核心的区别是结论ufw本身无法直接实现复杂的防暴力破解规则比如限制单位时间内的连接次数而iptables可以# 限制 SSH 连接频率每分钟最多 6 个新连接初始允许 3 个突发连接 sudo iptables -A INPUT -p tcp --dport 3333 -m state --state NEW -m limit --limit 6/minute --limit-burst 3 -j ACCEPT # 注意这条规则必须放在默认拒绝或更靠前的位置才能生效小结ufw的优势是简单易用适合快速开放或关闭端口。但当面对“限制 SSH 连接频率”这类有状态、有时间维度的精细控制需求时ufw就力不从心了。这时就需要直接操作iptables利用其强大的limit和state模块来实现。