用pure-ftpd搭建ftp服务器

 

Pure-FTPd 是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器。 侧重于运行效率和易用性。 它提供了简单的答案,他满足了大众化的需求,包括普通用户以及主机供应商们。
一、实验环境
导入一下文件
前期的挂载光盘,建立 yum 环境,这里就不再一一详细介绍了
[root@localhost ~]# yum install httpd php php-mysql mysql-server mysql-devel mysql –y
启动服务,并设置开机启动
[root@localhost ~]# service httpd start
[root@localhost ~]# service mysqld start
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig httpd on
为增加安全,给mysql设置口令
[root@localhost ~]# mysqladmin -u root -p password '123456'
查看是否安装以下开发所用到的rpm包组:
[root@mail ~]# yum grouplist
Development Libraries
Development Tools
Legacy Software Development
X Software Development
方法:
# yum groupinstall "packge_group_name"
二、编译安装pureftp 
解压缩
[root@localhost ~]# tar zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src
[root@localhost ~]# cd /usr/local/src/pure-ftpd-1.0.36/
[root@localhost pure-ftpd-1.0.36]# ./configure \
>        --prefix=/usr/local/pureftpd \
>         --with-mysql \
>         --with-shadow \
>         --with-pam \
>          --with-welcomemsg   \
>         --with-uploadscript \
>         --with-cookie   \
>         --with-virtualchroot \
>         --with-virtualhosts \
>         --with-diraliases \
>         --with-quotas \
>         --with-puredb \
>         --with-sysquotas \
>          --with-ratios \
>         --with-ftpwho \
>        --with-throttling \
>        --with-language=simplified-chinese
编译安装
[root@localhost pure-ftpd-1.0.36]# make && make install
安装之后,发现没有配置文件,新建一个文件,存放配置文件
[root@localhost ~]# mkdir /usr/local/pureftpd/etc
Copy配置文件到指定位置
[root@localhost ~]# cd /usr/local/src/pure-ftpd-1.0.36/         
[root@localhost pure-ftpd-1.0.36]# cd configuration-file/
[root@localhost configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/
由于启动pureftpd需要调用pure-config.pl ,也需要copy到相应位置
[root@localhost configuration-file]# chmod 755 pure-config.pl
[root@localhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin
生成pure-ftpd的服务脚本
[root@localhost ~]# cd /usr/local/src/pure-ftpd-1.0.36/
[root@localhost pure-ftpd-1.0.36]# cd contrib
[root@localhost contrib]# cp redhat.init /etc/init.d/pureftpd
[root@localhost contrib]# chmod 755 /etc/init.d/pureftpd
修改服务脚本,修改内容如下
[root@localhost contrib]# vim /etc/init.d/pureftpd
指定文件的位置
17 prog=pure-config.pl
 18 fullpath=/usr/local/pureftpd/sbin/$prog
 19 pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho
24 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf –daemonize
启动pureftpd,可以看到启动成功
[root@localhost ~]# service pureftpd start
Starting pure-config.pl: Running: /usr/local/pureftpd/sbin/pure-ftpd --daemonize -A -c50 -B -C8 -D -fftp -H -I15 -L10000:8 -m4 -s -U133:022 -u100 -k99 –Z
添加到服务启动列表,并设置自动启动
[root@localhost ~]# chkconfig --add pureftpd
[root@localhost ~]# chkconfig pureftpd on
三、配置匿名用户登录环境
1.配置虚拟用户登录环境
[root@localhost ~]# mkdir /ftproot
[root@localhost ~]# chmod -R 777 /ftproot
[root@localhost ~]# useradd virtualftp -d /ftproot -s /sbin/nologin -M
[root@localhost ~]# chown virtualftp:virtualftp /ftproot
2.修改配置文件
[root@localhost ~]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
##修改内容如下
52 MaxClientsPerIP              2 
##为了测试,设置每个ip最多打开2个连接
77 NoAnonymous                  yes
##不允许匿名帐号登录
116 MySQLConfigFile      /usr/local/pureftpd/etc/pureftpd-mysql.conf
##mysql的配置文件,通过配置文件来调用mysql
336 CreateHomeDir                yes
##创建家目录
3.将mysql的配置文件copy到相应的位置
[root@localhost ~]# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/
编辑配置文件
[root@localhost ~]# cd /usr/local/pureftpd/etc/
[root@localhost etc]# vim pureftpd-mysql.conf
32 MYSQLPassword    tmppasswd
##数据库密码
45 MYSQLCrypt       md5
##采用md5加密
4.创建数据库,编写数据库pureftp.sql文件,然后导入
[root@localhost ~]# vim pureftp.sql
  
  
  
  
  1. -- This mysql script is made by M.Mastenbroek 2002 - 2005  
  2. -- For more info look at http://machiel.generaal.net  
  3. -- Version 2.0  
  4. --  
  5. -- You don't need this script when you already have the database  
  6. -- or when you use the install.php configuration script successfully.  
  7. --  
  8. -- Example how to execute this script from command line:  
  9. --  
  10. -- mysql -u root -ppassword -h 127.0.0.1 < script.mysql 
  11. --  
  12. --  
  13. --  
  14. -- Host: localhost    Database: ftpusers  
  15. -- -------------------------------------------------------  
  16. -- Server version       3.23 or 4.x  
  17. -- Script version       1.4.0  
  18. --  
  19. --  
  20. --  
  21. -- Create MySQL user called 'ftp'  
  22. -- Login = ftp 
  23. -- Password = tmppasswd 
  24. -- Host = 127.0.0.1  
  25. --  
  26.  
  27. INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES('localhost','ftp',PASSWORD('passwd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');  
  28.  
  29.                                                            
  30. FLUSH PRIVILEGES;  
  31.  
  32. CREATE DATABASE ftpusers;  
  33.  
  34. USE ftpusers;  
  35.  
  36. --  
  37. -- Table structure for table 'admin'  
  38. --  
  39.  
  40. CREATE TABLE admin (  
  41.   Username varchar(35) NOT NULL default '',  
  42.   Password char(32) binary NOT NULL default '',  
  43.   PRIMARY KEY  (Username)  
  44. TYPE=MyISAM;  
  45.  
  46. --  
  47. -- Data for table 'admin'  
  48. --  
  49.  
  50.  
  51. INSERT INTO admin VALUES ('admin',MD5('123'));  
  52.  
  53. --  
  54. -- Table structure for table 'users'  
  55. --  
  56.  
  57. CREATE TABLE `users` (  
  58.   `User` varchar(16) NOT NULL default '',  
  59.   `Password` varchar(32) binary NOT NULL default '',  
  60.   `Uid` int(11) NOT NULL default '14',  
  61.   `Gid` int(11) NOT NULL default '5',  
  62.   `Dir` varchar(128) NOT NULL default '',  
  63.   `QuotaFiles` int(10) NOT NULL default '500',  
  64.   `QuotaSize` int(10) NOT NULL default '30',  
  65.   `ULBandwidth` int(10) NOT NULL default '80',  
  66.   `DLBandwidth` int(10) NOT NULL default '80',  
  67.   `Ipaddress` varchar(15) NOT NULL default '*',  
  68.   `Comment` tinytext,  
  69.   `Status` enum('0','1') NOT NULL default '1',  
  70.   `ULRatio` smallint(5) NOT NULL default '1',  
  71.   `DLRatio` smallint(5) NOT NULL default '1',  
  72.   PRIMARY KEY  (`User`),  
  73.   UNIQUE KEY `User` (`User`)  
  74. TYPE=MyISAM;  
  75.  
  76. --  
  77. -- Data for table 'users'  
  78. -- 
 
导入数据库pureftp
[root@localhost ~]# mysql -u root -p < pureftp.sql
查看是否导入成功
[root@localhost ~]# mysql -u root -p
Enter password:

mysql> use  ftpusers;
##查看数据库表
 

[root@localhost ~]# mysql -u root -p
Enter password:
##用root登录数据库,更改验证方式
mysql> grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';
mysql> flush privileges;
mysql> \quit
Bye
[root@localhost ~]#
四、实现web后台管理
[root@localhost ~]# tar zxvf PureAdmin-0.3.tar.gz -C /var/www/html
[root@localhost ~]# cd /var/www/html
[root@localhost html]# mv PureAdmin-0.3 pureadmin
##修改一下文件名,方便修改
[root@localhost html]# cd pureadmin/
[root@localhost pureadmin]# vim config.php
3 $cfg['dbname']='ftpusers'; //mysql db name
##数据库的名字
4 $cfg['dbuser']='ftp';            //mysql user
##连接数据库的帐号
5 $cfg['dbpasswd']='tmppasswd';            //mysql password
##密码
10 $cfg['passwdtype']='MD5';
##加密方式
14 $cfg['dir']='/ftproot/'; //dir
##根目录
##其他项也可以自己修改
虚拟帐号域本地帐号映射
[root@localhost ~]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
126 PureDB                         /usr/local/pureftpd/pureftpd.pdb
##指明pure-pw的路径
[root@localhost ~]# echo PATH=$PATH:/usr/local/pureftpd/bin >>/etc/profile
##修改环境变量
[root@localhost ~]# . /etc/profile
##环境变量立即生效
[root@localhost ~]# pure-pw useradd user2 -u virtualftp -g virtualftp -d /ftproot/user2 -m
Password:
Enter it again:
##添加虚拟帐号user2
[root@localhost ~]# pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb
 ##建立用户数据库
说明:今后每添加或修改用户数据库都应该执行一次mkdb
重新启动服务
[root@localhost ~]# service httpd restart
Stopping httpd: ^[[B                                        [ OK ]
Starting httpd:                                             [ OK ]
[root@localhost ~]# service mysqld restart
Stopping MySQL:                                            [ OK ]
Starting MySQL:                                             [ OK ]
[root@localhost ~]# service pureftpd restart
 
五、测试
1.用web方式登录
 

 

2.添加帐号

 

                                                     

3.用帐号user1登录

 

你可能感兴趣的:(服务器,ftp,pure-ftp)