Ftpusers vsftpd файл что это
Перейти к содержимому

Ftpusers vsftpd файл что это

  • автор:

Introduction

VSFTPD stands for «Very Secure FTP Daemon» is a GPL licensed FTP server for UNIX systems. It is licensed under the GNU General Public License. It supports IPv6 and SSL. vsftpd supports explicit (since 2.0.0) and implicit (since 2.1.0) FTPS. vsftpd is the default FTP server in the Ubuntu, CentOS, Fedora, NimbleX, Slackware and RHEL Linux distributions. It is secure and extremely fast. It is stable. VSFTPD is a mature and trusted solution which supports virtual users with PAM (pluggable authentication modules). A virtual user is a user login which does not exist as a real login on the system in /etc/passwd and /etc/shadow file. Virtual users can therefore be more secure than real users, because a compromised account can only use the FTP server but cannot login to system to use other services such as SSH or SMTP.

In July 2011, it was discovered that VSFTPD version 2.3.4 downloadable from the master site had been compromised. Users logging into a compromised vsftpd-2.3.4 server may issue a «:)» smiley-face as the username and gain a command shell on port 6200. This was not an issue of a security hole in VSFTPD, instead, someone had uploaded a different version of VSFTPD which contained a backdoor. Since then, the site was moved to Google App Engine.

Features

  • Virtual IP configurations
  • Virtual users
  • Standalone or inetd operation
  • Powerful per-user configurability
  • Bandwidth throttling
  • Per-source-IP configurability
  • Per-source-IP limits
  • IPv6
  • Encryption support through SSL integration.

Configuration Instructions and Basic Setup

Download

Or you can install via apt-get like sudo apt-get install vsftpd

Now you can configure it to either allow «local users» to be able to login via ftp, or «virtual users».

To disable anonymous login and to enable local users login and give them write permissions:

Code:
# No anonymous login
anonymous_enable=NO
# Let local users login
# If you connect from the internet with local users, you should enable TLS/SSL/FTPS
local_enable=YES
# Write permissions
write_enable=YES

To chroot users

To jail / chroot users (not the VSFTPD service), there are three choices. Search for «chroot_local_users» on the file and consider one of the following: Code:
# 1. All users are jailed by default:
chroot_local_user=YES
chroot_list_enable=NO

# 2. Just some users are jailed:
chroot_local_user=NO
chroot_list_enable=YES
# Create the file /etc/vsftpd.chroot_list with a list of the jailed users.

# 3. Just some users are "free":
chroot_local_user=YES
chroot_list_enable=YES
# Create the file /etc/vsftpd.chroot_list with a list of the "free" users.

To deny (or allow) just some users to login

To deny some users to login, add the following options in the end of the file: Code: userlist_deny=YES
userlist_file=/etc/vsftpd.denied_users
In the file /etc/vsftpd.denied_users add the username of the users that can’t login. One username per line.

To allow just some users to login:

Code: userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users
In the file /etc/vsftpd.allowed_users add the username of the users that can login.

The not allowed users will get an error that they can’t login before they type their password.

TLS/SSL/FTPS

NOTE: you definitely should use this if you connect from the Internet to your box, otherwise passwords will be sent in plaintext, etc.

To use vsftpd with encryption (it’s safer), change or add the following options (some options aren’t on the original config file, so add them): Code: ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
# Filezilla uses port 21 if you don't set any port
# in Servertype "FTPES - FTP over explicit TLS/SSL"
# Port 990 is the default used for FTPS protocol.
# Uncomment it if you want/have to use port 990.
# listen_port=990
No need to create a certificate if openssl package is installed!

Install Filezilla (on the client side), and use the Servertype «FTPES — FTP over explicit TLS/SSL» option to connect to your server with TLS/SSL/FTPS.

Additional Options

Here are some other available options. The values are examples: Code: # Show hidden files and the "." and ".." folders.
# Useful to not write over hidden files:
force_dot_files=YES

# Hide the info about the owner (user and group) of the files.
hide_ids=YES

# Connection limit for each IP:
max_per_ip=2

# Maximum number of clients:
max_clients=20

Apply new configuration settings

Don’t forget that to apply new configurations, you must restart the vsftpd service. Code:
sudo /etc/init.d/vsftpd restart

Webmin Module

For those who use webadmin, there is a module for VSFTPD here http://www.webmin.com/third.html.

Set pasv_min_port and pasv_max_port in /etc/vsftpd.conf and allow outbound connections in the ports you set in your firewall.

Code:
pasv_min_port=12000
pasv_max_port=12100

Virtual users with TLS/SSL/FTPS and a common upload directory — Complicated VSFTPD

