sshd 不响应端口转发的连接请求

sshd 不响应端口转发的连接请求

我正在 SonicWall NSA 220 路由器上为端口 22 设置端口转发。路由器似乎正在按要求转发 TCP 数据包。但是,服务器上运行的 Wireshark 显示我的服务器的 sshd 忽略了这些 ssh 连接请求并且没有响应:它甚至没有尝试发回任何数据包。

我可以通过同一个以太网接口(从 LAN 上的另一个系统)直接 ssh 到服务器,一切顺利。只有从 WAN 端转发的数据包没有收到任何响应。

因此看起来罪魁祸首可能是 sshd:由于某种原因,它忽略了转发的数据包。

服务器正在运行 RHEL 6。防火墙已禁用。

知道为什么 sshd 会忽略转发的连接请求吗?还是路由器出了问题?

以下是 tcpdump 的输出(我这里使用的是端口 30002,但它与端口 22 相同)。服务器的 IP 地址是 192.168.8.33。

08:52:12.350492 IP 192.168.1.32.52205 > 192.168.8.33.30002: Flags [S], seq 2460054041, win 14600, options [mss 1460,sackOK,TS val 453857378 ecr 0,nop,wscale 6], length 0
08:52:13.347513 IP 192.168.1.32.52205 > 192.168.8.33.30002: Flags [S], seq 2460054041, win 14600, options [mss 1460,sackOK,TS val 453857628 ecr 0,nop,wscale 6], length 0
08:52:15.351529 IP 192.168.1.32.52205 > 192.168.8.33.30002: Flags [S], seq 2460054041, win 14600, options [mss 1460,sackOK,TS val 453858129 ecr 0,nop,wscale 6], length 0
08:52:19.363565 IP 192.168.1.32.52205 > 192.168.8.33.30002: Flags [S], seq 2460054041, win 14600, options [mss 1460,sackOK,TS val 453859132 ecr 0,nop,wscale 6], length 0

下面是我从 LAN 进行 ssh 时的 tcpdump 输出,成功了:

08:50:41.844945 IP 192.168.8.253.55442 > 192.168.8.33.30002: Flags [S], seq 2514711830, win 14600, options [mss 1460,sackOK,TS val 4294948065 ecr 0,nop,wscale 6], length 0
08:50:41.844983 IP 192.168.8.33.30002 > 192.168.8.253.55442: Flags [S.], seq 2291827547, ack 2514711831, win 14480, options [mss 1460,sackOK,TS val 6807100 ecr 4294948065,nop,wscale 7], length 0
08:50:41.845290 IP 192.168.8.253.55442 > 192.168.8.33.30002: Flags [.], ack 1, win 229, options [nop,nop,TS val 4294948065 ecr 6807100], length 0
etc....

以下是服务器上的 sshd_config:

sudo grep ^[^'#'] /etc/ssh/sshd_config
Port 22
Port 30002
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
Subsystem   sftp    /usr/libexec/openssh/sftp-server

这是 iptables:

sudo iptables -L -n -v
Chain INPUT (policy ACCEPT 5350 packets, 314K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2121 packets, 14M bytes)
 pkts bytes target     prot opt in     out     source               destination         

答案1

我终于让它工作了。我忘了我的服务器有两个网络接口,并且都已连接:一个连接到路由器的 LAN 网络,一个连接到 WAN 网络。

解释一下:路由器的WAN是192.168.8.*。路由器的LAN是192.168.1.*。服务器是192.168.8.32,客户端是192.168.1.33。

当我将服务器与路由器的 WAN 网络断开连接时,突然一切正常。我认为服务器上的 RHEL 一定对到客户端 192.168.1.33 的两条路由感到困惑。

相关内容