Pure-FTPd 是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器。 侧重于运行效率和易用性。 它提供了简单的答案,他满足了大众化的需求,包括普通用户以及主机供应商们。pure - ftpd 得到了充分的支持,它是始终以安全设计为理念,其代码总是作为有漏洞的来进行讨论,并重新审核。该服务可以适应严格的安全需要做到权限分离。 甚至在不需要Root权限的情况下通过其内建的chroot()仿真以及虚拟帐户100%正常运行。避免密码作为明文传输:pure - ftpd的OpenSSL库支持可选的 SSL / TLS加密层使用。
笔者虽然成功了,但是有很多疑问,望高人指点
求助:笔者对此案例甚是无语,笔者按原定的搭建方式完成后,使用web方式创建虚拟用户,测试主机的命令行(ftp 192.168.101.66)中一直无法登陆,
提示“验证失败”,使用下列命令创建的虚拟用户可以登陆,但是在mysql数据库中没有虚拟用户的记录:
[root@lyt bin]# pure-pw useradd userX-u virtualftp -g virtualftp -d /ftproot/userX–m
[root@lyt bin]# pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb
第二次笔者还没有执行第八步,也即“八:本地用户到虚拟用户的映射:”。使用web方式创建的虚拟用户就可以在测试主机的命令行(ftp
192.168.101.66)中登陆了,而且在mysql数据库中有记录。
案例:在linux上搭建lamp环境,通过web方式管理pure-ftpd的用户
所用的源码有:
PureAdmin-0.3.tar.gz
pure-ftpd-1.0.36.tar.gz
webpureftp0.1.tar.gz
[root@lyt ~]# mkdir /mnt/cdrom
[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/
[root@lyt ~]# cd /mnt/cdrom/Server/
[root@lyt Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo
一:搭建lamp环境:
[root@lyt Server]# yum install httpd php php-mysql mysql mysql-server mysql-devel -y #搭建lamp环境所需要的软件包
[root@lyt Server]# service httpd start
[root@lyt Server]# chkconfig httpd on #设置开机自动启动
[root@lyt Server]# service mysqld start
[root@lyt Server]# chkconfig mysqld on #设置开机自动启动
[root@lyt Server]# mysqladmin -u root -p password "123" #为mysql设置root账户的登录密码为123
二:编译安装pureftpd主程序:
[root@lyt Server]# cd /root/pureftp/
[root@lyt pureftp]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src/ #将pureftpd的主软件包拆包
[root@lyt pureftp]# cd /usr/local/src/pure-ftpd-1.0.36/
[root@lyt pure-ftpd-1.0.36]# yum grouplist #使用源码安装时必须查看开发库是否具备
[root@lyt pure-ftpd-1.0.36]# ./configure \ #检测预编译环境
> --prefix=/usr/local/pureftpd \(安装路径)
> --with-mysql \(ftp服务器支持mysql)
> --with-shadow \(支持本地的/etc/shadow)
> --with-pam \(使用pam接口来进行身份验证)
> --with-welcomemsg \(欢迎信息)
> --with-uploadscript \(上传之后可以执行的脚本)
> --with-cookie \(页面缓存)
> --with-virtualchroot \(支持软链接掉转到其他目录)
> --with-virtualhosts \(支持虚拟主机)
> --with-diraliases \(支持目录的别名)
> --with-quotas \(配额)
> --with-puredb \(虚拟账号和真实账号的映射关系存放在puredb中)
> --with-sysquotas \(配额)
> --with-ratios \
> --with-ftpwho \
> --with-throttling \(法则)
> --with-language=simplified-chinese(支持简体中文)
[root@lyt pure-ftpd-1.0.36]# make #编译
[root@lyt pure-ftpd-1.0.36]# make install #安装
三 生成pure-ftpd的服务脚本
[root@lyt pure-ftpd-1.0.36]# mkdir /usr/local/pureftpd/etc #创建一个目录存放pureftpd的配置文件
[root@lyt pure-ftpd-1.0.36]# cd configuration-file/
[root@lyt configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/ #将pure-ftpd的配置文件pure-ftpd.conf拷贝指定目录下
[root@lyt configuration-file]# chmod 755 pure-config.pl #将该文件赋予可执行权限(启动pureftpd时需要调用该文件)
[root@lyt configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/ #将pure-config.pl文件拷贝到指定目录下
[root@lyt configuration-file]# cd ../contrib/
[root@lyt contrib]# cp redhat.init /etc/init.d/pureftpd #将服务的控制脚本redhat.init拷贝到/etc/init.d目录下。并命名为pureftpd,这样就可以用service pureftpd
restart 来控制该服务
[root@lyt contrib]# chmod 755 /etc/init.d/pureftpd #将服务的控制脚本赋予可执行权限
[root@lyt contrib]# vim /etc/init.d/pureftpd #查看服务的控制脚本(启动pureftpd时需要调用该文件)
[root@lyt contrib]# service pureftpd start #可以使用该命令控制该服务了
[root@lyt contrib]# chkconfig --add pureftpd #将pureftpd加入chkconfig控制中
[root@lyt contrib]# chkconfig pureftpd on #开机自动启动
四:虚拟账号映射为本地账号:
[root@lyt contrib]# mkdir /ftproot
[root@lyt contrib]# chmod -R 777 /ftproot/
[root@lyt contrib]# useradd virtualftp -d /ftproot/ -s /sbin/nologin #创建一个虚拟账户virtualftp,指明它的家目录/ftproot/ ,-d表示家目录,-s表示取消登录
[root@lyt contrib]# chown virtualftp:virtualftp /ftproot #将/ftproot的用户和组权限修改为virtualftp
[root@lyt contrib]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
[root@lyt contrib]# service pureftpd restart #重启该服务
五:使用mysql进行验证:
[root@lyt contrib]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
[root@lyt contrib]# cp /root/pureftp/pureftpd-mysql.conf /usr/local/pureftpd/etc/ #拷贝调用mysql时的配置文件pureftpd-mysql.conf到该目录下
[root@lyt contrib]# cd /usr/local/pureftpd/etc/
[root@lyt etc]# vim pureftpd-mysql.conf
[root@lyt etc]# cd /root/pureftp/
[root@lyt pureftp]# vim pureftp.sql #查看该文件(登录数据库的用户名ftp和密码tmppasswd与上面所截图保持一致)
设置登录后台管理的管理员账号和密码
[root@lyt pureftp]# mysql -u root -p < pureftp.sql #将pureftp.sql导入数据库中
[root@lyt pureftp]# mysql -u root –p #登录mysql数据库
mysql> grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd'; #设置权限:使用户名ftp,密码tmppasswd可以访问ftpusers的任意表格
mysql> flush privileges; #刷新
六:搭建web界面管理服务器
[root@lyt pureftp]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html/ #拆解PureAdmin-0.3.tar.gz,此包是web的管理界面,基于php的,所在在最开始安装php
[root@lyt pureftp]# cd /var/www/html/
[root@lyt html]# mv PureAdmin-0.3/ pureadmin #改名
[root@lyt html]# cd pureadmin/
[root@lyt pureadmin]# vim config.php
[root@lyt pureadmin]# service httpd restart
[root@lyt pureadmin]# service pureftpd restart
七:使用另外一个主机测试通过web管理pureftpd:
[root@lyt pureadmin]# mysql -u ftp –p #登录数据库
八:本地用户到虚拟用户的映射:
[root@lyt pureadmin]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
[root@lyt pureadmin]# cd /usr/local/pureftpd/bin/
[root@lyt bin]# echo PATH=$PATH:/usr/local/pureftpd/bin >> /etc/profile #此路径/usr/local/pureftpd/bin下的所有文件都是可执行的,但是必须在此路径下执行,如果想在任意路径下都可以执行,需将其追加到/etc/profile文件中
[root@lyt bin]# . /etc/profile #使刚才追加进去的命令生效,不执行此命令则在下次登录系统时生效
[root@lyt bin]# pure-pw useradd user2 -u virtualftp -g virtualftp -d /ftproot/user2 –m #pure-pw是上一步中生效的命令,user2虚拟的用户名,-u virtualftp是其实际的linux用户,-d指定起始目录,并锁定于该目录
[root@lyt bin]# pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb #新建立的映射存放在pureftpd.pdb中
[root@lyt bin]# service httpd restart
[root@lyt bin]# service pureftpd restart
使用另外一台主机进行测试:
[root@lyt bin]# cd /ftproot/