Virtual users are users that do not exist on the system — they are not in /etc/passwd, do not have a home directory on the system, can not login but in vsftpd — or if they do exist, they can login in vsftpd with a non system password — security.

You can set different definitions to each virtual user, granting to each of these users different permissions. If TLS/SSL/FTPS and virtual users are enabled, the level of security of your vsftpd server is increased: encrypted passwords, with passwords that are not used on the system, and users that can’t access directly to their home directory (if you want).

The following example is based and adapted on the example for virtual users in vsftpd site, on documentation and the very good examples in this forum that can be found here and here. Currently there is a restriction that with guest_enable enabled, local users also get mapped to guest_username. This is a polite way to say that if the default vsftpd PAM file is used, the system users will be guests too. To avoid confusions change the PAM file used by vsftpd to authenticate only virtual users, make all vsftpd users as virtual users and set their passwords, home and permissions based on this example.

The workshop

Create The Virtual Users Database

To create a «db4» format file to store usernames (another option here would be an apache htpasswd style file, not discussed), first create a plain text files with the usernames and password on alternating lines. For e.g. create user called «vivek» with password called «vivekpass» and sayali with password «sayalipass»:

# mkdir /etc/vsftpd # if necessary
# cd /etc/vsftpd
# sudo gedit vusers.txt

Sample output:

Next, create the actual database file like this (may require the db_util package to be installed first):

# db_load -T -t hash -f vusers.txt vsftpd-virtual-user.db
# chmod 600 vsftpd-virtual-user.db # make it not global readable
# rm vusers.txt

Configure VSFTPD for virtual user

Edit the vsftpd configuration file (/etc/vsftpd.conf). Add or correct the following configuration options, depending on if they’re already listed somewhere in the file or not (or just add these all to the bottom):

anonymous_enable=NO
local_enable=YES
# Virtual users will use the same privileges as local users.
# It will grant write access to virtual users. Virtual users will use the
# same privileges as anonymous users, which tends to be more restrictive
# (especially in terms of write access).
virtual_use_local_privs=YES
write_enable=YES

# Set the name of the PAM service vsftpd will use
pam_service_name=vsftpd.virtual

# Activates virtual users
guest_enable=YES

# Automatically generate a home directory for each virtual user, based on a template.
# For example, if the home directory of the real user specified via guest_username is
# /home/virtual/$USER, and user_sub_token is set to $USER, then when virtual user vivek
# logs in, he will end up (usually chroot()'ed) in the directory /home/virtual/vivek.
# This option also takes affect if local_root contains user_sub_token.
user_sub_token=$USER

# Usually this is mapped to Apache virtual hosting docroot, so that
# Users can upload files
local_root=/home/vftp/$USER

# Chroot user and lock down to their home dirs
chroot_local_user=YES

Save and close the file.

Create a PAM File Which Uses Your New Database

The following PAM is used to authenticate users using your new database. Create /etc/pam.d/vsftpd.virtual: # sudo gedit /etc/pam.d/vsftpd.virtual

Append (or create with) the following:

#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
account required pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-user
session required pam_loginuid.so

Create The Location Of The Files

You need to set up the location of the files / dirs for the virtual users. Type the following command: # mkdir /home/vftp
# mkdir -p /home/vftp/
# chown -R ftp:ftp /home/vftp

Restart The FTP Server

Type the following command:
# service vsftpd restart

Test Your Setup

Open another shell session and type:
$ ftp localhost

Sample success output:

Connected to ftp.nixcraft.net.in.
Name (localhost:root): vivek
331 Please specify the password.[user now types in vivekpass]
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Troubleshooting

By default files are created with permissions like -rw

(and owned by the ftp user if using virtual users). To change this to something less restrictive (it defaults to 077, the above) then set local_umask=022 (for -rw-r--r-- type permissions) in your vsftp.conf file and restart the service.

See Also

vsftpd (последним исправлял пользователь rogerpack2005 2015-06-11 10:46:38)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Как установить vsftpd (ftp-сервер) на CentOS 8 / RHEL 8

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

Vsftpd , сокращение от Very Secure FTP daemon , — это демон защищенного FTP, который является обновлением протокола FTP. Он обеспечивает безопасные соединения с FTP-серверами, шифруя трафик, отправляемый на сервер и с него, и тем самым обеспечивает безопасность передачи файлов от хакеров.

Просто веселое видео для отвлечения и расслабления в течение 2 минут

В этой теме мы освещаем установку vsftpd на CentOS 8 / RHEL 8.

Шаг 1) Установите vsftpd с помощью команды dnf

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

