FTP服务 Proftpd + mysql + quota[服务器安全]
本文“FTP服务 Proftpd + mysql + quota[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
索引
1
下载相关软件
1.1 下载proftpd
1.2 下载MySQL
1.3 下载proftpd-mod-quotatab
2 安装
2.1 解压proftpd-1.2.9rc1.tar.gz
2.2
解压proftpd-mod-quotatab-1.2.10.tar.gz
2.3 安装MySQL
2.4
编译安装proftpd和proftpd-mod-quotatab
3 配置
3.1 配置proftpd.conf文件
3.1.1 设置磁盘限额
3.1.2 指定磁盘限额模块利用的数据库信息
3.1.3 配置FTP用户为MySQL数据库认证方法
4 成立FTP系统用户和组
5 成立FTP用户认证相关表
6 成立磁盘限额数据表
7 数据表数据初始化
8
运行proftpd
9 配置proftpd履行脚本
10 FAQ
11 别的问题
1 下载相关软件
1.1 下载proftpd
在以下地址可下载到for Linux的proftpd-1.2.9rc1版:
http://www.proftpd.org/download.html
以上地址是一个FTP下载站点的列表,自己选一个吧.
1.2 下载MySQL
MySQL可以到http://www.mysql.com去下载,普通每一种Linux发行版都已经默许安装了MySQL,可以用以下号令查看:
rpm –qa|grep MySQL
假如没有的话,请在自己的Linux安装光盘中找到并予以安装,普通装完后就会自动启动了,可用以下号令查看:
ps –ef|grep
mysql
假如看到了呼应进程则表明MySQL已经运行,不然请自行启动:
/etc/rc.d/init.d/mysql
start
1.3 下载proftpd-mod-quotatab
下面是proftpd-mod-quotatab的下载地址:
http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.10.tar.gz
2 安装
2.1 解压proftpd-1.2.9rc1.tar.gz
假定下载的proftpd-1.2.9rc1.tar.gz文件在/root目录下,则先进入此目录,然后履行:
tar –xzvf
proftpd-1.2.9rc1.tar.gz
2.2 解压proftpd-mod-quotatab-1.2.10.tar.gz
tar –xzvf proftpd-mod-quotatab-1.2.10.tar.gz
2.3 安装MySQL
假定MySQL的rpm包名字为MySQL-3.23.56-i386.rpm
rpm –ivh
MySQL-3.23.56-i386.rpm
2.4 编译安装proftpd和proftpd-mod-quotatab
首先将进入解压后的proftpd-mod-quotatab目录,将此目录下的全部文件复制到解压后的proftpd目录下的modules目录中,接着到contrib目录中编辑mod_sql_mysql.c文件:
vi mod_sql_mysql.c
找到#include
<mysql.h>这一行,将mysql.h改成你的系统中此文件所在的途径,如/usr/include/mysql/mysql.h
然后在解压后的proftpd目录中履行:
./configure --prefix=/usr/local/proftpd
--with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql
--with-includes=/usr/include/mysql --with-libraries=/usr/lib/mysql
注意请按照自己的Linux系统找到MySQL的呼应include和lib目录,以上例子中的相关途径是大大都Linux系统默许的,假如你的MySQL是通过源码编译安装的,则这两个目录普通在安装途径下.
假如configure没有错误,接下来便可以make;make install了.
make
make
install
完成后,在/usr/local目录下会产生一个proftpd目录:
cd /usr/local/proftpd
ls会看到bin etc man sbin
var五个目录,履行sbin/proftpd就会启动proftpd服务了,但目前还是利用的系统用户,请持续看下面……
3 配置
3.1 配置proftpd.conf文件
编辑/usr/local/proftpd/etc/proftpd.conf文件:
3.1.1 设置磁盘限额
#设置磁盘限额
QuotaDirectoryTally on
#设置磁盘容量显示时的单位
QuotaDisplayUnits "Kb"
#翻开磁盘限额引擎
QuotaEngine on
#设置磁盘限额日记文件
QuotaLog
"/usr/local/proftpd/var/quota"
#答应显示磁盘限额信息,ftp登录后可履行quote site
quota号令查看当前磁盘利用情形
QuotaShowQuotas on
3.1.2 指定磁盘限额模块利用的数据库信息
在proftpd.conf文件中加入以下配置:
SQLNamedQuery get-quota-limit SELECT
"name, quota_type, per_session, limit_type, bytes_in_avail, \
bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail,
files_xfer_avail FROM quotalimits \
WHERE name = '%{0}' AND quota_type =
'%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type,
bytes_in_used, bytes_out_used, \
bytes_xfer_used, files_in_used,
files_out_used, files_xfer_used FROM quotatallies \
WHERE name = '%{0}'
AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE
"bytes_in_used = bytes_in_used + %{0}, \
bytes_out_used = bytes_out_used
+ %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, \
files_in_used =
files_in_used + %{3}, files_out_used = files_out_used + %{4}, \
files_xfer_used = files_xfer_used + %{5} \
WHERE name = '%{6}'
AND quota_type = '%{7}'" quotatallies
SQLNamedQuery insert-quota-tally
INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable
sql:/get-quota-tally/update-quota-tally/insert-quota-tally
以上是“FTP服务 Proftpd + mysql + quota[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |