debian系统下面配置proftp服务器

我之所以选择proftpd,是因为我以前一直用wu-ftpd,但是我总是没搞定wu-ftpd所出现的问题。在抓狂之后我走向了安装proftpd的道路!

ProFTPD 也是开放源码的软件,以 GPL 许可发布。ProFTPD 可以说是 wu-ftpd 的替代,同时在安全,可伸缩性等方面有很大的提高。特别是对于熟悉 Apache 配置的人而言,它的配置和 Apache 十分相似,因此,用起来肯定能得心应手。

一个单一的和 Apache 的 httpd.conf 类似的配置文件

每个目录下的 .ftpaccess 文件(和 Apache 的. htaccess 类似)

很容易配置的,多个虚拟 FTP 服务器以及匿名 FTP 服务

好了,废话少说,转入正题:

<color=red>第一步.</color>

#Apt-get install proftpd

选择inetd ,之后就OK,这时候我们的linux一个普通用户就能登陆,其他都不能登陆的,所以我们还有很多设置要改!

首先大家先跟我一起要有这样一个思路:

建立下面的文件夹:

/home/china-net (这个文件夹就是我专门用来FTP上传和下载的)

/home/china-net/user1.com

/home/china-net/user2.com

/home/china-net/user3.com

等等是我的服务器用户网站文件夹!

而用户组 ftpadmin 的用户 ftpadmin 就是/home/china-net里面的超级管理员

而用户组 ftpuser 的用户 user1 ,user2 ,user3 ,分别是

/home/china-net/user*.com 文件的对应所属!

2. 安装好之后,会产生两个文件

/etc/proftpd.conf (FTP的主要配置文件)

/etc/ftpusers (里面是FTP禁止登陆的用户)

3.这时候我们来建立FTP的用户组和用户

#groupadd ftpuser (这个用户组包含我们公司全部的FTP客户)

#useradd –g ftpuser -d /home/china-net/user1.com / -s /dev/null user1

#useradd –g ftpuser -d /home/china-net/user1.com / -s /dev/null user2

#useradd –g ftpuser -d /home/china-net/user1.com / -s /dev/null user3

(上面三个命令就是建立用户,既我们的FTP客户)

#passwd user1

Changing password for user echo

New UNIX password:user1

Retype new UNIX password:user1

passwd:all authentication tokens updated successfully

然后让我们的FTP用户只能FTP登陆不能TELNET

#nano /etc/shells

/dev/null (在最后面加入这行)

#nano /etc/passwd

user1:x:1002:1001::/home/ftpuser/:/dev/null 改为

user1:x:1002:1001::/home/ftpuser/./:/dev/null

这样user1只能用ftp登录,而不能用telnet

重复上面的命令再设置另外两个用户 user2 user3

完毕之后 user1.com就可以登陆了。但是会有两个问题:

a.访问上级目录!

b.上传的文件会无影无终!

4. 解决访问上级目录的问题:

这时候在 /etc/proftpd.conf文件里面加一句

DefaultRoot /home/china-net

你可以用FTP软件试下就知道了。/home/china-net为你FTP的根目录,你的权限最多访问到这里!

这时候你看看,访问上级目录的问题基本上解决了。

可是还是不完美。如果我们这样改呢:

DefaultRoot ~ !admin

这个时候你在看看,哪个用户登陆都是它自己的根目录!

好,下面解决不能上传的问题。

5. 在这里补充一下: chmod chgrp chown 这三个命令一定要熟练使用!不然你就设置不好FTP!

#groupadd ftpadmin

#useradd –g ftpadmin –d /home/china-net ftpadmin –s /dev/null

#chgrp –R ftpadmin /home/china-net (参数R是包含所有目录,这里是加群组)

#chown –R ftpadmin /home/china-net (这里是加用户)

6. 一个不能上传的问题困扰了我很久,然后我从这里得到了启发:

<Anonymous ~ftp>

User ftp

Group nogroup

UserAlias anonymous ftp

MaxClients 10

DisplayLogin welcome.msg

DisplayFirstChdir .message

</Anonymous>

这样设置后,我的FTP的匿名用户居然可以上传和下载 /home/ftp目录里面的东西,不过根目录也是限制在这个文件下面,不能访问上级目录的。而这个却正是我的user1用户应该拥有的权限!所以我的设置还要改

<Directory /home/china-net/user1.com>

<Limit WRITE>

AllowUser user1

</Limit>

<Limit RMD RNFR DELE RETR> #不允许删除,改名,下载

DenyUser

</Limit>

</Directory>

OK!

写到这里的时候,我的步骤也基本到这里停止了,也刚好下班。算是用了一天的时间!

然后总结了一下,我还有很多的问题没有解决:

让用户上传不可能在proftpd.conf上面来限制的,那样是不是太麻烦了?是不是应该有个ftpaccess 这个文件呢?

我对proftpd里面的这个文件还完全不了解!