Skip to content

Filezilla ENETUNREACH или как антивирусы сканируют трафик

По запросу Filezilla ошибка ENETUNREACH поисковая система выдает, что проблема в антивирусе (Касперский) и для ее решения необходимо добавить filezilla.exe в исключения (доверенные приложения). На форуме этого FTP клиента описывается механизм как антивирус анализурует трафик приложения. Дальше будет приведен перевод:

Касперский перенаправляет весь сетевой трафик через свой процесс avp.exe по адресу 127.0.0.1 порт 1110.

Как просходит нормальное FTP подключение без сетевого сканирования:

  • Filezilla создает управляющее TCP-соединение до адреса 93.184.216.23
  • Операционная система назначает адрес источника IP пакета как адрес исходящего интерфейса допустим 10.0.0.123
  • После установления соединения для передачи команд Filezilla создает соединение для передачи данных
  • Адреса источника и получателя IP пакета используются те же, что и в управляющем соединении Т.е. у соеденения для передачи данных адрес источника будет 10.0.0.123, а получателя - 93.184.216.23.

Как происходит FTP подключение с сетевым сканированием:

  • Filezilla создает управляющее TCP-соединение до адреса 93.184.216.23
  • Касперский переписывает адрес получателя на 127.0.0.1:1110, для того чтобы пропустить через свой фильтр
  • Операционная система назначает адрес источника IP пакета как 127.0.0.1 (loopback)
  • После установления соединения для передачи команд Filezilla создает соединение для передачи данных
  • Адреса источника и получателя IP пакета используются те же, что и в управляющем соединении
  • Т.е. у соеденения для передачи данных адрес источника будет 127.0.0.1, а получателя - 93.184.216.23.
  • IP адрес истоника называется loopback, он используется для диагностики и за пределы хоста IP пакет не передается.

Таким образом подключение на удаленный хост с адресом источника 127.0.0.1 невозможно, о чем и говорит ошибка ENETUNREACH.

Почему этого не происходило раньше:

В более ранних версиях Filezilla при установлении соединяния для передачи данных клиент запрашивал адрес источника в IP пакете у системы. И благодаря особой конфигурации Касперского, система возвращала корректный адрес исходящего интерфейса.

В новых же версиях Filezilla при передаче данных статически использует адрес источника в IP пакете такой же как в соединении для передачи команд, без обращения к системе.

Почему это не баг:

Помимо заботы о безопастностии перехвата соедененеия для передачи данных (connection stealing). Приводятся в пример ситуации, когда IP адрес исходящего интерфейса поменялся после установки управляющего соединения (VPN, IPv6 Stateless Autoconfiguration). Поэтому данное поведение со стороны Filezilla менять не планируется.

Встречается данное особенность не только у Filezilla, но и других NIX утилит портированных на Windows.

Рекомендации

  • Добавить Filezilla в исключения сетевого фильтра антивируса. Как это сделать описано в источнике.

Источник 1