我不知道这是否可行,但我想知道,连接到您 LAN 的人是否仅通过知道您的 LAN IP 地址就可以向您发送文件。我的意思是,无需将计算机置于特定端口的监听状态?
答案1
总结:是的,数据可以发送到计算机的非监听端口,但这是无用的。而且无法从家/办公室/厕所/其他地方完成。
这有两个方面:
您的 LAN 不是从 Internet 路由的。没有 LAN 是。如果我尝试将数据发送到随机 LAN IP 地址(例如),则
10.42.17.172
该数据将找不到其目的地,因为 Internet 路由器会直接说“嘿,我没有为此付费!”并将其放入垃圾箱。数据能够路由到 LAN IP 的唯一方式是该 IP 位于相同的LAN 作为发送方。发送到非监听端口的数据将被丢弃或明确拒绝默认情况下,如果您将数据发送到非监听端口,您的计算机会礼貌地告诉您它并不关心。其他配置可以让它对您不屑一顾(例如
iptables -P INPUT DROP
)。
造成危害的唯一方式是,如果攻击者瞄准您操作系统的已知漏洞,即其对不需要的传入 IP 数据包的处理。
编辑:正如 Sander Steffman 指出的那样,这并不适用于所有 LAN。我将实际适用于 LAN 的情况推广到 LAN私有 IP 范围。不使用这些 IP 的 LAN 将从 Internet 路由,这使得 Web 服务器能够完成其工作(它们位于数据中心的 LAN 中,但仍可通过 Internet 访问)。
家用电脑上的大多数软件(如 avast!或 Firefox)实际上不会听连接到端口(或仅允许来自同一台计算机的连接)来访问网络资源,它们将使用操作系统随机分配的端口。通过这种方式发送恶意数据对第三方来说更难,因为他们必须冒充您正在通信的资源。
监听端口等待来自任何地方的传入连接。它们由 Apache 或 SSHD 等服务器程序创建。但是,只有当它们收到的数据是它们期望的数据时,即如果我使用正确的协议,它们才会工作。如果我尝试使用 SSH 协议与 Apache 通信,我将无法获得任何有用的信息。制作精良的程序会正确拒绝错误数据。
答案2
不会,如果计算机没有监听端口,那么它只会丢弃收到的数据包。您可以发送任意数量的数据包,但目标计算机只会丢弃并忽略它们。
您使用的操作系统可能会默认启用某些软件来监听某些网络端口,但随后计算机就会处于监听特定端口的状态。只不过不是由您手动设置的,而是由操作系统供应商设置的。