您的位置:首页 > 编程语言 > PHP开发

Ubuntu Pure-Ftpd安装配置

2016-02-18 00:00 806 查看

安装

sudo apt-get install pure-ftpd-mysql mysql-server

添加用户组 和 用户

sudo groupadd –g 2001 ftpgroup
sudo useradd –u 2001 –s /bin/false –d /dev/null –c “Pure-FTPd User” –g ftpgroup ftpuser

Chroot设置

可以在配置目录/etc/pure-ftpd/conf/下面创建一个名为ChrootEveryone的文件,并将内容设置为yes。这样设置后,每个FTP用户自己的HOME目录就成了它的root目录。

下面的设置告诉Pure-FTPd不要为用户自动创建HOME目录。

sudo sh -c "echo 'NO' > /etc/pure-ftpd/conf/CreateHomeDir"

为Pure-FTPd创建MySQL数据库

create database ftpusers;
use ftpusers;
create table if not exists users(
User varchar(16) not null default '',
Password varchar(32) not null default '',
Uid int(11) not null, Gid int(11) not null,
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)
) ENGINE=MyISAM;

各字段含义

User FTP用户名

Password 该用户的密码

Uid 该用户属性Unix系统UserID

Gid 该用户属性Unix系统GroupID

Dir 该用户的FTP目录

QuotaFiles 文件数量限额(0为不做限制)

QuotaSize 磁盘限额,单位为MB(0为不作限制)

ULBandwidth 上传数量限制,单位为KB/s(0为不限制)

DLBandwidth 下载速率限制,单位为KB/s(0为不限制)

Ipaddress IP地址限制(*为不限制)

Comment 备注

Status 锁定/解锁状态

ULRatio 上传/下载比例中的上传比

DLRatio 上传/下载比例中的下传比

数据库配置

/etc/pure-ftpd/db/mysql.conf

MYSQLServer             127.0.0.1
MYSQLSocket             /var/run/mysqld/mysqld.sock
MYSQLUser           root
MYSQLPassword           root
MYSQLDatabase           ftpusers
MYSQLCrypt          md5
MYSQLGetPW          SELECT Password FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MYSQLGetUID
3ff0
SELECT Uid FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MYSQLGetGID         SELECT Uid FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MYSQLGetDir         SELECT Dir FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MySQLGetQTAFS           SELECT QuotaFiles FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MySQLGetQTASZ           SELECT QuotaSize FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MySQLGetRatioUL     SELECT ULRatio FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MySQLGetRatioDL     SELECT DLRatio FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="L" AND Status="1" AND (Ipaddress="
" OR Ipaddress LIKE "R")

重启Pure-FTPd

/etc/init.d/pure-ftpd-mysql restart

实现用户的Web管理

USE ftpusers;
CREATE TABLE IF NOT EXISTS admin (
Username varchar(35) NOT NULL,
Password varchar(32) NOT NULL,
PRIMARY KEY (Username)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

然后添加管理员账户

INSERT INTO admin (Username, Password) VALUES('ftpadmin',MD5(‘123456’));

wget http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz

解压到可以访问的地方访问 install.php

按照错做进行

Pure-FTPd配置选项

Pure-FTPd通过pure-ftpd-wrapper程序从/etc/pure-ftpd/conf/目录下读取各种控制选项的配置。 这些控制选项均为Pure-FTPd的命令选项,根据赋值内容,分为如下几类:逻辑型 数值型 字符串型 IP地址型 文件型
逻辑型
启用时可以是Yes 1 On,禁用时则可以用No 0 Off来表示:
AllowAnonymousFXP 是否允许匿名FXP
AllowUserFXP 是否允许通过认证的用户使用FXP
AllowDotFiles 是否允许以点开头的文件
AnonymousCantUpload 是否允许匿名用户上传文件
AnonymousCanCreateDirs 是否允许匿名用户创建目录
AnonymousOnly 禁止用户登录
AntiWarez 禁止下载“ftp”所拥有的文件
AutoRename 自动改名(可以防止文件被覆盖)
BrokenClientsCompatibility 提供客户端兼容性
CallUploadScript 是否运行上传处理脚本
ChrootEveryone 是否将用户限制在其HOME目录内
CreateHomeDir 是否自动创建HOME目录
CustomerProof 是否启用客户校验
Daemonize 是否在后台运行
DisplayDotFiles 是否显示以点开头的文件
DontResolve 是否禁止在log文件中进行域名解析
IPV4Only
IPV6Only
KeepAllFiles
LogPID 是否将程序运行的PID写在日志文件中
NATmode
NoAnonymous 是否允许匿名访问
NoChmod 是否禁止chmod命令
NoRename 是否禁止修改文件名
PAMAuthentication 是否使用PAM认证
ProhibitDotFilesRead 是否禁止读取点开头的文件
ProhibitDotFilesWrite 是否禁止写点开头的文件
UnixAuthentication 是否启用Unix认证
VerboseLog 是否向log中记录所有客户端命令
数值型配置
单个数值
MaxClientsNumber 最大并发在线用户数
MaxClientsPerIP 每个IP的最大并发连接数
MaxDiskUsage 最大磁盘使用率
MaxIdleTime 最大空闲时间(超时将自动断开)
MaxLoad 最大负载
MinUID 允许登录的最小用户ID
TLS SSL/TLS加密设置
TrustedGID 可信任的GID
两个数值
AnonymousRatio 匿名用户的上传下载比例(1 2表示上传1M可下载2M)
UserRatio 认证用户的上传/下载比例
LimitRecursion 内置ls命令的递归限制(2000 8表示最多列2000个文件,最深为8层)
PassivePortRange 被动模式的端口范围
PerUserLimits 每个用户的最大线程数
Quota 文件数限额和磁盘限额
一个或两个数值
AnonymousBandwidth 匿名用户的下载带宽限制(若为10000:10表示上传为10000KB/s,下载限制为10KB/s)
UserBandwidth 认证用户的下载带宽限制
八进制数
Umask 新建文件和目录的权限掩码
字符串型配置选项
任意格式的字符串
AltLog:定义额外的log文件。可提供3种格式的日志:
AltLog clf:/var/log/pureftpd.log
AltLog stats:/var/log/pureftpd.log
AltLog w3c:/var/log/pureftpd.log
Bind: FTP服务所绑定的网络端口(默认所有网卡的21端口)
ForcePassiveIP:指定一个IP地址来应答PASV/EPSV/SPSV(用于NAT)
单字
SyslogFacility:写入Syslog的类别,即auth authpriv daemon ftp security user local , 默认为ftp。设置为none,则禁止该日志。
IP地址型配置选项
TrustedIP:指定一个IP地址,只有该IP地址可以允许认证用户访问。
文件型配置选项 文件型
FortunesFile 定义一个文件,该文件包含用户登录后显示的信息
LDAPConfigFile LDAP配置文件
MySQLConfigFile MySQL配置文件
PGSQLConfigFile PGSQL配置文件
PureDB PureDB用户数据库 Socket型*
ExtAuth Pure-FTPd之pure-authd程序的socket文件

要想实现匿名访问,必须在操作系统中创建一个名为ftp的用户,并将其加入ftp组。
如果希望使用系统内置用户登录只需要执行

sudo sh “echo ‘yes’” > /etc/pure-ftpd/conf/UnixAuthentication

如果希望所有用户都使用chroot

sudo sh “echo ‘yes’” > /etc/pure-ftpd/conf/ChrootEveryone
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: