Unix-way → Установка и настройка (локальные и виртуальные пользователи) Vsftpd в CentOS

Vsftpd это самый популярный FTP-сервер в мире Linux. В статье показано как установить и настроить Vsftpd.

Войдем под root:

su - root


Установим Vsftpd:

yum install vsftpd


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

cd /etc/vsftpd/
nano config


Раскомментируем или добавим следующие:

anonymous_enable=NO
local_enable=YES
xferlog_enable=Yes


Наиболее распространенные ошибки

У большинства дистрибутивов Linux стоит по дефолту SELinux, и многие об этом не думают. Ошибка:

500 OOPS: cannot change directory:/home/user


Для исправления нужно либо отключить SELinux, либо настроить.

1 подход. Отключение SELinux:

nano /etc/selinux/config


И установим disabled:

SELINUX=disabled


2. подход. Настройка SELinux для доступа к FTP:

getsebool -a | grep ftp


По дефолту ftp_home_dir будет выключен, поэтому активируем поставив ON:

setsebool -P ftp_home_dir on


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

Добавим в автозапуск:

chkconfig --levels 345 vsftpd on


Теперь запустим сервис vsftpd:

service vsftpd start


Все готово, сервер FTP готов к работе.

Каталоги виртуальных пользователей будут в /var/ftp/. А для аутентификации будет требоваться pam_userdb. Поставим:

yum install db4-utils as necessary


Создание виртуальных пользователей

Перейдите в директорию /etc/vsftpd с помощью cd, подготовьте файл с логинами и паролями пользователей:

user1
password1
use2
password2


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

cd /etc/vsftpd/
mkdir vuser
cd vuser


Теперь создайте сам файл:

nano vuser_list


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

db_load -T -t hash /etc/vsftpd/vuser/vuser_list /etc/vsftpd/vuser/vuser_db.db


Это создаст хэшированный файл базы данных с именем vuser_db.db из vuser_list.

Активация авторизации PAM

Теперь добавим в /etc/pam.d/vsftpdу данные об авторизации.

cd /etc/pam.d/
nano vsftpd


Вставьте эти две строки в самом начале файла, чуть ниже #%PAM-1.0 и сохранитесь, PAM_Userdb автоматически добавит расширение .db. Таким образом сможете создавать реальных пользователей и виртуальных, используя тот же же демон, а не два процесса Vsftpd.

auth     sufficient pam_userdb.so db=/etc/vsftpd/vuser/vuser_db
account  sufficient pam_userdb.so db=/etc/vsftpd/vuser/vuser_db


Добавляем опции в vsftpd.conf

nano /etc/vsftpd/vsftpd.conf


guest_enable=YES # активировать виртуальных пользователей
virtual_use_local_privs=YES # виртуальные пользователи c правами реальных
user_sub_token=$USER
local_root=/var/ftp/vuser/$USER # домашняя директория для каждого виртуального пользователя
chroot_local_user=YES # ограничение области


Отключить SELinux в /etc/selinux/config, чтобы пользователи имели права на записать в /var/ftp/vuser/$USER.

Создание каталогов виртуальных пользователей

cd /var/ftp
mkdir vuser
mkdir vuser/user1
mkdir vuser/user2
chown -R ftp:ftp /etc/ftp/vuser/


А Для локальных пользователей в каталоге /var/ftp/vuser/ нужно еще создать ссылку на все директории /home/:

mkdir yourlocaluser
chown ftp:ftp yourlocaluser
ln -s /var/ftp/vuser/yourlocaluser /home/yourlocaluser/ftphome


Все загружаемые файлы будут принадлежать пользователю ftp:ftp. И конечно перезагрузим сервис:

service vsftpd restart
  • avatar
  • pashtuun
  • 9157
  • +31
  • 10 декабря 2011, 11:48

Комментариум (9)

RSS свернуть / развернуть
+
+3
avatar

glebadiator

  • 10 декабря 2011, 18:28

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
достаточно актуально была бы еще настройка для ACTIVE/PASSIVE режимов и работа SSL для FTPS :)
+
+2
avatar

pashtuun

  • 11 декабря 2011, 09:59

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Об этом писал для ProFTPd
+
0
avatar

Anonymous

  • 11 декабря 2011, 12:35

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Тяжело написать один большой мануал чтобы не шастать туда сюда?
+
0
avatar

pashtuun

  • 13 декабря 2011, 08:23

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Напиши
+
+3
avatar

Anonymous

  • 11 декабря 2011, 21:28

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Если нужно много пользователей обслуживать советую познакомиться с панелями управления. Удобно, а главное быстро делать виртуал хосты, пользователей фтп, управлять днс, бекапы, базы данных.
+
+2
avatar

makenskiy

  • 12 декабря 2011, 18:45

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Панели жрут ресурс, и не плохо жрут, да и лишняя возможная дыра. Так то да если речь идет о хостинге, то не обойтись.
+
+2
avatar

makenskiy

  • 12 декабря 2011, 18:42

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
А я в MySQL юзеров добавляю, все равно оно стоит. [ман]
+
0
avatar

pashtuun

  • 13 декабря 2011, 08:23

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Linux хорош многими решениями
+
+2
avatar

terra

  • 13 декабря 2011, 12:19

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Красношляпники оригинальны:
yum install db4-utils as necessary — внушает;)

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