Сервер

Настройка сервера ftp ubuntu: Установка FTP на Ubuntu | Losst

Содержание

Установка FTP на Ubuntu | Losst

FTP или File Transfer Protocol — это достаточно древний, но в то же время надёжный и проверенный протокол выгрузки файлов на удалённый сервер или их скачивания. Также иногда этот протокол применяется веб-мастерами для управления файлами или организации хранилища данных.

В этой статье мы рассмотрим, как выполняется установка FTP на Ubuntu 20.04, как настроить все необходимые компоненты, в том числе и защищённое соединение. Мы будем использовать FTP-сервер VSFTPD или Very Secure FTP Daemon, который обеспечивает самую надёжную защиту от уязвимостей.

Содержание статьи:

Установка FTP в Ubuntu

Программа доступна из официальных репозиториев, поэтому установка FTP на Ubuntu Server не должна вызвать проблем. Сначала обновите список пакетов в репозиториях, затем установите саму программу:

sudo apt update
sudo apt install vsftpd

Когда установка будет завершена, вам необходимо включить сервис vsftpd, поскольку он не будет запущен по умолчанию, а также добавить службу в автозагрузку:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Если у вас установлен фаервол ufw, а такая ситуация возникает, когда вы пытаетесь установить FTP на Ubuntu Server, нужно открыть порты 20 и 21 для нормальной работы. Чтобы это сделать, выполните команды:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw status

Установка FTP Ubuntu завершена, но теперь вам осталось настроить всё необходимое для обеспечения безопасной работы. Никогда не используйте FTP-сервер с настройками по умолчанию в производственных сетях, это небезопасно.

Настройка FTP Ubuntu

Теперь перейдём к настройке. Нам нужно поменять всего несколько параметров, чтобы полностью защитить ваш FTP-сервер. Сначала мы рассмотрим самые очевидные настройки: отключения анонимного входа и так далее. Сначала необходимо скопировать оригинальный файл настроек, чтобы в случае проблем вернуть всё как было:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Затем откройте файл в редакторе:

sudo vi /etc/vsftpd.conf

Затем добавьте такие настройки. Вам нужно будет найти и изменить значения указанных строк, добавлять новые, если они уже есть, не стоит. Сначала отключаем анонимный вход:

anonymous_enable = NO

Разрешаем использовать имена локальных пользователей для входа:

local_enable = YES

ля авторизованных пользователей разрешаем команды, позволяющие изменять файловую систему:

write_enable = YES

Установим значение umask для новых файлов, создаваемых по FTP:

local_umask = 022

Включаем сообщение о необходимости выбрать каталог после регистрации:

dirmessage_enable = YES

Записывать в лог файл все транзакции по передаче файлов и использовать стандартный формат лога:

xferlog_enable = YES
xferlog_std_format=YES

Использовать порт 20 для передачи данных вместо случайного, это нужно для нормальной работы фаервола:

connect_from_port_20 = YES

Указываем, что нужно ожидать входящих соединений:

listen=YES

Использовать PAM-библиотеки:

pam_service_name=vsftpd

На завершение разрешим аутентификацию только пользователей, перечисленных в файле userlist:

userlist_enable = YES

Указываем файл с нашими виртуальными пользователями:

userlist_file=/etc/vsftpd.userlist

По умолчанию таким пользователям запрещён вход в систему, но мы хотим совсем обратное, поэтому добавьте такую строчку:

userlist_deny=NO

При входе пользователей на FTP-сервер, они могут работать только в корневом каталоге FTP. Если вы хотите, чтобы пользователи были ограничены только своей домашней папкой, то необходимо раскомментировать эти строчки:

chroot_local_user = YES
allow_writeable_chroot = YES

Первая строчка указывает, что нужно разместить пользователя в изолированном домашнем каталоге, а вторая, что ему можно разрешить запись в этот каталог. Настройка FTP Ubuntu почти завершена, сохраните изменения в конфигурационном файле и перезапустите vsftpd:

sudo systemctl restart vsftpd

Тестирование vsftpd

Сервер готов, но система настроена ещё не полностью. Сначала создадим нашего тестового пользователя с помощью useradd:

sudo useradd -m -c "Test User" -s /bin/bash testuser
sudo passwd testuser

Поскольку мы хотим подключаться от его имени к FTP-серверу, то нам нужно добавить его в vsftpd.userlist:

echo "testuser" | sudo tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

Теперь самое время подключится к нашему FTP-серверу и проверить, как там всё работает. Попробуем войти от имени анонимного пользователя:

У нас ничего не получится. Теперь попробуем войти от имени нашего тестового пользователя, и всё заработает как нужно.

 

Обратите внимание, что опасно давать пользователям доступ на запись в их домашнюю папку. Делайте это, только если уверены в том, что это необходимо и безопасно.

Настройка домашних папок пользователей

Чтобы хоть как-то обойти проблемы с безопасностью, вы можете использовать другую папку вместо домашней для предоставления её пользователю. Сначала создадим такую папку для нашего пользователя:

sudo mkdir -p /home/testuser/ftp/files

Уберём право на запись для папки ftp:

sudo chown nobody:nogroup /home/testuser/ftp
sudo chmod a-w /home/testuser/ftp

Затем дайте необходимые полномочия пользователю на запись в подпапку.

sudo chown -R testuser:testuser /home/testuser/ftp/files
sudo chmod -R 0770 /home/testuser/ftp/files/

Теперь вернёмся к конфигурационному файлу vsftpd.conf. Сначала закомментируйте строчку:

 allow_writeable_chroot = YES

Теперь добавьте такие строчки:

user_sub_token = $USER
local_root=/home/$USER/ftp

Первая из них добавляет переменную $USER, в которой содержится имя пользователя, а вторая задаёт корневую папку для каждого пользователя. Осталось снова перезапустить FTP-сервер:

sudo systemctl restart vsftpd

Теперь вы можете снова войти от имени этого пользователя и увидите, что сейчас используется указанная нами папка.

Настройка защищенного соединения

Установка FTP на Ubuntu 20.04 завершена, но в наше время небезопасно использовать открытую передачу данных через сеть. Всё, что только возможно, необходимо шифровать. Поэтому мы рассмотрим, как настроить защищённое соединение для vsftpd. Сначала создадим папку и сгенерируем сам сертификат, который будем использовать:

sudo mkdir /etc/ssl/private
sudo openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem

Затем нужно разрешить доступ к портам защищённого соединения FTP с фаерволе UFW:

sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

И осталось внести несколько правок в настройку самого FTP-сервера. Нам нужно включить ssl_enable и отключить поддержку шифрования sslv2 и sslv3, оставляем только tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Далее раскоментируйте такие строки:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

Запретите вход анонимных пользователей по SSL:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Теперь установим самый сложный шифр SSL:

ssl_ciphers=HIGH

И настроим диапазон портов для передачи данных:

pasv_min_port=40000
pasv_max_port=50000

Осталось перезагрузить наш сервис:

sudo systemctl restart vsftpd

Теперь тестируем, что у нас получилось:

Как видите, мы уже не можем авторизоваться с помощью утилиты ftp. FTP-сервер выдаёт, что мы обязаны использовать шифрование. Поэтому для тестирования применим FileZilla:

Теперь все данные будут передаваться по зашифрованному соединению. Установка  FTP-сервер Ubuntu завершена.

Выводы

В этой статье мы рассмотрели, как выполняется установка FTP на Ubuntu Server 20.04, также как настроить FTP для максимально безопасной работы, включая настройку работы по SSL. Если у вас остались вопросы, спрашивайте в комментариях!

Сервер FTP | Русскоязычная документация по Ubuntu

Сервер FTP

Протокол передачи файлов (FTP) — это TCP протокол для передачи файлов между компьютерами. В прошлом он использовался также для загрузки [файлов в интернете], но, поскольку этот метод не использует шифрование, пользовательские данные как и содержимое файлов передаются в открытую и легко перехватываются. Поэтому, если вы здесь ищете способ безопасно передавать и загружать файлы, лучше обратитесь к статье по OpenSSH в разделе Удаленное администрирование.

FTP работает на основе модели клиент/сервер. Серверный компонент называется сервисом FTP. Он постоянно слушает FTP запросы от удаленных клиентов. При получении запроса он управляет входом и установкой соединения. На протяжении сессии он выполняет любые команды, переданные FTP клиентом.

vsftpd — установка FTP сервера

vsftpd — это сервис FTP, доступный в Ubuntu. Его легко устанавливать, настраивать и поддерживать. Для установки vsftpd вы можете выполнить следующую команду:

sudo apt install vsftpd

Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd, поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

В Ubuntu Server может использоваться файервол ufw. Тогда вам потребуется разрешить порты 20 и 21

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде

man 5 vsftpd.conf

для уточнения деталей по каждому параметру.

Доступ к FTP серверу может быть организован двумя способами:

  1. Анонимным (Anonymous)

  2. Авторизованным (Authenticated)

