FTP, SFTP і TFTP — це протоколи, які використовуються для передачі файлів через мережу. Це може бути локальна мережа чи Інтернет. Давайте детально розглянемо кожний протокол, щоб зрозуміти основну різницю в абревіатурах.
FTP означає протокол передачі файлів. Цей протокол використовується для передачі файлів між пристроями у мережі. Наприклад, для передачі файлів між комп’ютером та сервером через Інтернет. Коротше кажучи, FTP – це мова, яку пристрої використовують для передачі файлів через мережу TCP/IP.
Якщо ви хочете, щоб файли на вашому комп’ютері були доступні іншим користувачам по всьому світу, ви можете завантажити ці файли на FTP-сервер, інші користувачі підключаться до сервера і завантажать файли, використовуючи протокол FTP.
Існує два основних методи передачі файлів FTP. Ви можете використовувати стандартний інтернет-браузер (Chrome, Firefox, Opera, Brave тощо) або FTP-клієнт, такий як Filezilla.
Два основні варіанти використання FTP:
- Передача файлів між пристроями у мережі
- Дозвіл веб-розробникам/адміністраторам завантажувати файли на веб-сервер
На жаль, у FTP є одна істотна вада — це небезпечний протокол! Тому будь-які дані, що надсилаються через FTP, не шифруються і надсилаються у вигляді відкритого тексту. Ми настійно рекомендуємо використовувати FTP у надійній мережі, якщо дані, що передаються, не є конфіденційними. Якщо ви маєте справу з конфіденційними даними, вам потрібно використовувати більш безпечний протокол SFTP.
SFTP
SFTP означає безпечний протокол передачі файлів. Це просто вдосконалення FTP, лише воно використовує додатковий рівень безпеки. Дані, що передаються FTP, шифруються за допомогою SSH і не надсилаються у вигляді звичайного тексту. SFTP також аутентифікує користувача та сервер та використовує порт 22.
TFTP
TFTP розшифровується як Trivial File Transfer Protocol. У порівнянні з FTP та SFTP, TFTP – це простий протокол передачі файлів, який не використовується для передачі файлів через Інтернет. Він в основному використовується для передачі файлів через мережу LAN. Наприклад, ви можете використовувати TFTP для передачі файлів конфігурації та образів прошивки на мережні пристрої, такі як маршрутизатори та брандмауери. З цієї інформації ви помітили, що TFTP не є широко використовуваним протоколом, оскільки його використовують лише системні та мережеві адміністратори.
На відміну від FTP та SFTP, які використовують протокол із встановленням з’єднання (TCP), що гарантує доставку файлів, TFTP використовує протокол без встановлення з’єднання (UDP). Це робить його ненадійним протоколом. Крім того, TFTP не забезпечує ніякої безпеки даних, що передаються. Але в цьому немає необхідності, оскільки цей протокол переважно використовується в локальній мережі, а не в Інтернеті.
1. Як встановити FTP на Fedora
Ви можете легко встановити FTP на Fedora за допомогою менеджера пакетів DNF. Запустіть термінал і виконайте команду нижче.
sudo dnf install vsftpd
Ви помітите, що ми встановлюємо пакет із ім’ям vsftpd. VSFTPD – це безкоштовний FTP-сервер для систем Linux і UNIX, розшифровується як Very Secure File Transport Protocol Daemon. Це не великий пакет і не займе багато часу, якщо у вас є хороша швидкість інтернету.
Ви можете перевірити інсталяцію, перевіривши версію VSFTPD, встановлену у вашій системі, коли закінчите. Виконайте команду нижче.
vsftpd -v
У нашому випадку ми використовуємо vsftpd версію 3.0.3. Нам потрібно виконати кілька налаштувань, перш ніж використовувати FTP у нашій системі.
Налаштування FTP (vsftpd) у Fedora
Щоб захистити наш FTP-сервер, нам потрібно додати привілеї, які мають різні користувачі над сервером. Наприклад, у цьому пості ми призначимо наступні конфігурації для наступних користувачів:
- Локальний користувач: має право завантажувати файли на сервер FTP.
- Анонімний користувач: він може читати файли, але не може завантажувати файли на FTP-сервер.
Відкрийте файл /etc/vsftpd/vsftpd.conf за допомогою наведеної нижче команди, щоб відредагувати конфігурації за допомогою редактора nano.
sudo nano /etc/vsftpd/vsftpd.conf
Перегляньте кожен незакоментований рядок у цьому файлі та переконайтеся, що він встановлений, як показано в коді нижче. Якщо деякі рядки нижче відсутні у файлі, вставте їх унизу.
Порада: Ви можете встановити лише одну опцію прослуховування значення YES. Якщо ви використовуєте IPV4, натисніть listen=YES. Якщо ви використовуєте IPV6, використовуйте listen_ipv6=YES
listen=YES local_enable=YES xferlog_enable=YES connect_from_port_20=YES pam_service_name=vsftpd # Allow local user to upload files write_enable=YES # Enable Anonymous user to read files (no password, no username) anonymous_enable=YES anon_root=/var/ftp no_anon_password=YES EOF
Збережіть файл (Ctrl+S) та вийдіть (Ctrl+X). Нам потрібно дозволити FTP-порт у брандмауері, щоб дозволити передачу файлів між нашим ПК та іншим ПК у мережі. Виконайте наведені нижче команди.
sudo firewall-cmd --add-service=ftp --permanent sudo firewall-cmd --reload
Перезапустіть сервер VSFTPD, щоб зміни набули чинності. Виконайте наведені нижче команди.
sudo systemctl enable vsftpd sudo systemctl restart vsftpd
Підключитись до FTP-сервера
Існує два основні способи підключення до сервера FT:
- З клієнтського браузера
- Використання FTP-клієнта, наприклад FileZilla.
Щоб отримати доступ до FTP-сервера з браузера, введіть URL-адресу нижче в адресному рядку:
ftp://[ip-address] e.g., ftp://192.168.1.47
Порада. Тим не менш, ми рекомендуємо використовувати FTP-клієнт, оскільки в деяких системах можуть виникнути проблеми з підключенням до FTP-сервера з браузера. Наприклад, коли ми спробували отримати доступ до FTP-сервера за допомогою браузера з Linux Mint, браузер спробував знайти сторінку в Інтернеті.
Щоб підключитися до FTP-сервера за допомогою FileZilla, ви повинні вказати ім’я хоста (IP-адреса), ім’я користувача та пароль, якщо ви хочете увійти в систему як локальний користувач. Щоб увійти в систему як гість/анонімний користувач, введіть лише ім’я хоста (IP-адреса) та натисніть Quickconnect.
2. Встановлення TFTP-сервер
Ви можете легко встановити TFTP Netflix за допомогою менеджера пакетів DNF. Виконайте наведену нижче команду, щоб встановити TFTP-сервер та пакети клієнтів.
dnf install tftp-server tftp -y
Наведена вище команда створить два системні службові файли TFTP у каталозі /usr/lib/systemd/system/, як показано нижче.
/usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket
Тепер нам потрібні ці файли до каталогу /etc/systemd/system. Виконайте наведені нижче команди.
sudo cp /usr/lib/systemd/system/tftp.service /etc/systemd/system/tftp-server.service sudo cp /usr/lib/systemd/system/tftp.socket /etc/systemd/system/tftp-server.socket
Налаштування TFTP-сервер
Порада: TFTP — це небезпечний протокол передачі файлів, і його не рекомендується використовувати для передачі конфіденційних даних по мережі. Конфігурації, які ми покажемо вам у цьому пості, не повинні використовуватися серед «конфіденційних даних».
Щоб налаштувати TFTP-сервер, нам потрібно відредагувати файл tftp-server.service, який ми скопіювали до каталогу /etc/system/systemd. Виконайте наведену нижче команду, щоб відредагувати файл за допомогою редактора nano.
sudo nano /etc/systemd/system/tftp-server.service
Перед внесенням змін файл виглядає так, як показано нижче.
[Unit] Description=Tftp Server Requires=tftp.socket Documentation=man:in.tftpd [Service] ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot StandardInput=socket [Install] Also=tftp.socket
Внесіть зміни до наступних рядків, як показано нижче. Ви побачите, що ми додали нові параметри до рядка exec. Давайте розглянемо їх докладно.
- -c: ця опція дозволяє користувачам створювати нові файли
- -p: цей параметр забороняє серверу виконувати додаткові перевірки дозволів, крім системних елементів керування дозволами.
Requires=tftp-server.socket ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot [Install] WantedBy=multi-user.target Also=tftp-server.socket
Збережіть файл (Ctrl + S) і вийдіть (Ctrl + X), коли закінчите. Тепер ваша служба TFTP має виглядати так, як показано на малюнку нижче.
Перезавантажте демон Systemd і запустіть TFTP-сервер за допомогою наведених нижче команд.
sudo systemctl daemon-reload sudo systemctl enable --now tftp-server
Щоб встановити привілеї користувачів у каталозі /var/lib/tftpboot, використовуйте наведену нижче команду.
sudo chmod 777 /var/lib/tftpboot
Примітка. Дозвіл 777 дуже ризикований, і ми використовуємо його лише як демонстрацію для цієї посади. Цей дозвіл надає всім користувачам права на читання, запис та виконання у файлі /var/lib/tftpboot.
Підключення до TFTP-сервера
Одним із найкращих способів підключення до TFTP-сервера є використання терміналу. По-перше, вам потрібно буде встановити TFTP-клієнт у вашій системі для підключення до сервера. Використовуйте будь-яку з наведених нижче команд для встановлення TFTP-клієнта залежно від дистрибутива Linux.
Ubuntu
sudo apt-get install xinetd tftpd tftp
Fedora
sudo yum install tftp
Запустіть Термінал і використовуйте наведений нижче синтаксис для підключення до сервера TFTP.
tftp [ip-address] e.g tftp 192.168.1.47