Виртуальный хостинг с PureFTPd и MySQL на Fedora 14

Содержание материала

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Изменим /etc/pure-ftpd/pure-ftpd.conf и убедитесь, что ChrootEveryone, MySQLConfigFile, и CreateHomeDir строки актиироаны и выглядет следующим образом:

  • nano /etc/pure-ftpd/pure-ftpd.conf
[...]
ChrootEveryone              yes
[...]
MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf
[...]
CreateHomeDir               yes
[...]

ChrootEveryone установка сделает PureFTPd изолированной для каждого виртуального пользователя в его домашнем каталоге, чтобы он не сможет просматривать каталоги и файлы за пределами своего домашнего каталога. CreateHomeDir строка зделает для PureFTPd пользователя этого домашнего каталога, когда пользователь войдет в систему а домашний каталог еще не создан.

Теперь мы редактируем /etc/pure-ftpd/pureftpd-mysql.conf. Он должен выглядеть следующим образом:

  • cp /etc/pure-ftpd/pureftpd-mysql.conf /etc/pure-ftpd/pureftpd-mysql.conf_orig
  • cat /dev/null > /etc/pure-ftpd/pureftpd-mysql.conf
  • vi /etc/pure-ftpd/pureftpd-mysql.conf
MYSQLSocket      /var/lib/mysql/mysql.sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

Убедитесь, что Вы замените строку ftpdpass на реальный пароль для пользователя MySQL PureFTPd в строке MYSQLPassword! Пожалуйста, обратите внимание, что мы используем md5 как MYSQLCrypt метод, который означает, что мы будет хранить пользователей пароли, как строки MD5 в базу данных, которая является гораздо более безопасным, чем при использовании обычной текстового пароля!

Теперь мы создаем автозапуск связи для PureFTPd с системой и запустим его:

  • chkconfig --levels 235 pure-ftpd on
  • /etc/init.d/pure-ftpd start

Заполнение базы данных и тестирование

Для большинства людей легче, если они имеют графический интерфейс к MySQL, поэтому Вы можете также использовать PhpMyAdmin (в данном примере под http://server1.example.com/phpMyAdmin/) для администрирования PureFTPd базы данных.

Всякий раз, когда Вы хотите создать нового пользователя, Вы должны создать запись в таблице ftpd, здесь я объясню строки этой таблицы:

  • User: имя виртуального пользователя PureFTPd (например exampleuser ).
  • status: 0 или 1. 0 означает, что учетная запись отключена, пользователь не может Войти.
  • Password: пароль виртуального пользователя. Убедитесь, что вы используете в MySQL функция MD5, чтобы сохранить пароль зашифрован как строки MD5.
  • UID: идентификатор пользователя FTP-пользователя, созданной в конце шага два (например, 2001 ).
  • GID: GROUPID из FTP группы, созданной в конце шага два (например, 2001 ).
  • Dir: домашний каталог виртуального пользователя PureFTPd (например, / главная / www.example.com ). Если она не существует, он будет создан, когда новый пользователь регистрируется в первый раз через FTP. Виртуального пользователя будет тюрьму в этот домашний каталог, т. е. он не может получить доступ к другим директориям за пределами его домашний каталог.
  • ULBandwidth: Добавлено пропускную способность виртуального пользователя в КБ / сек. (Килобайт в секунду). 0 означает неограниченное.
  • DLBandwidth: Скачать пропускную способность виртуального пользователя в КБ / сек. (Килобайт в секунду). 0 означает неограниченное.
  • comment: Вы можете ввести любые комментарии здесь (например, для внутренней администрации) здесь. Обычно вы оставите это поле пустым.
  • ipaccess: введите IP-адреса здесь, которым разрешено подключаться к этой учетной записи FTP. * означает любой IP-адреса допускается, чтобы связаться.
  • QuotaSize: складские помещения в МБ (не КБ, как и в ULBandwidth и DLBandwidth !) виртуальный пользователь имеет право использовать на сервере FTP. 0 означает неограниченное.
  • QuotaFiles: количество файлов, виртуального пользователь может сохранить на сервере FTP. 0 означает неограниченное.

Аноним FTP

Если Вы хотите создать учетную запись анонимного FTP (внимание, каждый может Войти по FTP, без использования пароля), Вам необходим пользователь и группа под названием FTP. Оба были созданы автоматически при установке pure-ftpd пакет, так что вам не нужно создавать их вручную. Однако, домашний каталог FTP является /var/ftp по умолчанию, но я хотел бы создать анонимный FTP-каталог в /home/ftp. Но, конечно, Вы можете использовать /var/ftp директория для анонимного FTP.

Если Вы хотите использовать /home/ftp, открыв /etc/passwd и измененив домашний каталог FTP пользователя /var/ftp на /home/ftp (не делайте этого, если Вы хотите использовать /var/ftp):

  • nano /etc/passwd
[...]
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
ftp:x:14:50:FTP User:/home/ftp:/sbin/nologin
[...]

Затем переместите /var/ftp на /home не делайте этого, если Вы хотите использовать /var/ftp):

  • mv /var/ftp /home

Затем мы создаем каталог /home/ftp/incoming, который позволяют анонимным пользователям загружать файлы. Мы дадим каталогу /home/ftp/incoming разрешения 311, так что пользователи могут загружать, но не видеть или загружать любые файлы в этом каталоге. /home/ftp каталог будет иметь права доступа 555 , который позволяет видеть и загрузки файлы:

  • chown ftp:nobody /home/ftp
  • cd /home/ftp
  • mkdir incoming
  • chown ftp:nobody incoming/
  • chmod 311 incoming/
  • cd ../
  • chmod 555 ftp/

Анонимные пользователи смогут войти в систему, и им будет позволено для загрузки файлов из /home/ftp, но добавления будет ограничено /home/ftp/incoming (и как только файл будет загружен в /home/ftp/incoming, она не может быть прочитан, ни скачен оттуда, администратор сервера должен переместить его в /home/ftp первый, чтобы сделать его доступным для других).

Теперь мы должны настроить PureFTPd для анонимного FTP. Открыть /etc/pure-ftpd/pure-ftpd.conf и убедитесь, что у Вас есть следующие настройки в нем:

  • nano /etc/pure-ftpd/pure-ftpd.conf
[...]
NoAnonymous                 no
[...]
AntiWarez                   no
[...]
AnonymousBandwidth            8
[...]
AnonymousCantUpload         no
[...]

(AnonymousBandwidth параметр не является обязательным - это позволяет ограничить выгрузки и загрузки полосы для анонимных пользователей. 8 означает 8 Кб/сек пропускной способности. Используйте любые значения какие вам нравятся, или закомментируйте строку, если Вы не хотите ограничивать.)

Наконец, мы перезапустить PureFTPd:

  • /etc/init.d/pure-ftpd restart

Теперь Вы можете испробовать, Ваш новый Виртуальный хостинг с PureFTPd и MySQL на Fedora 14.


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk
Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.