В анонимном режиме удаленный клиент может получить доступ к FTP серверу, используя учетную запись пользователя по умолчанию с именем «anonymous» или «ftp» и передав адрес email в качестве пароля. В авторизованном режиме пользователь должен иметь учетное имя и пароль. Этот последний вариант крайне небезопасный и не должен использоваться за исключением специальных обстоятельств. Если вы хотите передавать файлы безопасно, смотрите SFTP в разделе по OpenSSH серверу. Пользовательский доступ к каталогам и файлам FTP сервера зависит от прав доступа пользователя, указанного при входе. Как правило, сервис FTP скрывает корневой каталог FTP сервера, подменяя его на домашний каталог FTP. Это скрывает корень файловой системы от удаленных сессий.

Настройка анонимного доступа по FTP

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:

anonymous_enable=YES

В процессе установки создается пользователь ftp с домашним каталогом /srv/ftp. Это каталог по умолчанию для FTP.

Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:

sudo mkdir /srv/files/ftp
sudo usermod -d /srv/files/ftp ftp 

После изменений перезапустите vsftpd:

sudo service vsftpd restart

Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).

По умолчанию анонимный пользователь не имеет возможности загружать файлы на FTP сервер. Для изменения этой настройки уберите комментарий на следующей строке и перезапустите vsftpd:

anon_upload_enable=YES

Разрешение анонимному пользователю загружать файлы может оказаться серьезной угрозой безопасности. Лучше не разрешать анонимную загрузку файлов на сервера с прямым доступом из интернета.

Настройка авторизованного доступа по FTP

Прежде чем вносить какие-либо изменения в конфигурационный файл, рекомендуется скопировать образец для возможности отката изменений без переустановки пакета

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Для аутентификации локальных пользователей надо раскоментировать строчку

local_enable=YES

По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:

write_enable=YES

после чего перезагрузите vsftpd:

sudo service vsftpd restart

Теперь при входе системных пользователей по FTP они будут попадать в свои домашние каталоги, где они смогут скачивать, загружать [файлы], создавать каталоги и т.д.

Защита FTP

Ограничение пользователей

В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.

chroot_local_user=YES

Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:

sudo service vsftpd restart

Если вы сняли комментарии со всех трёх строчек, то пользователи из списка не будут ограничены своими домашними каталогами, в отличии от пользователей не вошедших в список

Аналогично файл /etc/ftpusers содержит список пользователей, которым запрещен доступ по FTP. По умолчанию он включает root, daemon, nobody и т.п. Для запрета доступа по FTP для дополнительных пользователей, просто добавьте их в этот список.

Если при попытке подключения вы видите ошибку 1):

Ответ:	500 OOPS: vsftpd: refusing to run with writable root inside chroot()

то это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Способов решения этой ошибки несколько:

sudo chmod a-w /home/user/
  • Отменить проверку записи в домашний каталог прописав в конфиге 2)
allow_writeable_chroot=YES
  • Прописать /home каталогом, куда будут попадать локальные пользователи после входа на FTP сервер. Тогда каждый из них будет иметь возможность писать только в свой домашний каталог
local_root=/home
Шифрование

FTP может быть зашифрованным при использовании FTPS. В отличие от SFTP, FTPS — это FTP поверх SSL. SFTP — это сессия, подобная FTP, по зашифрованному SSH соединению. Основное отличие заключается в том, что пользователи SFTP должны иметь учетную запись с собственным окружением (shell account) вместо оболочки nologin. Предоставление всем пользователям доступа к оболочке может оказаться не лучшим решением для некоторых систем, таких как web сервер общего доступа. Однако есть возможность ограничить такие учетные записи только SFTP и запретить взаимодействие с оболочкой. Смотрите раздел по OpenSSH для дополнительной информации.

Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:

ssl_enable=Yes

Также обратите внимание на опции сертификата и ключа:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert. Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты.

Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:

sudo service restart vsftpd

Чтобы позволить пользователям с оболочкой /usr/sbin/nologin получить доступ к FTP, но не предоставлять shell доступ, отредактируйте /etc/shells, добавив к оболочке nologin:

# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin

Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:

auth    required        pam_shells.so

Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.

Наиболее популярные клиенты FTP могут быть настроены на использование FTPS. FTP клиент командной строки lftp также имеет возможность использовать FTPS.

Ссылки

Простой FTP-сервер на базе Ubuntu (vsftpd)

Время от времени у каждого системного администратора возникает потребность в FTP-сервере, чаще всего это связано с необходимостью обеспечить обмен информацией в автоматическом режиме между приложениями, например, при автообмене распределенной информационной базы 1С, или для доступа к файлам на веб-сервере. Сегодня мы расскажем, как меньше чем за полчаса создать такой сервер на платформе Ubuntu.

Но сначала немного теории. Протокол FTP (File Transfer Protocol) предназначен, как следует из названия, для передачи файлов и появился в 1971 году, но несмотря на свой преклонный возраст продолжает широко использоваться до сих пор. Хотя сегодня его использование носит чаще технический характер, для доступа конечных пользователей к данным обычно используют браузер и протокол HTTP. К достоинствам FTP можно отнести возможность докачки файла при обрыве связи и возможность одинаково легко как считывать файлы, так и записывать их. Но есть и недостатки, самый серьезный — низкая безопасность, поэтому этому вопросу следует уделить самое пристальное внимание.

FTP, как и PPTP, использует разные соединения для передачи команд и передачи данных. При инициации соединения клиент передает управляющие команды на порт 21 сервера, который в свою очередь устанавливает исходящее соединение для передачи данных на 20 порту, порт со стороны клиента определяется в результате согласования. Однако при нахождении клиента за NAT соединение подобным образом установить не удастся, поэтому был разработан дополнительный режим FTP passive mode (пассивный режим), когда соединение для передачи данных устанавливает не сервер, а клиент, однако с параметрами, указанными сервером. Эти моменты следует учитывать при форвардинге FTP и при настройке сетевого фильтра.

Для нашего сервера мы будем использовать vsftpd — простой, быстрый и безопасный FTP сервер. Так как он будет обслуживать как внешнюю, так и внутреннюю сети, то имеет смысл добавить эту роль нашему роутеру. Установка сервера предельно проста:

apt-get install vsftpd

Настройка сервера производится через конфигурационный файл /etc/vsftpd.conf он имеет простую структуру, хорошо откомментирован и позволяет настроить сервер без какой-либо инструкции при наличии минимальных знаний. Рассмотрим его основные параметры.

Сервер может быть запущен постоянно, как служба или стартовать при необходимости, нам больше подходит первый вариант:

listen=YES

Данная опция имеет взаимоисключающую запись, которую следует привести к виду:

listen_ipv6=NO

Разрешим вход только локальным пользователям:

anonymous_enable=NO
local_enable=YES

Разрешим пользователям записывать файлы и укажем серверу автоматически выставлять нужные права (755 на папки и 644 на файлы):

write_enable=YES
local_umask=022

Если требуется установить иной набор прав: 775 и 664, то umask должен быть равен 002.

По умолчанию сервер использует время GMT, чтобы файлам устанавливалось время вашего часового пояса, используйте опцию:

use_localtime=YES

Включим лог загружаемых и скачиваемых файлов:

xferlog_enable=YES

Разрешим серверу устанавливать соединения для передачи данных на порт 20:

connect_from_port_20=YES

Следующие опции задают место и формат хранения логов:

xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

Зададим таймауты сессии:

idle_session_timeout=600
data_connection_timeout=120

Также в целях безопасности изолируем пользователя в его домашнем каталоге и сразу разрешим запись в его корень:

chroot_local_user=YES
allow_writeable_chroot=YES

Для коррекной работы с текстовыми данными можно включить поддержку ASCII, это позволит при передаче текстового файла с Windows системы в UNIX (Linux) корректно заменить символы переноса строки с CR+LF на LF для корректного отображение содержимого и выполнить обратное преобразование при передаче его назад.

ascii_upload_enable=YES
ascii_download_enable=YES

Можно включить только одну опцию, для закачки или скачивания. Обратите внимание, что при передаче бинарного файла в режиме ASCII последний может быть поврежден.

Достаточно интересная опция:

ls_recurse_enable=YES

Она позволяет рекурсивный просмотр каталогов, с одной стороны это удобно, с другой способно вызвать большую нагрузку на сервер, если, например, получить листинг директории, содержащей большое количество файлов и каталогов.

Все остальные опции оставляем по умолчанию, хотя можете отредактировать приветствие сервера, написав там все что вам нравится:

ftpd_banner=Welcome to Roga i Kopyta LLC FTP

В конце конфигурационного файла зададим настройки для пассивного режима, рекомендуется явно задать порты, чтобы была возможность указать их при форвардинге, если сервер стоит за NAT или в правилах брандмауера:

pasv_enable=YES
pasv_min_port=62000
pasv_max_port=62999

Перезапускаем сервер (это нужно делать всякий раз после внесения изменений в конфигурацию):

service vsftpd restart

и пробуем подключиться любым FTP-клиентом используя учетные данные существующего пользователя. Мы должны попасть в его домашнюю директорию и быть изолированы в ней.

В случае появления ошибки, связанной с некорректной работой vsftpd и системы безопасности seccomp:

500 OOPS: prctl PR_SET_SECCOMP failed

добавьте в файл недокументированную опцию:

seccomp_sandbox=NO

