前导发轫:网海拾贝
跟着计较机网络的普及,计较机病毒有了快速传达的机遇,并且对数据文件的粉碎日益弥留,用户需求每每对团体弥留数据做异地备份。基于多用户和数据隐私的思索,提出了个人数据备份体系管理方案。它应用网络存储装备具有的大容量、高靠得住性、高安好性特点,为用户提供必定容量的空间来糊口糊口生计团体数据,同时应用软件的权限管理很好地完成团体数据的掉密性。
此刻Linux下FTP服务器软件主要有Wu-FTP和ProFTPD两种。Wu-FTP是Red Hat Linux预装软件,但安好倾向良多。ProFTPD针对Wu-FTP的弱项而拓荒,除改善了安好性外,还具有良多特点,如设置简略、能以Stand-alone情势运转等。ProFTPD已经成为继Wu-FTP之后最为盛行的FTP服务器软件之一。
ProFTPD在1.2版本之前运用Linux用户账号来管理用户,即使用口令文件。该体例存在良多不敷,与数据库应用相比,用户账号的添加、口令的修正及账号的删除显得很是复杂,并且文件无法撑持并发读写;在Linux顶用户账号具有Telnet的权限,安好上存在隐患;口令文件只需root账号可以修正,要是运用赏识器体例修正此文件,在武艺上有必定难度。
在ProFTPD 1.2.4版中添加了数据库管理用户的成效,此刻只撑持MySQL数据库,并且该账号只合用于FTP 服务器,不存在安好上的隐患。本文运用的拓荒平台是Linux ProFTPD MySQL组合。
总体谋划
体系背景采用FTP服务器来为用户提供管理文件成效,可运用撑持FTP 成效的各类软件来应用数据文件。管理方案完成用户账号自动恳求受理、暗码修正,网络管理人员可以运用赏识器来管理账号修正空间限量、修正口令及删除账号等成效。
体系的核心是怎样运用拓荒言语来静态地设备ProFTPD,完成对数目众多用户的账号管理。
管理方案注意内容
有关ProFTPD的安装和设备文件内容的材料可以详见体系文档,本文重点引见和数据库有关的部门。
1. 安装ProFTPD
(1)安装MySQL数据库,确立MySQL的安装目录的标记,连接到/usr/local/mysql。
(2)编译前的设备,将MySQL和空间限量模块添加到编译的选项中,代码如下:
# ./configure --with-includes = /usr/local/mysql/include --with-libraries=/usr/local/mysql/lib/mysql --with- modules=mod_sql:mod_sql_mysql:mod_quota
2. 添加用户
在MySQL中确立FTPusers数据库和users表用来糊口糊口生计FTP账号信息,代码如下:
CREATE TABLE users ( userid varchar(50) NOT NULL, //用户的FTP 账号称号 password varchar(50), // 用户的FTP账号暗码 uid int(5) DEFAULT '0' NOT NULL, //用户主目录的 uid gid int(5) DEFAULT '65533' NOT NULL, //用户主目录的 gid homedir varchar(255), //用户主目录 count int(11) DEFAULT '0', //登岸次数 ftime timestamp(14), //末了一次登岸功夫 shell varchar(255) DEFAULT ' /bin/bash', PRIMARY KEY (userid) //首关键字 );
在proftpd.conf中添加有关MySQL的设备,代码如下:
SQLConnectInfo ftpusers@MySQL服务器名 username password //数据库连接 SQLDoGroupAuth off SQLAuthTypes Plaintext SQLDoAuth on SQLHomedirOnDemand on SQLUserTable users //指定运用的表名 SQLUsernameField userid //以下信息需求与users表中的字段对应 SQLPasswordField password SQLHomedirField homedir SQLLoginCountField count SQLShellField shell SQLAuthoritative off SQLLogStats on SQLMinUsergid 99 SQLMinUseruid 14 SQLLogDirs fcdir SQLDefaultgid 99
确立用户时需求在表中添加记载,即完成账号的添加。在用户第一次运用该账号登岸时,体系自动确立用户主目录并按照uid和gid的值来设置目录的用户和组。按照设备文件中的缺省空间限量的值天生限量文件。以下是ProFTPD.conf中设置缺省空间限量的设备:
DefaultQuota 204800000 //200MB大小 QuotaType hard
3. 删除用户
删除用户需求完成两方面义务:一方面需求对MySQL的users表做相应的删除;另一方面要删除用户主目录。需求把稳的是,由于采用赏识器体例,拓荒体系的实行用户应具有对用户主目录的写权限。用户主目录的用户和组是由users表中的uid和gid来确定的。
4. 修正空间限量
在用户主目录确立后,体系自动天生.quota空间限量文件。该文件只能被root修正,文件的样式为“总容量 运用的容量”,账号管理体系只需运用新的限量文件覆盖即可。对“运用的容量”,FTP服务器每次登岸时会自动计较。怎样使软件体系具有root权限,可以参看“sudoers”。
5.日志记载
从安好角度思索,日志是很弥留的一部门。传统的日志都是记载到文件中,而ProFTPD提供了将日志记载到数据库中的成效。这既随意了日志的盘问,又极大地进步了日志盘问速率。
首先需求在MySQL数据库中确立FTP_log数据表,代码如下:
CREATE TABLE FTP_log ( id int(12) unsigned DEFAULT '0' NOT NULL auto_increment, //首关键字 filename varchar(255), //文件名 filesize int(10) unsigned, //文件大小 email varchar(20) NOT NULL, //用户的账号 ip varchar(15) NOT NULL, //用户的ip所在 action varchar(255), //用户应用的内容 ftime datetime, //应用的功夫 PRIMARY KEY (id) );
修正ProFTPD.conf文件,将“日志记载到文件”关闭,设置如下:
TransferLog none
添加关于日志的设备,需求把用户的上载和下载及删除应用记载到日志中,记载的内容用户可以定置。好比:
SQLLog RETR,STOR,DELE insert FTP_log "null,'%f', %b, '%u','%h','%r',now()"
被记载的应用有以下几个:
◆RETR,文件的下载;
◆STOR,文件的上传;
◆DELE,文件的删除。
个中日志记载有以下内容:
◆%f,上载或下载的文件称号包括绝对途径;
◆%b,文件的大小,以字节为单位;
◆%u,用户运用的FTP账号;
◆%h,用户的IP所在;
◆now(),为MySQL提供体系功夫函数。
停止语
在注意领会体系关键武艺后,拓荒言语可以按照理论环境来选择,并可结合电子邮件服务器,完成账号和暗码的统一,随意用户应用。有关MySQL和ProFTPD的注意设备等标题,由于篇幅无限就不逐一叙述。
版权声明: 原创作品,允许转载,转载时请务必以超链接体例标明文章 原始理由 、作者信息和本声明。不然将究查法令责任。