FTP文件服务器

关于FTP服务

FTP(file transfer protocol)文件传输协议,工作在TCP/IP模型的应用层,在客户端与服务器之间进行数据的传输。

两种工作方式:

主动模式(PORT模式):

  1. 客户端打开一个随机的端口x(端口号大于1024,小于65535),连接至服务器的21号命令端口。源端口为客户端随机端口x,远程端口为服务器端口21。

  2. 客户端开始监听端口(x+1),同时通过服务器的21号命令端口向服务器发送一个端口命令(提交PORT命令),此命令告诉服务器客户端客户端我正在监听的端口号并且已准备好从此端口接收数据。

  3. 服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为服务器端端口20,远程数据端口为(x+1)。

命令通道:server port21 由客户端主动创建
数据通道:server port20 由服务端主动创建

在创建数据通道的时候,服务器客户端的角色发生了改变,当服务器发起连接的时候,一般会受到防火墙的阻挡。(下面被动模式解决了这个问题)

被动模式(PASV模式):

  1. 客户端打开两个任意的非特权本地端口x(x> 1024和x+1 < 65535)。第一个端口连接服务器的21端口,提交
    PASV命令,告诉服务器,请求被动模式连接数据通道。

  2. 服务器会开启一个任意的非特权端口(n > 1024),并发送PORT n命令给客户端,告知准备连接的端口。

  3. 客户端发起从本地端口x+1到服务器的端口n的连接用来传送数据。

命令通道:server port21 由客户端主动创建
数据通道:server port n(65535> n > 1024 ) 由服客户端主动创建

被动模式里面,两种连接服务器都处于被动的角色,由客户端来完成主动的工作,两次的连接都由客户端发起。

三种访问人群:

Real user实体用户:

其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

Guest访客用户:

只能够访问其主目录下的目录,而不得访问主目录以外的文件。

Anonymous匿名用户:

在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。

VSFTP构建安全FTP服务器:

vsftp(Very Secure File Transfer Protocol Damon):以安全为重心。

安装服务软件:

安装相关的vsftp服务软件以及lftp:

yum install vsftp 
yum install lftp

开启相关服务:

开启服务,并设置开机启动

systemctl start vsftp 
systemctl enable vsftp

测试服务:


当ls 看到有内容的时候表示初步搭建,并且登陆成功。如果没有成功,请考虑selinux以及放火墙的设置。

VSFTP服务器的配置:

配置文件存在于/etc/vsftp/sftpd.conf 里面。

匿名用户的设置:

1. 匿名用户登陆设定:
anonymous_enable=YES|NO     ##是否允许匿名用户

YES为允许匿名用户登陆,(默认也为YES允许登陆)。NO为不允许匿名用户登陆,当允许匿名用户登陆后,可以进行以下相关的权限设定。

2. 匿名用户家目录设定:
anon_root=/direcotry
3. 匿名下载设定:
anon_world_readable_only=YES|NO   ##设定参数值为no表示匿名用户可以下载
4. 匿名上传设定:
anon_upload_enable=YES   ##允许匿名用户上传
anon_umask=xxx       ##匿名用户上传的文件掩码
5. 匿名创建目录设定:
anon_mkdir_write_enable=YES|NO

若为YES则anon_other_write_enable=YES/NO(NO) 应该设置成YES.

6. 匿名其他读写权限设定:
anon_other_write_enable=YES/NONO

如果设为YES,则允许匿名用户更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经存在的文件夹。)默认值为NO。


本地用户的设置:

1. 本地用户登陆设定:
local_enable=YES|NO     ##本地用户登陆限制
write_enable=YES|NO     ##本地用户写权限限制
2. 本地用户家目录设定:
local_root=/directory
3. 本地用户上传文件权限:
local_umask=xxx
4. 限制本地用户浏览/目录:
chroot_local_user=YES    ##所有用户设定锁定在家目录(默认为no,不锁定)
chmod u-w /home/*

这种方式太过极端:有设置黑白名单的方式进行部分设定:

用户黑名单建立,名单中的进行家目录锁定
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
用户白名单建立,名单中的允许越级访问系统目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
5. 限制本地用户登陆:
vim /etc/vsftpd/ftpusers        ##用户永久黑名单
vim /etc/vsftpd/user_list       ##用户临时黑名单

**若设置了 userlist_deny=NO
/etc/vsftpd/user_list   此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

更多详细配置


all

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值