Как настроить роутер, чтобы он не качал вирусы по FTP: практическое руководство

Скачивание файлов по протоколу FTP (File Transfer Protocol) — это классика, которая до сих пор жива во многих корпоративных сетях, у провайдеров и на старых серверах. Но именно FTP часто становится «слабым звеном», через которое в сеть проникают зараженные архивы, скрипты-лоадеры или вредоносное ПО. Проблема в том, что сам по себе FTP не умеет сканировать файлы на вирусы — он просто пересылает их. Если вы не настроите фильтрацию на уровне роутера, то вредоносный файл попадет к вам так же легко, как и чистый.

Многие администраторы полагаются только на антивирус на компьютере, но это ошибка. Лучше отсечь угрозу еще на входе, не давая ей даже загрузиться на устройство. В этой статье я расскажу, как реально, без лишней воды и сложных теорий, настроить правила на вашем роутере, чтобы блокировать загрузку подозрительных или опасных типов файлов по FTP. Мы разберем, какие именно расширения блокировать, как настроить Deep Packet Inspection (DPI) и что делать, если у вас нет дорогого оборудования.

Почему обычного антивируса на ПК недостаточно?

Представьте ситуацию: вы скачиваете файл по FTP. Пока он идет через интернет, он не видит антивирус на вашем ноутбуке. Он проходит через провайдера, через ваш роутер и уже потом попадает на жесткий диск. Стандартный антивирус просканирует его, только когда вы начнете им пользоваться или когда сработает фоновая проверка. К этому моменту файл уже «в домике».

Если же настроить роутер, он начнет проверять трафик на лету. Если вы скачиваете архив с расширением `.exe` или `.bat`, а вам нужно только документация (`.txt` или `.pdf`), роутер просто разорвет соединение. Это экономит трафик, время и, главное, нервы. Особенно актуально это для сетей, где подключены IoT-устройства (умные камеры, датчики), которые часто не имеют встроенной защиты от вирусов.

Кроме того, FTP — протокол старый. Он работает в двух режимах: активном и пассивном. В неграмотной настройке это может открыть дыру в безопасности, через которую злоумышленник может не только скачать файл, но и запустить команду на вашем сервере. Правильные правила на роутере закрывают эти дыры, разрешая только тот трафик, который вы действительно ожидаете.

Подготовка: что именно мы будем блокировать

Прежде чем лезть в настройки, нужно понять, от чего защищаемся. FTP сам по себе безопасен, если через него передаются только нужные данные. Опасность несут конкретные типы файлов. Ваша задача — составить «черный список» расширений, которые никогда не должны загружаться по FTP в вашу сеть.

Вот список наиболее критичных типов файлов, которые стоит блокировать в первую очередь. Если вы видите загрузку чего-то из этого списка, скорее всего, это атака или ошибка конфигурации:

  • .exe, .msi, .bat, .cmd — исполняемые файлы и скрипты командной строки. Самые опасные.
  • .vbs, .js, .wsf — скрипты на Visual Basic и JavaScript. Часто используются для скрытой установки вредоносов.
  • .scr — экранная заставка, которая на самом деле является исполняемым файлом. Классический способ доставки вирусов.
  • .pif — файл с инструкциями для программ, другой популярный вектор атак.
  • .dll — динамические библиотеки. Если их подменить, программы могут начать вести себя некорректно.
  • .hta — HTML-приложения, которые часто используют для фишинга.

Если вы работаете с графическим дизайном или разработкой, возможно, вам понадобятся файлы кода (`.php`, `.pl`) или образы дисков (`.iso`, `.img`). Блокировать их стоит только если вы уверены, что они вам не нужны. В корпоративной среде, где FTP используется только для обмена отчетами, можно смело блокировать всё, кроме `.pdf`, `.doc`, `.xls`. В среде разработчиков подход будет мягче.

Сценарий 1: У вас проприетарный роутер (TP-Link, Asus, MikroTik)

Это самый распространенный вариант. Большинство домашних и офисных роутеров имеют встроенный фаервол, но не все умеют фильтровать трафик по содержимому (Application Layer Filtering). Давайте разберем, как это делается на практике.

