首页 > 代码库 > Linux 之pureftp 的部署和优化

Linux 之pureftp 的部署和优化

FTP  == File Transfer Protocol  文件上传下载。

lFTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议” 用于Internet上的控制文件的双向传输。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。在CentOS或者RedHatLinux上有自带的ftp软件叫做vsftpd  。

安装pure-ftpd  到官网下载  www.pureftpd.org


[root@LNMP src]# wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.41.tar.bz2  #不知何故没有下载下来


用迅雷下载下来:然后用rz命令发送到 /usr/local/src 目下(rz命令的使用百度,或在前面的章节找)

技术分享


[root@LNMP src]# tar jxvf pure-ftpd-1.0.41.tar.bz2  #解压


[root@LNMP src]cd pure-ftpd-1.0.41

root@LNMP pure-ftpd-1.0.41]# 

 ./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits  --with-tls

楼主在编译的时候报错了

configure: error: OpenSSL headers not found.


[root@LNMP pure-ftpd-1.0.41]# yum install openssl-devel  #安装openssl


再次编译,并检测有没有问题。

技术分享

[root@LNMP pure-ftpd-1.0.41]# make

[root@LNMP pure-ftpd-1.0.41]#echo $?

[root@LNMP pure-ftpd-1.0.41]# make install

[root@LNMP pure-ftpd-1.0.41]# echo $?

至此 pure-ftpd 安装告一段落。

[root@LNMP pure-ftpd-1.0.41]# ls /usr/local/pureftpd/ #查看文件

bin  sbin  share


[root@LNMP pure-ftpd-1.0.41]# mkdir -p /usr/local/pureftpd/etc/ #创建配置文件所在路径


[root@LNMP pure-ftpd-1.0.41]# cd configuration-file


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

             #拷贝配置文件

[root@LNMP configuration-file]# cp pure-config.pl    /usr/local/pureftpd/sbin/pure-config.pl    #拷贝启动文件


[root@LNMP configuration-file]# chmod 755    /usr/local/pureftpd/sbin/pure-config.pl

             #编辑目录权限


在启动pure-ftpd之前需要先修改配置文件,配置文件为/usr/local/pureftpd/etc/pure-ftpd.conf, 你可以打开看一下,里面内容很多,如果英文好,可以好好研究一番,下面是阿铭的配置文件,如果你嫌麻烦,直接拷贝过去即可:(清空原有的配置)


[root@LNMP configuration-file]# >/usr/local/pureftpd/etc/pure-ftpd.conf  #清空

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

MinUID      100                             #影射系统用户的UID 最小是 100

PureDB      /usr/local/pureftpd/etc/pureftpd.pdb #用户名和密码存放的文件

-------------------------------------------------------------------

ChrootEveryone              yes
BrokenClientsCompatibility  no
MaxClientsNumber            50
Daemonize                   yes
MaxClientsPerIP             8
VerboseLog                  no
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 no
SyslogFacility              ftp
DontResolve                 yes
MaxIdleTime                 15
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion              3136 8
AnonymousCanCreateDirs      no
MaxLoad                     4
AntiWarez                   yes
Umask                       133:022
MinUID                      100
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         no
PIDFile                     /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage               99
CustomerProof              yes

----------------------------------------------------------------------


创建测试目录:将ftp放到 /tmp/ftp 下

[root@LNMP configuration-file]# mkdir /tmp/ftp  


[root@LNMP configuration-file]# tail /etc/passwd  #查看用户

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

mysql:x:500:500::/home/mysql:/sbin/nologin

php-fpm:x:501:501::/home/php-fpm:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

user3:x:502:502::/home/user3:/bin/bash  #以user3为例


[root@LNMP configuration-file]# chown -R user3 /tmp/ftp  #更改属主属组

[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw useradd ftpuser1 -uuser3 -d /tmp/ftp/

Password:          #输入密码

Enter it again: 


#“useradd ftpuser1”添加登录ftp服务的虚拟用户

    -uuser3  影射的系统用户

   -d /tmp/ftp/  共享的目录


[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw mkdb #创建生存密码库文件

[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw list #查看

ftpuser1            /tmp/ftp/./                                         


[root@LNMP configuration-file]# /usr/local/pureftpd/bin/pure-pw userdel ftpuser1

#也可以删除用户 ,此处只作示例,不实际操作


启动pure-ftpd  #前面是脚本,后面是配置文件

[root@LNMP configuration-file]#  /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

Running: /usr/local/pureftpd/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb -L3136:8 -m4 -s -U133:022 -u100 -g/usr/local/pureftpd/var/run/pure-ftpd.pid -k99 -Z


#Running  是输出

技术分享

查看进程

[root@LNMP ~]# ps aux |grep pure

root      1575  0.0  0.0 138940   744 ?        Ss   21:31   0:00 pure-ftpd (SERVER)                                                                                                                                                                                  

root      1577  0.0  0.0 103256   828 pts/0    S+   21:31   0:00 grep pure

技术分享

[root@LNMP ~]# netstat -lnp

tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      1575/pure-ftpd (SER 


在另一台linux 客户端尝试远程登录。

 [root@bird ~]# yum install -y lftp #安装lftp 命令

技术分享

在服务端查看共享的文件夹

[root@LNMP ~]# ls /tmp/ftp/

111  #在客户端创建的 111 目录

此处显示的是 502,因为在客户端上没有这个用户名,所以显示502.这个要理解。

技术分享


在服务端可以查看影射用户的登录日志

技术分享


------------------------------------------------------------

在客户端查看ftp 的命令。以下是ftp 的可用命令

技术分享在客户端 上传和下载文件的演示

get 是下载,put 是上传。详见下图。

技术分享

本文出自 “CBO#Boy_Linux之路” 博客,请务必保留此出处http://20151213start.blog.51cto.com/9472657/1880190

Linux 之pureftp 的部署和优化