Разное

Linux ftp server: Как создать FTP-сервер в Linux

Содержание

Как создать FTP-сервер в Linux

Передача файлов в сети осуществляется благодаря правильно настроенному FTP-серверу. Такой протокол работает с применением TCP по архитектуре клиент-сервер и задействует различные сетевые соединения для обеспечения передачи команд между подключенными узлами. Пользователи, которые подключились к определенному хостингу, сталкиваются с надобностью настройки личного FTP-сервера по требованиям компании, предоставляющей услуги обеспечения работы сайта или другого обеспечения. Далее мы продемонстрируем, как создается такой сервер в Linux на примере одной из утилит.

Создаем FTP-сервер в Linux

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

Шаг 1: Установка VSftpd

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

  1. Откройте «Терминал» любым удобным методом, например, через меню.
  2. Обладателям версий Debian или Ubuntu требуется прописать команду sudo apt-get install vsftpd. CentOS, Fedora — yum install vsftpd, а для Gentoo — emerge vsftpd. После введения нажмите на Enter, чтобы запустить процесс инсталляции.
  3. Подтвердите наличие прав у своей учетной записи, указав соответствующий пароль.
  4. Ожидайте завершения добавления новых файлов в систему.

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

yum update
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum install yum-plugin-fastestmirror
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-devel-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-doc-3.15.6-1.el7.elrepo.noarch.rpm
yum install kernel-ml-doc-3.15.6-1.el7.elrepo.noarch.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-headers-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-headers-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-tools-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors. neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-tools-libs-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-tools-libs-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-tools-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-tools-libs-devel-3.15.6-1.el7.elrepo.x86_64.rpm
yum install kernel-ml-tools-libs-devel-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/perf-3.15.6-1.el7.elrepo.x86_64.rpm
yum install perf-3.15.6-1.el7.elrepo.x86_64.rpm
wget http://mirrors.neterra.net/elrepo/kernel/el7/x86_64/RPMS/python-perf-3.15.6-1.el7.elrepo.x86_64.rpm
yum install python-perf-3.15.6-1.el7.elrepo.x86_64.rpm
yum --enablerepo=elrepo-kernel install kernel-ml

После окончания всей этой процедуры запустите любым удобным образом конфигурационный файл /boot/grub/grub.conf. Измените его содержимое таким образом, чтобы в итоге следующие параметры имели соответствующие значения:

default=0
timeout=5
title vmlinuz-4. 0.4-1.el7.elrepo.x86_64
root (hd0,0)
kernel /boot/vmlinuz-4.0.4-1.el7.elrepo.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro
initrd /boot/initramfs-4.0.4-1.el7.elrepo.x86_64.img

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

Шаг 2: Первоначальная настройка FTP-сервера

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

  1. В операционных системах Debian или Ubuntu конфигурационный файл запускается так: sudo nano /etc/vsftpd.conf. В CentOS и Fedora он находится по пути /etc/vsftpd/vsftpd.conf, а в Gentoo — /etc/vsftpd/vsftpd.conf. example.
  2. В консоли или текстовом редакторе отобразится сам файл. Здесь обратите внимание на указанные ниже пункты. В вашем конфигурационном файле они должны иметь такие же значения.

    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    chroot_local_user=YES

  3. Остальное редактирование осуществляйте сами, а после не забудьте сохранить изменения.

Шаг 3: Добавление пользователя с расширенными правами

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

  1. Запустите «Терминал» и введите команду sudo adduser user1, где user1 — имя новой учетной записи.
  2. Задайте для него пароль, после чего подтвердите его. Кроме этого, настоятельно рекомендуем запомнить домашний каталог учетной записи, в дальнейшем может понадобиться обращение к нему через консоль.
  3. Заполните основную информацию — полное имя, номер комнаты, номера телефонов и прочую информацию, если требуется.
  4. После этого присвойте пользователю расширенные права путем ввода команды sudo adduser user1 sudo.
  5. Создайте для юзера отдельную директорию под хранение его файлов через sudo mkdir /home/user1/files.
  6. Далее переместитесь в свою домашнюю папку через cd /home и там сделайте нового пользователя владельцем своей директории, введя chown root:root /home/user1.
  7. Перезапустите сервер после осуществления всех изменений sudo service vsftpd restart. Только в дистрибутиве Gentoo утилита перезагружается через /etc/init.d/vsftpd restart.

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

