Установка и настройка VSFTPD + MYSQL (Ubuntu & Debian)

11 февраля 2011
Просмотров: 9159Обсудить
Рубрика: Администрирование -> Ubuntu

Источник: http://sudouser.com/ustanovka-i-nastrojka-vsftpd-mysql-ubuntu-debian

Копирую статью у себя, чтоб всегда был к ней доступ.

Vsftpd считается одним из самых быстрых и хорошо защищенных FTP серверов под Linux. Обычно он устанавливается и конфигурируется под пользователей зарегистрированных в системе. В этом руководстве предполагается установка vsftpd под виртуальных пользователей, зарегистрированных в базе данных MySQL.

Такое решение позволяет открыть и управлять до тысячи ftp пользователей на одном сервере.

Управлять MySQL базой вы можете с помощью пакета phpMyAdmin.

1 Установка vsftpd, MySQL и phpMyAdmin

Vsftpd собран без поддержки MySQL, по этой причине неоходимо установить пакет libpam-mysql для PAM аутентификацию в MySQL базе данных. таким образом мы должны установить следующие пакеты libpam-mysql совместно с vsftpd, MySQL, и пакет phpMyAdmin:

sudo aptitude install vsftpd libpam-mysql mysql-server mysql-client phpmyadmin

Далее необходимо назначить пароль для пользователя root для управления MySQL (замените слово yourrootsqlpassword на ваш настоящий пароль) :

mysqladmin -u root password yourrootsqlpassword

Для смены пароля вашей базы данных MySQL под ваш hostname, примените следующую комманду:

mysqladmin -h server1.example.com -u root password yourrootsqlpassword

2 Создаем в терминале суперпользователя MySQL базу данных под vsftpd

mysql -u root -p

в появившемся окне выполняем следующие команды (т.е. находясь в командной оболочке MySQL создадим базу):

CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;

ftpdpass - можно заменить на свой пароль. vsftpd - лучше не трогать. так всем понятней будет.

Далее таблицу для этой базы:

USE vsftpd;
CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;
quit;

Запустив в браузере ссылку- http://localhost/phpmyadmin/ (или ваш- например: server1.example.com, или можно вставить IP адрес вашего сервера) вы попадете в утилиту phpmyadmin.

С помощью этой утилиты вы можете создать или изменить эту же базу данных (vsftpd), и тут же просмотреть её.

Позже с помощью неё вы сможете управлять вашим vsftpd сервером.

3 Конфигурируем vsftpd

В начале создаем непривилегированного пользователя vsftpd (с домашней директорией: /home/vsftpd) входящего в группу: nogroup. Домашние директории виртуальных пользователей, в дальнешем будут расположены в этой /home/vsftpd директории (например: /home/vsftpd/user1, /home/vsftpd/user2, и т.д.).

useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd

Сохраняем оригинальный /etc/vsftpd.conf файл и создаем другой:

cp /etc/vsftpd.conf /etc/vsftpd.conf_orig
cat /dev/null > /etc/vsftpd.conf
gedit /etc/vsftpd.conf

Вставляем в открывшееся окно следующий текст:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf

сохраняем созданный файл.

Посмотреть примеры можно по адресу: http://vsftpd.beasts.org/vsftpd_conf.html

Для использования в дальнейшем опций: user_config_dir, создадим вновь специальную директорию:

mkdir /etc/vsftpd_user_conf

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

Так же должны сконфигурировать PAM для ваших виртуальных FTP пользователей с аутентификацией в MySQL базе данных вместо расположения в /etc/passwd и /etc/shadow. Конфигурационный файл для PAM под vsftpd должен находится в папке /etc/pam.d/vsftpd. Сохраняем оригинальный и создаем новый:

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
cat /dev/null > /etc/pam.d/vsftpd
gedit /etc/pam.d/vsftpd

Вставляем в открывшееся окно следующий текст:

auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2

Сохраняем этот файл.

Перезапустим наш vsftpd сервер:

/etc/init.d/vsftpd restart

4 Создаем первого виртуального пользователя

Заходим опять под root в оболочку MySQL :

mysql -u root -p

Пишем или копируем команду:

USE vsftpd;

Создаем пользователяпод именем: testuser и паролем secret:

INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret')); quit;

Домашняя директория testuser’а будет здесь /home/vsftpd/testuser.

Если она не создалась автоматически, создадим эту директорию вручную в группе: nogroup:

mkdir /home/vsftpd/testuser
chown vsftpd:nogroup /home/vsftpd/testuser

Теперь через любой FTP клиент для Linux или Windows, или используя просто браузер, вы можете соединится c вновь созданным сервером, используя имя testuser и пароль secret.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
Метки: ,


Комментариев: 2
Подписаться на комментарии по RSS
  • #12012-07-02 в 20:46:44Андрей (анонимно)

    Все сделал по инструкции. При попытке соединения filezilla выдает ошибку libgcc_s.so.1 must be installed for pthread_cancel to work. Что делать?


  • #22012-07-03 в 12:50:26yaap

    @Андрей (анонимно)

    Установить libgcc_s.so =)

    Т.е. это к лампу непосредственно имеет не большое отношение. Скорее всего вы удалили нужный пакет (и скорее всего с зависимостями)

    http://www.tejasbarot.com/2011/09/20/solved-libgcc_s-so-1-must-be-installed-for-pthread_cancel-to-work-for-teamviewer-6-0-9258-centos-6-x86_64-rhel-x86_64-64-bit/

    https://www.google.com.ua/search?num=100&hl=ru&newwindow=1&q=ibgcc_s.so.1+must+be+installed+for+pthread_cancel+to+work


Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)