tftp传文件被服务器拒绝进入tftp: server error: (768) Access to staonline.pcap denied

环境:测试一个ac下挂ap,ap下的抓包文件传出时,出现问题:

ac的wan口ip是192.168.186.167/24,gw是192.168.186.1,下挂ap的ip是192.168.202.199/24,ac上开子接口192.168.202.1/24,ac上开nat功能。tftp服务器在pc192.168.186.118/24上,和ac的wan口在同一网段。

开始以为是ap的对应目录和文件没有读写权限,chmod 777进行修改后,问题依旧。

root@IIIoT:/# chmod 777 /tmp

root@IIIoT:/# tftp -p -l /tmp/staonline3.pcap 192.168.186.118

tftp: server error: (768) Access to /tmp/staonline3.pcap denied

root@IIIoT:/# cd /tmp

root@IIIoT:/tmp# ls -l staonline3.pcap

-rw-r--r-- 1 root root 2010 Sep 29 17:16 staonline3.pcap

root@IIIoT:/tmp# chmod 777 staonline3.pcap

root@IIIoT:/tmp# tftp -p -l /tmp/staonline3.pcap 192.168.186.118

tftp: server error: (768) Access to /tmp/staonline3.pcap denied

root@IIIoT:/tmp# tftp -p -l /tmp/staonline3.pcap 192.168.186.118

tftp: server error: (768) Access to /tmp/staonline3.pcap denied
root@IIIoT:/tmp# tftp: server error: (768) Access to /tmp/staonline3.pcap denied

问题还在,决定在tftp服务器pc上和ap上同时抓包,对比查看。tftp的usb网卡接ap同一网段的接口,ap的抓包传到usb网卡的ip上,这样不经过ac的nat功能。

root@IIIoT:~# tcpdump -any -nne -w testtftp.pcap

tcpdump: invalid data link type -nne

root@IIIoT:~# tcpdump -i any -nne -w testtftp.pcap

tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes

^C894 packets captured

896 packets received by filter

0 packets dropped by kernel

root@IIIoT:~# ls -l *pcap

-rw-r--r-- 1 root root 85651 Sep 26 18:45 staonline.pcap

-rw-r--r-- 1 root root 111110 Sep 29 20:24 testtftp.pcap

root@IIIoT:~# tftp -pl testtftp.pcap 192.168.202.202 传出ap上抓包文件

ap上抓包文件显示如下:只有客户端发出write请求消息,没有后续消息

tftp服务器上抓包显示如下:

tftp服务器发出ack,收到ac发来的destnation port unreachable的消息。

查看icmp的目标不可达消息

发现源地址ac的wan口地址,而目标地址是tftp服务器的地址,而且ttl是64,表示是ac直接发出,而不是经过转接的icmp消息。

对应ap的抓包,ack并没有收到,而且也没有icmp消息发出,据此判断ac直接回的目标端口不可达。

原因分析,ac没有端口alg功能,对tftp协议,后续消息会改变端口发来,而ac的conntrack记录表的五元组里没有对应的表项,导致ac直接回icmp端口不可达项。

测试一下,关闭ac的nat功能,发现重新测试,文件传送成功。

相关推荐
养海绵宝宝的小蜗7 分钟前
Linux 例行性工作任务(定时任务)知识点总结
linux·运维·服务器
乌萨奇也要立志学C++25 分钟前
【Linux】基础IO(二)深入理解“一切皆文件” 与缓冲区机制:从原理到简易 libc 实现
linux·运维·服务器
这周也會开心28 分钟前
通过ssh连接GitHub远程仓库
运维·ssh·github
草莓熊Lotso1 小时前
Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖(附高频案例)
linux·运维·服务器
Cx330❀1 小时前
《Linux进阶指令实操指南》:文件查看、时间管理、搜索压缩全覆盖(附高频案例)
linux·运维·服务器
喵叔哟2 小时前
63.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--预算告警
运维·微服务·.net
Akshsjsjenjd2 小时前
Docker资源限制详解
运维·docker·容器
yalipf2 小时前
忘记密码更改ubuntu18.08的密码--前提是要知道用户名work
linux·运维·ubuntu
雲帝4 小时前
1panel docker开启swap内存
运维·docker·容器
web安全工具库4 小时前
Makefile 模式规则精讲:从 %.o: %.c 到静态模式规则的终极自动化
linux·运维·c语言·开发语言·数据库·自动化