Linux系统服务 3 ---- FTP服务原理及vsftpd服务配置


1 FTP

1 FTP是一个相当古老并且应用极为广泛的互联网协议,FTP为我们提供了一种可靠的方式在网络上进行文件共享

2 FTP是一种CS架构的服务,拥有一个服务端和客户端,FTP使用TCP协议作为底层传输协议,提供了数据传输的可靠性,FTP的标准端口为20,21,20做为数据接口,21为指令接口

3 所有的共享的文件都是放在服务端


2 FTP模式

FTP客户端和服务端连接有两种模式

1 主动模式:指的是假设客户端要向服务端请求文件共享的时候,首先客户端先发送一个请求到服务的21号端口,然后服务端返回一个指令要求客户端要做什么,接下来服务端通过20端口把数据发给客户端

2 由于现在的计算机很多都是有防火墙,很多由外网连接进来的都会被拒绝,因此现在开发了被动模式

2 被动模式:指的是假设客户端要向服务端请求文件共享的时候,首先客户端先发送一个请求到服务的21号端口,然后服务端返回一个指令要求客户端要做什么。接下来客户端发送请求到服务端,服务端再把数据发给客户端

被动模式适合于现在绝大多数的有设置防火墙的主机


3 vsftpd

1 在Linux中应用作为广泛的FTP服务程序叫做vsftpd,vsftpd为我们提供了一个快速,稳定的并且相当安全的FTP服务

2 使用以下命令来安装vsftpd

yum install -y vsftpd

3 vsftpd的相关配置文件及目录如下

/etc/vsftpd/vsftpd.conf - vsftpd主配置文件

/etc/vsftpd/ftpusers - 黑名单

/etc/vsftpd/user_list - 控制名单(由配置文件控制是白名单还是黑名单)

/var/ftp - ftp共享目录

4 FTP用户

1 vsftpd使用用户作为管理单位,想要访问某个ftp共享文件,必须以特定用户登录,我们可以配置以下几种类型的用户

2 正常用户 (系统用户)

匿名用户 (anonymous)

虚拟用户 (ftp-ony)

3 默认情况下,vsftpd在安装的时候会创建一个ftp用户,这个用户就是作为匿名用户使用,ftp用户默认的家目录指向/var/ftp/,任何没有访问限制的文件都可以通过匿名用户共享

4 每一个系统中的用户都可以通过ftp方式访问自己的家目录


5 匿名用户共享

1 vsftpd安装好之后可以直接启动使用,不需要进行任何配置,默认的情况下匿名用户可以登录使用,普通系统中的用户也可以通过ftp方式访问自己的家目录

2 我们可以通过ftp命令作为ftp客户端使用,通过以下命令安装ftp

yum install -y ftp

3 命令ftp默认使用匿名用户登录

iftp 192.168.1.100

4 也可以指定用户登录

iftp -u linuxcast 192.168.1.100


6 FTP基本命令

1 使用get命令可以从ftp服务器上下载一个文件

iftp 192.168.1.100

cd pub

get linuxcast.tar.gz

2 使用put命令可以将一个文件上传到ftp服务器上

iftp -u linuxcast 192.168.1.100

cd Downloads

put linuxcast.tar.gz

3 只要登录的用户具有对某个文件的写权限,那么就可以进行上传的操作


7 匿名用户上传

1 默认情况下,vsftpd只允许匿名用户访问,但是不允许使用匿名用户上传文件,我们可以通过以下方式配置匿名用户上传

2 修改配置文件开启匿名用户上传功能:

1 /etc/vsftpd/vsftpd.conf

2 anonymous_enable = YES 开启匿名用户

anon_upload_enable = YES 打开匿名用户上传功能

anon_mkdir_write_enable = YES 打开匿名用户创建文件夹功能

3 赋予匿名用户上传使用的文件夹以写权限

chmod 777 /var/ftp/pub