Pure-Ftpd在企业网中的应用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

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

image

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

image

image

image

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

image

image

[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

image

image

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

五:使用mysql进行验证:

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

image

[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

image

image 

image

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

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

image

image

image

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

image

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

image

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

image

image

image 

image

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

image 

image

image

image

[root@lyt pureadmin]# service httpd restart  

[root@lyt pureadmin]# service pureftpd restart

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

image

image 

image

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

image

image

image

image

image

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

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

image

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

image

[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

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

image

[root@lyt bin]# cd /ftproot/

image

image

image

image










本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/997918,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
235
分享
相关文章
Nginx-URLRewrite伪静态
请根据你的具体需求和网站结构进行适当的配置更改。这只是一个示例,可以根据你的项目需求进行定制。
199 3
linux php-fpm优化 php-fpm.conf 重要参数详解
linux php-fpm优化 php-fpm.conf 重要参数详解
154 0
nginx、fastcgi、php-fpm
什么是fastcgi? fastCGI是由CGI(common gateway interface,通用网关接口)发展而来,是http服务器(nginx、apache)和动态脚本语言(php)之间的通信接口。记住,fastCGI只是一个接口。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等