Перейти к основному содержимому

Мониторинг FTP и FTPS

FTP-монитор подключается к файловому серверу, входит с указанными логином и паролем (анонимно, если вы их не задали), спрашивает у сервера, в каком каталоге оказалась сессия, и выходит. Это проверка входа, а не проверка файлов: ничего не перечисляется, не скачивается и не загружается.

Проверяйте свой FTP-сервер каждую минуту
Бесплатно и без карты: до 55 мониторов, оповещения в Telegram или на почту.
Добавить FTP-сервер

Для чего подходит

Обменный каталог, куда загружают файлы партнёры или клиенты

Обмен файлами ломается на входе, а не на порту. Истёк пароль, отключили учётную запись, пропал домашний каталог, перестал отвечать сервер авторизации — а порт всё это время открыт. Монитор выполняет тот же вход, что и ваш партнёр, поэтому вы узнаете об этом раньше, чем придёт письмо.

USERPASS530

Публичное или анонимное FTP-зеркало

Оставьте логин и пароль пустыми — монитор войдёт как anonymous с паролем anonymous@, ровно так же, как это делает анонимный клиент. Если сервер перестанет пускать анонимных пользователей, вы увидите неудачную проверку, а не обращение в поддержку.

anonymousanonymous@

Сервер за файрволом, NAT или белым списком

Проверка из региона PingZen приходит к серверу так же, как внешний клиент, поэтому правило, которое тихо перестало кого-либо пускать, становится заметным. Чтобы увидеть тот же сервер изнутри своей сети, запустите монитор с приватного чекера.

:21

Подтвердить, что сервис действительно поднялся после перезапуска

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

TCP:21FTP:21LOGIN

Для чего не подходит

Этот монитор говорит только по FTP и останавливается сразу после входа:

Что нужно узнатьЧто использовать
Работает ли мой SFTP-сервер? SFTP — это не FTP: это подсистема SSH на порту 22, совсем другой протокол. Этот монитор с ним говорить не умеет, и других мониторов для него в PingZen тоже нетМонитор TCP на порту 22 — он подтверждает, что SSH принимает соединения; это самое близкое, что есть
Пришёл ли ночной файл и того ли он размера? Проверка не делает листинг и не передаёт данные, поэтому пустой или устаревший каталог всё равно пройдётМонитор Heartbeat — пусть задача, которая пишет файл, дёргает его URL после успешной загрузки
Когда истекает сертификат на моём FTPS-сервере?Монитор TLS/SSL-сертификата, наведённый на порт со сразу-TLS, обычно 990: проверка FTPS шифрует вход, но сертификат не проверяет, а сам сертификатный монитор AUTH TLS отправлять не умеет
Открыт ли порт вообще? Учётной записи у вас нет или вы не хотите каждую минуту оставлять попытку входа в журнале сервераМонитор TCP на порту 21 — он подключается и отключается, не входя
Работает ли веб-файлменеджер или страница загрузки?Монитор HTTP / HTTPS

Что делает проверка

  1. Подключается к хосту и порту — к 21-му, если в адресе не указан другой. На порту 990 соединение шифруется с самого первого байта, ещё до чтения.
  2. Читает приветствие сервера.
  3. На любом другом порту поднимает TLS прямо в этом соединении, если проверка шифрованная: отправляет AUTH TLS, и всё дальнейшее идёт уже внутри TLS.
  4. Отправляет вход: USER, затем PASS.
  5. Отправляет одну команду, PWD, и читает каталог, в котором началась сессия. Это и есть доказательство, что сессия настоящая, а не просто открытый сокет.
  6. Отправляет QUIT и закрывает соединение.

Это вся проверка. Никакого листинга каталога, скачивания, загрузки и вообще никакого соединения для данных — а значит, пассивный режим и диапазон портов данных не проверяются.

Время отклика покрывает соединение, вход и ответ на PWD. Каталог, который назвал сервер, прикрепляется к результату проверки, но он не сохраняется в истории и нигде не показывается, так что считайте его внутренней деталью, а не возможностью.

FTP, FTPS и разница, которая важна

FTPS бывает двух видов, и они не взаимозаменяемы:

  • Явный FTPS подключается открытым текстом на порт 21, а потом повышает сессию командой AUTH TLS.
  • Неявный FTPS ждёт TLS с самого первого байта, обычно на порту 990 — так же, как HTTPS.

Поддерживаются оба, и выбор делает порт: 990 — неявный TLS, любой другой порт — явный. Настраивать нечего: монитор FTPS всегда шифрованный, а обычный FTP шифруется, когда у него включена галочка «Использовать TLS (FTPS)».

Явный вариант подходит почти всем. Именно его из коробки включают FileZilla Server, vsftpd и ProFTPD, а неявный FTPS на 990 — форма постарше, которую держат живой в основном сетевые устройства. Если не знаете, что у вас за сервер, не трогайте порт и оставьте явный вариант.

Что TLS здесь доказывает, а что нет

  • Вход зашифрован. Логин и пароль идут внутри TLS-сессии, и сервер, настроенный отвергать вход открытым текстом, эту проверку примет.
  • Сертификат не проверяется. На файловых серверах самоподписанные сертификаты — норма: NAS и FileZilla Server генерируют их при первом запуске, так что отказ от них ронял бы почти каждый реальный FTPS-сервер. Проверка отвечает на вопрос «сервис жив и пускает по логину», а доверие к сертификату — отдельный вопрос. Чтобы следить за самим сертификатом, добавьте монитор TLS/SSL-сертификата — ему нужен порт со сразу-TLS вроде 990, потому что сам он AUTH TLS отправлять не умеет.
  • Канал данных не проверяется. PBSZ и PROT не отправляются, потому что эта проверка не открывает соединение для данных. Сервер может пройти проверку и всё равно быть неверно настроенным для шифрованной передачи.

Логика статусов

Состояния деградации у FTP-монитора нет. Каждая проверка — это «работает», «не работает» или «таймаут».

РезультатСтатус
Вход принят, и сервер ответил на PWDUP
Сервер отказал во входе или в любой другой команде — в сообщении об ошибке будут его код ответа и текст, например 530 при неверном паролеDOWN
В соединении отказано — на этом порту никого нетDOWN
Имя хоста не разрезолвилось, маршрута нет или соединение разорваноDOWN
TLS-рукопожатие не удалось или сервер отказал в AUTH TLS — на этом порту он не FTPSDOWN
Соединение, вход и PWD не уложились в таймаутTIMEOUT

DOWN и TIMEOUT считаются простоем и открывают инцидент после порога подтверждения — по умолчанию это три неудачные проверки подряд, чтобы один отказ во входе во время перезапуска никого не будил.

Про неверный пароль стоит сказать отдельно. Для монитора он неотличим от аварии: сервер отвечает, отказывает во входе, проверка краснеет. Многие FTP-серверы к тому же блокируют адрес после нескольких неудачных попыток, так что монитор со старым паролем может сам себя заблокировать и потом сообщать о вполне настоящей на вид аварии. Меняете пароль этой учётной записи — поменяйте его и в мониторе.

Настройки

Адрес

Хост и, при необходимости, порт: files.example.com или files.example.com:2121. Префикс ftp:// или ftps:// принимается и отбрасывается, IPv6 пишется в квадратных скобках. Без порта проверка идёт на 21 — и для типа FTP, и для типа FTPS. Отдельного поля порта в этой форме нет: порт живёт в адресе.

Логин и пароль

Оба необязательны. Пустой логин означает anonymous, пустой пароль — anonymous@. Пароль хранится только на запись: API сообщает, задан ли он, но никогда не возвращает значение. Не пишите учётные данные в адрес в виде ftp://user:pass@host — такой адрес отклоняется, потому что URL попадает в ответы, уведомления и логи.

Использовать TLS (FTPS)

Показывается только на мониторах FTP и превращает проверку в явный FTPS — то же самое, что делает монитор FTPS. У монитора FTPS такой галочки нет, потому что он шифрованный всегда. Сертификат сервера не проверяется ни в том, ни в другом случае — см. выше.

Таймаут

По умолчанию пять секунд, и они покрывают весь обмен — соединение, приветствие, вход и PWD. Для загруженного или далёкого FTP-сервера это мало: он отвечает на каждую команду отдельным round trip. От 10 до 15 секунд здесь реалистичнее, чем для простой проверки порта.

Оба типа монитора читают одни и те же три настройки, так что монитор FTP с включённой галочкой TLS и монитор FTPS — это одна и та же проверка.

Ключевые возможности

  • Настоящий вход, а не проверка порта: соединение, USER, PASS, PWD, QUIT
  • FTPS в обоих видах: явный AUTH TLS на любом порту и неявный TLS на 990
  • Поддерживаются и анонимный вход, и вход по учётной записи; пустые поля означают анонимный
  • Пароль хранится только на запись и никогда не возвращается через API
  • Код ответа и текст самого сервера попадают в сообщение об ошибке, поэтому 530 при неверном пароле не спутать с недоступным хостом
  • Нестандартный порт прямо в адресе и проверки из любого региона или с приватного чекера
  • Обычные уведомления и инциденты с привычным подтверждением по трём неудачам