Назад | Перейти на главную страницу

sshd не отвечает на запрос соединения с переадресацией порта

Я настраиваю переадресацию портов на маршрутизаторе SonicWall NSA 220 для порта 22. Похоже, что маршрутизатор пересылает TCP-пакеты должным образом. Однако Wireshark, запущенный на сервере, показывает, что sshd моего сервера игнорирует эти запросы ssh-соединения и не отвечает: он даже не пытается отправить какие-либо пакеты обратно.

Я могу ssh напрямую на сервер через тот же интерфейс Ethernet (из другой системы в локальной сети) просто отлично. Не получают ответа только переадресованные пакеты со стороны 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

Вот результат tcpdump, когда я использую ssh из локальной сети, и это успешно:

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         

Наконец-то я заработал. Я забыл, что у моего сервера два сетевых интерфейса, и оба были подключены: один к локальной сети маршрутизатора, а другой к сети WAN.

Для пояснения: WAN маршрутизатора - 192.168.8. *. LAN маршрутизатора - 192.168.1. *. Сервер - 192.168.8.32, клиент - 192.168.1.33.

Когда я отключил сервер от WAN сети роутера, внезапно все заработало. Я думаю, что RHEL на сервере, должно быть, был сбит с толку двумя маршрутами к клиенту 192.168.1.33.