无法在网络外部进行 Traceroute/ssh

无法在网络外部进行 Traceroute/ssh

我的服务器无法通过 ssh 连接到任何外部设备。我也无法跟踪到其中任何一台。同一网络上的机器通过 SSH 和跟踪路由工作正常。这台机器已连接到互联网,我可以正常获取和安装软件包。我也可以通过 SSH 连接到这台机器。只是由于某种原因,传出的 SSH/跟踪路由不起作用。

SSH:

Connection refused
administrator@nrj-linux-staging:~$ ssh [email protected]

跟踪路由:

traceroute to testing2.xxxxxxxxxxxxxxxxxxx.com (xxx.xxx.xxx.xxx), 30 hops max, 60 byte packets
1  * * *
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  * *

traceroute to www.google.com (74.125.227.50), 30 hops max, 60 byte packets
1  * * *
2  * * *
3  * * *
4  * * *
5  * * *
6  * * *
7  * * *
8  * * *
9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *

网络状态:

administrator@nrj-linux-staging:~$ netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:mysql         *:*                     LISTEN     
tcp        0      0 localhost:6379          *:*                     LISTEN     
tcp        0      0 10.0.0.42:http-alt      *:*                     LISTEN     
tcp        0      0 *:ftp                   *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 *:5984                  *:*                     LISTEN     



tcp6       0      0 [::]:47439              [::]:*                  LISTEN     
tcp6       0      0 [::]:tproxy             [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 [::]:51774              [::]:*                  LISTEN     
udp6       0      0 [::]:33848              [::]:*                             
udp6       0      0 [::]:mdns               [::]:*                             
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     6938     @/com/ubuntu/upstart
unix  2      [ ACC ]     SEQPACKET  LISTENING     7517     /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     7527     /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     7850     /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     10483    /var/run/acpid.socket
unix  2      [ ACC ]     STREAM     LISTENING     7889     /home/gitlab/gitlab//tmp/sockets/gitlab.socket

路由表:

administrator@nrj-linux-staging:~$ route -n   
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.225      0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

我可以 ping 通网关:

administrator@nrj-linux-staging:~$ ping 10.0.0.225
PING 10.0.0.225 (10.0.0.225) 56(84) bytes of data.
64 bytes from 10.0.0.225: icmp_req=1 ttl=255 time=0.354 ms
64 bytes from 10.0.0.225: icmp_req=2 ttl=255 time=0.310 ms
64 bytes from 10.0.0.225: icmp_req=3 ttl=255 time=0.314 ms
64 bytes from 10.0.0.225: icmp_req=4 ttl=255 time=0.325 ms
64 bytes from 10.0.0.225: icmp_req=5 ttl=255 time=0.431 ms

此盒子具有相同的接口配置。还值得注意的是,同一网络上的其他盒子显然也存在相同的问题。

DNS 指向网关。

此网络上的防火墙设置为允许安全 shell 传出、ip 传出等。我不确定还需要什么才能使其正常工作。我可以为您提供你们需要的任何其他东西。我正在通过 Windows 框使用带有 ADSM 实用程序的 cisco 防火墙。感谢您的帮助

目前的 NAT 配置如下:

我们有两个站点,我们将其称为站点 a 和站点 b。

站点 b 位于我们开发人员工作的大楼内。站点 A 是生产站点,包含防火墙。我们产品的根域名指向服务器“A”的静态全局 IP。在防火墙上,当检测到 ssh 服务上的流量传入服务器“A”的地址时,它会对其进行转换以保留原始源并将目标设置为服务器“B”,这是我需要能够将 shell 安全地返回站点“B”的 Linux 机器。还有一个 NAT 规则,它将源为服务器“b”的传出数据包转换为源为服务器“a”的数据包并保留原始目标。

再次感谢您的帮助

答案1

如果所有子网都无法出去,则可能是防火墙问题。由于您使用的是 ASDM,因此您有一个 ASA 防火墙。检查接口上的访问列表,其中包含 10.0.0.225(假设这是您的 ASA),并确保已允许 ICMP 和 SSH。请记住:ASA 规则是自动反射的,这意味着任何规则只需要在其启动的方向上设置(在您的例子中是从 10.0.0.0/24 到任何,协议 ssh 和 ICMP)。如果您想检查 ASA 是否应该转发数据包,您可以使用packet tracerASDM 中的工具。两个提示:

  1. 确保选择正确的启动界面(我总是忘记)
  2. 确保取消选中Show Animation,因为它所做的只是显示动画并让您等待更长时间。

相关内容