hostprofi.ru
Подобрать хостинг
Термин·буква F

FTP

краткое определение

Протокол передачи файлов 1971 года, используемый в хостинге для управления файлами сайта.

FTP (File Transfer Protocol) — протокол передачи файлов, разработанный в 1971 году. Позволяет загружать и скачивать файлы между клиентом и сервером. В хостинге используется для управления файлами сайта, хотя сегодня вытесняется SFTP (SSH File Transfer Protocol).

Как работает

FTP использует два TCP-соединения: управляющее (порт 21) для команд и данные-соединение для передачи файлов. В пассивном режиме (PASV) сервер открывает произвольный порт для данных, клиент подключается к нему — работает через NAT и файерволы. В активном режиме (PORT) сервер сам подключается к клиенту — часто блокируется файерволами.

FTPS (FTP Secure) добавляет TLS-шифрование к стандартному FTP. SFTP — принципиально другой протокол поверх SSH, несмотря на схожее название. На современных серверах предпочтителен SFTP: шифрование, единственный порт 22, аутентификация по ключу.

История

FTP разработан Аббаем Томлинсоном в 1971 году для ARPANET — один из старейших протоколов интернета. RFC 959 (1985) — актуальная спецификация, используемая до сих пор. В 1990-х FTP стал стандартом для веб-хостинга: каждый аккаунт получал FTP-доступ для загрузки файлов сайта. В 2000-х SFTP начал вытеснять FTP благодаря SSH-безопасности. В 2020-х большинство современных хостингов предлагают SFTP, а некоторые отказались от FTP полностью из соображений безопасности.

Настройка vsftpd на Linux

# Установка
apt install vsftpd

# /etc/vsftpd.conf
listen=YES
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

# Открыть порты в UFW
ufw allow 21/tcp
ufw allow 40000:50000/tcp

systemctl enable --now vsftpd

Популярные FTP-клиенты

  • Cyberduck — macOS/Windows, поддерживает FTP, SFTP, S3, WebDAV.
  • FileZilla — кроссплатформенный, наиболее популярный FTP-клиент.
  • WinSCP — Windows, специализируется на SFTP и SCP.
  • lftp — консольный клиент Linux с поддержкой параллельной загрузки и зеркалирования.

FTP vs SFTP

КритерийFTPSFTP
ШифрованиеНет (данные в открытом виде)SSH-шифрование
Порты21 + диапазон для данных22 (единственный)
АутентификацияЛогин/парольЛогин/пароль или SSH-ключ
ФайерволСложно (два соединения)Просто (один порт)

На что обращать внимание

FTP передаёт логин, пароль и данные в открытом виде — MITM-атака позволяет перехватить credentials. Используйте FTPS или, предпочтительно, SFTP. Если FTP необходим для совместимости (устаревшее ПО), изолируйте UFW-правилами по IP и используйте chroot для ограничения пользователя своей директорией. Пассивный режим требует открытия диапазона портов на VPS — уменьшайте диапазон до минимума.

Безопасная замена FTP

SFTP через SSH — предпочтительная замена на современных серверах. Настройка chroot для SFTP-пользователей в /etc/ssh/sshd_config:

Match Group sftp-users
    ChrootDirectory /var/www/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

Пользователи группы sftp-users видят только свою директорию /var/www/username и не имеют shell-доступа. Cyberduck, FileZilla и WinSCP поддерживают SFTP с аутентификацией по SSH-ключу — безопаснее пароля. Мониторинг SFTP-соединений: journalctl -u sshd логирует все сессии.

Другие термины