Шаг 1: Включение инспекции трафика (DPI)

На многих роутерах эту функцию называют «Content Filtering», «App Filter» или «Firewall». Например, на MikroTik это делается через раздел Firewall -> Filter Rules с использованием опции content или через отдельный модуль Layer7 Protocol. На роутерах Asus или TP-Link это часто находится в разделе «Родительский контроль» или «Безопасность сети» (AiProtection/Trend Micro).

Важно: включение глубокой проверки пакетов (DPI) нагружает процессор роутера. Если у вас гигабитный канал и дешевый роутер, скорость интернета может упасть. Если это происходит, придется искать баланс: либо обновлять железо, либо фильтровать только самые опасные расширения.

Шаг 2: Создание правила блокировки

Вам нужно создать правило, которое сработает на исходящий запрос или входящий ответ. Для блокировки загрузки (протокол FTP Data Channel) нам нужно следить за трафиком, идущим от сервера к вам (INBOUND).

Действуйте по такому алгоритму:

  1. Зайдите в веб-интерфейс роутера (обычно 192.168.1.1 или 192.168.0.1).
  2. Найдите раздел «Безопасность» или «Фаервол».
  3. Создайте новое правило фильтрации.
  4. Укажите направление: Входящий (Inbound) / WAN -> LAN.
  5. В поле «Протокол» выберите FTP (TCP) или TCP порты 20, 21 (и диапазон портов для пассивного режима, обычно 1024-65535, если роутер не умеет автоматически открывать их).
  6. В поле «Содержимое» или «Контент» введите маски поиска. Например: .exe, .bat, \.exe$ (если поддерживается регулярное выражение).
  7. Действие: Блокировать (Deny/Drop).

На MikroTik, например, это может выглядеть как добавление правила в цепочку forward с параметром layer7-protocol, где вы описываете регулярное выражение, ищущее имя файла с опасным расширением в потоке данных. Это требует了一定的 навыков работы с терминалом, но результат того стоит.

Шаг 3: Тестирование

Не надейтесь на удачу. Сразу после настройки попробуйте скачать с безопасного FTP-сервера тестовый файл с расширением `.exe` (можно создать пустой текстовый файл, переименовать его в .exe и попробовать загрузить). Если соединение разрывается или файл не загружается — вы молодец, система работает.

Сценарий 2: Открытые системы (OpenWrt, pfSense, OPNsense)

Если у вас стоит Linux-роутер или профессиональное решение, вы получаете максимальный контроль. Здесь мы не полагаемся на «черный ящик» производителя, а пишем правила сами. Это дает возможность использовать мощные инструменты, такие как Squid (прокси-кэширующий сервер) или iptables с модулем string.

Самый надежный способ на OpenWrt — это не просто блокировка портов, а использование iptables с модулем поиска строк. Команда будет выглядеть примерно так:

iptables -A FORWARD -p tcp --dport 21 -m string --string "214 File" --algo bm -j DROP

Но это примитивно. Для реальной защиты лучше связать iptables с утилитой tcpdump или использовать специализированный фаервол, который умеет анализировать FTP-пакеты. В OpenWrt это часто делается через пакет iptables-mod-string.

Важный нюанс для FTP: FTP — это «капризный» протокол. Он использует два канала: управляющий (команды, порт 21) и канал данных (сами файлы). В активном режиме сервер сам подключается к вам. В пассивном — клиент подключается к серверу на случайный порт. Если вы заблокируете просто порт 21, вы ничего не добьетесь, так как файлы идут по другим портам. Поэтому в правилах роутера обязательно должна быть включена поддержка Connection Tracking (отслеживание соединений) для FTP. Это позволяет роутеру «понимать», какой порт открыт для передачи данных, и проверять именно его.

Таблица: Сравнение методов блокировки

Чтобы вы поняли, какой метод выбрать под вашу задачу, я составил таблицу. Она поможет сориентироваться в возможностях вашего «железа».

