как узнать какой ftp сервер установлен linux
Как настроить FTP-сервер с VSFTPD в Ubuntu 20.04
В этой статье описывается, как установить и настроить FTP-сервер в Ubuntu 20.04, который вы используете для обмена файлами между вашими устройствами.
Установка vsftpd на Ubuntu 20.04
Пакет vsftpd доступен в репозиториях Ubuntu. Для его установки выполните следующие команды:
Служба ftp автоматически запустится после завершения процесса установки. Чтобы проверить это, распечатайте статус службы:
Вывод должен показать, что служба vsftpd активна и работает:
Настройка vsftpd
Конфигурация сервера vsftpd хранится в файле /etc/vsftpd.conf
Большинство настроек сервера хорошо документированы внутри файла. Чтобы узнать обо всех доступных вариантах, посетите страницу документации vsftpd.
В следующих разделах мы рассмотрим некоторые важные настройки, необходимые для настройки безопасной установки vsftpd.
Начните с открытия файла конфигурации vsftpd:
1. Доступ по FTP
Мы разрешим доступ к FTP-серверу только локальным пользователям. Найдите anonymous_enable и local_enable и убедитесь, что ваша конфигурация соответствует приведенным ниже строкам:
2. Включение загрузки
Найдите и раскомментируйте write_enable чтобы разрешить изменения файловой системы, такие как загрузка и удаление файлов:
3. Chroot jail
Чтобы предотвратить доступ локальных пользователей FTP к файлам за пределами их домашних каталогов, раскомментируйте строку lne, начинающуюся с chroot_local_user :
По умолчанию из соображений безопасности, когда chroot включен, vsftpd откажется загружать файлы, если каталог, в котором заблокированы пользователи, доступен для записи.
Используйте одно из приведенных ниже решений, чтобы разрешить загрузку при включенном chroot:
Используйте эту опцию, только если вы должны предоставить своему пользователю доступ с правом записи к его домашнему каталогу.
4. Пассивные FTP-соединения.
По умолчанию vsftpd использует активный режим. Чтобы использовать пассивный режим, установите минимальный и максимальный диапазон портов:
Вы можете использовать любой порт для пассивных FTP-соединений. Когда пассивный режим включен, FTP-клиент открывает соединение с сервером через случайный порт в выбранном вами диапазоне.
5. Ограничение входа пользователя
Вы можете настроить vsftpd, чтобы разрешить вход только определенным пользователям. Для этого добавьте следующие строки в конец файла:
Когда этот параметр включен, вам необходимо явно указать, какие пользователи могут входить в систему, добавив имена пользователей в /etc/vsftpd.user_list (по одному пользователю в строке).
6. Защита передачи с помощью SSL / TLS
Чтобы зашифровать передачи FTP с помощью SSL / TLS, вам потребуется сертификат SSL и настроить FTP-сервер для его использования.
Вы можете использовать существующий сертификат SSL, подписанный доверенным центром сертификации, или создать самозаверяющий сертификат.
Если у вас есть домен или поддомен, указывающий на IP-адрес FTP-сервера, вы можете быстро сгенерировать бесплатный SSL-сертификат Let’s Encrypt.
Мы сгенерируем 2048-битный закрытый ключ и самозаверяющий SSL-сертификат, который будет действителен в течение десяти лет:
И закрытый ключ, и сертификат будут сохранены в одном файле.
После создания SSL-сертификата откройте файл конфигурации vsftpd:
Найти rsa_cert_file и rsa_private_key_file директивы, изменить их значения на pam путь к файлу и установите ssl_enable директиву YES :
Если не указано иное, FTP-сервер будет использовать только TLS для безопасных подключений.
Перезапустите службу vsftpd
Когда вы закончите редактирование, конфигурационный файл vsftpd (без комментариев) должен выглядеть примерно так:
Сохраните файл и перезапустите службу vsftpd, чтобы изменения вступили в силу:
Открытие брандмауэра
Чтобы открыть порт 21 (командный порт FTP), порт 20 (порт данных FTP) и 30000-31000 (диапазон пассивных портов), выполните следующие команды:
Чтобы избежать блокировки, убедитесь, что порт 22 открыт:
Перезагрузите правила UFW, отключив и снова включив UFW:
Чтобы проверить изменения, выполните:
Создание пользователя FTP
Чтобы протестировать FTP-сервер, мы создадим нового пользователя.
Как обсуждалось в предыдущем разделе, пользователь сможет загружать свои файлы в каталог ftp/upload
Отключение доступа к оболочке
По умолчанию при создании пользователя, если это не указано явно, у пользователя будет SSH-доступ к серверу. Чтобы отключить доступ к оболочке, создайте новую оболочку, которая будет печатать сообщение, сообщающее пользователю, что его учетная запись ограничена только доступом по FTP.
Выполните следующие команды, чтобы создать /bin/ftponly и сделать его исполняемым:
Добавьте новую оболочку в список допустимых оболочек в /etc/shells :
Измените оболочку пользователя на /bin/ftponly :
Вы можете использовать ту же команду, чтобы изменить оболочку всех пользователей, которым вы хотите предоставить только FTP-доступ.
Вывод
Мы показали вам, как установить и настроить безопасный и быстрый FTP-сервер в вашей системе Ubuntu 20.04.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Сервер FTP
Содержание
Сервер FTP
Для запуска сервиса требуется добавить его в автозагрузку. Начиная с версии Ubuntu 15.04 используется Systemd, поэтому для добавления vsftpd в автозапуск надо ввести следующие команды:
В Ubuntu Server может использоваться файервол ufw. Тогда вам потребуется разрешить порты 20 и 21
Конфигурационный файл содержит много параметров настройки. Информация по каждому параметру доступна в этом же файле. В качестве альтернативы вы можете посмотреть системное руководство по команде
для уточнения деталей по каждому параметру.
Настройка анонимного доступа по FTP
Настройка vsftpd по умолчанию не разрешает анонимную загрузку. Если вы хотите разрешить анонимную загрузку, измените в /etc/vsftpd.conf следующее:
Если вы желаете поменять его расположение, например, на /srv/files/ftp, просто создайте новый каталог и измените домашний каталог пользователя ftp:
После изменений перезапустите vsftpd:
Под конец скопируйте все файлы и каталоги, которые вы хотите сделать доступными для анонимного FTP в /srv/files/ftp (или /srv/ftp, если вы хотите оставить настройки по умолчанию).
Настройка авторизованного доступа по FTP
Для аутентификации локальных пользователей надо раскоментировать строчку
По умолчанию vsftpd настроен на аутентификацию системных пользователей с возможностью получать файлы. Если вы хотите пользователям разрешить загружать файлы, измените в /etc/vsftpd.conf:
после чего перезагрузите vsftpd:
Защита FTP
Ограничение пользователей
В /etc/vsftpd.conf существуют опции, помогающие сделать vsftpd более безопасным. Например, данная опция позволяет поместить локального пользователя в chroot() «заточение», выше которого (по дереву каталогов) он не сможет подняться.
Вы также можете определить список пользователей, имеющих доступ только в домашний каталог:
После снятия комментариев с этих опций, создайте /etc/vsftpd.chroot_list, содержащий список пользователей по одному на строку. Затем перезапустите vsftpd:
Если при попытке подключения вы видите ошибку 1) :
то это значит, что локальный пользователь имеет доступ на запись в домашний каталог, чего быть не должно. Способов решения этой ошибки несколько:
Шифрование
Для настройки FTPS, добавьте в конец файла /etc/vsftpd.conf следующее:
Также обратите внимание на опции сертификата и ключа:
По умолчанию эти опции установлены в значения, предоставленные пакетом ssl-cert. Для рабочей среды они должны быть заменены на сертификат и ключ, созданные для определенного компьютера. Для дополнительной информации смотрите раздел Сертификаты.
Теперь перегрузите vsftpd и неанонимные пользователи будут использовать FTPS:
Это необходимо, поскольку по умолчанию vsftpd использует авторизацию PAM, а файл настроек /etc/pam.d/vsftpd содержит:
Модуль PAM shells ограничивает доступ к оболочкам, перечисленным в файле /etc/shells.
Настройка и использование 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, но этот вопрос мы обсудим в следующий раз.
Как настроить vsftpd на Ubuntu
vsftpd (англ. Very Secure FTP Daemon) — FTP-сервер с поддержкой IPv6 и SSL. Первые две буквы в названии vsftpd означают “very secure” («очень защищенный»), поскольку разработчики программы предусмотрели защиту от многих возможных уязвимостей протокола FTP.
Шаг #1: Установка vsftpd
С помощью специальной команды установить программу на VPS-сервер можно за пару секунд:
sudo apt-get install vsftpd
Фактически, после скачивания всех нужных файлов, пользователь получает уже сконфигурированную программу с базовыми настройками безопасности. Однако они недостаточны — например, в режиме по умолчанию vsftpd позволяет доступ к серверу анонимным пользователям.
Шаг #2: Настройка vsftpd
После установки программы, можно заняться ее настройкой. Для этого нужно открыть конфигурационный файл:
sudo nano /etc/vsftpd.conf
В нем нужно найти строчку Anonymous_enable и поменять значение с YES на NO:
После сохранения изменений доступ к виртуальному серверу для анонимных пользователей будет закрыт.
Также следует «раскомментировать» (убрать знак #) опцию local_enable и поменять ее значение на YES, а затем — разрешить пользователям осуществлять запись в директорию, убрав символ комментария для опции write_enable:
Затем нужно раскомментировать опцию chroot_local_user — если она будет установлена в YES, то все пользователи будут ограничены своими правами chroot и не смогут получить доступ к другим частям сервера:
После этого необходимо сохранить изменений и выйти из конфигурационного файла.
Чтобы избежать ошибки запуска последних версий vsftpd («refusing to run with writable root inside chroot») при работе не из под пользователя root (пользователи 1cloud по умолчанию получают доступ к своим серверам именно с такими привилегиями, так что появление подобной ошибки маловероятно), можно предпринять несколько простых шагов:
Также возможно система откажется создавать весь путь сразу, тогда нужно будет перейти в папку /home:
Создать в ней папку нужного пользователя /##username## (sudo mkdir ##username##), перейти в нее командой cd и уже затем создать папку files командой mkdir.
После внесения всех изменений в конфигурационный файл, нужно перезапустить vsftpd.
sudo service vsftpd restart
Для Ubuntu 16.04 необходимо настроить firewall с помощью следующих команд:
Перезапустите firewall: sudo ufw disable
sudo ufw enable
Добавьте правила входящих подключений для портов используемых vsftpd: sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Проверить настройки можно с помощью команды: sudo ufw status
Шаг #3: Получение доступа к FTP-серверу
После установки FTP-сервера получить к нему доступ можно двумя способами: через адресную строку браузера и с помощью командной строки.
Чтобы воспользоваться первым способом нужно вбить в адресную строку браузера название протокола ftp и доменное имя или IP-адрес сервера: ftp://example.com (пример с IP-адресом: ftp://5.200.47.19/)
После этого система попросит ввести логин и пароль локального пользователя, и затем появится его домашняя директория со всем содержимым (войти можно будет только в нее).
Альтернативный способ заключается в использовании в терминале команды ftp в комбинации с доменным именем или IP-адресом сайта:ftp example.com
После завершения работы с FTP, выйти из этого режима терминала можно с помощью команды “exit”.
P. S. Другие инструкции:
Ознакомиться с другими инструкциями вы можете на нашем сайте. А чтобы попробовать услугу — кликните на кнопку ниже.
Установка и настройка 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.