使用PureFTPd和MySQL虚拟主机(包括配额和带宽管理)在CentOS 6.5上
本文档介绍如何安装使用MySQL数据库而不是真实系统用户的虚拟用户的PureFTPd服务器。 这是更好的性能,并允许在单个机器上有成千上万的ftp用户。 除此之外,我将使用此设置显示使用配额和上传/下载带宽限制。 密码将作为MD5字符串加密存储在数据库中。
对于MySQL数据库的管理,您可以使用基于Web的工具,如phpMyAdmin,它也将安装在此howto中。 phpMyAdmin是一个舒适的图形界面,这意味着您不必乱用命令行。
这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。
本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1初步说明
在本教程中,我使用IP地址为192.168.0.100的hostname server1.example.com 。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。
2安装MySQL和phpMyAdmin
首先,我们在CentOS系统上启用了EPEL存储库,因为我们将在本教程中安装的一些软件包在官方CentOS 6.5存储库中不可用:
cd /tmp
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum install yum-priorities
编辑/etc/yum.repos.d/epel.repo ...
vi /etc/yum.repos.d/epel.repo
...并将行优先级= 10添加到[epel]部分:[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[...]
现在我们可以安装MySQL和phpMyAdmin,如下所示:
yum install mysql mysql-server phpMyAdmin httpd
现在我们配置phpMyAdmin。 我们更改Apache配置,以便phpMyAdmin不仅允许从localhost连接(通过注释节中的所有内容 ,并添加所有必需条件 ):
使文件看起来像这样:
vi /etc/httpd/conf.d/phpMyAdmin.conf# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
#
# # Apache 2.4
#
# Require ip 127.0.0.1
# Require ip ::1
#
#
#
# # Apache 2.2
# Order Deny,Allow
# Deny from All
# Allow from 127.0.0.1
# Allow from ::1
#
Require all granted
# Apache 2.4
Require ip 127.0.0.1
Require ip ::1
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
Order Deny,Allow
Deny from All
Allow from None
Order Deny,Allow
Deny from All
Allow from None
Order Deny,Allow
Deny from All
Allow from None
# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc. This may break your mod_security implementation.
#
#
#
# SecRuleInheritance Off
#
#
然后我们为MySQL和Apache创建系统启动链接(这样每当系统启动时都会自动启动)并启动这两个服务:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
chkconfig --levels 235 httpd on
/etc/init.d/httpd start
为MySQL用户root创建密码(将yourrootsql密码替换为您要使用的密码):
mysql_secure_installation
[root @ server1〜]#mysql_secure_installation 注意:运行本脚本的所有部分是为所有MySQL推荐的 服务器生产使用! 请仔细阅读每一步! 为了登录MySQL来保护它,我们需要当前的 root用户的密码。 如果你刚刚安装了MySQL, 您还没有设置root密码,密码将为空, 所以你应该刚刚进入这里。 输入root的当前密码(输入无): < - ENTER
OK,成功使用密码,移动... 设置root密码确保没有人可以登录MySQL root用户没有正确的授权。 设置root密码? [Y / n] < - ENTER
新密码: < - yourrootsql 密码
重新输入新密码: < - yourrootsqlpassword
密码更新成功! 重新载入特权表.. ...成功! 默认情况下,MySQL安装有一个匿名用户,允许任何人 登录MySQL,而不必创建用户帐户 他们。 这仅适用于测试和进行安装 顺利一点 你应该删除它们,然后再进入 生产环境。 删除匿名用户? [Y / n] < - ENTER
...成功! 通常,root只能被允许从'localhost'连接。 这个 确保有人无法从网络的root密码猜测。 禁止root登录远程? [Y / n] < - ENTER
...成功! 默认情况下,MySQL附带一个名为'test'的数据库,任何人都可以 访问。 这也仅用于测试,应该删除 在进入生产环境之前。 删除测试数据库并访问它? [Y / n] < - ENTER
- 删除测试数据库... ...成功! - 删除测试数据库的权限... ...成功! 重新加载权限表将确保所有更改到目前为止 将立即生效。 现在重新加载权限表? [Y / n] < - ENTER
...成功! 打扫干净... 全做完了! 如果您已经完成了上述所有步骤,您的MySQL 安装应该是安全的。 感谢使用MySQL! [root @ server1〜]#
3使用MySQL支持安装PureFTPd
CentOS PureFTPd软件包支持各种后端,如MySQL,PostgreSQL,LDAP等。因此,我们所要做的就是安装普通的PureFTPd软件包:
yum install pure-ftpd
然后我们创建一个ftp组( ftpgroup )和用户( ftpuser ),我们所有的虚拟用户将被映射到。 将group-and userid 2001替换为系统上免费的数字:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser