Я знаю, что уже есть масса подобных вопросов, но я прочитал практически все, что смог найти, и все еще не могу решить свою конкретную проблему.
Проблема: У меня возникают трудности с передачей данных на внешний FTP-сервер, но только с FTP-клиента, работающего на сервере, расположенном внутри моей DMZ. Передача с FTP-клиента отлично работает с любого компьютера в моей локальной сети.
Краткий обзор моей среды:
У меня есть маршрутизатор / брандмауэр Sonicwall SOHO со следующими настроенными / подключенными интерфейсами:
Я уверен в своих политиках NAT - люди могут нормально подключаться к МОЕМУ FTP-серверу, а я могу подключаться к другим FTP-серверам изнутри моей DMZ - есть только один конкретный сервер, на котором это проблема. Раньше соединение работало нормально до того, как я обновил свой брандмауэр с Cisco SA520 до Dell Sonicwall SOHO. Я также отмечу, что, хотя я могу подключаться к другим FTP-серверам, эти серверы подключаются в пассивном режиме, поэтому это может быть проблемой с подключениями в активном режиме. В настоящее время проблемный сервер принимает активный режим только с моего IP.
Сейчас я думаю, что это проблема с брандмауэром на моей стороне, но я не могу понять почему. Мои правила брандмауэра довольно просты:
LAN > WAN Allow all
DMZ > WAN Allow all
WAN > LAN Deny all
WAN > DMZ Allow Server Services (HTTP, HTTPS, FTP (All) (TCP 20, 21, 49152 - 65535))
WAN > DMZ Deny all
У меня также есть следующие правила, установленные в моих расширенных настройках брандмауэра:
Enable FTP Transformations for TCP port(s) in Service Object: FTP (All)
(Сервисный объект «FTP (Все)» использует те же порты, перечисленные выше - TCP 20, 21, 49152 - 65535).
Я не очень уверен в том, что делает это правило, но я думаю, что это то, что разрешает пассивные подключения к моему серверу из внешних источников. Однако я не знаю, вызывает ли это проблемы, когда я пытаюсь подключиться к внешним источникам.
-
Используя монитор пакетов Sonicwall, я могу войти на сервер и выполнить команду PORT, которая возвращает успешный ответ 200 PORT. Однако после выполнения команды LIST мой сервер никогда не подтверждает сообщение SYN (кадр № 57/58), отправленное FTP-сервером. Затем FTP-сервер повторно передает SYN (кадры 64/65 и 72/73). Когда он не получает ACK в окне тайм-аута, время ожидания истекает. Вот некоторые выходные данные монитора пакетов Sonicwall во время попытки подключения:
No. Time Source Destination Protocol Length Info
53 3.750000 My DMZ IP FTP Server FTP 60 Request: LIST
54 3.750000 My WAN IP FTP Server FTP 60 Request: LIST
55 3.783334 FTP Server My WAN IP FTP 108 Response: 150 Opening BINARY mode data connection for /bin/ls.
56 3.783334 FTP Server My DMZ IP FTP 108 Response: 150 Opening BINARY mode data connection for /bin/ls.
57 3.783334 FTP Server My WAN IP TCP 62 20 → 61011 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1
58 3.783334 FTP Server My DMZ IP TCP 62 20 → 61011 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1
59 4.000000 My DMZ IP FTP Server TCP 60 61010 → 21 [ACK] Seq=88 Ack=289 Win=65280 Len=0
60 4.000000 My WAN IP FTP Server TCP 54 26752 → 21 [ACK] Seq=91 Ack=289 Win=65280 Len=0
64 6.683334 FTP Server My WAN IP TCP 62 [TCP Retransmission] 20 → 61011 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1
65 6.683334 FTP Server My DMZ IP TCP 62 [TCP Retransmission] 20 → 61011 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1
72 12.633334 FTP Server My WAN IP TCP 62 [TCP Retransmission] 20 → 61011 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1
73 12.633334 FTP Server My DMZ IP TCP 62 [TCP Retransmission] 20 → 61011 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 SACK_PERM=1
(Обратите внимание, что любые пропущенные кадры в приведенной выше последовательности связаны с другим трафиком, который я отфильтровал из этого представления).
С моей машины в локальной сети ACK отправляется обратно после команды LIST, и передача данных работает нормально.
-
Итак, хотя я уже диагностировал это, я не знаю, что делать дальше. Маршрутизатор не сообщает, что он отбрасывает какие-либо пакеты или что-либо блокирует из-за правила брандмауэра. Любые идеи относительно того, почему моя машина LAN отправляет ACK, а машина DMZ - нет?
У меня была аналогичная проблема с устройством Pitney Bowes в зоне LAN. Решил обновлением Sonicwall до прошивки 6.2.7.1-23n.