Шаг 4: Настройка Firewall (Только для Ubuntu)

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

  1. В консоли поочередно активируйте команды sudo ufw disable и sudo ufw enable, чтобы перезапустить Firewall.
  2. Добавьте правила входящих соединений, используя sudo ufw allow 20/tcp и sudo ufw allow 21/tcp.
  3. Проверьте, были ли применены введенные правила, просмотрев статус фаервола sudo ufw status.

Отдельно хочется отметить несколько полезных команд:

  • /etc/init.d/vsftpd start или service vsftpd start — анализ конфигурационного файла;
  • netstat -tanp | grep LISTEN — проверка корректности установки FTP-сервера;
  • man vsftpd — вызов официальной документации VSftpd для поиска необходимой информации касаемо работы утилиты;
  • service vsftpd restart или /etc/init. d/vsftpd restart — перезагрузка сервера.

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

На этом статья подходит к концу. Сегодня мы разобрали процедуру установки сервера VSftpd без привязки к какому-либо хостингу, поэтому учтите это при выполнении наших инструкций и сравнивайте их с теми, что предоставляет компания, содержащая ваш виртуальный сервер. Кроме всего, советуем ознакомиться с другим нашим материалом, в котором разбирается тема установки компонентов LAMP.

Читайте также: Установка набора программ LAMP в Ubuntu

Мы рады, что смогли помочь Вам в решении проблемы.

Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.

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

ДА НЕТ

Файловый сервер на Linux

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

Устанавливаем и настраиваем файловый сервер в Linux

Хоть сегодняшний материал и будет сосредоточен на управлении дистрибутивами Linux, не обойдем стороной и Виндовс, поскольку для начала вам придется выполнить простейшие манипуляции в этой ОС, чтобы в будущем настройка прошла успешно и не возникло никаких проблем с подключением к группе. За пример мы взяли связку Windows 10 и Ubuntu. Если вы используете другие ОС, просто придерживайтесь особенностей их реализации, которые не должны значительно отличаться от того, что вы увидите далее.

Шаг 1: Предварительная настройка Windows

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

  1. Откройте «Пуск» и запустите оттуда «Командную строку», найдя приложение через поиск.
  2. Здесь вам потребуется ввести простую команду net config workstation и нажать на клавишу Enter.
  3. В отобразившемся списке отыщите строку «Домен рабочей станции» и запомните ее значение.
  4. Снова в консоли введите notepad C:\Windows\System32\drivers\etc\hosts для открытия известного файла hosts через стандартный «Блокнот».
  5. Здесь в конце вставьте строку 192.168.0.1 srvr1.domain.com srvr1, заменив IP на адрес компьютера с Samba, и сохраните все изменения.

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

Шаг 2: Установка Samba в Linux

Начнем с непосредственной установки Samba в Линукс. Использовать для этого мы будем официальные репозитории, поэтому перед началом убедитесь, что подключение к интернету находится в активном состоянии. После этого следуйте расписанной ниже инструкции.

  1. Откройте меню приложений и запустите «Терминал».
  2. Здесь потребуется ввести команду sudo apt-get install -y samba samba-common python-glade2 system-config-samba. Она отвечает за инсталляцию дополнительных компонентов вместе с файловым сервером.
  3. Подтвердите подлинность учетной записи суперпользователя, написав пароль. Символы, вводимые в эту строку, на экране не отображаются, поэтому не стоит переживать из-за того, что букв или цифр не видно.
  4. Затем начнется процедура получения и распаковки архивов. Она может занять несколько минут, во время этой операции лучше не выполнять других действий и не закрывать консоль. Если появилась новая строка ввода, значит, инсталляция успешно завершена.

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

