二.安装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进行管理:
虚拟用户实现基于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配置文件,内容如下:
最后为了能够使用匿名用户能够访问ftp服务器,必须创建/var/ftp目录,因为匿名用户的默认家目录就是该目录,而且该目录开始并不存在需要我们手动创建。
[root@server pureadmin]# mkdir /var/ftp