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 в исключения сетевого фильтра антивируса. Как это сделать описано в источнике.