Шаг 3: Создание глобальных настроек

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

  1. Иногда какие-то важные параметры в конфигурационном файле все же присутствуют по умолчанию, из-за чего возникает надобность создать его резервную копию, чтобы восстановить ее при возникновении случайных сбоев. Осуществляется это путем ввода всего одной команды sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak.
  2. Все остальные действия будут производиться через текстовый редактор. Оптимальным вариантом в этом случае является nano. Если данное приложение отсутствует в вашем дистрибутиве, добавьте его через sudo apt install nano.
  3. После переходите к конфигурационному файлу, используя sudo nano /etc/samba/smb.conf.
  4. В открывшемся окне вставьте приведенные ниже строки.

    [global]
    workgroup = WORKGROUP
    server string = %h server (Samba, Ubuntu)
    netbios name = Ubuntu Share
    dns proxy = no
    log file = /var/log/samba/log.%m
    max log size = 1000
    passdb backend = tdbsam
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    pam password change = yes
    map to guest = bad user
    usershare allow guests = yes

  5. Используйте комбинацию Ctrl + O, чтобы сохранить изменения.
  6. Название файла менять не нужно, достаточно будет просто нажать на клавишу Enter.
  7. По завершении выйдите из текстового редактора, зажав Ctrl + X.

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

  1. workgroup — отвечает за имя рабочей группы. Ее мы уже узнавали в Windows, и здесь требуется задать точно такое же название, поскольку оно должно быть одинаковым абсолютно на всех соединенных устройствах.
  2. netbios name — используется для отображения имени текущего компьютера на устройстве под управлением Windows. Задайте оптимальное для себя значение.
  3. log file — указывается путь к файлу, куда будут сохраняться отчеты. Создать подобную запись нужно обязательно, чтобы всегда быть в курсе возможных ошибок и других сведений.
  4. passdb backend — определяет способ хранения паролей учетных записей. Без надобности лучше не изменять и оставить в состоянии по умолчанию.
  5. unix password sync — при активации выполняет синхронизацию паролей.
  6. map to guest — отвечает за предоставление гостевого уровня доступа определенным профилям. Если значение установлено в состояние bad user, то такая настройка применяется для несуществующих пользователей, bad password — при неправильном вводе паролей, а never — никогда.

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

Настройка FTP в CentOS 8

FTP (File Transfer Protocol) — это клиент-серверный сетевой протокол, позволяющий пользователям передавать файлы в удаленную сеть и скачивать их из нее. Для систем на базе Linux разработано несколько FTP-серверов с открытым исходным кодом. Наиболее популярные из них — PureFTPd, ProFTPD и vsftpd.

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

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

Установка FTP сервера CentOS

Для более безопасной и быстрой передачи данных используйте SCP или SFTP. Внимание! Все команды необходимо выполнять от имени пользователя sudo.

sudo su

Пакет vsftpd доступен по умолчанию в репозиториях CentOS. Для его установки, выполните следующую команду:

yum install vsftpd

Установка FTP CentOS завершена, далее надо запустить службу vsftpd и поместить ее в автозагрузку:

systemctl start vsftpd

systemctl enable vsftpd

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

systemctl status vsftpd

Вывод команды представлен на рисунке ниже:

Настройка vsftpd на CentOS

Настройка vsftp CentOS 8 производится редактированием конфигурационного файла /etc/vsftpd/vsftpd. conf. Основные параметры хорошо задокументированы в файле конфигурации. Все доступные варианты конфигураций можно найти на официальном сайте vsftpd.

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

sudo nano /etc/vsftpd/vsftpd.conf

1. Доступ по FTP

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

anonymous_enable=NO
local_enable=YES

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

write_enable=YES

2. Включение chroot

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

chroot_local_user=YES

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

Используйте один из следующих способов для включения загрузки chroot.

Способ 1. Рекомендуемый способ разрешить загрузку — оставить chroot включенным и настроить каталоги FTP. По этому способу мы создадим каталог ftp на домашнем каталоге пользователя, который будет служить chroot и записываемым каталогом  для загрузки файлов.

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

Способ 2. Другой вариант — добавить следующий параметр в файл конфигурации vsftpd. Используйте этот параметр, если вы хотите предоставить пользователям права на запись в их домашнюю директорию.

allow_writeable_chroot=YES

3. Пассивные FTP соединения

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

pasv_min_port=30000
pasv_max_port=31000

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

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

userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

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

5. Настройка SSL / TLS

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

Вы можете использовать как существующий сертификат SSL, подписанный доверенным корневым центром сертификации, или же создать самоподписный сертификат на вашем сервере. Команда, приведенная ниже, создаст 2048-битный закрытый ключ и самоподписный сертификат, который будет действовать в течение 10 лет.

Закрытый ключ и сертификат будут сохранены в одном файле:

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

После создания SSL сертификата откройте файл конфигурации vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

Добавьте строки rsa_cert_file и rsa_private_key_file и укажите в их значениях pam на путь к созданному файлу сертификата.  Затем добавьте строку ssl_enable установив для нее значение YES:

rsa_cert_file=/etc/vsftpd/vsftpd.pemrsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES

После произведенной настройки, если не указано иное, FTP-сервер всегда будет использовать TLS для установления защищенных соединений с клиентом. Перезапустите службу vsftpd.

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

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port=30000
pasv_max_port=31000
rsa_cert_file=/etc/vsftpd/vsftpd. pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES

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

sudo systemctl restart vsftpd

6. Открытие портов брандмауэра

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

sudo firewall-cmd --permanent --add-port=20-21/tcp

sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Для применения изменений потребуется перезапуск брандмауэра:

firewall-cmd --reload

