Протокол FTP
Протокол FTP (File Transfer Protocol)– один із перших в Інтернет. Це протокол прикладного рівня моделі OSI, заснований на надійній передачі даних (протоколі TCP, порти 21, 20).
Робота з FTP-ресурсами схожа з роботою в локальній файловій системі. Існує безліч спеціалізованих клієнтів для роботи з протоколом FTP. Проте практично всі сучасні браузери здатні обробляти інформацію з FTP-ресурсів.
FTP-серверів значно менше ніж клієнтів, але теж досить багато, аби можна було в них заплутатися. Ми з Вами будемо налаштовувати FTP-сервер vsftpd (Very Secure FTP Daemon – дуже надійний FTP-демон ), який входить в постачання ASPLinux.
Протокол FTP є протоколом з аутентифікацією по імені користувача. Проте для протоколу FTP існує і так званий анонімний режим. В разі його використання (браузери використовують цей режим за умовчанням) замість імені вводиться anonymous, а замість пароля – адреса електронної пошти (браузер використовує або справжню адресу з адресної книги, або випадково підібрану).
Іншою особливістю протоколу є використання різних режимів – пасивного і активного. У пасивному режимі клієнт відкриває з'єднання для передачі даних і управляє потоком, а сервер пасивно віддає дані. Цей режим добре працює з внутрішніх мереж. У активному режимі потік для передачі даних відкриває і контролює сервер. Проте, якщо клієнт знаходиться за файрволом з перетворенням адрес (маскарадингом), то він не зможе працювати з сервером в цьому режимі.
Останньою особливістю, що обговорюється нами, буде передача даних в бінарному або текстовому (ascii) вигляді. Деякі бінарні дані в перших версіях серверів/клієнтів не могли бути передані в прямому вигляді по мережі у зв'язку з особливостями реалізації FTP. Для цього було придумано декілька режимів – бінарний, коли дані, що передаються, ніяк не перетворюються для передачі по мережі, і ascii, коли дані за допомогою певного кодування перетворюються в послідовність символів ascii (з кодами від 0 до 127). Формат ascii збільшував розмір файлу, а відповідно і час завантаження з мережі, але дозволяв подолати виникаючі проблеми. Сучасні FTP-сервери/клієнти самостійно здатні вибирати потрібний режим передачі, тому користувач в більшості випадків не замислюється про це.
Vsftpd- це програма-демон. У ASPLinux для нього заздалегідь створений скрипт запуску, поміщений в /etc/rc.d/init.d з іменем vsftpd. Сам виконуваний файл адресується як /usr/sbin/vsftpd.
За налаштування сервера відповідають декілька файлів:
/etc/vsftpd.busy_banner –файл, в якому записується повідомлення, що видається клієнтові, коли сервер не може відповісти на запит.
/etc/vsftpd.ftpusers –містить список користувачів, яким заборонений доступ по ftp. Як правило цей файл містить список критично важливих для системи користувачів, таких як root, bin, lpd та інші.
/etc/vsftpd.user_list –список користувачів, значення якого міняється залежно від того, як встановлений параметр userlist_deny в основному файлі конфігурації. Якщо цей параметр встановлений в NO, то на FTP зможуть попасти лише користувачі, вказані в цьому файлі, якщо в YES, то все, окрім цих користувачів. Потрібно мати на увазі, що якщо користувач заборонений у файлі /etc/vsftpd.ftpusers, то він не зможе мати доступу, навіть будучи дозволеним в цьому файлі.
/etc/vsftpd/vsftpd.conf -головний файл конфігурації сервера. Розглянемо його детальніше:
anonymous_enable=YES – параметр-перемикач, який вирішує або забороняє доступ до анонімного FTP-каталогу (/var/ftp/pub).
local_enable=YES – якщо цей параметр стоїть в NO, то користувачі тієї ж системи, де запущений сервер, не можуть дістати до нього доступ.
write_enable=YES – якщо цей параметр встановлений в NO, то жоден з користувачів не має права закачати файли на FTP-ресурс.
local_umask=022 – визначає права доступу до файлів для всіх користувачів, окрім anonymous.
anon_upload_enable=YES – якщо параметр встановлений в YES, то анонімні користувачі можуть змінювати файли, що існують в каталозі /var/ftp/pub .
anon_mkdir_write_enable=YES – дозволяє анонімним користувачам закачувати файли на FTP-ресурс і створювати каталоги.
dirmessage_enable=YES – якщо параметр включений, то FTP-сервер видаватиме повідомлення з файлу при переході в каталог. Це повідомлення може міститися у файлі з іменем .message усередині каталогу, проте ім'я файлу може бути додатково вказане за допомогою опції message_file.
xferlog_enable=YES – дозволяє серверу записувати журнал з іменами переданих файлів. За умовчанням, журнал пишеться в файл /var/log/vsftpd.log, проте ім'я файлу може бути додатково вказане опцією xferlog_file. Формат файлу може бути вказаний стандарною (YES) або нестандартною опцією xferlog_std_format.
connect_from_port_20=YES – дозволяє використовувати для передачі даних 20-й порт.
chown_uploads=YES – змінює власника файлу, закачаного анонімним користувачем на того, який вказаний в параметрі chown_username .
idle_session_timeout – вказує час в секундах, через який буде розірвано з'єднання з клієнтом, що не виконує жодних дій.
data_connection_timeout – вказує час в секундах, через який буде розірвано з'єднання в разі перерви в передачі даних.
Додаткову інформацію по конфігурації цього сервера можна отримати з настанови man (сторінки vsftpd, vsftpd.conf ).