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里面的这个文件还完全不了解!