Настройка ftp CentOS практически завершена.

7. Создание пользователя FTP

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

  • Если у вас уже есть пользователь, которому вы хотите предоставить доступ по FTP, пропустите первую команду.
  • Если вы установили allow_writeable_chroot = YES в своем файле конфигурации, пропустите третью команду.

Чтобы создать ftp пользователя centos 8 с именем newftpuser выполните:

sudo adduser newftpuser

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

echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list

Создадим каталоги FTP и установим для них правильные разрешения:

sudo mkdir -p /home/newftpuser/ftp/upload

sudo chmod 550 /home/newftpuser/ftp

sudo chmod 750 /home/newftpuser/ftp/upload

sudo chown -R newftpuser: /home/newftpuser/ftp

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

8. Отключение доступа к SSH

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

Наберите следующие команды, для создания /bin/ftponly оболочки и назначения ее исполняемой по умолчанию:

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

sudo chmod a+x /bin/ftponly

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

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

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

sudo usermod newftpuser -s /bin/ftponly

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

Заключение

Из нашей статьи вы смогли узнать, как легко и быстро выполняется установка и настройка ftp centos 8. Это популярный, быстрый и безопасный FTP-сервер для вашей системы под управлением CentOS 8. Спасибо за прочтение.

Установка и настройка FTP-сервер в Linux » PCmodern.ru

Что такое FTP и vsFTPd

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

vsFTPd — это дополнительный инструмент, который расширяет возможности FTP-протокола. По сути, он является полноценным сервером, который используется в Linux по умолчанию, славится высокой надежностью и большим количество функций.
vsFTPd работает с виртуальными пользователями и IP-адресами. В нем есть возможность настраивать отдельные правила для пользователей. Продукт активно поддерживается сообществом. В vsFTPd есть возможность подключить SSL-шифрование данных и так далее.

Устанавливаем vsFTPd

vsFTPd есть во всех популярных репозиториях, поэтому его легко загрузить в любой дистрибутив. Вот как это делается в Ubuntu и ей подобных системах (Linux Mint, Debian, Elementary OS).

  • Открываем терминал. Это можно сделать, одновременно нажав клавиши CtrlAltT.
  • Вводим туда команду sudo apt-get install vsftpd и нажимаем клавишу «Ввод» (Enter).

Устанавливаем vsFTPd с помощью стандартного менеджера пакетов.

  • Затем вводим пароль администратора, чтобы продолжить установку.

Возможно, придется подтвердить установку клиента, нажав на клавишу «Д» (или Y в английской версии системы).

Учтите, что во время набора пароля, вводимые символы никак не отображаются в терминале. Придется набирать вслепую
На этом все.
Для тестирования соединения можно установить стандартный FTP-сервер. Чтобы это сделать, открываем терминал и вводим в него команду sudo apt-get install ftp.

Это необязательно.

Установка vsFTPd в другие операционные системы

В разных дистрибутивах используются разные менеджеры пакетов, поэтому придется скорректировать команду под свой вариант Linux. Например:
Для Fedora — sudo dnf install vsftpd, openSUSE — sudo zypper install vsftpd, CentOS — sudo yum install vsftpd, Arch Linux — pacman -S vsftpd, Gentoo — emege vsftpd.
Чтобы установить vsFTPd в дистрибутив, не указанный в списке, нужно выяснить, какой менеджер пакетов там используется и подставить его в команду sudo название менеджера пакетов install vsftpd. Либо найти исходный код утилиты и собрать его вручную локально.

Настраиваем FTP-сервер

Перед тем как начать настройку, можно ознакомиться с файлом-инструкцией. В vsFTPd встроено большое удобное руководство по базовой настройке и запуску сервера. Оно открывается командой man vsftpd.conf Это на тот случай, если вы дружите с английским и хотите провести более тонкую настройку под свои нужды. В ином случае продолжайте читать дальше…

Все параметры FTP-сервера хранятся в одном конфигурационном файле. Он называется vsftpd.conf и в зависимости от системы может храниться либо в папке /etc/vsftpd/, либо просто в /etc/.
Например, чтобы получить доступ к настройкам в CentOS, введем в терминале sudoedit /etc/vsftpd/vsftpd.conf. А в Debian и Ubuntu — sudoedit /etc/vsftpd.conf.

sudoedit — это запуск стандартного текстового редактора от имени администратора. При желании вы можете указать любой другой инструмент. Например, vi.

Это инструкция к vsFTPd.

Запуск FTP-сервера

