ftp就是进行数据传输的,vsftpd是一种更安全的数据传输,优化FTP服务器,就是做好对实体用户(user)、匿名用户(anonymous)以及特殊需求用户的管理。那么可以对这些用户限制什么或者说开放什么,换句话说就是ftp有什么功能可以使用。这些我写在了第六个目录下面,可以根据自己需求查看。
一、ftp的数据传输简介
1、功能简介
- 不同等级的用户权限不同:user、guest、anonymous
user(实体用户):指的是服务器中存在的用户,就是说你可以 ssh 进入的用户。当你使用这个用户登录 ftp 那么你进入到的是这个这个用户的家目录。实体用户有比较完整地权限,可以进行更多操作。
guest(访客):这个我还没有遇到过,多半是由于服务器提供了类似个人Web首页的功能给一般用户,那么这些用户需要管理自己的 页空间。这个时候就用到了guest。就是说在/var/ftp下创建一个/var/ftp/guest1目录,这个目录就是这个访客的家目录。
anonymous(匿名用户):一般给匿名用户只开放下载功能,其默认进入的是/var/ftp/这个目录。 - 命令记录与日志文件记录
FTP可以利用系统的syslogd来进行数据的记录,而记录的数据包括了用户曾经使用过的命令与用户传输数据(传输时间,传输大小等)的记录,所以可以很轻松地在/var/log/里面找到各项日志信息。 - 限制用户活动的目录:(change root,简称 chroot)
作用:让实体用户只能访问自己的家目录,不能在/etc或者其他目录下走动。
2、主动连接用到的端口
- 命令通道:默认port 21
- 数据传输通道:默认port 20
3、工作流程
- 你可以使用 anonymous 这个匿名账 或其他实体账 (/etc/passwd) 登入;
- anonymous 的家目录在 /var/ftp ,且无上传权限,亦已经被 chroot 了; 实体用户的家目录参考/etc/passwd,并没有被 chroot,可前往任何有权限可进入的目录中;
- 任何于 /etc/vsftpd/ftpusers 内存在的账 均无法使用 vsftpd (PAM); 可利用 /etc/hosts.{allow|deny} 来作为基础防火墙;
- 当客户端有任何上传/下载信息时,该信息会被纪录到 /var/log/xferlog 中;
- 主动式联机的埠口为 port 20;
- 使用格林威治时间 (GMT)。
同样的需要建立命令通道,透过三向交握就可以建立起这个通道了。
2)客户端发出PASV的连接要求
当有使用数据信道的指令时,客户端可透过命令通道发出 PASV 的被动式联机要
求 (Passive 的缩写), 并等待服务器的回应;
3)FTP服务器启动数据端口,并通知客户端连接
如果你的 FTP 服务器是能够处理被动式联机的,此时 FTP 服务器会先启动一个埠口在监听。 这个端口口 码可能是随机的,也可以自定义某一范围的埠口,全看你的 FTP 服务器软件而定。 然后你的 FTP 服务器会透过命令通道告知客户端该已经启动的埠口 (图中的 port PASV), 并等待客户端的联机。
4)客户端随机取用大于1024的端口进行连接
然后你的客户端会随机取用一个大于 1024 的端口 来对主机的 port PASV 联
机。 如果一切都顺利的话,那么你的 FTP 数据就可以透过 port BB 及 port
PASV 来传送了。
4、客户端在防火墙后面
所以当你启动 vsftpd 后,你的实体用户就能够直接利用 vsftpd 这个服务来传输
他自己的数据了。 不过比较大的问题是,因为 vsftpd 预设使用 GMT 时间,因为你在
客户端使用 ftp 软件连接到 FTP 服务器时,会发现每个档案的时间都慢了八小时了!
真是讨厌啊! 所以建议你加设一个参数值,就是『 use_localtime=YES 』啰!
2、对实体账 的设置
1)先建立主配置文件 vsftpd.conf,这个配置文件已经包含了主要设定值
2)建立欢迎信息

4)建立限制系统账 登录,比如root、bin等,如果你不想让jiaofan这个账 登录,你可以把他加进去。
5)对用户(包括未来新建用户)进行 chroot,但是jiaofan1和jiaofan2不用chroot,其他都要chroot.
6)限制实体用户总下载流量(带宽)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!