我已经设置了一些主要端口 - 20、21、22、23、53、80、443,用于传入和传出 TCP 连接。
如果我想从我的服务器内部连接到另一个 ftp 服务器,它会使用 30000-60000 范围内的随机 UDP 端口。因此我决定制定一条 iptables 规则:
iptables -A INPUT -p udp -m multiport --dports 1:65535 -j ACCEPT
一般来说,保留此规则是否安全?是否存在针对 UDP 端口的任何类型的攻击?谢谢。
答案1
FTP 仅使用 TCP。您的 ftp 服务器可能使用 UDP 来解析 IP 地址。如果您使用 conntrack 来接受相关数据包,则您不需要为任何 UPD 数据包添加额外规则(传入的 DNS 回复将被防火墙中的 --state RELATED 规则接受)。
话虽如此,被动模式下的 FTP 需要与服务器上的其他端口建立 TCP 连接。在大多数 FTP 服务器中,您可以设置用于此目的的范围。我建议使用一些随机范围的较高端口,例如 50000-56000(可能超出 sysctl net.ipv4.ip_local_port_range 中定义的本地端口范围)。某些防火墙可以监听 FTP 控制连接(端口 21)并相应地打开端口,但您应该对所有控制连接使用加密,这将破坏那些防火墙机制。
您可以通过添加 -m Owner --uid-owner 0 来收紧这些端口,以便只有 root 可以接受这些连接。
总结
不,您不需要 UDP 来进行 FTP,但是如果您不想接受端口 > 1024 上的所有传入 TCP 连接,则需要定义一系列 TCP 端口。
答案2
我几乎确信 DOS 或 DDOS 攻击是 UDP,或者至少可以是,但请检查一下。
https://www.us-cert.gov/ncas/alerts/TA14-017A
它最后一次更新是在 2016 年 4 月 13 日,所以肯定仍然适用。它只是所有不同类型的 UDP 端口和攻击类型的列表。