我在一家英国托管公司有一台裸机专用服务器。
他们有一个自动系统,该系统不断阻止我的服务器,因为他们声称我使用的是未经授权的 IP 地址。他们声称我的服务器试图绑定的 IP 地址是 109.169.37.166。我被允许使用的 IP 地址是 109.169.37.97。
如果我这样做,ip addr show
输出是:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether c8:1f:66:c4:b4:1d brd ff:ff:ff:ff:ff:ff
inet 109.169.37.97/24 brd 109.169.37.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::ca1f:66ff:fec4:b41d/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether c8:1f:66:c4:b4:1e brd ff:ff:ff:ff:ff:ff
因此此处显示该机器已绑定到正确的 IP。此外,如果我查看我的 netplan 配置文件,输出为:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses: [ 109.169.37.97/24 ]
gateway4: 109.169.37.1
nameservers:
addresses: [ 80.84.58.27, 80.84.58.28 ]
这再次显示正确。我不知所措。还有什么地方会分配错误的 IP 地址?我的 DNS 设置为指向 109.169.37.97 地址,并且有效,所以我不确定问题是什么。
答案1
您可以随时安装防火墙规则来记录(登录)并完全阻止(丢弃)错误 IP 的传出流量。使用类似下面的方法:
iptables -I OUTPUT 1 -o eth0 ! -s 109.169.37.97 -j DROP
iptables -I OUTPUT 1 -o eth0 ! -s 109.169.37.97 -j LOG --log-prefix "Suspicious"
(按此顺序,因为第二个-I ... 1
命令会将第一个命令安装的规则移到第二个位置)。您甚至可以尝试运行一些日志分析程序,该程序将对“可疑”做出反应并ip addr
立即运行以查看所声明的地址是否已分配给该机器。
即使计算机没有分配某个源地址,它也可以向网络发送带有某个源地址的数据包。例如,这正是路由器正在做的事情。代理 ARP 就是这种情况的一个特殊情况,它也会表现出这种奇怪的行为。此外,您的计算机可以将某个源 NAT 到该地址。很难意外配置所有这些,但谁知道发生了什么,原始说法很奇怪。无论如何,在所有这些情况下,数据包都不会遍历过滤器 OUTPUT 链,因此上述规则不会捕获它,但您可以设置其他触发规则;尝试将类似的规则安装到过滤器 FORWARD 中,甚至破坏 POSTROUTING。(我认为在应用所有可能的转换后,Netfilter 中没有办法捕获数据包;请参阅Netfilter 数据包流图了解详情)。
如何分析发生原因:如果问题发生得足够频繁,最好的办法是运行流量捕获并捕获声称的 IP 地址劫持事件。然后您可以分析该捕获以查看发生了什么(在声称的劫持事件发生之前直接发生的流量)。
如果不可行,例如问题每周随机出现一次,请尝试配置流量计费,例如使用flow-tools
,并进行分析。