TCP/UDP 源端口低于 1024 的 IP 数据包是否可能
Are TCP/UDP IP packets with a source port below 1024 possible
我正在分析一些针对 DNS 服务器 运行 未绑定的事件。在此调查过程中,我 运行 调查涉及查询 到 的 dns 服务器的流量,这些服务器被报告为在某些情况下具有 1 到 1024 之间的源端口。至于据我所知,这些是为服务保留的,因此永远不应该有从这些到服务器的流量发起/发起。
因为我也知道这是随着时间的推移而演变的一种做法,而不是法律,所以我知道在数据包的源端口字段中放置任何数字没有技术限制。所以我的结论是,这些查询是由一些工具生成的,其中源端口填充了一个随机值(频率大约均匀分布在 0-65535 之间,除了 32768 左右的峰值)并且这是一次蓄意攻击.
有人可以 confirm/deny 源端口理论来证明我的结论,或者说我是个白痴并解释原因吗?
提前致谢。
编辑 1:添加更准确的信息以解决以下由于我的不完整报告而引起的一些争议。
肯定不是端口扫描。它是到达端口 53 UDP 的流量,未绑定显然接受它作为(几乎)有效的 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 的流量?
As far as my knowledge goes these are reserved for services so there should never be traffic originating / initiated from those to a server.
源端口号是什么并不重要,只要它在 1 到 65,535 之间即可。不像是源端口53就代表有DNS服务器在源机器上监听。
源端口在那里允许多个连接/传输中的数据报从一台机器到同一目标端口上的另一台机器。
The Internet Assigned Numbers Authority (IANA) suggests the range 49152 to 65535 [...] for dynamic or private ports.[1]
我正在分析一些针对 DNS 服务器 运行 未绑定的事件。在此调查过程中,我 运行 调查涉及查询 到 的 dns 服务器的流量,这些服务器被报告为在某些情况下具有 1 到 1024 之间的源端口。至于据我所知,这些是为服务保留的,因此永远不应该有从这些到服务器的流量发起/发起。
因为我也知道这是随着时间的推移而演变的一种做法,而不是法律,所以我知道在数据包的源端口字段中放置任何数字没有技术限制。所以我的结论是,这些查询是由一些工具生成的,其中源端口填充了一个随机值(频率大约均匀分布在 0-65535 之间,除了 32768 左右的峰值)并且这是一次蓄意攻击.
有人可以 confirm/deny 源端口理论来证明我的结论,或者说我是个白痴并解释原因吗?
提前致谢。
编辑 1:添加更准确的信息以解决以下由于我的不完整报告而引起的一些争议。
肯定不是端口扫描。它是到达端口 53 UDP 的流量,未绑定显然接受它作为(几乎)有效的 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 的流量?
As far as my knowledge goes these are reserved for services so there should never be traffic originating / initiated from those to a server.
源端口号是什么并不重要,只要它在 1 到 65,535 之间即可。不像是源端口53就代表有DNS服务器在源机器上监听。
源端口在那里允许多个连接/传输中的数据报从一台机器到同一目标端口上的另一台机器。
The Internet Assigned Numbers Authority (IANA) suggests the range 49152 to 65535 [...] for dynamic or private ports.[1]