1、目前几种ftp服务器
wu-ftpd服务器(黑客比较喜欢攻击的一个)
vsftpd服务器(radhat,centos 集成的,但是配置麻烦,优势可以集成安装,配置文件推荐
http://seven.blog.51cto.com/120537/58419)
proftpd服务器(配置简单,易用)
Server-u(windows最简单的ftp服务器,点击next--next--即可)
备注:可参考实验
2、以下选择proftpd服务器做的实验
1)下载源码包 proftpd-1.2.9.tar.gz
2)安装过程 tar zvxf proftpd-1.2.9.tar.gz
./configure --prefix=/usr/local/proftpd (安装的目录)
make
make install
3)启动proftp
启动前先修改配置文件
vi /usr/local/proftpd/etc/proftpd.conf
因为还没有组,把里面对Group: 的内容修改为nobody
然后启动
./usr/local/proftpd/sbin/proftpd & (后台执行ftp服务)
4)ftp://192.168.1.10(该ip为你的安装该ftp服务的linux主机地址)
需要输入用户名,密码即可进入
5)proftp的配置
类似apache的配置
添加用户
# useradd -d /data/ftp -s /sbin/nologin/ user1
# pass user1
一个简单的ftp服务器可以访问了
3、高级应用,(每个用户拥有不同权限配置)
/usr/local/proftpd/etc/proftpd.conf 配置文件介绍
<Directory "路径名">...</Directory>
#关于匿名用户的设置
<Anonymous "匿名登陆的目录">
......<Limit 限制动作>
......</Limit>
</Anonymous>
我们用到的比较多的可能是Limit的使用,Limit大致有以下动作,基本能覆盖全部的权限
CMD:Change Working Directory 改变目录MKD:MaKe Directory 建立目录的权限RNFR: ReName FRom 更改目录名的权限DELE:DELEte 删除文件的权限RMD:ReMove Directory 删除目录的权限RETR:RETRieve 从服务端下载到客户端的权限STOR:STORe 从客户端上传到服务端的权限READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等WRITE:写文件或者目录的权限,包括MKD和RMDDIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的ALL:所有权限LOGIN:是否允许登陆的权限
针对上面这个Limit所应用的对象,又包括以下范围
AllowUser 针对某个用户允许的LimitDenyUser 针对某个用户禁止的LimitAllowGroup 针对某个用户组允许的
LimitDenyGroup 针对某个用户组禁止的LimitAllowAll 针对所有用户组允许的LimitDenyAll 针对所有用户禁止的Limit
TransferRate STOR|RETR 速度(Kbytes/s) user 使用者
proftpd.conf 也支持变量,变量的内容如下:
%T 目前的时间
%F 所在硬盘剩下的容量
%C 目前所在的目录
%R Client 端的主机名称
%L Server 端的主机名称
%U 使用者账号名称
%M 最大允许联机人数
%N 目前的主机联机人数
%E FTP 主机管理员的 email
%i 本次上传的档案数目
%o 本次下载的档案数量
%t 本次上传+下载的档案数量
[root@test root]# vi /usr/local/proftpd/etc/proftpd.conf
# 底下是 FTP 主机的环境设定,每个项目的内容为:
# ServerName :当使用者登入主机的时候,proftpd 会显示在 Client 端
# 的 FTP 软件的一些基本讯息啦!
# ServerType :启动 proftpd 的方法,有两种方式,分别是 standalone
# 与 inetd ,因为我们是以 super daemon 启动的,所以
# 设定为 inetd 喔!如果您想独立启动(不透过 xinetd )
# DefaultServer:预设的主机啊!这个项目可以设定为 on 或 off ,基本上,
# 除非您有两个 IP 或者是设定了虚拟主机 (virtualhost),
# 否则这个项目都应该要设定为 on 才行!不然有些 uknown
# 的联机会无法连接到您的 FTP 服务喔!
# Port :设定主机的 FTP 命令信道端口口!如前面 Wu FTP 所说明的,FTP
# 命令通道通常为 21
# Umask :与建立目录及档案的预设属性有关的设定喔!用 022 就够了!
# MaxInstances:同一时间允许的联机数目,这个设定项目与 process (PID) 有关!
# 所以您的 FTP 主机中,proftpd 启用的 process 最多能有30个
# 这个与 MaxClients 不一样喔!
# User 与 Group:proftpd 预设的服务启动者!后面接的使用者与群组
# 必须在 /etc/passwd 与 /etc/group 里面存在方可!
ServerName "这个是测试用的 Proftp 主机"
ServerType inetd
DefaultServer on
Port 21
Umask 022
MaxInstances 30
User nobody
Group nobody
# 底下则是与目录有关的设定!在这个设定中,显示允许读写与覆盖档案!
# AllowOverwrite 就是允许覆写的意思!
<Directory />
AllowOverwrite on
</Directory>
实例1:演示,配置匿名用户,匿名用户下有两个目录,server和test,server目录可以上传下载文件,但是不可以删除。
Test目录,所有权限都有:
<Anonymous /var/ftp>
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
TransferRate STOR 100 user anonymous,ftp
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
<Directory server>
<Limit STOR MKD>
ALLOWAll
</Limit>
</Directory>
<Directory test>
<Limit STOR MKD WRITE>
ALLOWAll
</Limit>
</Directory>
重启ftp服务器。
例子2:用户组配置权限
1、建立所需要的群组与使用者:
建立一个群组为 admin,此外,所有相关的使用者都是这个群组!
[root@CentOS5 root]# groupadd admin
[root@CentOS5 root]# useradd -M -g admin -s /bin/false test01
[root@CentOS5 root]# useradd -M -g admin -s /bin/false test02
[root@CentOS5 root]# useradd -M -g admin -s /bin/false test03
[root@CentOS5 root]# passwd test01
……
2、、建立所需要的 FTP 相关路径:
要的路径在 /var/ftp2 当中,而且 admin 必须要能够写入
[root@test root]# mkdir -p /var/ftp2
[root@test root]# mkdir -p /var/ftp2/upload
[root@test root]# mkdir -p /var/ftp2/work
[root@test root]# chmod -R 775 /var/ftp2
[root@test root]# touch /var/ftp2/work/ratio.dat
[root@test root]# touch /var/ftp2/work/ratio.tmp
[root@test root]# chown -R test01:admin /var/ftp2
[root@test root]# chmod 666 /var/ftp2/work/*
3、建立基本的配置文件:
[root@test root]# vi /usr/local/proftpd/etc/proftpd.conf
<Directory /var/ftp2>
AllowOverwrite no
<Limit CMD>
DenyUser admin
</Limit>
<Limit WRITE DELE STOR>
DenyUser test01
</Limit>
TransferRate RETR 500 user test01
TransferRate STOR 500 user test01
</Directory>
UserRatio test01 0 0 2 100000
UserRatio test02 0 0 1 30000
UserRatio test03 0 0 1 30000
<Directory /var/ftp2>
Umask 002
TransferRate RETR 50 group admin
<Limit WRITE>
Denyall
</Limit>
</Directory>
<Directory /var/ftp2/upload/*>
<Limit READ>
Denyall
</Limit>
<Limit WRITE>
Allowall
</Limit>
</Directory>
重新启动!