OpenBSD manual州:
出于安全原因,OpenBSD不会将IPv4流量路由到AF_INET6套接字,并且不支持IPv4映射地址,其中IPv4流量被视为来自IPv6地址,如:: ffff:10.1.1.1 . 如果需要接受IPv4和IPv6流量,请在两个插槽上进行侦听 .
但是,没有关于这些“安全原因”的解释 . 这些是什么?我想不出任何与该映射相关的安全问题 .
我不知道OpenBSD使用了什么动机,但我知道至少有一个可能是安全问题的问题,即ACL,特别是黑名单 .
请注意,您有来自10.1.1.1的传入连接 . 此地址在您的ACL中列入黑名单,因此您拒绝连接 . 但是如果你使用的是映射地址,那么它似乎来自:: ffff:10.1.1.1 . 您的黑名单可能无法捕获此信息并可能通过连接 .
这可以通过应用程序逻辑解决,因为使用单个套接字可能会简化代码,我个人认为OpenBSD 's decision is unfortunate. It'可能默认v4maped为off但允许通过 setsockopt 启用它 .
setsockopt
他们可能有更多的担忧,虽然我不知道 .
据我所知,主要原因是将IPv4和IPv6堆栈分开 . 处理一个堆栈中的数据包但由另一个堆栈处理导致安全风险的数据包是必需的 .
2 回答
我不知道OpenBSD使用了什么动机,但我知道至少有一个可能是安全问题的问题,即ACL,特别是黑名单 .
请注意,您有来自10.1.1.1的传入连接 . 此地址在您的ACL中列入黑名单,因此您拒绝连接 . 但是如果你使用的是映射地址,那么它似乎来自:: ffff:10.1.1.1 . 您的黑名单可能无法捕获此信息并可能通过连接 .
这可以通过应用程序逻辑解决,因为使用单个套接字可能会简化代码,我个人认为OpenBSD 's decision is unfortunate. It'可能默认v4maped为off但允许通过
setsockopt
启用它 .他们可能有更多的担忧,虽然我不知道 .
据我所知,主要原因是将IPv4和IPv6堆栈分开 . 处理一个堆栈中的数据包但由另一个堆栈处理导致安全风险的数据包是必需的 .