Вообще, vsFTPd запускается автоматически, и его работоспособность легко проверить. Просто открываем браузер и переходим по ссылке ftp://192.0.0.1. Это локальный адрес, на котором работает ваш сервер.

Вот как выглядит наш FTP-сервер в браузере.
Чтобы запустить vsFTPd, нужно ввести в терминал команду systemctl start vsftpd.

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

Режим анонимного доступа позволяет подключаться к FTP-серверу без авторизации. Правда, подключиться к нему можно только от лица единственного пользователя (по умолчанию речь идет о пользователе ftp).
При этом автоматически устанавливается и папка, доступ к которой будет открыт через FTP-сервер. По умолчанию vsFTPd открывает доступ к директории /srv/ftp. Выбор падает именно на эту папку, потому что это домашняя директория пользователя ftp. Если ее изменить, то и данные на сервере тоже изменятся.
Чтобы включить анонимный доступ в vsFTPd, надо открыть конфигурационный файл, найти там директиву anonymous_enable=NO и заменить NO на YES.
Теперь вы можете сами подключиться к своему FTP-серверу и проверить, что он работает без авторизации.

Настройки FTP.

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

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

  • Открываем конфигурационный файл.
  • Ищем внутри директиву local_enable=NO_ и меняем NO на YES.
  • Потом то же самое делаем с директивой write_enable=NO (это чтобы люди могли не только скачивать файлы, но и загружать).

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

Еще настройки.

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

Дополнительные настройки и возможности

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

Управление FTP-сервером

Вообще для работы с vsFTPd достаточно пары команды:

  • Чтобы проверить статус FTP-сервера (включен ли он и как работает), используем команду systemctl status vsftpd (или service vsftpd status)

Вот что выдается по запросу systemctl status vsftpd

  • Для запуска команду systemctl start vsftpd (или service vsftpd start).
  • Для перезапуска — systemctl restart vsftpd (или service vsftpd restart).
  • Чтобы выключить сервер, используем systemctl stop vsftpd (или __ service vsftpd stop). Чтобы добавить vsFTPd в автозагрузку (то есть заставить FTP-сервер запускаться вместе с системой), вводим в терминал команду systemctl enable vsftpd__ (или service vsftpd enable).

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

Вот такой запрос будет появляться при попытке взаимодействовать с vsFTPd.

Настройки шифрования

Включить шифрование данных в vsFTPd не сложно. Просто:

  • Открываем конфигурационный файл командой sudoedit /etc/vsftpd/vsftpd.conf.
  • Ищем внутри директиву ssl_enable=NO_.
  • Заменяем NO на YES.

Вот и все.
Сложность заключается в том, что нужно сгенерировать SSL-ключи и сертификаты для конкретного сервера и разместить их в директориях, которые указаны в параметрах vsFTPd (либо указать путь к другим сертификатам и ключу). Речь идет о строках:
rsa_cert_file=/etc/ssl/certs/ssl-cert.pem rsa_private_key_file=/etc/ssl/private/ssl-cert.key

Настройка Firewall

В некоторых дистрибутивах (в частности, серверных) работает Firewall. Это механизм защиты от несанкционированных входящих и исходящих подключений. Он обычно блокирует некоторые порты, по которым программы подключаются к удаленному ресурсу, чтобы избежать утечки данных.
В Ubuntu, к примеру, используется Firewall ufw, который по умолчанию блокирует подключение к портам 21 и 20. А без них FTP-сервер запустить не получится. Так что придется их сначала разрешить. Для этого:

  • Открываем терминал.
  • Вводим в него команду sudo ufw disable, чтобы выключить Firewall.
  • Затем снова включаем его командой sudo ufw enable.

Перезагрузимся перед настройкой.

  • Потом добавляем в список исключений подключение по порту 20. Для этого введем в командную строку sudo ufw allow 20/tcp.

Добавили первый…

  • И то же самое проделываем с портом 21. Команда sudo ufw allow 21/tcp.

…и второй.
Потом снова перезагружаем Firewall и FTP-сервер.

Источник: httрs://tеhnichка.рrо/install-ftp-server-linux/ 


sudo apt update && sudo apt install vsftpd

sudo service vsftpd статус

служба sudo vsftpd start

sudo ufw allow 20 / tcp

sudo ufw allow 21 / tcp

sudo ufw allow 40000: 50000 / tcp

sudo ufw allow 990 / tcp

Судо нано / etc / ssh / sshd_config

sudo usermod -d / var / www ftpusername

sudo chown ftpusername: ftpusername / var / www / public_html

sudo chown никто: nogroup / var / www

sudo chown ftpusername: ftpusername / var / www

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

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