举例linux下一款常用的 FTP 服务器设置;

Pure-FTPd 是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器。侧重于运行效率和易用性;

软件环境:

pure-ftpd-1.0.36.tar.gz

PureAdmin-0.3.tar.gz

pureftp.sql(虚拟账号的数据库导入文件)

pureftpd-mysql.conf(虚拟账号链接数据库的配置文件)

1、步骤流程;(整理需求的软件包)

# tar -zxvfpure-ftpd-1.0.36.tar.gz -C /usr/local/src/ 拆解ftp主程序;

# cd /usr/local/src/pure-ftpd-1.0.36/

进行 configure 编译、make配置、make install 安装;

./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

(配置之后直接编译安装)# make && make install

安装完成后,拷贝生成pureftp 服务的主配置文件和服务脚本.

Pure-FTPd_第1张图片

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

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

# mkdir/usr/local/pureftpd/etc

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

拷贝生成pureftp 服务的启动脚本,并修改相应的参数。

Pure-FTPd_第2张图片

Pure-FTPd_第3张图片

配置pure-ftp 的主配置文件,添加虚拟账号的登录环境参数.

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

设置、允许匿名账号登录、但是不允许匿名账号创建目录;连接超时默认为15s、虚拟账号连接数据库的配置文件位置182702459.png

Pure-FTPd_第4张图片

182703921.png

182703661.png

182703410.png


2、创建虚拟用户登录的家目录.

[root@mail docs]# chkconfig dovecot on

[root@mail docs]# cd

[root@mail ~]# mkdir/ftproot

[root@mail ~]# chmod -R 777 /ftproot

创建虚拟账号登录时映射的服务器本地nologin 账号.

[root@mail ~]# useradd virtualftp -d /ftproot -s /sbin/nologin -M

[root@mail ~]# chown virtualftp:virtualftp /ftproot


虚拟账号的认证配置:

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

设置用户数据库目录、(会用pure-pw 生成)

182828209.png

3、建立虚拟账号与服务器本地账号的映射:



Pure-FTPd_第5张图片

(: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

源码配置web管理界面:

# tar -zxvfPureAdmin-0.3.tar.gz -C /var/www/extsuite/extmail/html/

Pure-FTPd_第6张图片

4、导入数据文件pureftp.sql MySQL 数据库.(这个数据库是下载来的、是导进系统中的、但是数据库导入之前还应作如下的修改)

-- This mysqlscript is made by M.Mastenbroek 2002 - 2005

-- For more infolook at http://machiel.generaal.net

-- Version 2.0

--

--

-- mysql -u root-ppassword -h 127.0.0.1 < script.mysql

--

--

--

-- Host:localhost Database: ftpusers

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

-- Serverversion 3.23 or 4.x

-- Scriptversion 1.4.0

--

--

--

-- Create MySQLuser called 'ftp'

-- Login = ftp

-- Password =tmppasswd

-- Host =127.0.0.1

--



FLUSH PRIVILEGES;


CREATE DATABASEftpusers;


USE ftpusers;


--

-- Table structurefor table 'admin'

--

CREATE TABLE admin(

Username varchar(35) NOT NULL default '',

Password char(32) binary NOT NULL default '',

PRIMARY KEY (Username)

);


--

-- Data for table'admin'

--


INSERT INTO admin VALUES('admin',MD5('123456'));


--

-- Table structurefor table 'users'

--


CREATE TABLE`users` (

`User` varchar(16) NOT NULL default '',

`Password` varchar(32) binary NOT NULLdefault '',

`Uid` int(11) NOT NULL default '14',

`Gid` int(11) NOT NULL default '5',

`Dir` varchar(128) NOT NULL default '',

`QuotaFiles` int(10) NOT NULL default '500',

`QuotaSize` int(10) NOT NULL default '30',

`ULBandwidth` int(10) NOT NULL default '80',

`DLBandwidth` int(10) NOT NULL default '80',

`Ipaddress` varchar(15) NOT NULL default '*',

`Comment` tinytext,

`Status` enum('0','1') NOT NULL default '1',

`ULRatio` smallint(5) NOT NULL default '1',

`DLRatio` smallint(5) NOT NULL default '1',

PRIMARY KEY (`User`),

UNIQUE KEY `User` (`User`)

);


--

-- Data for table'users'


# mysql -u root -p< pureftp.sql mysql 进入查看一下;并授权;

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

mysql> flushprivileges;

Pure-FTPd_第7张图片

Pure-FTPd_第8张图片

5pureftpd 的搭建;

修改pureadmin 的配置文件,修改数据库的相关参数;

Pure-FTPd_第9张图片

6、配置pureftpd-mysql.conf 连接数据库文件;(也是下载导入到系统的)

# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/

# vim pureftpd-mysql.conf

183413965.png

183415372.png

183416167.png

183417376.png

183418569.png

183418711.png

7、创建匿名账号的根目录;# mkdir /var/ftp ;浏览器登录测试。

Pure-FTPd_第10张图片