Показаны различия между двумя версиями страницы.
| — |
vsftp [2026/06/11 12:15] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Установка FTP сервера с использованием vsftpd и MySQL в Ubuntu 7.04-810 ====== | ||
| + | |||
| + | Я уже писал про vsftpd сервер, | ||
| + | |||
| + | Обычно он устанавливается и конфигурируется под пользователей зарегистрированных в системе. | ||
| + | |||
| + | В этом руководстве предполагается установка vsftpd сервера под виртуальных пользователей, | ||
| + | |||
| + | Такое решение позволяет открыть и управлять до тысячи ftp пользователей на одной машине. | ||
| + | |||
| + | Управлять MySQL базой вы можете с помощью пакета phpMyAdmin. | ||
| + | |||
| + | Он имеет достаточно удобный графический интерфейс, | ||
| + | |||
| + | ===== 1. Введение ===== | ||
| + | |||
| + | Использовался дистрибутив Ubuntu 7.04-8.10. Все пакеты взяты из штатных репозитариев. | ||
| + | |||
| + | Отмечу, | ||
| + | |||
| + | Вы можете применить свои установки, | ||
| + | |||
| + | ===== 2. Установка vsftpd, MySQL и phpMyAdmin ===== | ||
| + | |||
| + | Vsftpd собран без поддержки MySQL, по этой причине необходимо установить пакет libpam-mysql для PAM аутентификацию в MySQL базе данных. | ||
| + | |||
| + | Таким образом мы должны установить следующие пакеты libpam-mysql совместно с vsftpd, MySQL, и пакет phpMyAdmin: | ||
| + | |||
| + | < | ||
| + | |||
| + | Назначить пароль для пользователя root для управления базой MySQL (замените слово yourrootsqlpassword на ваш настоящий пароль): | ||
| + | |||
| + | < | ||
| + | |||
| + | Проверим все ли получилось: | ||
| + | |||
| + | < | ||
| + | |||
| + | должно написать: | ||
| + | |||
| + | < | ||
| + | |||
| + | Это если у вас имя хоста только локальное localhost.localdomain, | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== 3. Создаем в терминале суперпользователя MySQL базу данных под vsftpd ===== | ||
| + | |||
| + | < | ||
| + | |||
| + | в появившемся окне выполняем следующие команды: | ||
| + | |||
| + | < | ||
| + | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO ' | ||
| + | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO ' | ||
| + | FLUSH PRIVILEGES;</ | ||
| + | |||
| + | Далее создаем таблицу для этой базы: | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , | ||
| + | `username` VARCHAR( 30 ) NOT NULL , | ||
| + | `pass` VARCHAR( 50 ) NOT NULL , | ||
| + | UNIQUE ( | ||
| + | `username` | ||
| + | ) | ||
| + | ) ENGINE = MYISAM ;</ | ||
| + | |||
| + | выходим из оболочки: | ||
| + | |||
| + | < | ||
| + | |||
| + | Т. е. последняя команда (quit), позволит выйти из командной оболочки MySQL. | ||
| + | |||
| + | Запустив в браузере ссылку- [[http:// | ||
| + | |||
| + | С помощью этой утилиты вы можете создать эту же базу данных (vsftpd), и тут же просмотреть её. | ||
| + | |||
| + | Позже с помощью неё вы сможете управлять вашим | ||
| + | |||
| + | =====4. Конфигурируем vsftpd ===== | ||
| + | |||
| + | В начале создаем непривилегированного пользователя vsftpd (с домашней директорией: | ||
| + | | ||
| + | |||
| + | < | ||
| + | |||
| + | Сохраняем оригинальный / | ||
| + | |||
| + | < | ||
| + | cat /dev/null > / | ||
| + | gedit / | ||
| + | |||
| + | Вставляем в открывшееся окно следующий текст: | ||
| + | |||
| + | < | ||
| + | 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=/ | ||
| + | pam_service_name=vsftpd | ||
| + | rsa_cert_file=/ | ||
| + | guest_enable=YES | ||
| + | guest_username=vsftpd | ||
| + | local_root=/ | ||
| + | user_sub_token=$USER | ||
| + | virtual_use_local_privs=YES | ||
| + | user_config_dir=/ | ||
| + | |||
| + | сохраняем созданный файл. | ||
| + | |||
| + | Посмотреть примеры можно по адресу: | ||
| + | |||
| + | Для использования в дальнейшем опции: | ||
| + | |||
| + | < | ||
| + | |||
| + | Так же мы должны сконфигурировать PAM для ваших виртуальных FTP пользователей с аутентификацией в MySQL базе данных | ||
| + | |||
| + | Конфигурационный файл для PAM под vsftpd должен находится в папке **/ | ||
| + | |||
| + | Сохраняем оригинальный и создаем новый: | ||
| + | |||
| + | < | ||
| + | cat /dev/null > / | ||
| + | gedit / | ||
| + | |||
| + | Вставляем в открывшееся окно следующий текст: | ||
| + | |||
| + | < | ||
| + | account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2</ | ||
| + | |||
| + | Сохраняем этот файл. | ||
| + | |||
| + | Помните, | ||
| + | |||
| + | Перезапустим наш | ||
| + | |||
| + | < | ||
| + | |||
| + | =====5. Создаем первого виртуального пользователя===== | ||
| + | |||
| + | Заходим опять под root в оболочку MySQL : | ||
| + | |||
| + | < | ||
| + | |||
| + | Пишем или копируем команду: | ||
| + | |||
| + | < | ||
| + | |||
| + | Создаем пользователя под именем: | ||
| + | |||
| + | < | ||
| + | |||
| + | Домашняя директория testuser' | ||
| + | |||
| + | Если она не создалась автоматически, | ||
| + | |||
| + | < | ||
| + | chown vsftpd: | ||
| + | |||
| + | Теперь через любой FTP клиент для Linux или Windows, или используя просто браузер, | ||
| + | |||
| + | По той же схеме можно создать и остальных пользователей. | ||
| + | |||
| + | =====6. Управление базой данных ===== | ||
| + | |||
| + | Используя пакет phpMyAdmin, для запуска которого нужно набрать в вашем браузере, | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | или примерно типа: | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | Используя эту утилиту вы можете администрировать vsftpd базу данных. | ||
| + | |||
| + | В этих же целях можно использовать и пакет Webmin. | ||
| + | |||
| + | Используя эти пакеты вы сможете редактировать, | ||
| + | |||
| + | смотри рис 1 и рис. 2: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== 7. Ссылки ===== | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | [[http:// | ||