文档库 最新最全的文档下载
当前位置:文档库 › pureftp pureadmin搭建

pureftp pureadmin搭建

pureftp pureadmin搭建
pureftp pureadmin搭建

一、安装pureftpd

前提:已经配置好lamp环境

1、下载所需软件包

#wget ftp://https://www.wendangku.net/doc/143325694.html,/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.gz

2、编译安装

#./configure --prefix=/usr/local/pureftpd --with-mysql --with-throttling --with-puredb --with-virtualhosts --with-virtualroot --with-cookie --with-quotas --with-sysquotas --with-ratios --with-welcomemsg --with-peruserlimits --with-lanaguage=simplified-chinese

----------

如果出现configure: error: libmysqlclient is needed for MySQL support

解决:#yum install mysql-devel

----------

--with-tls表示激活SSL/TLS,需要openssl>

# make

# make install

-----进入pure-ftp解压目录-----

3、复制必要的文件

# cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/

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

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

@# cp configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/

4、添加pureftpd为系统服务

# cp contrib/redhat.init /etc/init.d/pureftpd

# vi /etc/init.d/pureftpd

修改18/19行

fullpath=/usr/local/sbin/$prog

pureftpwho=/usr/local/sbin/pure-ftpwho

为:

fullpath=/usr/local/pureftpd/sbin/$prog

pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho

修改24行

$fullpath /etc/pure-ftpd.conf --daemonize

为 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf --daemonize

# chmod 755 /etc/init.d/pureftpd

# chkconfig --add pureftpd

# chkconfig pureftpd on

5、修改配置文件

# vi /usr/local/pureftpd/etc/pure-ftpd.conf

其中可以修改最大连接数、空闲时间等,详细介绍见https://www.wendangku.net/doc/143325694.html,/497193/104618

其中有几项要修改:

chrootEveryone yes 限定在自己的家目录

NoAnonymous yes 不允许匿名登录

Bind 127.0.0.1,21 监听本机回环 <可选>

Bind 192.168.0.254,21 监听本机IP <自行添加的,非必须> CreateHomeDir yes 允许用户登录后自动创建家目录 <必须>

如果启用了iptables,还必须修改下面这一行:

PassivePortRange 30000 50000保存退出。

iptables开启相关端口:

iptables -I INPUT -p tcp --dport 21 -j ACCEPT

iptables -I INPUT -p tcp --dport 30000:50000 -j ACCEPT

/etc/rc.d/init.d/iptables save

6、配置虚拟用户登录环境

# mkdir /ftproot

# chmod -R 777 /ftproot <这不不做可以能会引起登录时报421错误>

# useradd virtualftp -d /ftproot -s /sbin/nologin <创建接下来的虚拟用户对应的系

统用户>

@# chown virtualftp:virtualftp /ftproot

7、设置环境变量

# echo PATH=$PATH:/usr/local/pureftpd/bin/ >>/etc/profile

# source /etc/profile

# pure-pw show tony 查看tony这个用户的详细信

# pure-pw list 是看用户列表的

# pure-pw passwd tony -m 修改tony的密码

# pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb 创建虚拟用户数据库。

# pure-pw show tony 查看用户

# pure-pw usermod 修改用户

8、启动pureftpd

#service pureftpd start 或者#/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 -E -fftp -H -I5

-L10000:8 -m4 -s -U133:022 -u100 -j -k99 -Z

表示正常

# netstat -anltp | grep 21

tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 13418/pure-ftpd (SE

tcp 0 0 :::21 :::* LISTEN 13418/pure-ftpd (SE

二、虚拟用户使用篇

(一)用pureDB认证

<1>#vi /usr/local/pureftpd/etc/pure-ftpd.conf

修改126行为:

PureDB /usr/local/pureftpd/pureftpd.pdb

<2>#pure-pw useradd user1 -u virtualftp -g virtualftp -d /ftproot/user1 -m

说明:

user1是用户名,-u virtualftp是其实际的linux用户,-d指定起始目录,并锁定于该目录。如果不锁定,则用-D;如果需要不同的权限,可以建立新的linux用户与组

如果用的系统自带的ftp用户,这样的话还需修改配置文件pure-ftpd.conf中的MinUID 为ftp用户的UID 14,否则登录时会出现530错误;所以这里建议创建另一个非系统自带的用户做映射

<3>建立用户数据库:

# pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb

说明:今后每添加或修改用户数据库都应该执行一次mkdb

<4>虚拟用户的信息以每个用户一行的方式存放在相应的文件中,其格式如下所示:

:::::::::::::::::

其中,除了帐号、口令、 uid 、 gid 和 home 目录之外,其它的可以是空值<5>pure-pw 创建用户的语法规范如下:

pure-pw useradd [-f ] -u [-g ]

-D/-d [-c ]

[-t ] [-T ]

[-n ] [-N ]

[-q ] [-Q ]

[-r [/][,[/]]...]

[-R [/][,[/]]...]

[-i [/][,[/]]...]

[-I [/][,[/]]...]

[-y ]

[-z -] [-m]

如果pure-ftpd启动时加入 -j(--createhome) 选项,则不需要创建/ftproot/tony目录。系统会在该用户第一次登陆时自动创建

<6>更改用户的语法

pure-pw usermod -n '' :禁用文件配额

pure-pw usermod -N '' :禁用文件大小配额

pure-pw usermod -q '' -Q '' :禁用 ratio

pure-pw usermod -t '' :禁用下载带宽限制

pure-pw usermod -T '' :禁用上传带宽限制

pure-pw usermod <-i,-I,-r or -R> '' :禁用 IP 过滤

pure-pw usermod -z '' :禁用时间段约束

pure-pw usermod -y '' :禁用并发数限制

<7>删除一个用户

pure-pw userdel [-f ] [-m]

这时,用户的信息会被从指定的 passwd 文件中删除,但是用户的 home 目录会被保留,需要手工删除

<8>更改一个用户口令

pure-pw passwd [-f ] [-m]

<9>显示用户信息

/etc/pureftpd.passwd 文件中记录的信息不方便用户的阅读,因此 pure-ftpd 提供了显示用户信息的命令。其语法是:

pure-pw show [-f ]

<10> 使得pure-ftpd支持虚拟用户,需要在编译的时候加入选项--with-puredb 。这时,可以通过在启动服务是的’-l’ 参数来设置。如:

/usr/local/pureftpd/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &

(二)用mysql认证

<1>#vi /usr/local/pureftpd/etc/pure-ftpd.conf

修改116行为:

MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf

<2>下载web管理程序pureadmin0.3

# wget https://www.wendangku.net/doc/143325694.html,/docs/PureAdmin_03_php/PureAdmin-0.3.tar.gz

以下操作针对此web管理程序

<3>配置web程序

# tar xvf PureAdmin-0.3.tar.gz -C /var/www/html/

# cd /var/www/html/

# mv PureAdmin-0.3/ pureadmin

# cd pureadmin

<4>导入数据到mysql

# wget https://www.wendangku.net/doc/143325694.html,/docs/PureAdmin_03_php/pureftp.sql

# less pureftp.sql

注意其中的

22 -- Login = ftp 此为登录数据库的用户

23 -- Password = tmppasswd 此为登录数据库的密码

31 CREATE DATABASE ftpusers; 创建名为ftpusers的库

50 INSERT INTO admin VALUES ('admin',MD5('passwd')); 此为登录web用的用户密码,可自行修改

<导入数据,导入前可能需要修改此sql文件的15行:前2个减号空一格-- ------------------------------------------------------->

# mysql -u root -p < pureftp.sql

<5>查看mysql

添加连接mysql用户

先用root登录mysql,执行

mysql>grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd'; mysql>flush privileges;

mysql>quit;

# mysql -u ftp -p

Enter password:tmppasswd

mysql>use ftpusers;

mysql>show tables;

+--------------------+

| Tables_in_ftpusers |

+--------------------+

| admin |

| users |

+--------------------+

2 rows in set (0.01 sec)

mysql> select * from admin;

+----------+----------------------------------+

| Username | Password |

+----------+----------------------------------+

| admin | 76a2173be6393254e72ffa4d6df1030a |

+----------+----------------------------------+

1 row in set (0.11 sec)

mysql>quit

<6>修改pureadmin的配置文件

# cd /var/www/html/pureadmin

# vi config.php 我的如下:

$cfg['dbhost']='localhost'; //mysql host

$cfg['dbname']='ftpusers'; //mysql db name 所用的库<与前面导入的sql中要一致>

$cfg['dbuser']='ftp'; //mysql user 登录mysql的帐号

$cfg['dbpasswd']='tmppasswd'; //mysql password 登录mysql的密码

//ftp config

$cfg['page']=10; 每页显示的用户数量

//ftp passwd type : TEXT/CRYPT/MD5

$cfg['passwdtype']='MD5'; 认证模式<要与pureftpd-mysql.conf中一致>

//ftp default

$cfg['uid']=500; //uid 映射虚拟用户的UID,即刚创建的virtualftp用户

$cfg['gid']=500; //gid 同上$cfg['dir']='/ftproot/'; //dir 默认家目录

$cfg['qf']=0; //quotafiles 文件个数限制,0为不限制

$cfg['qs']=100; //quotasize 总文件大小

$cfg['ul']=0; //ULBandwidth 上传速率限制

$cfg['dl']=200; //DLBandwidth 下载速率限制

$cfg['ur']=0; //ULRatio 上传比$cfg['dr']=0; //DLRatio 下载比$cfg['status']=1; //status 状态,1为激活;0为禁止

$cfg['ip']= '*'; //ipaddress 可访问IP,*为所有

?>

<7>下载pureftpd-mysql.conf文件

# cd /usr/local/pureftpd/etc/

# wget https://www.wendangku.net/doc/143325694.html,/docs/PureAdmin_03_php/pureftpd-mysql.conf

# vi pureftpd-mysql.conf

修改如下:

MYSQLUser ftp

MYSQLPassword tmppasswd

MYSQLDatabase ftpusers

MYSQLCrypt md5

<8>现在可以登录使用了

http://localhost/pureadmin

登录:用户admin ;密码passwd ;验证码不用

创建的虚拟用户家目录,会在虚拟用户第一次登录时自动创建

如创建了一个user1用户

# ll /ftproot/ 没有任何文件

total 0

# ftp localhost

Connected to localhost.localdomain.

220---------- Welcome to Pure-FTPd [privsep] ----------

220-You are user number 1 of 50 allowed.

220-Local time is now 16:16. Server port: 21.

220-This is a private system - No anonymous login

220-IPv6 connections are also welcome on this server.

220 You will be disconnected after 5 minutes of inactivity.

500 This security scheme is not implemented

500 This security scheme is not implemented

KERBEROS_V4 rejected as an authentication type

Name (localhost:root): user1

331 User user1 OK. Password required

Password:

230-Your bandwidth usage is restricted

230-OK. Current restricted directory is /

230 0 Kbytes used (0%) - authorized: 102400 Kb

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

# ll /ftproot/ 自动创建了目录user1

total 4

drwxr-xr-x 2 virtualftp virtualftp 4096 Apr 1 16:16 user1 实现了web创建、管理虚拟用户

相关文档