Секретные записки WEB-программиста




100mbru, bitrix, CentOS, cms, drupal, java, joomla, LAMP, linux, mysql, nicru, Open-Source, php, Red Hat, seo, Typo3, ubuntu, win, windows, авто, администрирование, алгоритмы, алкоголь, бизнес, битрикс, видео, военмех, выборы, германия, джино, домены, интересности, исследования, картинки, кино, компьютеры, ливия, магазин, маразм, мастерхост, обработка-изображений, пейнтбол, политика, политэкономия, прикольное-видео, программирование, путешествия, работа, религия, рунет, сайтостроение, сео, сми, технологии, украина, форум, хиханьки, холивары, хостинг

Настройка VSFTPD на CENTOS (виртуальные пользователи)

28.10.2016

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


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

Установка

Устанавливаем пакет VSFTPd:

#yum -y install vsftpd

Устанавливаем пакет баз данных (понадобится для учета пользователей)

#yum install compat-db

Создание пользователя для ftp

# adduser -d /home/vweb/ virtualftp -s /sbin/nologin

Редактируем конфиги vsftpd

#nano /etc/vsftpd/vsftpd.conf

Редактируем параметр pam_service_name= :

pam_service_name=vsftpd-db

Добавляем блок информации о виртуальных пользователях

# Virtual users will be logged into /home/vweb/[username]/
user_sub_token=$USER
local_root=/home/vweb/$USER
guest_enable=YES
guest_username=virtualftp
# Umask applied for virtual users and anon
anon_umask=0022
# Allows uploading by virtual users
anon_upload_enable=YES
# Allows creation of directories by virtual users
anon_mkdir_write_enable=YES
# Allows deletion of files and directories by virtual users
anon_other_write_enable=YES

Создаем файл vsftpd-db

#nano /etc/pam.d/vsftpd-db

Содержание файла:

session optional pam_keyinit.so force revoke
auth required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login

При этом файл с паролями будет в /etc/vsftpd/login.db

Создаем файл пользователей FTP

#nano /etc/vsftpd/login.txt

Формат файла-оригинала (login.txt):

user1
pass1
user2
pass2

и т.д.

Генерируем файл паролей

#rm /etc/vsftpd/login.db
#db42_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
#chmod 600 /etc/vsftpd/vsftpd_users.db /etc/vsftpd/login.txt

Создаем директории для пользователей

#mkdir -p /home/vweb/user1
#mkdir -p /home/vweb/user2

Запускаем VSFTPd

#service vsftpd start

После этого можно попробовать войти на сервер.

Фиксация ошибок

Не удается войти на сервер:

# chown -R virtualftp:virtualftp /home/vweb/
# chmod -R 644 /home/vweb/
# find /home/vweb/ -type d -exec chmod 755 {} ;

При попытки соединения сервер пишет «500 OOPS: cannot change directory». Возможно проблема в SELinux.

#/usr/sbin/setsebool -P ftp_home_dir=1