Метод Где применяется Сложность настройки Эффективность Влияние на скорость
Блокировка по портам (21, 20) Домашние простые роутеры Низкая (5 минут) Низкая (блокирует весь FTP, а не только вирусы) Нет
Фильтрация по содержимому (Layer7/Content Filter) Современные роутеры (Asus, TP-Link, MikroTik) Средняя (нужно знать расширения) Высокая (блокирует конкретные файлы) Среднее (зависит от CPU)
Прокси-сервер (Squid + ClamAV) OpenWrt, pfSense, сервер на Raspberry Pi Высокая (требует настройки Linux) Максимальная (антивирус сканирует каждый байт) Значительное (проверка занимает время)
Сторонний сервис (DNS-фильтрация) Все устройства Очень низкая Средняя (блокирует доступ к известным вредоносным FTP-хостам) Нет

Как видите, простейшая блокировка портов убьет весь FTP-трафик, что может быть неудобно, если вы копируете файлы с сервера. Метод с фильтрацией по содержимому — идеальный баланс для большинства. А прокси-сервер — это «тяжелая артиллерия» для тех, кто готов повозиться ради 100% защиты.

Частые ошибки при настройке

В процессе работы я видел много ситуаций, когда люди настраивали защиту, но она либо не работала, либо мешала жить. Вот основные ошибки, которых стоит избегать:

1. Игнорирование пассивного режима (PASV)

Современные FTP-клиенты по умолчанию используют пассивный режим. Это значит, что соединение с сервером устанавливается на случайный порт (например, 45000). Если вы настроили правило блокировки только на порт 21 (управляющий), файлы будут проходить мимо ваших фильтров.
Решение: Убедитесь, что в настройках фаервола включен модуль ip_conntrack_ftp (или аналогичный). Он автоматически отслеживает FTP-соединения и открывает необходимые порты для прохода только проверенного трафика.

2. Блокировка по имени файла, а не по расширению

Злоумышленники часто меняют имена файлов. Файл может называться super_safe_report.txt, но внутри это будет исполняемый код. Если вы блокируете только по имени, вас обманут.
Решение: Фильтруйте по заголовку файла или по расширению, которое находится в конце имени. Регулярное выражение должно искать точку в конце строки, например \.exe, чтобы не заблокировать файл с именем myexe_document.pdf (где есть «exe», но это не расширение).

3. Отсутствие проверки зашифрованного трафика

Вы можете подумать, что настроили всё идеально, но вдруг окажется, что FTP-сервер использует шифрование (FTPS). В этом случае роутер не увидит содержимое пакета, так как оно зашифровано. Он увидит только зашифрованный поток.
Решение: Если вы работаете с FTPS, фильтрация на роутере бессильна. Вам придется либо доверять серверу, либо переносить проверку на клиентское устройство (антивирус), либо использовать прокси с функцией SSL Inspection (что сложно и требует сертификатов). Для большинства простых задач это сигнал: либо не использовать FTPS, либо надеяться на антивирус на ПК.

4. Ложные срабатывания

Вы заблокировали `.js` (JavaScript), потому что боялись вирусов. А потом перестали работать сайты или скрипты на вашей же корпоративной Intranet-странице, которая открывается через FTP.
Решение: Всегда проверяйте контекст. Если FTP используется только для передачи документов, блокируйте всё. Если это сервер веб-разработки, где нужно обновлять код, блокировку нужно делать точечно, исключая нужные расширения из «черного списка».

Что лучше выбрать в зависимости от вашей ситуации?

Давайте разберем сценарии. Подумайте, какая из описанных ситуаций подходит вам больше всего.

Сценарий А: Домашняя сеть, просто качаю музыку или документы.
Вам не нужно усложнять. Включите «Родительский контроль» в настройках роутера (если он есть) и добавьте туда блокировку `.exe`, `.bat`, `.scr` для всех устройств. Этого достаточно, чтобы случайный файл с торрент-трекера или FTP-архива не запустился на вашем ПК.

Сценарий Б: Офисная сеть, бухгалтерия часто пересылает отчеты.
Здесь риски выше. Блокируйте всё, кроме офисных форматов. Добавьте правило на роутере: разрешать прохождение трафика только с расширением `.pdf`, `.doc`, `.xls`, `.zip` (но с осторожностью, внутри архивов могут быть вирусы). Лучшее решение — поставить отдельный шлюз или NAS с антивирусом, через который пройдет весь FTP-трафик офиса.

