proftp mysql_用proftp+mysql 架设 FTP服务器

Proftpd+Mysql

搭建

FTP

服务器

在搭建FTP服务器的时候,有时候我需要为每个用户创建一个目录,而用户只能在自己的目录下进行操作,其他用户的目录不可见,同时还需要一个公共目录。基于以上需求,我们可以先创建一个公共目录,然后在此公共目录下创建用户子目录。通过权限设置使用户只能访问自己的目录和公共目录。结合mysql 可以方便地实现用户管理。

以下安装说明。 橙色部分为安装时,需要根据实际情况自行修改的地方。配置文件中的下划线部分为必选内容。

软件包:Proftpd和mysql。

一、

Proftpd安装和配置

1、

使用wget命令获取安装程序。

2、

解压安装包。

#tar xzvf proftpd-1.3.2c.tar.gz

3、配置安装路径。

#cd proftpd-1.3.2c

#./configure

--prefix=/usr/local/proftpd

--with-modules=mod_sql:mod_sql_mysql

--with-includes=/data/mysql/include/mysql

--with-libraries=/data/mysql/lib/mysql/

(--prefix:是要安装到的目录;--with-modules:让编译ProFTPD支持MySQL的模块,--with-includes:指定MySQL服务器includes所在的位置,mysql的include文件通常是.h结尾,--with-libraries:指定MySQL服务器libraries所在的位置,mysql的库文件通常是*结尾,)

3、

编译,安装。

#make

#makeinstall

4、

编辑proftpd配置文件。

#vi /usr/local/proftp/ect/proftpd.conf

二、

创建FTP用户数据库。

本文重在讲proftpd.....mysql 安装步骤省略。

1、在数据库中

创建一个ProFTPD的数据库管理账户。

#mysql -uroot –p//用Root登录MySQL

>create database ftpdb //建ftpdb数据库

>grant select, update on ftpdb.* to proftpd@"%" identified by 'password'

//新增一个用户,用于存取ftpdb数据库,用户名proftpd,密码password

2、在ftpdb数据库中,创建FTP用户组信息表。

>use ftpdb//对ftpdb库操作

#ftpgroup的表结构

CREATE TABLE ftpgroup (

groupname varchar(16) NOT NULL default ‘ ’,

gid smallint(6) NOT NULL default ‘5500',

members varchar(16) NOT NULL default ‘’,

KEY groupname(groupname)

);

//插入一条记录

INSERT INTO ftpgroup VALUES ('ftpgroup', 5500, 'ftpuser');

#ftpuser的表结构

表的结构`ftpusers`

Create TABLE ftpusers (

userid varchar(30) NOT NULL default '',

passwd varchar(80) NOT NULL default '',

uid int(10) unsigned NOT NULL default '1000',

gid int(10) unsigned NOT NULL default '1000',

homedir varchar(255) NOT NULL default '',

shell varchar(255) NOT NULL default '/sbin/nologin',

count int(10) unsigned NOT NULL default '0',

host varchar(30) NOT NULL default '',

lastlogin varchar(30) NOT NULL default '',

UNIQUE KEY userid (userid)

) ENGINE=MyISAM DEFAULT CHARSET=gbk;

#插入一条记录(为保证文件只对自己私有目录具有访问权限,每个用户ID值应不同)

INSERT INTO ftpuser VALUES('ftpuser', 'password', 5501, 5500, '/home/FTP/test ','/sbin/nologin',’’,’’,’’);

其中/home/FTP为公共目录需要手动创建,/home/FTP/test 是指定为用户ftpuser创建的目录。该目录无需手动创建,结合proftp配置文件,若该目录不存在,在用户首次登录时会自动创建。

3、添加FTP服务器系统用户组及用户

#groupadd FTPGRP -g 1000

#useradd  FTPUSR -u 1000 -g FTPGRP -s /sbin/nologin

4、创建FTP公共目录即根目录

#mkdir /home/FTP

用户私有目录无需创建,在配置文件中自行创建。

三、

修改proftpd配置文件。

#配置服务器名称

ServerName"ProFTPD Default Installation"

#配置服务器启动方式

ServerTypestandalone

#隐藏服务器版本信息

ServerIdentoff

#默认服务

DefaultServeron

#设置FTP服务器端口

Port21

#设置是否支持IPv6

UseIPv6off

#Umask指定FTP server进程的Umask值,022与Linux系统得默认值一致。

Umask022

#设置同时登录使用ftp的Ip数目;

MaxInstances30

#设置最大的尝试登陆的次数,如果超过自动断开连接

MaxLoginAttempts3

#限制每个帐户在每个客户端最多可以同时登陆次数

MaxClientsPerUser5

#限制每个客户端主机最多的连接数

MaxClientsPerHost2

#设置每秒接受的链接请求个数,防止DoS攻击

MaxConnectionRate4

#设置客户端连接数量

MaxClients60

#设置上传文件最大值

MaxStoreFileSize2 Gb

#关闭反向查询client的用户名的操作(RFC1413),加快连接速度

IdentLookupsoff

#关闭DNS的反向查询(同样为了加快响应速度)

UseReverseDNSoff

#自动删除未传完(aborted)的上传文件

DeleteAbortedStoreson

#不显示真实的文件所有者信息

DirFakeUseron

#不显示真实的文件的组信息

DirFakeGroupon

#不显示真实的文件的读写操作信息

DirFakeMode0600

#认证帐号不需要有有效的shell

RequireValidShelloff

#配置MySql认证

#设置验证

SQLConnectInfo proftpd@localhost proftpd password

SQLAuthTypes Plaintext

SQLUserInfo ftpusers userid passwd uid gid homedir shell

SQLGroupInfo ftpgroup groupname gid members

SQLAuthenticate users groups

SQLNegativeCache on

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

CreateHome on

SQLNamedQuery getcount SELECT "count from ftpusers where userid='%u'"

SQLNamedQuery getlastlogin SELECT "lastlogin from ftpusers where userid='%u'"

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

SQLShowInfo PASS "230" "You've logged on %{getcount} times,last login at %{getlastlogin}"

SQLLog PASS updatelogininfo

DeferWelcome on

RootLogin off

RequireValidShell off

#设置用户和组

UserFTPUSR

GroupFTPGRP

#将用户活动范围限定在指定目录

DefaultRoot /home/FTP

#设置允许断点续传和覆盖文件

AllowOverWriteon

AllowStoreRestarton

AllowRetrieveRestarton

#让proftp支持现在流行的FXP传输方式,默认是不支持的

AllowForeignAddress on

#设置FTP服务器系统日志存放目录

Systemlog /var/log/ftp.syslog

#设置FTP服务器传输日志存放目录

TransferLog /var/log/ftp.transferlog

#限制传输速率

TransferRate RETR,STOR 50

#设置用户删除权限

AllowUser ftpuser

#设置目录的使用权限

#隐藏没有访问权限的文件

HideNoAccesson

#限制此目录的写权限仅为管理员帐号,根据情况限制权限。

Orderdeny,allow

AllowUserftpuser

四、

测试

开启Prfotpd服务器

/etc/init.d/proftpd start(需要先加入服务)

本文内容均来自互联网,经搜集整理而成,如有侵犯到你的权益,请及时通知我。做相关处理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值