我正在尝试解决一些有关加密的 IT 难题:http://overthewire.org/wargames/krypton/krypton0.html。
但我在第一次练习中就失败了。我用 openssl 解码了密码(这很容易),但当我尝试使用 ssh 连接到机器时,它显示以下消息:
ssh: connect to host krypton.labs.overthewire.org port 2222: No route to host
我尝试 ping 该机器:
ping krypton.labs.overthewire.org
PING otw.cracksucht.de (176.9.9.172) 56(84) bytes of data.
64 bytes from static.172.9.9.176.clients.your-server.de (176.9.9.172): icmp_seq=1 ttl=53 time=54.5 ms
64 bytes from static.172.9.9.176.clients.your-server.de (176.9.9.172): icmp_seq=2 ttl=53 time=54.0 ms
64 bytes from static.172.9.9.176.clients.your-server.de (176.9.9.172): icmp_seq=3 ttl=53 time=54.6 ms
^C
--- otw.cracksucht.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 54.054/54.411/54.626/0.254 ms
所以它响应了。我还尝试使用机器的 IP ssh 连接到该机器:
dig krypton.labs.overthewire.org
; <<>> DiG 9.9.5-3ubuntu0.10-Ubuntu <<>> krypton.labs.overthewire.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38947
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;krypton.labs.overthewire.org. IN A
;; ANSWER SECTION:
krypton.labs.overthewire.org. 119 IN CNAME leelo.overthewire.org.
leelo.overthewire.org. 119 IN CNAME otw.cracksucht.de.
otw.cracksucht.de. 2325 IN A 176.9.9.172
;; Query time: 66 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Oct 16 19:07:19 CEST 2017
;; MSG SIZE rcvd: 124
进而
ssh [email protected] -p 2222
ssh: connect to host 176.9.9.172 port 2222: No route to host
ssh 176.9.9.172 -p 2222
ssh: connect to host 176.9.9.172 port 2222: No route to host
ssh 172.9.9.176 -p 2222
ssh: connect to host 172.9.9.176 port 2222: Connection timed out
ssh 176.9.9.172 -p 2222
ssh: connect to host 176.9.9.172 port 2222: No route to host
哪里出了问题?是练习的一部分吗(我完全不明白)?还是根本不起作用?谢谢。
答案1
您和您尝试访问的远程主机之间肯定存在防火墙问题。
您可以收到来自远程主机的 ping 响应,因为防火墙允许 ICMP 流量,但根据防火墙上的规则,TCP 流量会受到一些阻止。如果可能,请尝试联系远程主机上的不同服务,如 http、https 或 ftp 等。
您可以使用“traceroute”程序查看是否允许 UDP 流量。某些 Linux 发行版附带的 SSH 服务被默认防火墙规则丢弃。最好的方法是联系远程主机管理员/用户,以确保您的 IP 被允许。
您确定远程主机正在运行吗?SSH 服务在端口 2222 而不是 22 上?您正在使用命令中的 -p 选项在 2222 端口上连接 ssh
答案2
当机器响应 ping 时,如果出现“没有到主机的路由”,则表明防火墙拒绝您访问,但会通知您发生了这种情况(即使用 ICMP 消息而不是静默丢弃)。
检查你的出站防火墙。如果不是,那么它在靠近目的地的地方被阻止了。
答案3
我遇到过类似的情况:在使用 flannel 的 k8s 主机上,podA 可以 ping 通同一主机上的 podB,但是 tcp 连接被来自 cni0 的 ICMP 重置所重置。
iptables-save
显示有关 k8s 的规则,所有规则看起来都运行正常。
nft list ruleset
显示由firewalld 制定的规则:
table inet firewalld {
chain filter_FORWARD {
type filter hook forward priority filter + 10; policy accept;
ct state { established, related } accept
ct status dnat accept
iifname "lo" accept
ip6 daddr { ::/96, ::ffff:0.0.0.0/96, 2002::/24, 2002:a00::/24, 2002:7f00::/24, 2002:a9fe::/32, 2002:ac10::/28, 2002:c0a8::/32, 2002:e000::/19 } reject with icmpv6 addr-unreachable
jump filter_FORWARD_ZONES
ct state invalid drop
reject with icmpx admin-prohibited
}
停止firewalld服务后一切正常:
systemctl stop firewalld
因此,尝试检查其他服务或内核模块是否也可能使用netfiler。