假设我只想允许在我的专用网络上使用用户名/密码登录,但将所有外部源限制为密钥/证书登录。我会做这样的事情:
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
Match Address 10.0.0.*
PasswordAuthentication yes
但是,有没有一种方法可以让攻击者欺骗这一点,以便出现在我的本地 IP 范围内并允许从互联网进行用户名/密码登录?
答案1
IP欺骗是一种攻击者使用伪造的 IP 源地址来隐藏发送者身份或冒充另一个计算系统的技术。
然而,这种攻击几乎“不可能”通过互联网进行,因为RFC1918定义了以下仅在 LAN 环境中使用的块:
互联网号码分配机构 (IANA)
为私有互联网保留了以下三个 IP 地址空间块:10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 (172.16/12 prefix) 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
这也意味着,如果攻击者以某种方式从您的 LAN 内部伪造 IP 地址,互联网上的 ISP 不会将这些请求路由回攻击者。
由于安全层永远不够,并且如果您可以控制防火墙,或者如果这台机器直接连接到互联网接口,我建议您启用反向路径过滤Linux 内部:
# sysctl -w net.ipv4.conf.all.rp_filter = 0
# sysctl -w net.ipv4.conf.default.rp_filter = 0
这将使您的内核自动丢弃显然不属于它们试图进入的接口的同一子网的包。