FTP
FTP — протокол, предназначенный для транспортировки файлов. Год создания: 1971 год. Протокол применяется в основном в клиент-серверной архитектуре. Стоит отметить, что данный протокол, на ряду с HTTP, SMTP, DNS применяется для реализации прикладных задач.
Принцип работы
URL — механизм, используемый для файловой адресации в протоколе. Например, вам необходимо скачать какой-либо файл с сервера. Вы нашли URL, который содержит 3 части (1 часть — идентификатор FTP, 2 часть — имя сервера через DNS, 3 часть — точный путь для файла в системе).
FTP задействует несколько соединений. 21 порт эксплуатируется для управления, а 20 порт отвечает за активную передачу данных.
При активном соединении FTP, сервер является основным инициатором. Со стороны сервера используется порт 20, со стороны клиента — порты, начиная с 1024. Если сервер пассивный в данном соединении, то клиент выполняет роль инициатора. Тогда, для сервера доступны порты, начиная с 1024.
Подключение состоялось. Теперь клиент может совершать взаимодействия с файлами, осуществлять серфинг по рабочим директориям и тд.
Аутентификация
FTP для использования предусматривает механизм аутентификации. Аутентификация происходит на основе ввода учетных данных (логина-пароля). Но есть и другой вариант. На FTP серверах возможна опция “анонимный пользователь”. При анонимной аутентификации вы ограничены в правах доступа.
FTP в наше время
Протокол удобен и прост в использовании. Однако, в современных реалиях, использование FTP — рискованное решение, потому что протокол обладает низким уровнем безопасности. Учетные данные во время соединения не шифруются. Преимущественно, корпоративные структуры делают выбор в сторону более конфиденциального SSH (альтернативы — SFTP/SCP).
Хорошим решением будет использование FTP внутри доверенной локальной среды, где не содержатся критически важные данные. Например, для организации передачи данных с компьютера на телевизор (общий файловый сервер). Чтобы создать сервер FTP, вам необходимо настроить персональный компьютер. В Windows/MacOS есть возможность выбрать роль-конфигурацию для FTP-сервера.
Для Linux, используйте пакет vsFTPd.