我有一个 ec2 实例 ( proxy
),它被用作 http 代理服务器。还有一些其他主机 ( hostA
、hostB
、hostC
),我希望代理服务器只允许来自这些主机的连接。
为此,我更改了安全组并将这些主机添加为源和80
端口
Port | Source
---------+----------
80(HTTP) | hostA/32
80(HTTP) | hostB/32
80(HTTP) | hostC/32
此时除 之外再无其他主机可以访问hostA
。hostB
hostC
Proxy
但是,如果有人从其他 aws 机器创建带有假源地址的假 IP 数据包,该怎么办?接口 ( eth0
) 会接受它吗?
除了安全组设置之外,我还应该采取其他安全措施吗?
答案1
但是,如果有人从其他 aws 机器创建带有虚假源地址的虚假 IP 数据包,该怎么办?接口 (eth0) 会接受它吗?
是的,但由于他们不会收到回复数据包,因此他们将无法完成握手并建立 TCP 连接。因此他们不应该能够向代理发送任何实际数据。
即使他们能够正确猜出序列号、建立 TCP 连接并将一些数据传输到代理,他们仍然会面临两个问题:
他们将永远不会收到任何数据,因为回复不是发给他们的。
实际使用该 IP 地址的机器很快就会关闭它们的连接,因为它会使用 RST 响应“外来”数据包(假设它可以运行)。