Установка PureFTPd сервера с поддержкой MySQL
В Ubuntu 10.04-14.04 LTS такой пакет уже имеется в репозитарии, поэтому просто вводим команду:
apt-get install pure-ftpd-mysql |
Далее создаем ftp группу (ftpgroup) и ftp пользователя (pureftp user), которых будем использовать для всех ваших будущих виртуальных пользователей. Если в Вашей системе нет id номера 2001, то присваиваем этой группе и пользователю id 2001:
groupadd -g 2001 ftpgroup |
Создаем MySQL базу данных для PureFTPd сервера
Перед созданием непосредственно базы, создадим пользователя pureftpd с паролем ftpdpass который будет являться администратором нашей базы (pureftpd):
mysql -u root -p
|
Замените слово ftpdpass на свой пароль (этот, я использовал для примера, для пущей секретности можете менять и имя базы и имя пользователя).
Затем заходим в оболочку базы MySQL и копируем в командную строку ниже приведенные команды, затем нажимаем Enter (yes) для создания таблиц базы:
USE pureftpd; |
создаем:
CREATE TABLE ftpd ( |
Выходим:
quit; |
Конфигурируем PureFTPd
Редактируем файл /etc/pure-ftpd/db/mysql.conf:
сохраняем старый:
cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig |
обнуляем:
cat /dev/null > /etc/pure-ftpd/db/mysql.conf |
набираем:
gedit /etc/pure-ftpd/db/mysql.conf |
и вставляем сл. строки:
MYSQLSocket /var/run/mysqld/mysqld.sock |
Строка MYSQLCrypt md5
дает возможность переконвертировать текст пароля в строку MD5 string, с целью секретности.
Далее создаем новый файл с именем /etc/pure-ftpd/conf/ChrootEveryone, содержащим одну строку со словом yes:
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone |
Это разрешит серверу PureFTPd изолировать каждого виртуального пользователя в его домашнем каталоге, в результате чего? он не сможет просматривать каталоги и файлы вне его домашнего каталога.
И еще создаем файл с именем /etc/pure-ftpd/conf/CreateHomeDir с той же командой.
echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir |
Что позволит серверу PureFTPd автоматически создавать домашний каталог пользователя, при входе пользователя в систему, даже если домашний каталог еще не существует.
Затем перестартуем PureFTPd:
/etc/init.d/pure-ftpd-mysql restart |
Создаем пробную базу для тестирования системы.
Для внесения содержания в базу заходим в оболочку MySQl:
mysql -u root -p |
Затем вводим:
USE pureftpd; |
Немного пояснений:
Новый пользователь создаваемый для тестирования FTP сервера будет имееть статус 1 (т.е. доступ активен)), он имеет (в моем примере) пароль secret (при внесении изменений в базу данных вы должны включить функцию MySQL's MD5),имеет так же UID и GID 2001, домашнюю директорию /var/www, и скорость закачки (upload и download) в 100 KB/sec. (kilobytes в second), а так же квоту (quota) в 50 MB:
Теперь сам код который вводим:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/var/www', '100', '100', '', '*', '50', '0'); |
Выходим из оболочки:
quit; |
Теперь открываем свой FTP клиент в компьютере (что-нибудь подобно WS_FTP или SmartFTP, если у вас Windows или gFTP или FileZilla на Линуксе) и пробуем подключиться.
Имя хоста которое при этом надо использовать- это имя вашей машины (или ее IP адрес), имя пользователя в моем примере является- exampleuser, а пароль- secret.
Каталог, который я прописал, это - var/www. Для захода на мою страничку.
Вы можете использовать например свой реальный, типа- /home/www.example.com.
Создаем возможность логинится анонимным пользователям на наш FTP.
В начале оздаем пользователя ftp (с домашней папкой в /home/ftp) и в группе ftp:
groupadd ftp |
Затем создаем конфигурационный файл /etc/pure-ftpd/conf/NoAnonymous со строкой- no:
echo "no" > /etc/pure-ftpd/conf/NoAnonymous |
С такой конфигурацией анонимные пользователи могут логинися к FTP серверу.
Делаем рестарт серверу PureFTPd:
/etc/init.d/pure-ftpd-mysql restart |
Создаем для анонимных пользователей папку с различными правами, например:
cd /home/ftp |
Теперь осталось защитить от несанкционированного доступа. Создаем файлик .ftpaccess в директории где у нас будет разрешен доступ пользователям FTP с таким содержимым:
|
Где xx.xx.xx.xx — это IP-адрес, с которого разрешен доступ по FTP к учетной записи.
oригинал статьи