TCP/UDP源端口号低于1024的IP数据包是否可能?

5
我正在分析一些针对运行unbound的dns服务器的事件。在调查过程中,我遇到了涉及查询 dns 服务器的流量,有时源端口在1到1024之间报告。据我所知,这些端口是保留给服务使用的,因此不应该从这些端口发起/启动到服务器的流量。
由于我也知道这是一个随着时间演变而形成的实践,而不是一项法律,所以我知道在数据包的源端口字段中放置任何数字都没有技术限制。因此,我的结论是这些查询是由某个工具生成的,其中源端口填充了随机值(频率大约平均分布在0-65535之间,除了32768附近的峰值),这是一种故意的攻击。
能否有人确认/否认源端口理论、证实我的结论或者说我是个彻头彻尾的白痴,并解释原因呢?
提前致谢。
编辑1:添加更精确的信息以解决下面由于我的不完整报告而引起的争议。
这绝对不是端口扫描。它是通过端口53 UDP到达的流量,并且unbound显然接受了它作为(几乎)有效的dns查询,同时为每个数据包生成以下错误消息:
notice: remote address is <ipaddress> port <sourceport>
notice: sendmsg failed: Invalid argument

$ cat raw_daemonlog.txt | egrep -c 'notice: remote address is' 
256497
$ cat raw_daemonlog.txt | egrep 'notice: remote address is' | awk '{printf("%s\n",$NF)}' | sort -n | uniq -c > sourceportswithfrequency.txt
$ cat sourceportswithfrequency.txt | wc -l
56438

共有256497条消息,使用了56438个唯一的源端口。

$ cat sourceportswithfrequency.txt | head 
   5 4
   3 5
   5 6

所以最低的源端口是4,它被使用了5次。
$ cat sourceportswithfrequency.txt | tail
  8 65524
  2 65525
 14 65526
  1 65527
  2 65528
  4 65529
  3 65530
  3 65531
  3 65532
  4 65534

因此,最高使用的源端口是65534,并且已使用4次。

$ cat sourceportswithfrequency.txt | sort -n | tail -n 25
  55 32786
  58 35850
  60 32781
  61 32785
  66 32788
  68 32793
  71 32784
  73 32783
  88 32780
  90 32791
  91 32778
 116 2050
 123 32779
 125 37637
 129 7077
 138 32774
 160 32777
 160 57349
 162 32776
 169 32775
 349 32772
 361 32773
 465 32769
 798 32771
1833 32768

所以32768左右的峰值是真实存在的。

我的原始问题仍然存在:这种流量模式是否暗示着攻击,或者是否有一个逻辑上的解释,例如源端口小于1024的流量?


是的,只要(a)客户端有使用1-1023端口的特权,(b)低于1024的空闲端口存在,并且(c)客户端可以神奇地识别并(d)显式地绑定到这样的端口。但这种情况不太可能发生。你所说的“32768左右”的端口是虚构的。 - user207421
2个回答

5
据我所知,这些端口被保留用于服务,因此从这些端口发起/启动的流量不应该到达服务器。
源端口号无论是多少,只要在1到65,535之间即可。并不像53端口号意味着源机器上有DNS服务器在监听。
源端口只是为了允许来自同一目标端口的另一台机器的多个连接/正在传输的数据报。
参见Wiki: 短暂端口
IANA建议使用范围为49152至65535的动态或私有端口[1]。

1

65535,即1..65535。端口0不是有效的端口号。维基百科又错了。 - user207421
你的引用不是规范参考。你可以在TCP或IP数据包中发送任何垃圾,但这并不意味着它是合法的。它听起来一点也不像端口扫描。 - user207421
“频率大致均匀分布在0-65535之间,除了在32768周围有一个峰值。” - greg-tumolo
我看到了。楼主没有提供任何证据支持那个说法。零部分和聚类都没有任何合理的基础。 - user207421
维基百科不是可靠的来源,更不是规范参考。TCP/IP的规范参考是RFC文档。任何与维基百科或其他内容不一致的说法都是错误的定义。关于端口零的评论支持我的观点,而不是你的观点。 - user207421
2
应用程序和UDP之间的通信路径是通过UDP端口进行的。这些端口是按编号排列的,从零开始。 (RFC 1180 6.1 端口) - greg-tumolo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接