码迷,mamicode.com
首页 > 其他好文 > 详细

文件服务器之二:FTP服务器(pureftp)

时间:2015-12-15 21:19:59      阅读:412      评论:0      收藏:0      [点我收藏+]

标签:internet   服务器   计算机   linux   pureftp   openssl   

FTP(File Transfer Protocol),文件传输协议,主要用来进行文件传输(尤其是用来传输大型文件非常方便),用于Internet上的控制文件的双向传输。用户可以通过该服务把自己的PC机与世界各地所有运行FTP协议的服务器相连,以此来访问服务器上的大量程序和信息。


FTP的主要作用,就是让用户连接上一个远程计算机(该远程计算机上运行着FTP服务),查看该计算机上有哪些文件,或者将需要的文件从远程计算机上拷贝到本地,或将本地的文件传输到远程计算机上去。但是在传输的过程中具有一定的危险性,因为数据在Internet上面是完全没有保护的明文传输方式。


在 CentOS 或者 RedHat Linux 上有自带的 ftp 软件叫做 vsftp,但在这里先介绍另外一款提供 ftp 服务的软件(pure-ftpd)。这个软件比 vsftp 配置起来更加灵活。



下面我们就来看看pureftp的部署和优化过程,这里我们采用源码包编译安装的方法:


1、下载源码包:Pure-ftpd的官网是:http://www.pureftpd.org/project/pure-ftpd

  我们可以到该网站去下载我们需要的版本。


  cd /usr/local/src


  wget wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2

  

2、安装步骤:


  tar xjvf pure-ftpd-1.0.42.tar.bz2


  cd pure-ftpd-1.0.42


  ./configure \


  --prefix=/usr/local/pureftpd \


  --without-inetd \


  --with-altlog \


  --with-puredb \


  --with-throttling \


  --with-peruserlimits \


  --with-tls


  注意:我们在这里可能会遇到错误,在编译之后系统会提示:configure: error: OpenSSL headers not found.


  解决方法是:yum install -y openssl openssl-devel,如果找不到这两个包,则需要安装yum的扩展源:yum install -y epel-release


  make && make install


3、配置 pure-ftpd


  cd configuration-file


  mkdir -p /usr/local/pureftpd/etc/


  cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf


  cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl


  chmod 755 /usr/local/pureftpd/sbin/pure-config.pl


在启动 pure-ftpd 之前需要先修改配置文件,配置文件为/usr/local/pureftpd/etc/pure-ftpd.conf, 你可以打开看一下,里面内容很多,下面是笔者提供的配置文件内容,如果你觉得直接更改嫌麻烦,直接把自带配置删除,然后把下面的配置粘贴即可


  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


4、启动 pure-ftpd


  cd /usr/local/pureftpd/


   ./sbin/pure-config.pl ./etc/pure-ftpd.conf


如果是启动成功,会显示一行长长的以 Running 开头的信息,否则那就是错误信息。重启可能会比较麻烦一些,毕竟我们没有启动脚本。重启的话,可以使用下面的命令来实现。


   killall puref-ftpd


   cd /usr/local/pureftpd/; ./sbin/pure-config.pl ./etc/pure-ftpd.conf


5、建立账号


Pure-ftpd 使用的账号并非 Linux 系统账号,而是虚拟账号。因为,这样做比较安全。


 mkdir /data/www/


 useradd ftp


 chown -R ftp:ftp /data/www/


 /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uftp -d /data/www/


Password:


Enter it again:


其中, -u 将虚拟用户 ftp_user1 与系统用户 www 关联在一起,也就是说使用 ftp_user1
账号登陆 ftp 后,会以 www 的身份来读取文件或下载文件。 -d 后边的目录为 ftp_user1 账户
的家目录,这样可以使 ftp_user1 只能访问其家目录/data/www/。到这里还未完成,还有最关
键的一步,就是创建用户信息数据库文件:


 /usr/local/pureftpd/bin/pure-pw mkdb


pure-pw 还可以列出当前的 ftp 账号,当然也可以删除某个账号, 我们再创建一个账号:


 /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp


 /usr/local/pureftpd/bin/pure-pw mkdb


注意:每次创建了一个帐号之后,就要执行这条命令,生成一个数据库文件,不然会报错


列出当前账号:


 /usr/local/pureftpd/bin/pure-pw list


删除账号的命令为:


 /usr/local/pureftpd/bin/pure-pw userdel ftp_user2



6、测试


在远程机器上下载lftp:yum install -y lftp


使用远程机器连接ftp服务:lftp user_ftp1@192.168.1.125

  

  





本文出自 “奇迹的少年” 博客,请务必保留此出处http://raffaelexr.blog.51cto.com/8555551/1723325

文件服务器之二:FTP服务器(pureftp)

标签:internet   服务器   计算机   linux   pureftp   openssl   

原文地址:http://raffaelexr.blog.51cto.com/8555551/1723325

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!