Однако помните, что FTP — небезопасный протокол, поэтому пускать на сервер любого локального пользователя, как это сделано сейчас, не самый лучший вариант. Чтобы избежать такой ситуации vsftpd имеет встроенный механизм контроля пользователей. Добавим в конфигурационный файл опцию:

userlist_enable=YES

и создадим файл списка пользователей:

touch /etc/vsftpd.user_list

По умолчанию vsftpd запрещает доступ к серверу пользователям, указанным в данном списке еще до ввода пароля, т.е. реализует принцип разрешено всем, кому не запрещено. Но гораздо лучше будет реализовать иной подход: запрещено всем, кому не разрешено. Т.е. разрешать доступ только указанным пользователям. Для этого добавим опцию:

userlist_deny=NO

Теперь доступ к FTP-серверу будут иметь только явно указанные пользователи, их следует указывать в vsftpd.user_list по одному в строку, например:

ivanov
petrov

Если не указано иное, то подключившись по FTP пользователи попадают в свой домашний каталог. Это не всегда удобно, часто нужно перенаправлять их в иную директорию. Если это общая для всех папка, скажем /var/ftp, то можно задать опцию:

local_root=/var/ftp

Которая перенаправит всех пользователей в указанный каталог и изолирует их там.

Это самая простая ситуация, реальные задачи обычно сложнее, допустим нам надо установить пользователю Иванову в качестве корневой директории /var/www/example1.com, а Петрову /var/www/example2.com, чтобы каждый из них работал со своей папкой. Для этих целей можно использовать еще одну возможность vsftpd — пользовательские настройки, которые перекрывают настройки основного конфигурационного файла.

Для этого добавим опцию:

user_config_dir=/etc/vsftpd_user_conf

Затем создадим саму директорию

mkdir /etc/vsftpd_user_conf

Чтобы задать пользователю собственные настройки в данной директории следует создать файл с именем пользовтаеля и добавить в него необходимые опции. Изменения применяются без перезапуска FTP-сервера при следующем подключении клиента.

Создадим файл с настройками для Иванова:

tocuh /etc/vsftpd_user_conf/ivanov

и внесем в него опцию:

local_root=/var/www/example1.com

При следующем подключении корневая директория пользователя изменится на указанную. Также в этом файле мы можем задавать любые персональные опции, например, другой umask или права на доступ к файлам. Однако мы не можем использовать здесь глобальные настройки: опции подключения, логгирования, аутентификации, они будут просто игнорироваться.

Если вам нужно скрыть реальных владельцев файлов и папок, то можно использовать опцию:

hide_ids=YES

В этом случае вместо реальных владельцев и групп будет указано ftp:ftp, это может быть полезным в случае публичного сервера или наличия в списке пользователей посторонних лиц, которым вы не хотите раскрывать реальные имена пользователей вашей системы.

Как видим, мы действительно создали рабочий FTP-сервер менее чем за полчаса.

Как установить FTP-сервер на Ubuntu — настройка защищенного vsftpd

Попробуйте настроить FTP-сервер по нашей инструкции — мы расскажем, как установить FTP-сервер на Ubuntu 20.04, настроить сервер vsftpd и подключить защищённое FTP-соединение простым способом. Инструкция также подойдет для дистрибутива Ubuntu версий 18.04 и 16.04.

С FTP-сервером можно работать благодаря одному из базовых протоколов интернета — FTP. В операционной системе Ubuntu можно подключить такие популярные FTP-серверы, как: proftpd, wu-ftpd, pureftpd и vsftpd. Мы рассмотрим, как установить vsftpd Ubuntu — один из самых быстрых и безопасных серверов.

Чтобы начать работу с FTP-сервером vsftpd, установите и настройте его. Затем подключите защищённое соединение SSL/TLS, назначьте доступ FTP-пользователям и настройте брандмауэр. В инструкции ниже мы подробно описали каждый из этих этапов.

Установка FTP-сервера vsftpd

Чтобы установить на Ubuntu server vsftpd:


  1. 1.

    Обновите пакеты apt:



  2. 2.

    Установите FTP-сервер vsftpd:



  3. 3.

    Проверьте работоспособность сервера:

    
            sudo systemctl status vsftpd
        

    Если сервер активен, в выводе появится надпись active:





    FTP server Ubuntu


Готово, вы установили FTP-сервер vsftpd.

Настройка FTP-сервера на Ubuntu

Настройте сервер vsftpd через файл конфигурации — /etc/vsftpd.conf. Для этого:


  1. 1.

    Скопируйте оригинальный файл с настройками в файл /etc/vsftpd.conf.original:

    
            sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
        



  2. 2.

    Откройте конфигурационный файл:

    
            sudo nano /etc/vsftpd.conf
        



  3. 3.

    В файле укажите директивы и назначьте параметры с помощью указанных ниже команд.

    • Настройте сервер для запуска:

    и

    • Настройте доступ к FTP-серверу, чтобы разрешить вход только локальным пользователям:

    и

    • Разрешите пользователям работать в файловой системе (загружать и удалять файлы):
    • Назначьте права для новых файлов:
    • Настройте сообщение о выборе каталога после регистрации:
    • Разрешите серверу использовать локальный часовой пояс:
    • Настройте запись всех передач файлов в лог:
    • Настройте порт 20 для передачи данных:
    • Задайте путь хранения логов и их формат:
    
            xferlog_file=/var/log/vsftpd.log
        

    и

    • Откройте пользователям доступ только к своим домашним каталогам командами:

    и

    
            allow_writeable_chroot=YES
        
    • Настройте возможность использования PAM-сервиса:
    • Разрешите аутентификацию на FTP-сервере только тем пользователям, которые указаны в файле userlist с помощью команд:
    
            userlist_file=/etc/vsftpd.userlist
        

    и



  4. 4.

    Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.


Готово, вы настроили FTP-сервер.

Подключение защищенного соединения SSL/TLS

Для настройки защищённой FTP-передачи с помощью SSL/TLS нужен SSL-сертификат. Вы можете использовать уже существующий сертификат или создать самоподписанный. Чтобы настроить защищенное соединение через самоподписанный SSL-сертификат:


  1. 1.

    Сгенерируйте SSL-сертификат. Этой командой будет создан сертификат сроком действия 10 лет и 2048-битный закрытый ключ. Они будут храниться в файле vsftpd.pem.

    
            sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
        



  2. 2.

    Откройте конфигурационный файл vsftpd.conf:

    
            sudo nano /etc/vsftpd.conf
        



  3. 3.

    Найдите директивы rsa_cert_file и rsa_private_key_file. Присвойте им значения пути к файлу vsftpd.pem командами:

    
            rsa_cert_file=/etc/ssl/private/vsftpd.pem
        

    и

    
            rsa_private_key_file=/etc/ssl/private/vsftpd.pem
        



  4. 4.

    Разрешите использование протокола SSL:



  5. 5.

    Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.



  6. 6.

    Перезапустите сервер:

    
            sudo systemctl restart vsftpd
        


Готово, вы настроили защищённое соединение.

Создание FTP-пользователей и предоставление им доступа

Если у вас уже созданы FTP-пользователи, дайте им доступ:


  1. 1.

    Добавьте имена FTP-пользователей в созданный ранее файл /etc/vsftpd.userlist. Для этого откройте файл командой:

    
            sudo nano /etc/vsftpd.userlist
        

    Затем введите имена пользователей — в одной строке вводите одно имя.



  2. 2.

    Сохраните и закройте файл сочетанием клавиш Ctrl+X и Y.


Готово, вы назначили доступ FTP-пользователям.

Если таких пользователей ещё нет, сначала создайте их:


  1. 1.

    Создайте нового пользователя:



  2. 2.

    Назначьте ему пароль:

    Где user — имя пользователя.



  3. 3.

    Предоставьте FTP-доступ пользователю. Добавьте его имя в файл /etc/vsftpd.userlist:

    
            echo "user" | sudo tee -a /etc/vsftpd.userlist
        


Готово, вы создали FTP-пользователей и назначили им доступ.

Настройка работы брандмауэра

Если вы используете брандмауэр (firewall) UFW, разрешите FTP-трафик. Для этого:


  1. 1.

    Откройте порты 20, 21, 22, 990 и зарезервируйте диапазон портов 40000-50000 командами:

    
            sudo ufw allow 40000:50000/tcp
        



  2. 2.

    Перезагрузите UFW:

    
            sudo ufw disablesudo ufw enable
        



  3. 3.

    Проверьте работоспособность UFW:


Готово, вы открыли брандмауэр для работы по FTP. Теперь вы можете проверить соединение через FTP-клиент FileZilla и приступить к работе с сервером.

Итак, вы узнали, каким способом можно быстро установить и настроить защищенный фтп-сервер на Убунту.

Помогла ли вам статья?

0
раз уже
помогла

Ubuntu FTP сервер: установка и настройка

Известный факт: работа любой операционной системы зависит от того, какой сервер установлен на девайсе. Сервер FTP на Ubuntu имеет свои преимущества и недостатки. Он обладает своими специфическими особенностями. Следует знать важные аспекты установки и настройки ftp сервера linux. Также новичку следует знать о часто встречающихся ошибках установки ubuntu ftp server и проблемы, возникающие после при работе с ним.