Сценарий В: Администрируете сервер для клиентов.
Если вы предоставляете FTP-доступ клиентам, ваша задача — не дать им загрузить вирусы на ваш сервер. Тут правила меняются с «Incoming» (Входящий) на «Outgoing» (Исходящий) или «Forward» (Передача). Вы должны настроить правило, которое блокирует загрузку файлов с расширением `.exe`, `.pif`, `.com` на ваш сервер. Используйте модуль mod_security на веб-сервере или аналогичные правила в фаерволе роутера, который стоит перед сервером.

Дополнительные рекомендации по безопасности

Одной блокировки файлов мало. FTP — устаревшая технология, и в ней есть дыры на уровне протокола. Вот что стоит сделать дополнительно:

  • Используйте SFTP или FTPS вместо обычного FTP. Да, это звучит как усложнение, но обычный FTP передает пароли и данные в открытом виде. Любой, кто сидит в той же Wi-Fi сети (или перехватит трафик у провайдера), сможет прочитать ваши данные. SFTP (через SSH) шифрует всё, что решает проблему перехвата.
  • Запретите анонимный вход. В настройках FTP-сервера обязательно отключите доступ для пользователя `anonymous`. Если это возможно, требуйте уникальные учетные записи для каждого сотрудника.
  • Ограничьте права доступа. Если вы администратор, не давайте пользователям права на запись (`WRITE`), если им нужно только скачивать (`READ`). Блокировка загрузки файлов на сервер (Upload) — это тоже эффективная мера защиты от вирусов.
  • Обновляйте прошивку роутера. Производители выпускают обновления безопасности, которые закрывают уязвимости в обработке FTP-пакетов. Старая прошивка может некорректно работать с фильтрацией.

Как проверить, что всё работает?

После того как вы настроили правила, проведите «красную проверку». Это тестирование на проникновение в безопасном режиме.

1. Создайте на своем компьютере файл с текстом «Тест» и переименуйте его в test_virus.exe.

2. Попробуйте загрузить его на ваш FTP-сервер (если тестируете защиту сервера) или скачать с FTP-сервера (если тестируете защиту сети).

3. Если соединение обрывается, или на экране появляется сообщение «Доступ запрещен» / «File blocked» — вы всё сделали правильно.

4. Если файл успешно загрузился — перепроверьте правило. Возможно, вы забыли применить его к нужному интерфейсу или заблокировали не то расширение.

Также можно использовать утилиту telnet или специализированный FTP-клиент в режиме отладки (Debug mode), чтобы увидеть, какие команды отправляются и какие ответы приходят. Если вы видите ошибку 550 (Permission denied) или 421 (Service not available) после попытки загрузки вредоносного файла — система работает.

Итог: что делать прямо сейчас

Защита от вирусов при загрузке по FTP — это не магия, а набор конкретных технических действий. Не пытайтесь сделать всё и сразу, если у вас нет опыта. Начните с малого.

Сначала зайдите в настройки своего роутера и найдите раздел «Безопасность» или «Фильтр трафика». Если там есть возможность добавить список запрещенных расширений — добавьте туда `.exe`, `.bat`, `.vbs`, `.scr`. Это закроет 90% простых угроз. Если такого функционала нет, рассмотрите возможность настройки фильтрации на уровне DNS или подключите сетевой антивирус, который будет работать как шлюз.

Помните, что идеальной защиты не существует, но грамотная настройка роутера значительно усложнит жизнь злоумышленникам и сэкономит вам время на ликвидацию последствий. Не игнорируйте этот шаг, особенно если в вашей сети работают устройства, которые нельзя обновить или защитить антивирусом. Ваш роутер — это первый барьер, и он должен быть вооружен.

Информация в статье носит ознакомительный характер. Настройка сетевых устройств может повлиять на работоспособность сети. Перед внесением изменений в конфигурацию роутера рекомендуется создать резервную копию настроек. В случае сомнений обратитесь к специалисту по сетевой безопасности.

Оцените статью
PEFile — Безопасность и технологии простым языком