Нажмите « y » и нажмите ENTER, чтобы начать установку. Установка занимает несколько секунд и завершится в кратчайшие сроки. Приведенный ниже вывод подтверждает, что vsftpd успешно установлен.

Как установить vsftpd (ftp-сервер) на CentOS 8

Вывод показывает, что мы установили vsftpd версии 3.0.3-31.el8.x86_64 . Чтобы подтвердить это, выполните следующую команду:

После успешной установки вывод должен совпадать с версией, напечатанной на терминале. Чтобы получить более подробную информацию о Vsftpd, добавьте в конце флаг -i, как показано:

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

Как установить vsftpd (ftp-сервер) на CentOS 8

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

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

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

Чтобы проверить статус vsftpd в вашей системе, запустите:

Если вы видите директиву « active: (running) » зеленым цветом, как показано на терминале, то служба vsftpd запущена и работает.

Шаг 2) Создайте пользователя ftp и его каталог

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

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

Нам также необходимо добавить пользователя FTP в файл /etc/vsftpd/user_list, чтобы разрешить пользователю доступ к серверу vsftp.

Шаг 3) Настройте vsftpd через его файл конфигурации

Пока что нам удалось установить и подтвердить, что vsftpd запущен и работает. Дальнейшие настройки необходимы для Vsftpd, чтобы разрешить пользователям доступ к серверу.

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

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

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

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

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

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

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

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

Наконец, сохраните и закройте файл. Чтобы изменения сохранились, перезапустите службу Vsftpd.

На этом этапе вы можете проверить FTP-соединение, запустив

Укажите имя пользователя ftp, а затем введите пароль. Вы должны получить результат, как показано.

Как установить vsftpd (ftp-сервер) на CentOS 8

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

Шаг 4) Настройте SSL / TLS для vsftpd

Чтобы зашифровать обмен данными между сервером и клиентской системой, нам необходимо сгенерировать сертификат TLS, а затем настроить сервер для его использования.

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

За этим последует серия запросов, в которых вам потребуется указать некоторые детали, такие как название страны, штата или провинции, название организации и многое другое. Заполните все данные соответственно, как показано.

Как установить vsftpd (ftp-сервер) на CentOS 8

Нам также необходимо сообщить серверу, где хранятся файлы сертификатов. Итак, вернитесь к файлу конфигурации /etc/vsftpd/vsftpd.conf и укажите путь к файлам сертификатов.

Затем дайте серверу команду включить SSL.

Сохраните и выйдите из файла конфигурации. Чтобы внести указанные выше изменения в эффект, перезапустите службу vsftpd,

Шаг 5) Разрешите порты ftp-сервера (vsftpd) в брандмауэре

Если вы используете брандмауэр, вам необходимо разрешить эти важные порты »

  • 20 — разрешить FTP-трафик
  • 21 — порт данных FTP
  • 30000-31000 — разрешить пассивную связь с FTP-сервером.

Поэтому выполните следующие команды:

Затем перезагрузите брандмауэр, чтобы изменения вступили в силу.

Шаг 6) Проверьте свой vsftpd или FTP-сервер

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

При запуске интерфейс выглядит так, как показано на рисунке. Укажите IP-адрес хоста (vsftpd), имя пользователя и пароль пользователя ftp, а затем нажмите кнопку « Быстрое подключение ».

Как установить vsftpd (ftp-сервер) на CentOS 8

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

Как установить vsftpd (ftp-сервер) на CentOS 8

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

На этом мы завершаем нашу тему по установке vsftpd на CentOS 8. Мы надеемся, что теперь вы можете удобно настроить свой собственный сервер vsftpd (безопасный ftp). Пожалуйста, поделитесь им со своими техническими друзьями, а также поделитесь своими ценными отзывами и комментариями.

Установка и настройка FTP-сервера VSFTPd на Centos 7. Локальные пользователи

UPD 27.11.2018
Bash-скрипт добавления пользователей

Создаем bash-скрипт add_ftp_user.sh

Делаем его исполняемым

теперь, что бы добавить нового FTP-пользователя надо выполнить команду

UPD 03.09.2019 – не работает авторизация, ошибка 530

Не работает авторизация в vsftpd:

Решение:
Данная ошибка получается из-за того, что в файле /etc/pam.d/vsftpd
присутствует строчка:

она означает, что только пользователям с доступом к оболочкам должен быть разрешен доступ
А добавляли мы пользователя как раз с параметром: -s /sbin/nologin

Комментирует эту строчку: auth required pam_shells.so и перезапускаем vsftpd

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

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

Сервер FTP

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

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

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

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

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

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

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

Если вы желаете поменять его расположение, например, на /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.

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

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