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功能,发现重新测试,文件传送成功。

相关推荐
鳄鱼杆19 分钟前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
羚羊角uou25 分钟前
【Linux】命名管道
linux·运维·服务器
IT 小阿姨(数据库)1 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
曾经的三心草1 小时前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器
逍遥浪子~1 小时前
docker实践(一)
运维·docker·容器
AI云原生2 小时前
如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器的教程
运维·docker·云原生·容器·serverless·firefox·kubeless
今生相伴9912 小时前
ELFK:企业级日志管理的完整解决方案——从入门到精通
运维·elk·elasticsearch
码出钞能力2 小时前
更换libc.so导致linux变砖,通过LD_PRELOAD挽救
linux·服务器
小猪咪piggy3 小时前
【JavaEE】(24) Linux 基础使用和程序部署
linux·运维·服务器
IT 小阿姨(数据库)3 小时前
PgSQL中pg_stat_user_tables 和 pg_stat_user_objects参数详解
linux·运维·数据库·sql·postgresql·oracle