Что такое FTP

FTP server linux – это один из базовых протоколов передачи файлов в сети на платформе убунту. С его помощью можно:

  • подключаться к различным tftp серверам ubuntu;
  • просматривать различные каталоги;
  • загружать документы с одного сервера на другой (например, с tftp на atftpd ubuntu).

Это оборудование использует для своей работы различные программы – ubuntu ftp клиенты:

  1. File Zilla – универсальная программа, используется для всех протоколов и платформ.
  2. WinSCP – очень удобный с двумя панелями протокол для системы виндовс.
  3. FAR Manager – его используют только с помощью консоли Виндовс.
  4. FireFTP – этот сервер актуален для браузера Mozilla.
  5. Total Commander – популярный менеджер для Виндовс.
  6. Cyberduck – программное обеспечение для платформы Линукс.

Дальнейшие этапы установки, настройки и работы будут рассмотрены для ftp сервера ubuntu 14.04.

Совет! Для более полного ознакомления с имеющимися программами следует обратиться к специалистам.

Режимы работы FTP

При работе с таким протоколом есть 2 режима, которые отличаются между собой соединением между пользователем и сетью.

Автономный режим

По-другому этот вариант называется пассивным режимом. Это более безопасный для пользователя случай. Человек в этом случае не указывает номера порта.

Методика передачи файлов такова:

  1. Отправляют со своего временного порта запрос на порт сервера.
  2. Затем следует ответ сервера на временный порт индивидуума.
  3. Подтверждают соединение. Затем отправляют команду, утверждающую пассивный режим работы.
  4. Сервер в ответ подтверждает режим работы, выдает ip-адрес и номер порта для связи.
  5. Отправляют запрос с нового порта на соединение с выданным номером порта.
  6. Сервер подтверждает установку.
  7. После установления соединения клиент дает команды, и начинается передача.

Очень важно использовать этот режим, если установлен Firwall.

Нормальный режим

По-другому этот вариант называется активным режимом. В этом случае пользователь сам задает необходимый порт для связи.

Методика передачи файлов выглядит следующим образом:

  1. Клиент отправляет со своего временного порта запрос на порт сервера.
  2. Затем следует ответ сервера на временный порт индивидуума.
  3. Подтверждают соединение. Затем отправляют команду, утверждающую активный режим работы, свой ip-адрес и порт.
  4. Сервер в ответ подтверждает режим работы.
  5. Дают команды серверу.
  6. Сервер дает запрос на указанный пользователем порт о соединении.
  7. Клиент подтверждает это соединение, и передача файлов начинается.

Однако этот вариант опасен тем, что данные клиента могут попасть в «чужие руки», поскольку они никак не зашифрованы.

Установка FTP на Ubuntu Server

Этот процесс происходит с помощью команды vsftpd.

Алгоритм простой:

  1. Установка с помощью выражения sudo apt install vsftpd.
  2. Для запуска: sudo systemctl start vsftpd, sudo systemctl enable vsftpd.
  3. Разрешить порты для работы ufw: sudo ufw allow 20/tcp, sudo ufw allow 21/tcp.
  4. Запустится конфигурационный файл, содержащий множество параметров настройки. Руководство по каждому пункту вызывается с помощью команды: man 5 vsftpd.conf.

Совет! Новичку следует обратиться за помощью к сервисному центру.

Настройка FTP сервера на Ubuntu

Этот процесс имеет разные направления, которые различаются своими специфическими особенностями.

Настройка доступа пользователей

Есть 2 пути: анонимный и авторизированный. Первый случай простой, пользователь создает анонимный файл для связи. Второй случай более безопасный – должна быть учетная запись.

Анонимный доступ

Скопировать на всякий случай конфигурационный файл с помощью команды:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Затем установить анонимный режим:

sudo cp /etc/vsftpd.conf / anonymous_enable=YES

После следует перезапустить сервер с помощью выражения:

sudo service vsftpd restart

Затем нужно скопировать файлы и каталоги для доступа анонимных клиентов.

Чтобы они тоже могли загружать файлы, нужно воспользоваться выражением:

anon_upload_enable=YES

Однако последний пункт может привести к нарушению безопасности работы сервера.

Авторизированный доступ

Повторить первый пункт предыдущего метода.

Для введения своих данных нужно создать строку с помощью:

local_enable=YES

Разрешить пользователям загрузку файлов можно с помощью команды:

write_enable=YES

Затем следует перезагрузить систему с помощью выражения:

sudo service vsftpd restart

После следует защитить систему другими опциями.

Смена номера порта

Сначала нужно подключиться к серверу по SSH.

Узнать, какой FTP-сервер установлен с помощью выражения:

dpkg -l | grep ftpd | awk ‘{print $2’}

Выполнить команды: либо vsftpd, либо proftpd.

Другие опции

Есть важные 2 направления, о которых каждый пользователь обязательно должен знать.

Ограничение пользователей

Управлять документами и запросами пользователями достаточно просто.

Для ограничения уровня любого человека можно воспользоваться командой:

chroot_local_user=YES

Установить список людей, которым будет доступен домашний каталог, можно с помощью команд:

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

Затем следует перезапустить программу с помощью:

sudo service vsftpd restart

Также можно запретить доступ в домашний каталог другим пользователям с помощью:

sudo chmod a-w /home/user/

Отменить проверку на запись в домашний каталог можно выражением:

allow_writeable_chroot=YES

Разрешить пользователям только входить в свои каталоги:

local_root=/home

Шифрование

При наличии FTPS пользовательское место для увеличения безопасности можно зашифровать.

Для настройки такого режима следует в конце конфигурационного файла добавить:

ssl_enable=Yes

Ввести сертификат и ключ с помощью:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Перезагрузить программу:

sudo service restart vsftpd

Чтобы пользователям был доступ к серверу, а не к оболочке, следует отредактировать файл следующим образом:

# /etc/shells: valid login shells

/bin/csh

/bin/sh

/usr/bin/es

/usr/bin/ksh

/bin/ksh

/usr/bin/rc

/usr/bin/tcsh

/bin/tcsh

/usr/bin/esh

/bin/dash

/bin/bash

/bin/rbash

/usr/bin/screen

/usr/sbin/nologin

Частые ошибки и проблемы

Частые проблемы новичков заключаются в следующем:

  1. Не видны те файлы, название которых начинаются с точки. Они считаются скрытыми. Для решения этой проблемы следует в файл /usr/local/etc/proftpd.conf вписать:

ListOptions -la

  1. Запрещен доступ пользователю с правами Root. В этом случае следует перейти на протокол SFTP.
  2. Невозможность подключения. Решение многоуровневое будет рассмотрено ниже.

Выполняя вышеперечисленные действия, человек может самостоятельно быстро настроить работу сервера.

Невозможность подключения через FTP

Чтоб разрешить проблему, следует принять ряд определенных мер.

Проверить установку

Нужно выполнить запрос:

# dpkg -l | grep -i «ftp»

Если сервер установлен, то придет ответ:

ii  ftp            0.17-25             classical                              file transfer client

ii  proftpd-basic  1.3.4a-1            Versatile                              , virtual-hosting FTP daemon — binaries

Если нет, то следует загрузить сервер:

# apt-get install proftpd

Проверить запуск

Нужно подключиться к серверу с помощью SSH и ввести команды:

# telnet localhost 21

# netstat -tulpn | grep :21

Должен быть ответ:

tcp6       0      0 :::21                   :::*                    LISTEN      6208/proftpd: (acce

Другой способ заключается в введении выражения:

# netstat -a | grep ftp

В этом случает ответ будет выглядеть следующим образом:

tcp6       0      0 [::]:ftp                [::]:*                  LISTEN

Если порт не открыт, то его следует запустить командой:

# /etc/init.d/proftpd start

Запрет для пользователя

Проверить отсутствие блокировки запросом:

# iptables -L -n

Ответ сервера в этом случае:

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

ISPMGR     all  —  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

ISPMGR     all  —  0.0.0.0/0            0.0.0.0/0

Chain ISPMGR (2 references)

target     prot opt source               destination

Заключение

Сервер FTP на Ubuntu –базовый протокол передачи файлов для платформы Линукс. Установка и настройка его требует учета специфических нюансов. Для предотвращения каких-либо поломок нужно обратиться к специалисту.

Установка и настройка FTP-сервера в Linux

File Transfer Protocol, т. е. FTP – протокол передачи файлов и, как понятно из полного названия, предназначен для передачи файлов между удалёнными компьютерами через сеть. Несмотря на то, что сам протокол FTP является на сегодняшний день не самым совершенным из-за того, что передаваемые данные не шифруются, однако это не делает его устаревшим. Кроме того всё-таки к FTP возможно применять криптографическую защиту на основе протокола SSL, что и делает FTP достойным инструментом для передачи файлов.

Поскольку FTP работает по схеме клиент-серверного взаимодействия, то умелая и надёжная реализация протокола (да и вообще системы) в состоянии обеспечить ему надёжную защиту, высокую скорость и, как следствие — популярность, что и можно наблюдать на сегодняшний день, ведь большинство крупных проектов, таких как ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org и т. д., используют для распространения программного обеспечения со своих серверов именно FTP. Надо заметить, что такой популярностью FTP обязан, в большей степени, одной из своих многочисленных реализаций — vsFTPd. Это FTP- сервер, поддерживающий работу с самыми современными технологиями по защите данных — SSL и IPv6, его реализация совмещает в себе высокую надёжность, стабильность, скорость работы и передачи данных, а также гибкую настройку работы сервера и широкий функционал. Разработчиком vsFTPd является Крис Эванс — профессиональный исследователь в сферах защиты данных и информационной безопасности. vsFTPd является FTP-сервером по-умолчанию практически во всех Linux-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:

  1. Работа с виртуальными пользователями.
  2. Работа с виртуальными IP-адресами.
  3. Конфигурирование пользователей.
  4. Поддержка
  5. SSL-шифровние для защиты передаваемых данных.
  6. Контроль полосы пропускания.

В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html.

Установка vsFTPd

Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:

$ sudo apt-get install vsftpd

Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:

$ apt-get install ftp

Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:

$ yum install vsftpd
$ yum install ftp

Примечание: yum – это пакетный менеджер, тот же самый apt, но адаптированный для управления пакетами формата *.rpm.

После установки для vsFTPd будет доступна техническая документация, которая обычно находится в каталоге /usr/share/doc/vsftpd/examples – здесь приведены варианты различных конфигураций, в зависимости от характера и масштабов использования vsFTPd. Ознакомиться с документацией можно также с помощью команды:

$ man vsftpd.conf

Обычно после установки демон vsFTPd автоматически запускается, убедиться в этом можно с помощью следующих команд:

$ systemctl status vsftpd

или:

$ service vsftpd status

Запуск, перезапуск и остановка сервера:

$ systemctl start vsftpd
$ systemctl restart vsftpd
$ systemctl stop vsftpd

Для включения демона vsftpd в автозагрузку используется команда:

$ systemctl enable vsftpd

Аналогично и с командой service.

Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:

$ ufw allow 20/tcp
$ ufw allow 21/tcp

Настройка vsFTPd

Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:

$ cat /etc/vsftpd/vsftpd.conf

На всякий случай полезно перед редактированием оригинального файла настроек сделать его резервную копию:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.

Настройка в режиме анонимного доступа

Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp» или «anonymous», при этом в качестве пароля используется e-mail.

Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:

anonymous_enable=YES

Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь — обычно ftp.

Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:

$ sudo mkdir /srv/share/ftp
$ sudo usermod -d /srv/share/ftp ftp

Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:

anon_upload_enable=YES

Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:

$ systemctl restart vsftpd

Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:

$ ftp 127.0.0.1

или:

$ ftp localhost

что в случае успешного выполнения даст примерно такой вывод:

Настройка в режиме авторизованного доступа

Для авторизованного доступа проще всего включить использование локальных учётных записей на сервере. Для этого нужно указать следующую директиву в файле конфигурации vsftpd.conf:

local_enable=YES

Для задания разрешения локальным авторизованным пользователям загружать файлы на сервер указывается директива:

write_enable=YES

Примечание: для авторизации локальных пользователей используется пароль пользователя для локального входа в систему.

Теперь нужно перезапустить vsftpd для активации сделанных изменений:

$ systemctl restart vsftpd

Ограничение пользователей в своих домашних каталогах

Для определения пользователей, которым разрешён доступ только к своему домашнему каталогу существуют директивы:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Первая включает использование списка пользователей, вторая определяет файл, в котором в каждой строке перечислены пользователи с доступом только к своим домашним каталогам. Если при этом ещё указать директиву:

chroot_local_user=YES

которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.

При распределении FTP-доступа среди пользователей может возникнуть ошибка, которая возникает из-за того, что локальный пользователь имеет права на запись в корне домашнего каталога, что по соображениям безопасности недопустимо. Эта ошибка выглядит следующим образом:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:

local_root=/home

Можно также для устранения этой ошибки отключить проверку на запись в домашний каталог:

allow_writeable_chroot=YES

Но всё же это стоит делать лишь тогда, когда есть чёткое понимание, зачем это нужно для конкретной ситуации.

Защита данных с помощью SSL

Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.

Для включения режима FTPS нужно задействовать следующую директиву:

ssl_enable=Yes

По умолчанию в конфигурационном файле vsftpd.conf также присутствуют опции, определяющие сертификаты и ключи, например:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как установить FTP-сервер с VSFTPD на Ubuntu 18.04

FTP (протокол передачи файлов) – это стандартный сетевой протокол, используемый для передачи файлов в удаленную сеть и из нее. Для более безопасной и быстрой передачи данных используйте SCP.

Для Linux доступно множество FTP-серверов с открытым исходным кодом. Самыми популярными и широко используемыми являются PureFTPd, ProFTPD и vsftpd. В этой статье мы будем устанавливать vsftpd. Это стабильный, безопасный и быстрый FTP-сервер. Мы также покажем вам, как настроить vsftpd для ограничения доступа пользователей к их домашнему каталогу и шифрования всей передачи с помощью SSL/TLS.

Хотя эта статья написана для Ubuntu 18.04, такие же инструкции применяются к Ubuntu 16.04 и любому дистрибутиву на базе Debian, включая Debian, Linux Mint и Elementary OS.

 

Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.

 

Пакет vsftpd доступен в репозиториях Ubuntu. Чтобы установить его, просто выполните следующие команды:

sudo apt update
sudo apt install vsftpd

 

Служба vsftpd автоматически запустится после завершения процесса установки. Проверьте его, распечатав статус службы:

sudo systemctl status vsftpd

 

Результат будет выглядеть примерно так, показывая, что служба vsftpd активна и работает:

* vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago
 Main PID: 2616 (vsftpd)
    Tasks: 1 (limit: 2319)
   CGroup: /system.slice/vsftpd.service
           `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

 

Сервер vsftpd можно настроить, отредактировав файл /etc/vsftpd.conf. Большинство настроек задокументированы внутри файла конфигурации. Для всех доступных вариантов посетите официальную страницу vsftpd.

В следующих разделах мы рассмотрим некоторые важные настройки, необходимые для настройки безопасной установки vsftpd.

Начните с открытия файла конфигурации vsftpd:

sudo nano /etc/vsftpd.conf

 

Мы разрешаем доступ к FTP-серверу только локальным пользователям, находим директивы anonymous_enable и local_enable и проверяем соответствие вашей конфигурации следующим строкам:

/etc/vsftpd.conf

anonymous_enable=NO
local_enable=YES

 

Раскомментируйте настройку write_enable, чтобы разрешить изменения в файловой системе, такие как загрузка и удаление файлов.

/etc/vsftpd.conf

write_enable=YES

 

Чтобы пользователи FTP не могли получить доступ к каким-либо файлам вне своих домашних каталогов, раскомментируйте настройку chroot.

/etc/vsftpd.conf

chroot_local_user=YES

 

По умолчанию для предотвращения уязвимости безопасности, когда chroot включен, vsftp откажется загружать файлы, если каталог, в котором пользователи заблокированы, доступен для записи.

vsftpd может использовать любой порт для пассивных FTP-соединений. Мы укажем минимальный и максимальный диапазон портов, а затем откроем диапазон в нашем брандмауэре.

Добавьте в файл конфигурации следующие строки:

/etc/vsftpd.conf

pasv_min_port=30000
pasv_max_port=31000

 

Чтобы разрешить только определенным пользователям входить на FTP-сервер, добавьте следующие строки в конец файла:

/etc/vsftpd.conf

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

 

Когда эта опция включена, вам необходимо явно указать, какие пользователи могут войти, добавив имена пользователей в файл /etc/vsftpd.user_list (по одному пользователю в строке).

Чтобы шифровать FTP-передачи с помощью SSL/TLS, вам необходимо иметь сертификат SSL и настроить FTP-сервер для его использования.

Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самоподписанный сертификат.

Если у вас есть домен или поддомен, указывающий на IP-адрес FTP-сервера, вы можете легко создать бесплатный сертификат SSL для шифрования.

В этой статье мы сгенерируем самоподписанный сертификат SSL с помощью команды openssl.

Следующая команда создаст 2048-битный закрытый ключ и самоподписанный сертификат, действительный в течение 10 лет. Как закрытый ключ, так и сертификат будут сохранены в одном файле:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

 

Теперь, когда создан SSL-сертификат, откройте файл конфигурации vsftpd:

sudo nano /etc/vsftpd.conf

 

Найдите директивы rsa_cert_fileи rsa_private_key_file, измените их значение pam в пути к файлу и установите директиву ssl_enable на YES:

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem           
ssl_enable=YES

 

Если не указано иное, FTP-сервер будет использовать только TLS для обеспечения безопасных подключений.

 

После того, как вы закончите редактирование, файл конфигурации vsftpd (исключая комментарии) должен выглядеть примерно так:

/etc/vsftpd.conf

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

 

Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:

sudo systemctl restart vsftpd

 

Если вы используете брандмауэр UFW, вам необходимо разрешить FTP-трафик.

Чтобы открыть порт 21( порт команд FTP), порт 20( порт данных FTP) и 30000-31000(диапазон пассивных портов), выполните следующие команды:

sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp

 

Чтобы избежать блокировки, мы откроем порт 22:

sudo ufw allow OpenSSH

 

Перезагрузите правила UFW, отключив и снова включив UFW:

sudo ufw disablesudo ufw enable

 

Чтобы проверить выполнение изменений:

sudo ufw status

 

Status: active

To                         Action      From
--                         ------      ----
20:21/tcp                  ALLOW       Anywhere                  
30000:31000/tcp            ALLOW       Anywhere                  
OpenSSH                    ALLOW       Anywhere                  
20:21/tcp (v6)             ALLOW       Anywhere (v6)             
30000:31000/tcp (v6)       ALLOW       Anywhere (v6)             
OpenSSH (v6)               ALLOW       Anywhere (v6)

 

Чтобы протестировать наш FTP-сервер, мы создадим нового пользователя.

  • Если у вас уже есть пользователь, которому вы хотите предоставить FTP-доступ, пропустите 1-й шаг.
  • Если вы установили allow_writeable_chroot=YES в своем файле конфигурации, пропустите 3-й шаг.
  1. Создайте нового пользователя с именем newftpuser:
    sudo adduser newftpuser

     

  2. Добавьте пользователя в список разрешенных пользователей FTP:
    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

     

  3. Создайте дерево каталогов FTP и установите правильные разрешения:
    sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftp

     

    Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload.

На данный момент ваш FTP-сервер полностью работоспособен, и вы должны иметь возможность подключаться к вашему серверу с любым FTP-клиентом, который может быть настроен на использование шифрования TLS, например FileZilla.

 

По умолчанию при создании пользователя, если явно не указано, у пользователя будет доступ к серверу SSH.

Чтобы отключить доступ к оболочке, мы создадим новую оболочку, которая просто напечатает сообщение, сообщающее пользователю, что их учетная запись ограничивается только доступом к FTP.

Создайте оболочку /bin/ftponly и сделайте ее исполняемой:

echo -e '#!/bin/sh\necho "This account account is limited to FTP access only."' | sudo tee -a  /bin/ftponlysudo chmod a+x /bin/ftponly

 

Добавьте новую оболочку в список допустимых оболочек в файл /etc/shells

echo "/bin/ftponly" | sudo tee -a /etc/shells

 

Измените оболочку пользователя на /bin/ftponly:

sudo usermod newftpuser -s /bin/ftponly

 

В этой статье вы узнали, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Ubuntu 18.04.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как настроить FTP-сервер в Ubuntu 18.04 с Vsftpd

FTP — это способ передачи файлов между двумя компьютерами. Один из старейших методов, а FTP — самый распространенный способ передачи файлов в Интернете.

В этом руководстве объясняется, как установить FTP-сервер в Ubuntu 18.04. Чтобы настроить FTP-сервер в Ubuntu, нам необходимо установить программное обеспечение FTP-сервера. Vsftpd, что означает очень безопасный FTP-демон, это лучшее FTP-решение для Ubuntu 18.04.

Чтобы настроить FTP-сервер, войдите в командную строку Ubuntu и выполните следующие шаги с правами root.

  1. Установите vsftpd с помощью команды apt-get:
      apt-get обновить
    apt-get install vsftpd  
  2. После установки откройте файл /etc/vsftpd.conf .
  3. Убедитесь, что для anonymous_enable установлено значение нет , а для local_enable установлено значение да :
      anonymous_enable = НЕТ
    local_enable = ДА  
  4. Раскомментируйте (удалите # в начале строки) строку write_enable и убедитесь, что для нее установлено значение YES :
      write_enable = ДА  
  5. Найдите и раскомментируйте: chroot_local_user = YES :
      chroot_local_user = ДА  
  6. Затем добавьте следующую строку, чтобы разрешить запись chroot:
      allow_writeable_chroot = ДА  
  7. Наконец, сохраните файл vsftpd.conf и перезапустите службу vsftpd:
      systemctl перезапуск vsftpd.service  

Теперь, когда мы настроили FTP-сервер в Ubuntu 18.04, вы можете использовать FTP-клиент (например, FileZilla) для доступа к FTP-серверу с удаленного компьютера.

(обратите внимание, что если ваш сервер Ubuntu находится за брандмауэром, вам необходимо открыть FTP-порт 21 на брандмауэре)

Включить пассивный режим FTP

При подключении к FTP-серверу клиент FTP будет использовать активный режим (по умолчанию) или пассивный режим.Если клиент находится за брандмауэром (например, брандмауэром Windows в Windows) активный режим не будет работать, и клиент FTP переключится в пассивный режим. В этом случае на FTP-сервере Ubuntu должен быть включен пассивный режим FTP.

Чтобы включить пассивный режим FTP, откройте файл /etc/vsftpd.conf .

  1. Добавьте строку pasv_enable = Yes:
      pasv_enable = Да  
  2. Определите диапазон портов, которые будут использоваться для передачи данных:
      pasv_min_port = 10090
    pasv_max_port = 10100  
  3. Перезагрузите FTP-сервер:
      systemctl перезапуск vsftpd.сервис  

(Обратите внимание, что если сервер Ubuntu находится за брандмауэром, вам необходимо открыть диапазон портов, определенный в конфигурации, вместе с FTP-портом 21.)

Запуск, остановка и перезапуск FTP-сервера

Вы можете запускать, останавливать и перезапускать сервер vsftpd в Ubuntu с помощью команды systemctl, например, чтобы остановить FTP-сервер, выполните:

  systemctl stop vsftpd  

По умолчанию vsftpd настроен на автоматический запуск, если нет, запустите:

  systemctl включить vsftpd  

Если вы не хотите запускать сервер автоматически, запустите:

  systemctl отключить vsftpd  

Для просмотра статуса сервера запустите:

  systemctl статус vsftpd  

.

Как установить и настроить FTP-сервер в Ubuntu с VSFTPD

Если вы хотите установить FTP-сервер в Ubuntu, вы не сможете превзойти простоту vsftpd.

FTP означает протокол передачи файлов. Он похож на HTTP (протокол передачи гипертекста) тем, что определяет язык для передачи данных по сети. По умолчанию FTP не зашифрован, поэтому сам по себе это не лучший выбор для безопасной передачи данных.

Это руководство поможет вам установить и настроить FTP-сервер (vsftpd) в Ubuntu 18.04.

  • Доступ к учетной записи пользователя с привилегиями sudo
  • Доступ к окну терминала / командной строке (Ctrl-Alt-T)
  • Менеджер пакетов apt , включен по умолчанию

Шаг 1: Обновите системные пакеты

Начните с обновления ваших репозиториев — введите следующее в окне терминала:

  обновление sudo apt-get  

Система переходит к обновлению репозиториев.

Шаг 2. Резервное копирование файлов конфигурации

Перед внесением любых изменений обязательно сделайте резервную копию файлов конфигурации.

1. Создайте резервную копию файла конфигурации по умолчанию, введя следующее:

  sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default  

Эта команда создает копию файла конфигурации по умолчанию.

2. Создайте новый файл конфигурации vsftpd /etc/vsftpd.conf , используя предпочитаемый текстовый редактор:

  $ sudo nano / etc / vsftpd.конф  

Шаг 3. Установка сервера vsftpd на Ubuntu

В Ubuntu обычно используется FTP-утилита с открытым исходным кодом vsftpd . Рекомендуется из-за простоты использования.

1. Для установки vsftpd введите команду:

  sudo apt установить vsftpd  

Это пример вывода в Ubuntu.

2. Чтобы запустить службу и включить ее при запуске:

  sudo systemctl start vsftpd

sudo systemctl включить vsftpd  

Примечание: Инструкция по установке и настройке FTP с Vsftpd также доступна для CentOS 7.

Создайте нового пользователя FTP с помощью следующих команд:

  sudo useradd –m testuser

sudo пароль testuser  

Система должна попросить вас создать пароль для новой учетной записи testuser . Создайте образец файла в домашней учетной записи нового пользователя:

  sudo mkdir / главная / testuser  

Шаг 5: Настройте брандмауэр для разрешения FTP-трафика

Если вы используете UFW, который входит в стандартную комплектацию Ubuntu, он по умолчанию блокирует FTP-трафик.Введите следующие команды, чтобы открыть портов 20 и 21 для трафика FTP:

  sudo ufw разрешить 20 / tcp

sudo ufw разрешить 21 / tcp  

Примечание: Если вы используете другой брандмауэр, обратитесь к инструкциям, чтобы разрешить доступ на порт 20 и порт 21 . Это порты прослушивания для службы FTP.

Шаг 6: Подключитесь к FTP-серверу Ubuntu

Подключитесь к FTP-серверу с помощью следующей команды:

  судо ftp ubuntu-ftp  

Замените ubuntu-ftp на имя вашей системы (взятое из командной строки).

Войдите в систему , используя учетную запись testuser и пароль, который вы только что установили. Теперь вы должны успешно войти на свой FTP-сервер.

Настройка и защита сервера Ubuntu vsftpd

По умолчанию FTP-сервер использует каталог / srv / ftp в качестве каталога по умолчанию. Вы можете изменить это, создав новый каталог и изменив домашний каталог пользователя FTP.

Чтобы изменить домашний каталог FTP, введите следующее:

  sudo mkdir / SRV / ftp / новое_расположение

sudo usermod –d / srv / ftp / new_location ftp  

Перезапустите службу vsftpd , чтобы изменения вступили в силу:

  sudo systemctl перезапуск vsftpd.обслуживание  

Теперь вы можете поместить любые файлы, которыми хотите поделиться через FTP, в папку / srv / ftp (если вы оставили ее по умолчанию) или в каталог / srv / ftp / new_location / (если вы поменял).

Если вы хотите разрешить авторизованным пользователям загружать файлы, отредактируйте файл vsftpd.conf , введя следующее:

  Судо нано /etc/vsftpd.conf  

Найдите запись с меткой write_enable = NO и измените значение на « YES .”

Сохраните файл, выйдите, затем перезапустите службу FTP со следующим:

  sudo systemctl перезапуск vsftpd.service  

Это позволяет пользователю вносить изменения в свой домашний каталог.

Многие эксплойты используют незащищенные FTP-серверы. В ответ, в vsftpd.conf есть несколько параметров конфигурации, которые могут помочь защитить ваш FTP-сервер.

Один из способов — ограничить пользователей их домашним каталогом.Откройте vsftpd.conf в редакторе и раскомментируйте следующую команду:

  chroot_local_user = ДА  

Это пример файла в nano :

Чтобы создать файл списка, отредактируйте /etc/vsftpd.chroot_list и добавьте по одному пользователю в каждой строке.

Укажите своему FTP-серверу ограничить этот список пользователей их собственными домашними каталогами, отредактировав vsftpd.conf :

  chroot_local_user = ДА

chroot_list_file = / и т.д. / vsftpd.chroot_list  

Изображение иллюстрирует внесенные правки:

Перезапустите службу vsftpd :

  sudo systemctl перезапуск vsftpd.service  

По умолчанию список пользователей, которым заблокирован доступ по FTP, хранится в / etc / ftpusers . Чтобы добавить заблокированных пользователей, отредактируйте этот файл и добавьте по одному пользователю в каждой строке.

Шифрование трафика с помощью FTPS

Другой метод защиты FTP-сервера — это шифрование трафика.Это делается с помощью FTPS — протокол передачи файлов через SSL (Secure Socket Layer).

Чтобы это работало, пользователи должны быть настроены с учетной записью оболочки на FTP-сервере. Это добавит уровень безопасного шифрования к вашему FTP-трафику. Чтобы настроить FTPS, откройте файл vsftpd.conf в редакторе и добавьте следующие строки:

  ssl_enable = ДА

rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem

rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.ключ  

Файл должен выглядеть так:

Перезапустите службу, чтобы изменения вступили в силу:

  sudo systemctl перезапуск vsftpd.service  

Примечание: Для получения дополнительной информации о конфигурации и сертификатах SSL см. Документацию по FTP-серверу Ubuntu. Также стоит отметить, что FTPS — это протокол, отличный от SFTP. SFTP расшифровывается как Secure File Transfer Protocol, и это совершенно другой протокол.

Теперь вы должны были установить FTP-сервер на Ubuntu с vsftpd .

Теперь у вас должна быть возможность настраивать списки пользователей и учетные записи, а также подключаться к новому FTP-серверу. Мы также подробно описали риски протокола FTP и способы их снижения.

.

Как настроить FTP-сервер с vsftpd в Ubuntu 18.04 LTS — Linux Hint

vsftpd — это FTP-сервер с открытым исходным кодом. Это очень безопасно и очень быстро. vsftpd тоже стабилен. Также его легко настроить. В этой статье я покажу вам, как установить и настроить FTP-сервер vsftpd в Ubuntu 18.04 LTS.

Установка vsftpd:

Vsftpd доступен в официальном репозитории пакетов Ubuntu. Таким образом, вы можете легко установить его на свой компьютер с Ubuntu с помощью диспетчера пакетов APT.
Сначала обновите кеш репозитория пакетов APT с помощью следующей команды:

Теперь установите vsftpd с помощью следующей команды:

$ sudo apt установить vsftpd

Должен быть установлен

vsftpd.

Файл конфигурации vsftpd:

Файл конфигурации vsftpd: /etc/vsftpd.conf .

Исходный файл конфигурации vsftpd содержит все поддерживаемые параметры (большинство из них закомментированы) с большим количеством документации, которая поможет вам легко понять, что эти параметры делают.Поэтому я предпочитаю хранить резервную копию исходного файла конфигурации и создавать новый пустой файл конфигурации. Затем поместите все параметры конфигурации, которые вы хотите применить, к новому файлу конфигурации. Таким образом, если вам понадобится помощь, вы всегда сможете взглянуть на файл конфигурации резервной копии. Файл конфигурации также будет очень маленьким и простым.

Чтобы создать резервную копию исходного файла конфигурации /etc/vsftpd.conf , выполните следующую команду:

$ sudo mv -v / и т.д. / vsftpd.conf /etc/vsftpd.conf.bk

Теперь создайте новый пустой файл конфигурации с помощью следующей команды:

$ sudo touch /etc/vsftpd.conf

Теперь вы можете получить доступ к исходному файлу конфигурации с резервной копией следующим образом:

$ меньше /etc/vsftpd.conf.bk

Если вам понадобится помощь, вы всегда можете посмотреть исходную резервную копию файла конфигурации.

Настройка vsftpd:

В этой статье я настрою очень простой FTP-сервер, на котором вы сможете войти в систему как любой пользователь на сервере и загружать файлы в соответствующие домашние каталоги.

Сначала откройте файл конфигурации vsftpd /etc/vsftpd.conf с помощью следующей команды:

$ sudo nano /etc/vsftpd.conf

Теперь введите следующие строки в файл конфигурации и сохраните файл, нажав + x , затем y и .

listen = YES
listen_ipv6 = NO
connect_from_port_20 = YES

anonymous_enable = NO
local_enable = YES
write_enable = YES
chroot_local_user = YES
allow_writeable_serd5000 vs
allow_writeable_chroot = YES
allow_writeable_chroot = YES
0005 allow_writeable_chroot = YES 9000
pasv_enable = ДА
pasv_min_port = 40000
pasv_max_port = 45000

userlist_enable = ДА
userlist_file = / etc / vsftpd.список пользователей
userlist_deny = NO

Теперь предположим, что вы хотите разрешить только пользователям linda , alex и bob получить доступ к своим домашним каталогам через FTP. Для этого вам нужно добавить эти имена пользователей в список /etc/vsftpd.userlist .

Теперь откройте файл /etc/vsftpd.userlist с помощью nano следующим образом:

$ sudo nano /etc/vsftpd.userlist

Теперь введите здесь имена пользователей, которым вы хотите разрешить доступ к их HOME каталогам через FTP.Затем сохраните файл, нажав + x , а затем y и .

Теперь перезапустите службу vsftpd с помощью следующей команды:

$ sudo systemctl перезапуск vsftpd

Теперь выполните следующую команду, чтобы проверить, запущена ли служба vsftpd:

$ sudo systemctl статус vsftpd

Как видите, служба vsftpd запущена. Итак, мы настроили его правильно.

Добавление пользователей FTP:

Теперь вам нужно добавить новых пользователей (скажем, linda , bob , alex ) в ваших операционных системах. Затем эти пользователи смогут войти на FTP-сервер и загружать файлы.

Вы можете создать пользователя linda с помощью следующей команды:

Также необходимо установить пароль для входа для пользователя linda . Это также будет пароль для входа на FTP для пользователя linda .

Теперь установите пароль для входа в систему для пользователя linda с помощью следующей команды:

Теперь введите пароль для linda и нажмите .

Повторно введите тот же пароль для linda и нажмите . Пароль должен быть установлен.

Таким же образом создайте пользователя bob и alex .

Также установите пароль для пользователя bob и alex .

$ sudo passwd bob
$ sudo passwd алекс

Доступ к FTP-серверу:

Вы можете легко получить доступ к своему FTP-серверу с помощью FTP-клиента FileZilla. Вы также можете добавить учетную запись FTP в Windows в качестве сетевого расположения. В этом разделе я покажу вам оба способа доступа к FTP-серверу.

Сначала выполните следующую команду, чтобы узнать IP-адрес вашего FTP-сервера:

Как видите, IP-адрес моего FTP-сервера — 192.168.21.186 . Для вас все будет иначе.Так что убедитесь, что вы заменили его своим.

Чтобы подключиться с помощью FTP-клиента FileZilla, откройте FileZilla, введите IP-адрес в разделе Host , имя пользователя и пароль для входа в систему Username и Password section, Port 21, а затем нажмите Quickconnect . Вы должны быть связаны.

Как видите, я загрузил несколько файлов, и все заработало.

Если вы хотите подключить свою учетную запись FTP в качестве сетевого расположения в Windows, откройте File Explorer и щелкните Computer > Добавьте сетевое расположение , как отмечено на снимке экрана ниже.

Теперь нажмите Далее .

Теперь выберите Выберите настраиваемое сетевое расположение и нажмите Далее .

Теперь введите IP-адрес вашего FTP-сервера (ftp://192.168.21.186), как отмечено на скриншоте ниже, и нажмите Next .

Теперь убедитесь, что Вход анонимно не отмечен и введите свое имя пользователя FTP. Затем нажмите Далее .

Затем введите имя своего сетевого расположения. Это может быть что угодно. Затем нажмите Далее .

Теперь нажмите Готово .

Теперь введите пароль своего FTP-пользователя и нажмите Log On .

Вы должны войти в систему. Как видите, все файлы, которые я загружал ранее с помощью FileZilla, уже есть.

Как видите, я загрузил другой файл, и он работает.

Теперь, когда вы подключены, вы можете получить доступ к своей учетной записи FTP в любое время из проводника Windows.

Как видите, я добавил еще 2 FTP-аккаунта в Windows. Теперь я могу работать со всеми одновременно.

Итак, вот как вы устанавливаете и настраиваете FTP-сервер в Ubuntu 18.04 LTS с vsftpd.

.

Передача файлов между Ubuntu и Windows с использованием FTP

В этом руководстве мы узнаем, как использовать vsftpd в Linux, чтобы заставить машину Ubuntu работать как ftp-сервер и передавать файлы через Wi-Fi в локальной сети.

Во многих случаях вам необходимо локально копировать файлы с одного компьютера на другой и делать их резервные копии. Использование физического диска, такого как флэш-накопитель или внешний жесткий диск, не всегда возможно из-за множества ограничений, таких как большой размер файла, доступность внешнего диска.

Настройка

Мы можем использовать преимущества машин, находящихся в одной сети, для передачи файлов.

Чтобы следовать этому руководству, у вас должен быть доступ к следующим

  • Ubuntu Machine
  • Windows Machine
  • Обе машины подключены к одной сети с помощью Ethernet или Wi-Fi

Как установить VFTP на Ubuntu

Откройте терминал для получения и установки vsftp demon из официального репозитория ubuntu.

sudo apt-get install vsftpd

Приведенная выше команда установит демон vsftp , что означает, что он всегда будет работать в фоновом режиме при запуске машины с использованием init .

Используйте следующие команды для проверки службы vsftp

sudo service vsftpd status

Если служба запущена, то вышеуказанная команда выведет состояние службы со всеми порожденными идентификаторами процессов vsftp .

Вы также можете проверить процесс vsftp с помощью grep

ps -ef | grep vsftp

Как настроить VSFTP для загрузки

Этот шаг не является обязательным, но если вы хотите разрешить загрузку с удаленного компьютера на свой сервер ubuntu, выполните следующие настройки.

После установки vsftp создаст файл конфигурации по пути /etc/vsftpd.conf . Этот файл должен принадлежать root и иметь конфигурацию vsftp по умолчанию. По умолчанию VSFTP не разрешает загрузку по ftp; чтобы включить его, раскомментируйте строку write_enable = YES

  # Раскомментируйте это, чтобы разрешить любую форму команды записи FTP.
write_enable = ДА
  

Обратите внимание, что /etc/vsftpd.conf будет принадлежать root , чтобы делать любые изменения в конфигурации. sudo vim /etc/vsftpd.conf или sudo gedit /etc/vsftpd.conf

Перезапустите демон vsftpd после завершения настройки.

sudo service vsftpd restart

Проверить статус после перезапуска.

sudo service vsftpd status

Как настроить брандмауэр Ubuntu для FTP

По умолчанию в Ubuntu должен быть запущен брандмауэр, известный как несложный брандмауэр ( ufw ). Правила брандмауэра по умолчанию не разрешают никаких внешних подключений.

Чтобы открыть порт ftp на этом брандмауэре, используйте следующие команды.

Проверьте статус брандмауэра с помощью

sudo ufw status

Брандмауэр должен быть активен и работать. Если он не активен, включите его, используя следующую команду, чтобы обезопасить свой компьютер.

Вы можете отключить его, если у вас есть такое требование, однако рекомендуется оставить его включенным. sudo ufw enable

Чтобы открыть ftp-порт 21 , используйте следующую команду:

sudo ufw allow ftp или sudo ufw allow 21

Это добавит правило брандмауэра для приема ftp-соединений с другого компьютера в сети.После добавления правила ftp в вашем брандмауэре должны быть следующие записи. sudo ufw статус

 
Статус: активен
К действию от
- ------ ----
21 / tcp ALLOW Anywhere
21 / tcp (v6) РАЗРЕШИТЬ В любом месте (v6)
  

Настроить брандмауэр Windows

Брандмауэр должен разрешить вам инициировать сеанс ftp с компьютера Windows.Найдите Windows Firewall в меню «Пуск», чтобы открыть окно настройки брандмауэра.

Поскольку мы собираемся использовать один раз ftp, мы отключим брандмауэр и снова включим его после завершения ftp. В зависимости от того, к какой сети вы подключены: к домашней или общедоступной, вы можете отключить брандмауэр, как показано ниже.

Обратите внимание, что полное отключение брандмауэра не рекомендуется. Если вы собираетесь регулярно использовать ftp-сервер с компьютера Windows, создайте правила брандмауэра в Брандмауэр Windows с повышенной безопасностью на порту 21

Инициируйте сеанс FTP с помощью командной строки Windows

Как только мы закончим с необходимыми конфигурациями, мы можем начать сначала FTP-соединение из командной строки Windows.Сначала получите IP-адрес машины, на которой размещен FTP-сервер, с помощью команды ifconfig на машине с Ubuntu. Используйте eth0 inet-адрес , если вы подключены с помощью кабеля Ethernet. Для беспроводного подключения используйте inet адрес интерфейса wlan0 . Моя машина ubuntu имеет следующий локальный IP-адрес 192.168.2.102 .

ifconfig

 
eth0 Link encap: Ethernet
          ВВЕРХ ТРАНСЛЯЦИИ МУЛЬТИКАСТ MTU: 1500 Метрика: 1
          Пакеты RX: 0 ошибок: 0 отброшено: 0 переполнений: 0 кадров: 0
          Пакеты TX: 0 ошибок: 0 отброшено: 0 переполнений: 0 носитель: 0
          коллизии: 0 txqueuelen: 1000
          Байт RX: 0 (0.0 B) Байты TX: 0 (0,0 B)

wlan0 Link encap: Ethernet
          inet адрес: 192.168.2.102 Bcast: 192.168.2.255 Маска: 255.255.255.0
          ВВЕРХ ТРАНСЛЯЦИИ МУЛЬТИКАСТ MTU: 1500 Метрическая система: 1
          Пакеты RX: 24006 ошибок: 0 отброшено: 0 переполнений: 0 кадров: 0
          Пакеты TX: 8312 ошибок: 0 сброшено: 0 переполнений: 0 несущая: 0
          коллизии: 0 txqueuelen: 1000
          Байт приема: 12996852 (12,9 МБ) байтов передачи: 1224374 (1,2 МБ)
  

Чтобы инициировать соединение, откройте командную строку в Windows и используйте следующую команду. ftp 192.168.2.102

Он запросит имя пользователя и пароль. Имя пользователя будет таким же, как у пользователя ubuntu (в моем случае — techmonger), а пароль будет системным паролем пользователя ubuntu.

Чтобы получить файл с ftp-сервера ubuntu, перейдите в каталог и используйте команду get, как показано ниже.

  ftp> получить имя файла  

Чтобы загрузить файл с компьютера Windows на сервер ftp, введите команду, как показано ниже.

  ftp> введите имя файла  

Чтобы завершить сеанс ftp, используйте до свидания.

  ftp> пока  

Инициируйте FTP-соединение с использованием ftp-клиента в Windows

К настоящему моменту вы согласитесь, что выполнение ftp из командной строки Windows немного утомительно. Мы можем использовать ftp-клиент, такой как winscp или filezilla , чтобы получить графический интерфейс для операций ftp.

Использовать имя хоста как IP-адрес ftp-сервера (192.168.2.102 в моем случае) и те же учетные данные, что и у пользователя ubuntu.

Как показано ниже, вы можете инициировать соединение из filezilla.Вы можете использовать перетаскивание, чтобы загружать и выгружать файлы с компьютера Windows.

Аспекты безопасности FTP — брандмауэр и службы

Все ftp-соединения будут инициироваться в виде обычного текста. Вы должны использовать вышеуказанный метод, только если вы находитесь в локальной сети и полностью контролируете сеть . Для зашифрованных соединений используйте sftp или ftps .

  • Удалите правило брандмауэра из ubuntu, когда требования ftp будут выполнены.

  • sudo ufw deny ftp или sudo ufw deny 21

  • Включите межсетевой экран Winows после того, как требование ftp будет выполнено.

  • Остановить демон vsftp, если ftp больше не нужен для экономии системных ресурсов. Это также сделает вашу систему менее уязвимой.

    sudo service vsftpd stop

Заключение: вы можете настроить свой компьютер с Ubuntu как ftp-сервер и передавать файлы локально. Вам не нужен SMB (блок сообщений сервера) для передачи файлов между машиной Linux и машиной Windows по сети.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *