myftpadmin+proftpd+mysql架设ftp服务器_Ubuntu 12.04下Proftpd FTP服务器配置

Proftpd FTP服务器配置

操作系统 Ubuntu 12.04 64bit server LTS

方案一: 本地文件方式认证

1、安装软件包

apt-getinstall proftpd proftpd-doc proftpd-mod-mysql

ProftpdFTP服务器的配置类似apache配置文件风格,配置文件为/etc/proftpd/proftpd.conf

2、建立ftpuser用户,用于虚拟用户登录系统的身份

useraddftpuser

3、建立主FTP目录

mkdir-p /var/ftpdir

chownftpuser.ftpuser /var/ftpdir

chmod755 /var/ftpdir

4、建立虚拟用户

ftpasswd--passwd --file=/etc/proftpd/passwd/ftpd.passwd --name=test--uid=1001 --gid=1001 --home=/var/ftpdir/beijing/--shell=/usr/sbin/nologin

5、修改配置文件

DefaultRoot ~默认登录到用户的家目录

UseEncodingUTF-8 GBK防止IE、资源管理器文件乱码神器

AllowRetrieveRestarton下载续传

AllowStoreRestarton上传续传

RequireValidShell off不要求有合法的shell

PathDenyFilter\.exe$限制上传的文件格式

PS:proftpd中Limit的使用介绍

我们用到的比较多的可能是Limit的使用,Limit大致有以下动作,基本能覆盖全部的权限了。

CMD:ChangeWorking Directory改变目录

MKD:MaKeDirectory建立目录的权限

RNFR:ReNameFRom更改目录名的权限

DELE:DELEte删除文件的权限

RMD:ReMoveDirectory删除目录的权限

RETR:RETRieve从服务端下载到客户端的权限

STOR:STORe从客户端上传到服务端的权限

READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等

WRITE:写文件或者目录的权限,包括MKD和RMD

DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的

ALL:所有权限

LOGIN:是否允许登陆的权限

针对上面这个Limit所应用的对象,又包括以下范围

AllowUser针对某个用户允许的Limit

DenyUser针对某个用户禁止的Limit

AllowGroup针对某个用户组允许的Limit

DenyGroup针对某个用户组禁止的Limit

AllowAll针对所有用户组允许的Limit

DenyAll针对所有用户禁止的Limit

关于限制速率的参数为:

TransferRateSTOR|RETR速度(Kbytes/s)user使用者

方案二:MYSQL数据库方式认证

proftp+mysql

apt-getinstall mysql-common mysql-server mysql-server-5.5

mysql-u root -p

createdatabaes ftpdb创建数据库

grantall on ftpdb.* to proftpd@"%" identified by'password'创建数据管理账户。

创建用户组表UID、GID与系统用户一致

CREATETABLE ftpgroup (

groupnamevarchar(16) NOT NULL default '',

gidsmallint(6) NOT NULL default '1001',

membersvarchar(16) NOT NULL default '',

KEYgroupname (groupname)

);

插入一条信息,组名称

INSERTINTO ftpgroup VALUES ('ftpuser',1001,'ftpuser');

创建用户表

CreateTABLE ftpusers (

useridvarchar(30) NOT NULL default '',

passwdvarchar(80) NOT NULL default '',

uidint(10) unsigned NOT NULL default '1001',

gidint(10) unsigned NOT NULL default '1001',

homedirvarchar(255) NOT NULL default '',

shellvarchar(255) NOT NULL default '/sbin/nologin',

countint(10) unsigned NOT NULL default '0',

hostvarchar(30) NOT NULL default '',

lastloginvarchar(30) NOT NULL default '',

UNIQUEKEY userid (userid)

)ENGINE=MyISAM DEFAULT CHARSET=gbk;

建立FTP用户

INSERTINTO ftpusersVALUES('wujr','123',1001,1001,'/var/ftpdir/beijing/bj1y/','/sbin/nologin','','','');

修改proftpd.conf配置文件加入如下字段:

LoadModulemod_sql.c

LoadModulemod_sql_mysql.c

AuthOrdermod_sql.c

SQLBackendmysql

SQLConnectInfoftpdb@localhost proftpd 3sh6q9

SQLAuthTypesPlaintext

SQLUserInfoftpusers userid passwd uid gid homedir shell

SQLGroupInfoftpgroup groupname gid members

SQLAuthenticateusers groups

SQLNegativeCacheon

#如果用户目录不存在则自动创建

SQLNamedQuerygetcount SELECT "count from ftpusers where userid='%u'"

SQLNamedQuerygetlastlogin SELECT "lastlogin from ftpusers where userid='%u'"

SQLNamedQueryupdatelogininfo UPDATE "count=count+1, host='%h',lastlogin=current_timestamp() WHERE userid='%u'" ftpusers

SQLShowInfoPASS "230" "You've logged on %{getcount} times,lastlogin at %{getlastlogin}"

SQLLogPASS updatelogininfo

DeferWelcomeon

RootLoginoff

RequireValidShelloff

重启服务,serviceproftpd restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值