Як працює служба ftp
Служба FTP реалізує однойменний протокол для передачі файлів з одного вузла мережі на інший (FTP - File Transfer Protocol). Сервер FTP дозволяє за запитом клієнта FTP передавати необхідні файли на клієнтський вузол.
При запуску FTP-сервера він відкриває порт TCP 21, призначений для ініціації FTP-з'єднання і передачі керуючої інформації. При іні циации клієнтом FTP-з'єднання відбувається аутентифікація користувача, при успішному проходженні якої запускається сеанс FTP. Після цього користувач отримує можливість копіювання файлів між віддаленим і локальним комп'ютерами. Передача даних здійснюється в окремому TCP-з'єднанні по порту 20.
Таким чином, при роботі служби FTP відкриваються одразу два TCP-
r перший ініціюється клієнтським вузлом з порту джерела з номером ви- ще 1024 (зазвичай більше 30 000) і портом призначення 21 на серверної сторо- ні; це з'єднання використовується для передачі керуючої інформації;
r другий ініціюється серверним вузлом для обміну даними, іспользую- щим 20-й порт джерела на серверному вузлі і порт призначення з номером вище 1024 на клієнтському вузлі; причому клієнт попередньо інформі- рует сервер про номер відкритого для передачі даних порту.
Дана схема описує роботу активного FTP-з'єднання, що викликає труднощі при організації роботи IP-фільтра, оскільки порт призначення
для передачі даних на клієнтській машині заздалегідь невідомий. Для обходу описаної проблеми використовується пасивний режим FTP. В цьому випадку з- єднання для передачі даних ініціюється на серверах з порту 20 TCP, а клієнтом з порту за 1024 на порт сервера з номером вище 1023. Номер порту на сервері для передачі даних заздалегідь повідомляється клієнту.
В даний час в GNU / Linux використовується безліч різних про- грам, що реалізують FTP-сервери. Серед них: BSD ftpd, wuftpd, proftpd і vsftpd. Більшість з них може працювати як в самостійному режимі (stand-alone), так і за допомогою супердемона. Є також безліч реа- лізації FTP-клієнтів. Найбільш популярні: ftp, lftp, nftp і wget.
З історичних причин протокол FTP розрізняє два режими передачі файлів: текстовий (ascii) і бінарний (binary). Передача бінарного файлу в текстовому режимі призведе до спотворення переданої інформації.