且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Pure-Ftpd在企业网中的应用

更新时间:2022-09-18 18:21:49

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

Pure-Ftpd在企业网中的应用

一:搭建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      #使用源码安装时必须查看开发库是否具备

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

[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时需要调用该文件)

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

[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

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

[root@lyt contrib]# service pureftpd restart       #重启该服务

五:使用mysql进行验证:

[root@lyt contrib]# vim /usr/local/pureftpd/etc/pure-ftpd.conf

Pure-Ftpd在企业网中的应用

[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

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用 

Pure-Ftpd在企业网中的应用

[root@lyt etc]# cd /root/pureftp/

[root@lyt pureftp]# vim pureftp.sql     #查看该文件(登录数据库的用户名ftp和密码tmppasswd与上面所截图保持一致)

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

设置登录后台管理的管理员账号和密码

Pure-Ftpd在企业网中的应用

[root@lyt pureftp]# mysql -u root -p < pureftp.sql     #将pureftp.sql导入数据库中

Pure-Ftpd在企业网中的应用

[root@lyt pureftp]# mysql -u root –p      #登录mysql数据库

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用 

Pure-Ftpd在企业网中的应用

mysql> grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';      #设置权限:使用户名ftp,密码tmppasswd可以访问ftpusers的任意表格

mysql&gt; 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

Pure-Ftpd在企业网中的应用 

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

[root@lyt pureadmin]# service httpd restart  

[root@lyt pureadmin]# service pureftpd restart

七:使用另外一个主机测试通过web管理pureftpd:

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用 

Pure-Ftpd在企业网中的应用

[root@lyt pureadmin]# mysql -u ftp –p    #登录数据库

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

八:本地用户到虚拟用户的映射:

[root@lyt pureadmin]# vim /usr/local/pureftpd/etc/pure-ftpd.conf      

Pure-Ftpd在企业网中的应用

[root@lyt pureadmin]# cd /usr/local/pureftpd/bin/

Pure-Ftpd在企业网中的应用

[root@lyt bin]# echo PATH=$PATH:/usr/local/pureftpd/bin  &gt;&gt; /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

使用另外一台主机进行测试:

Pure-Ftpd在企业网中的应用

[root@lyt bin]# cd /ftproot/

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用

Pure-Ftpd在企业网中的应用










本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/997918,如需转载请自行联系原作者