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