как сделать ftp сервер на linux
Настройка и использование FTP-сервера в Ubuntu Linux
1. Введение
Практически каждый пользователь, хотя бы иногда работающий в интернете, сталкивался с FTP. В данном руководстве детально и пошагово описывается, как устанавливать FTP-сервер в Ubuntu Linux. Мы покажем, как установить его в нормальном и автономном режимах, а также как обеспечить его безопасность. Мы будем использовать легкий и эффективный FTP-сервер vsFTPd, предназначенный для работы на высоконагруженных серверах.
2. Соглашения
Далее в этой статье мы будем говорить просто об FTP-сервере, подразумевая vsFTPd.
3. Что такое FTP
4. Установка FTP-сервера в Ubuntu
Как всегда в Ubuntu и системах на ее основе, установка FTP-сервера выполняется одной командой. Откройте терминал и введите:
После выполнения этой команды сервер будет установлен и запущен.
5. Нормальный и автономный режимы работы FTP
5.1. Автономный режим
По умолчанию vsftpd запускается в автономном режиме, в котором запускаемая на сервере служба использует собственный стартовый скрипт, называемый демоном. В случае vsftpd это /etc/init.d/vsftpd. Данный автономный демон в момент старта службы FTP берет управление нею на себя. Демон vsftpd предоставляет администратору несколько команд для управления FTP-сервером vsftpd:
Такой синтаксис применяется для выполнения всех команд.
5.2. Нормальный режим
Приведенная выше команда устанавливает и запускает суперсервер xinetd. В случае, если он у вас уже установлен, эта команда не нужна. Далее, создайте файл vsftpd в директории /etc/xinetd.d/ со следующим содержимым:
Далее нам необходимо отредактировать конфигурационный файл FTP-сервера /etc/vsftpd.conf, заменив строку
Эта директива даст команду FTP-серверу не открывать никаких портов, полностью перепоручив их суперсерверу xinetd. Перед тем, как запустить сервер в нормальном режиме, убедитесь, что демон vsftpd отключен:
Теперь можно запустить FTP-сервер в нормальном режиме с помощью команды:
Чтобы убедиться в нормальной работе FTP-сервера, протестируйте и откройте порт 21 с помощью команды netstat:
6. Создание первого подключения по FTP
Независимо от того, запустили ли вы FTP-сервер в автономном, или в нормальном режиме, вы можете создать первое локальное ftp-подключение. По умолчанию vsftpd разрешает автономный доступ, поэтому при создании нашего первого тестового подключения в качестве имени пользователя мы будем использовать anonymous. Для этого просто введите команду ftp с аргументом localhost:
Успешное подключение подтверждает, что FTP-сервер в локальной системе настроен правильно. Но перед тем, как перейти к более тонким настройкам, необходимо протестировать FTP-сервер и с нескольких удаленных хостов.
7. Настройка FTP-сервера
В этом разделе мы рассмотрим некоторые базовые примеры опций конфигурации vsftpd.
Примечание: при внесении любых изменений в настройки FTP-сервера не забудьте воспользоваться командой restart/reload, чтобы активировать их.
7.1. Настройка пользовательского доступа
vsftpd позволяет оставить только анонимный доступ, либо позволить пользователям, прописанным в файле /etc/passwd или в соответствующем списке, аутентифицироваться.
7.1.1. Анонимный доступ к FTP
7.1.2. Доступ локальных пользователей по FTP
Теперь любой пользователь, указанный в файле /etc/passwd, сможет авторизоваться, используя свой пароль.
7.1.3. Список доступа пользователей
Сначала создадим список доступа, используемый сервером vsFTPd. Обычно вы можете задать его в директории /etc/. Создайте файл с произвольным именем и перечислите в нем всех пользователей, которым вы хотите разрешить или запретить доступ. Например, давайте создадим новый список с единственным пользователем «lubos»:
Далее, определим новый список пользователей в конфиграционном файле /etc/vsftpd.conf и активируем директиву userlist_enable:
Таким образом всем пользователям, перечисленным в файле /etc/vsftpd.userlist, будет отказано в доступе к FTP-серверу.
Чтобы разрешить доступ всем пользователям, перечисленным в файле /etc/vsftpd.userlist, установите значение «NO» для директивы userlist_deny. При этом вы открываете доступ только пользователям, перечисленным в /etc/vsftpd.userlist. Каждое имя пользователя в этом файле должно располагаться на отдельной строке.
7.2. Смена номера порта
По умолчанию любой FTP-сервер слушает стандартный порт 21 для аутентификации пользователя и порт 20 для передачи данных. vsFTPd не является исключением. Для смены прослушиваемого по умолчанию порта используется директива listen_port в файле /etc/vsftpd.conf. Например, для смены порта на 2121 просто добавьте следующую директиву в ваш конфигурационный файл:
После чего перезапустите FTP-сервер.
Однако это применимо к только к vsFPTd, работающему в автономном режиме. В случае, если ваш FTP-сервер запущен в нормальном режиме с с использованием суперсервера xinetd, и вы хотите изменить порт по умолчанию на 2121, найдите в файле /etc/services строку FTP и замените 21 на 2121, после чего перезапустите xinetd.
Теперь, как вы можете убедиться, FTP-сервер слушает порт 2121:
7.3. Другие опции конфигурации
Сервер vsFTPd имеет множество опций настроек, которые позволяют тонко настроить его в соответствии со своими нуждами. Ниже приведен список наиболее важных опций:
8. Заключение
На сегодняшний день vsFTPd имеет 125 опций конфигурации. Это делает его очень гибким в настройке и в то же время простым в использовании и администрировании. Хотите ли вы использовать его дома, в пределах корпоративной сети, или на удаленном сервере, вы можете быть уверены, что vsFTPd полностью удовлетворит ваши нужды. Кроме того, vsFTPd позволяет активировать sftp, но этот вопрос мы обсудим в следующий раз.
Создание FTP-сервера в Linux
Передача файлов в сети осуществляется благодаря правильно настроенному FTP-серверу. Такой протокол работает с применением TCP по архитектуре клиент-сервер и задействует различные сетевые соединения для обеспечения передачи команд между подключенными узлами. Пользователи, которые подключились к определенному хостингу, сталкиваются с надобностью настройки личного FTP-сервера по требованиям компании, предоставляющей услуги обеспечения работы сайта или другого обеспечения. Далее мы продемонстрируем, как создается такой сервер в Linux на примере одной из утилит.
Создаем FTP-сервер в Linux
Сегодня мы будем использовать инструмент под названием VSftpd. Преимущества такого FTP-сервера в том, что он по умолчанию работает на многих ОС, обслуживает официальные репозитории различных дистрибутивов Linux и относительно просто настраивается для корректного функционирования. К слову, на ядре Линукс официально применяется именно этот FTP, и многие хостинги рекомендуют ставить VSftpd. Поэтому давайте обратим внимание на пошаговый процесс инсталляции и настройки необходимых компонентов.
Шаг 1: Установка VSftpd
По умолчанию всех нужных библиотек VSftpd в дистрибутивах не имеется, поэтому их нужно вручную загрузить через консоль. Осуществляется это следующим образом:
Обращаем внимание обладателей CentOS, которые задействуют выделенный виртуальный сервер от любого хостинга. Вам потребуется произвести обновление модуля ядра ОС, поскольку без этой процедуры во время инсталляции отобразится критическая ошибка. Последовательно вводите такие команды:
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-сервера. Все настройки выполняются сугубо индивидуально по рекомендациям хостинга или собственным предпочтениям. Мы лишь можем показать, как открывается этот файл и каким параметрам обязательно следует уделить внимание.
Шаг 3: Добавление пользователя с расширенными правами
Если вы собираетесь работать с FTP-сервером не через свою основную учетную запись или хотите предоставить доступ другим юзерам, созданные профили обязательно должны иметь права суперпользователя, чтобы при обращении к утилите VSftpd не возникало ошибок с отказом в доступе.
Теперь вы можете производить все необходимые действия на FTP-сервере от лица нового юзера, который обладает расширенными правами доступа.
Шаг 4: Настройка Firewall (Только для Ubuntu)
Пользователи других дистрибутивов могут смело пропускать этот шаг, поскольку настройка портов нигде больше не требуется, только в Ubuntu. По умолчанию Firewall настроен таким образом, что не пропустит входящий трафик из нужных нам адресов, поэтому потребуется разрешить его прохождение вручную.
Отдельно хочется отметить несколько полезных команд:
Что касается получения доступа к FTP-серверу и дальнейшей работе с ним, обращайтесь за получением этих данных к представителям своего хостинга. У них же вы сможете уточнить информацию по поводу тонкостей настройки и возникновению различного рода ошибок.
На этом статья подходит к концу. Сегодня мы разобрали процедуру установки сервера VSftpd без привязки к какому-либо хостингу, поэтому учтите это при выполнении наших инструкций и сравнивайте их с теми, что предоставляет компания, содержащая ваш виртуальный сервер. Кроме всего, советуем ознакомиться с другим нашим материалом, в котором разбирается тема установки компонентов LAMP.
Помимо этой статьи, на сайте еще 12394 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Установка и настройка 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-системах, поскольку, как уже упоминалось, помимо надёжности и высокой скорости работы, обладает большими функциональными возможностями, самыми значимыми из которых являются:
В данной статье рассматривается установка и настройка FTP-сервера на примере vsFTPd, который, кстати, является свободно распространяемым программным обеспечением (ПО) с открытым исходным кодом. Официальная страница проекта: https://security.appspot.com/vsftpd.html.
Установка vsFTPd
Установить Vsftd в Debian-ориентированных дистрибутивах Linux позволяет команда:
Также полезно будет установить и простой FTP-клиент для тестирования соединения и передачи файлов:
Для дистрибутивов на основе RPM-пакетов, CentOS, RedHat:
Примечание: yum – это пакетный менеджер, тот же самый apt, но адаптированный для управления пакетами формата *.rpm.
После установки для vsFTPd будет доступна техническая документация, которая обычно находится в каталоге /usr/share/doc/vsftpd/examples – здесь приведены варианты различных конфигураций, в зависимости от характера и масштабов использования vsFTPd. Ознакомиться с документацией можно также с помощью команды:
Обычно после установки демон vsFTPd автоматически запускается, убедиться в этом можно с помощью следующих команд:
Запуск, перезапуск и остановка сервера:
Для включения демона vsftpd в автозагрузку используется команда:
Аналогично и с командой service.
Если vsFTPd используется в серверных дистрибутивах, в которых часто работает фаервол, например ufw, то ещё может понадобиться разрешить использование портов 20 и 21:
Настройка vsFTPd
Конфигурационным файлом для настройки vsFTPd является файл vsftpd.conf, который обычно находится в каталоге etc/. Ознакомиться с его одержимым можно командой cat:
На всякий случай полезно перед редактированием оригинального файла настроек сделать его резервную копию:
$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup
FTP-сервер vsFTPd предусматривает два основных варианта работы: с анонимными и авторизованными пользователями. Первый вариант считается «более безопасным», но только потому, что для обеспечения надёжной защиты практически ничего настраивать и не нужно. Но при грамотной организации авторизованного доступа, предполагающего работу с FTP локальных пользователей системы, можно обеспечить безопасность ничуть не хуже, чем при использовании анонимного доступа.
Настройка в режиме анонимного доступа
Работа vsFTPd в данном режиме заключается в том, что действия с файлами на удалённом сервере производятся одним определённым по умолчанию пользователем, например, пользователем с именем «ftp» или «anonymous», при этом в качестве пароля используется e-mail.
Чтобы включить анонимный доступ по FTP нужно в фале vsftpd.conf определить значение «YES» для соответствующей директивы:
Теперь для управления файлами будет использоваться определённый каталог (обычно это /srv/ftp) и определённый пользователь — обычно ftp.
Можно определить и другое расположение файлов для анонимного доступа по FTP, т. е. изменить домашнюю директорию пользователя ftp:
Если нужно, чтобы анонимные пользователи могли ещё и загружать файлы на удалённый сервер, то это позволит сделать директива:
Теперь можно скопировать необходимые для анонимного доступа файлы в домашнюю папку пользователя ftp и перезапустить демон vsftpd:
$ systemctl restart vsftpd
Обычно этого набора настроек достаточно для организации анонимного FTP-доступа. Для проверки соединения можно выполнить команду ftp address_host:
что в случае успешного выполнения даст примерно такой вывод:
Настройка в режиме авторизованного доступа
Для авторизованного доступа проще всего включить использование локальных учётных записей на сервере. Для этого нужно указать следующую директиву в файле конфигурации vsftpd.conf:
Для задания разрешения локальным авторизованным пользователям загружать файлы на сервер указывается директива:
Примечание: для авторизации локальных пользователей используется пароль пользователя для локального входа в систему.
Теперь нужно перезапустить vsftpd для активации сделанных изменений:
Ограничение пользователей в своих домашних каталогах
Для определения пользователей, которым разрешён доступ только к своему домашнему каталогу существуют директивы:
Первая включает использование списка пользователей, вторая определяет файл, в котором в каждой строке перечислены пользователи с доступом только к своим домашним каталогам. Если при этом ещё указать директиву:
которая «запирает» в chroot() локальных пользователей и выше своих домашних каталогов они подняться не смогут, то в этом случае пользователи в файле vsftpd.chroot_list ограничиваться своими домашними каталогами не будут, в отличии от тех, кто в этот список не внесён.
При распределении FTP-доступа среди пользователей может возникнуть ошибка, которая возникает из-за того, что локальный пользователь имеет права на запись в корне домашнего каталога, что по соображениям безопасности недопустимо. Эта ошибка выглядит следующим образом:
Лучшим способом исправить эту ошибку является указание некоего общего корневого каталога, куда при подключении будут попадать все пользователи, имея доступ лишь к своим домашним поддиректориям, например:
Можно также для устранения этой ошибки отключить проверку на запись в домашний каталог:
Но всё же это стоит делать лишь тогда, когда есть чёткое понимание, зачем это нужно для конкретной ситуации.
Защита данных с помощью SSL
Чтобы иметь возможность шифровать передаваемые данные, следует настроить vsFTPd в режиме FTPS. Это та же самая передача данных по FTP, но организованная поверх SSL – протокола. Шифрующего и проверяющего данные с помощью сертификатов и ключей.
Для включения режима FTPS нужно задействовать следующую директиву:
По умолчанию в конфигурационном файле vsftpd.conf также присутствуют опции, определяющие сертификаты и ключи, например:
Эти сертификат и ключ необходимо заменить. Для использования FTPS необходимо использовать сертификат и ключ. Cгенерированные (или полученные) для конкретного сервера или компьютера.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как поднять ftp сервер на Linux
Одним из самых практичных и хорошо известных протоколов выгрузки файлов на удаленный сервер является File Transfer Protocol (проще говоря, FTP). Этот инструмент нельзя причислять к списку современных разработок, но с актуальностью его применения трудно поспорить. Многие веб-мастера используют данный протокол для создания хранилища информации и управления файлами.
В данном материале пойдет речь о мельчайших нюансах установки и дальнейшей настройке конфигураций FTP-сервера на ПК.
В текущем примере фигурируют ОС Ubuntu, Debian, Centos и один из надёжнейших FTP-серверов под названием VSFTPD. Альтернативой последнему также способен послужить FTP-сервер Very Secure FTP Daemon.
Перечисленные инструменты прекрасно защищены от всевозможных уязвимостей, а потому пользуются большой популярностью у пользователей Linux. Им действительно можно доверять.
Установка ФТП-сервера
Данную программу можно взять из официального репозитория. Первым делом пользователю необходимо произвести обновление перечня пакетов в репозиториях.
Второй мерой будет непосредственно сама установка инструмента. Воспользуйтесь терминалом и перейдем в режиме суперпользоволя:
Процесс установки немного отличается от разных версиях Линукс, поэтому рассмотрим их отдельно.
Для Debian / Ubuntu:
# apt install vsftpd
# yum install vsftpd
# dnf install vsftpd
По окончанию процесса установки важно не упустить один важный момент: самостоятельное включение сервиса vsftpd.
К сожалению, он не будет запущен в автоматическом режиме, что было бы намного удобнее, но это крайне необходимо для нормального процесса установки программы. После включения vsftpd необходимо добавить службу в автозагрузку.
На практике это делается следующим образом:
# systemctl start vsftpd
# systemctl enable vsftpd
Чтобы решить текущую проблему, пользователю достаточно открыть порты «20» и «21». После этого процесс установки программы продолжится в нормальном режиме.
Чтобы открыть порты, следует выполнить несколько простых действий. Они будут рассмотрены ниже.
Для фаерволла ufw, по умолчанию используется в операционной системе Centos.
Для iptables, по умолчанию используется в операциооных системах Debian и Ubuntu.
После этого процесс установки программы можно считать завершенным. Однако впереди пользователя ожидает процесс настройки компонентов ФТП сервера, установленного для ОС Линукс. Правильные настройки программы – это гарант безопасной работы с системой, поэтому каждому юзеру Линукс следует быть внимательным при дальнейшем изучении нашего материала.
Важно! Установленная программа уже имеет выставленные стандартные настройки, за счет параметров которых FTP-сервер может начинать выполнение своих прямых «обязанностей». Именно это нередко провоцирует халатность со стороны владельцев Линукс. Многие пользователи считают, что настройки по умолчанию выставлены правильно, и менять эти параметры вовсе не обязательно. Дескать, зачем тратить лишнее время, если программа работает.
Но не все так просто, как это может показаться на первый взгляд. Основная загвоздка кроется в том, что подобный режим работы FTP-сервера в производственных сетях – крайне небезопасная затея. Этого нельзя допускать! Именно поэтому мы приступаем к разбору настроек компонентов программы.
Настройка ФТП
Перед внесением коррективов в настройки программы рекомендуется произвести копирование оригинального файла с текущими параметрами.
Это послужит некой перестраховкой на тот случай, если что-то пойдет не поп плану, и будет целесообразным вернуть всё на свои первоначальные места. Копируем данные:
# cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Затем необходимо запустить редактор для открытия скопированного файла. Это можно сделать благодаря применению данной команды:
Далее потребуется внести некоторые правки в исходный файл.
Примечание: те параметры, которые нуждаются в коррективах, уже указаны в файле. Это значит, что пользователю необходимо найти их и заменить другими значениями. Создавать новые параметры при их наличии не требуется!
Прежде чем выполнить задуманное, потребуется отключить вход в режиме «аноним». Как это сделать:
Теперь нужно разрешить вход для локальных юзеров Linux. Для этого выполните следующее действие:
Чтобы авторизованные юзеры Линукс получили возможность корректировать системные файлы, нужно предоставить им разрешение некоторых команд. На практике это выглядит так:
Так как FTP-сервер начнет образовывать новые файлы, необходимо указать для них другое значение. А именно:
Чтобы юзер системы мог осуществить выбор определенного каталога после прохождения «registration», потребуется включить соответствующее сообщение:
Чтобы фаервол мог функционировать без сбоев, пользователю необходимо выбрать порт для передачи информации.
Это не может быть случайный порт.
Измените текущие параметры в файле следующим способом:
Затем измените параметр, отвечающий за ожидание входящих соединений. Это делается очень просто:
Необходимо самостоятельно и по собственному усмотрению выбрать списки тех пользователей, которым будут разрешены или запрещены доступы к различным файлам и папкам.
Всё это делается с целью повышения уровня безопасности системы. Каких-либо конкретных рекомендаций в этом вопросе быть не может, поскольку всё слишком индивидуально. Пользователю остается лишь отыскать нужные команды для коррективов тех или иных параметров программы.
Как надёжно защитить данные в Linux
Грамотная шифровка передаваемой информации – еще один из ключевых гарантов безопасности системы. Чтобы FTP-сервер работал в оптимальном и хорошо защищенном режиме, необходимо произвести дополнительные настройки, касаемые FTPS.
К чему это приведет, если объяснять простыми словами? Система продолжит передавать данные по FTP-серверу, но поверх SSL-протокола. Лишь этот нюанс отличает новые параметры настроек от параметров, установленных по умолчанию.
Вопрос: как включить FTPS-режим в Линукс?
Ответ: для этих целей понадобится специальная директива. Она указана ниже:
Далее пользователю необходимо открыть файл под названием «vsftpd.conf», являющийся стандартным файлом в системе. В нем содержатся определенные опции, ключи и сертификаты, которые не подходят для дальнейшего функционирования программы в операционной системе Линукс.
Эти данные необходимо заменить в обязательном порядке. Дело в том, что активация режима FTPS для FTP-сервера без ключей и сертификатов является невозможным, поэтому их нужно сгенерировать заново, под свой ПК или сервер.
Заключение
Процесс установки и настройки конфигураций FTP-сервера в Линукс – вполне реальная и легко выполнимая задача для тех, кто умеет безоговорочно следовать инструкциям. Все необходимые базовые рекомендации даны в этой статье.
Еще раз хотим напомнить о важности внесения новых параметров в настройки программы.
Если FTP-сервер начнет работать с настройками по умолчанию, уровень безопасности системы начнет снижаться, а риски поймать уязвимость – расти. Разработчики советуют не жалеть времени на грамотное и полноценное настраивание программы. Это позволит защитить ПК или сервер и не возвращаться к этим вопросам в дальнейшем.