FTPd实现基于虚拟帐号访问的FTP服务器(3)

二.安装pure-ftpd

1.安装pure-ftpd的主程序:

[root@server ~]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C/usr/local/src/

[root@server ~]# cd /usr/local/src/pure-ftpd-1.0.36/

[root@server pure-ftpd-1.0.36]# ./configure \

> --prefix=/usr/local/pureftpd \

> --with-mysql \

> --with-shadow \

> --with-pam \

> --with-welcomemsg \

> --with-uploadscript \

> --with-cookie \

> --with-virtualchroot \

> --with-virtualhosts \

> --with-diraliases \

> --with-quotas \

> --with-puredb \

> --with-sysquotas \

> --with-ratios \

> --with-ftpwho \

> --with-throttling \

> --with-language=simplified-chinese

[root@server pure-ftpd-1.0.36]# make && make install

对安装目录下的bin目录和sbin目录做如同httpd同样的操作。

说明:生成pure-ftpd的服务脚本和配置文件,由于在配置pure-ftpd进行配置时没有指定其配置文件的存放路径,默认在其安装的目录下的/etc。

[root@server ~]# cd /usr/local/pureftpd/

[root@server pureftpd]# mkdir etc

[root@server pureftpd]# cd /usr/local/src/pure-ftpd-1.0.36/configuration-file/

[root@server configuration-file]# chmod a+x pure-config.pl

[root@server configuration-file]# cp pure-config.pl/usr/local/pureftpd/sbin/

[root@server configuration-file]# cp pure-ftpd.conf/usr/local/pureftpd/etc/

[root@server configuration-file]# cd ../contrib/

[root@server contrib]# chmod a+x RedHat.init

[root@server contrib]# cp redhat.init /etc/init.d/pureftpd

修改pure-ftpd的控制脚本文件,对以下三行进行修改:

18 fullpath=/usr/local/pureftpd/sbin/$prog

19 pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho

24 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf –daemonize

修改pure-ftpd的配置文件,内容如下:

20 ChrootEveryone yes #固定家目录

40 MaxClientsNumber 100 #最大连接数

52 MaxClientsPerIP 2 #每个ip地址最大连接数

71 AnonymousOnly no #允许匿名用户外的用户登录

77 NoAnonymous no #允许匿名用户登录

116 MySQLConfigFile /user/local/pureftpd/etc/pureftpd-mysql.conf

#指明pure-ftpd与mysql数据库的接口文件位置

126 PureDB /usr/local/pureftpd/etc/pureftpd.pdb

#采用pureDB进行ftp用户身份验证

214 Bind 127.0.0.1,21 #绑定地址

215 Bind 192.168.2.100,21

337 CreateHomeDir yes #虚拟用户登录后自动创建家目录

对pureftpd-mysql.conf的接口文件进行相应的操作:

[root@server ~]# mv pureftpd-mysql.conf/usr/local/pureftpd/etc/

修改接口文件的内容:

12 MYSQLServer 127.0.0.1

17 MYSQLPort 3306

22 MYSQLSocket /tmp/mysql.sock

27 MYSQLUser ftp

32 MYSQLPassword tmppasswd

37 MYSQLDatabase ftpusers

45 MYSQLCrypt md5

启动pure-ftpd服务,并加入chkconfig进行管理:

144743900.png

虚拟用户实现基于pureDB进行验证,因为虚拟用户想要访问ftp服务,在什么验证成功后,会映射成本地账户进行访问。

[root@server etc]# mkdir /ftproot

[root@server etc]# chmod 777 /ftproot/

[root@server etc]# useradd virtualftp -d /ftproot/ -s/sbin/nologin -M

[root@server etc]# chown -R virtualftp:virtualftp /ftproot/

[root@server etc]# pure-pw useradd user1 -u virtualftp -gvirtualftp -d /ftproot/user1 –m #虚拟账户映射成本地账户virtualftp

[root@server etc]#pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb #建立用户数据库

2.安装和配置pure-ftp的web管理界面:

[root@server ~]# tar -zxvf PureAdmin-0.3.tar.gz -C/usr/local/apache/htdocs/

[root@server ~]# cd /usr/local/apache/htdocs/

[root@server htdocs]# mv PureAdmin-0.3 pureadmin

切换到pureadmin目录,修改config.php配置文件,内容如下:

145056946.png

最后为了能够使用匿名用户能够访问ftp服务器,必须创建/var/ftp目录,因为匿名用户的默认家目录就是该目录,而且该目录开始并不存在需要我们手动创建。

[root@server pureadmin]# mkdir /var/ftp

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7c01a6ec34f939739ff1e506a9c0365c.html