Image

База знаний → Настройка лимита соединений для ProFTPD сервера

ProFTPD - служба для передачи файлов по протоколу ftp. Данная служба широко применяется на Linux серверах для работы с файлами.

FTP сервера могут работать в двух режимах:

  • Активный - PORT клиент определяет порт соединения.

  • Пассивный - PASV сервер определяет порт соединения.

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

Недостатки активного режима:

  • Не работает, если клиент за NAT/фаерволом (сервер не может достучаться до клиента).

  • Для каждого файла открывается новый порт, что приводит к большому росту сессий

Преимущества пассивного режима:

  • Работает через NAT/фаервол (инициатива исходит от клиента).

  • Можно ограничить диапазон портов на сервере (PassivePorts в ProFTPD).

Для того чтобы ограничить количество соединений, необходимо внести настройки в файл конфигурации службы:

/etc/proftpd.conf
MaxInstances 30     # Максимальное количество процессов (включая служебные), которые может запустить ProFTPD.
MaxClients 20   # Максимальное количество одновременных подключений (пользователей)
MaxClientsPerHost 3     # Ограничивает число подключений с одного IP-адреса

Также можно принудительно включить пассивный режим:

/etc/proftpd.conf
Passive on
PassivePorts 50000 50100  # Ограничит диапазон портов (макс. 100 соединений)

Пассивный режим может работать не у всех, проверьте работу NAT и фаервола.

Проверьте файл конфигурации на ошибки и если он работает как служба перезапустите его, если как inetd то нужно только убедиться в отсутствии ошибок в файле конфигурации.

proftpd -t  # Проверка конфига
systemctl restart proftpd  # Перезапуск

ftp протокол имеет ряд недостатков и работает иногда с неким "лагом" в отличие от HTTP/S или SFTP (SSH File Transfer Protocol) по причине необходимости согласовывать действия и ожидать от клиента-сервера подтверждения.

При необходимости передать большое количество маленьких файлов рекомендуется делать это в архиве и потом распаковать его на самом сервере.





Нет комментариев