linux ftp服务器

一、ftp简介
FTP(File Transfer Protocol,文件传输协议) 是用于在网络上进行文件传输的一套标准协议,它属于网络传输协议的应用层。它最主要的功能是在服务器与客户端之间进行文件的传输。这个协议使用的是明文传输。

FTP服务器的功能除了单纯的进行文件的传输与管理外,依据服务器软件的配置架构,它还可以提供以下几个主要功能:
1、不同的用户:
FTP服务器在默认的情况下,依据用户登录的情况而分为三种不同的身份,分别是: 实体用户,real user; 访客,guest匿名用户,anonymous。
2、命令记录与日志文件记录
FTP可以利用系统的syslogd来进行数据的记录,而记录的数据包括了用户曾经使用过的命令与用户传输数据(传输时间、文件大小等)的记录,所以可以在 /var/log/ 里面找到各项日志信息。
3、限制用户活动的目录(change root,简称chroot)
为了避免用户在你的linux系统中随意切换目录,所以将用户的工作范围局限在用户主目录下面。FTP可以限制用户仅能在自己的用户主目录当中活动。当用户登录FTP后,由于用户无法离开自己的用户主目录,显示的根目录就是自己用户主目录的内容。这种环境称为change root,即chroot,即改变根目录的意思。

二、ftp的工作流程
FTP的传输使用的是TCP数据包协议。FTP服务器使用了两个连接,分别是命令通道数据流通道。由于是TCP数据包,这两个连接都需要经过三次握手。

建立命令通道的过程
客户端会随机获取一个大于1024以上的端口来与FTP服务器端的port 21来实现连接,这个过程需要三次握手。实现连接后客户端便可以通过这个连接来对FTP服务器执行命令,查询文件名、下载、上传等命令都是利用这个通道来执行的。

建立数据通道的过程
(1)通知FTP服务器端使用主动连接且告知连接的端口号
FTP服务器的端口21号主要用在命令的执行,但是牵涉到数据流时,就不是使用这个连接了。客户端在需要数据的情况下,会告知服务器端要用什么方式来连接,如果是主动连接,客户端会先随机启用一个端口,且通过命令通道告知FTP服务器这两个信息,并等待FTP服务器的连接。

FTP服务器主动向客户端连接
FTP服务器由命令通道了解客户端的需求后,会主动地由port 20向客户端的数据端口连接,这个连接也会经过三次握手。此时FTP的客户端与服务器端会建立两条连接,分别用在命令的执行与数据的传递。而默认FTP服务器端使用的主动连接端口就是port 20。
数据传输通道是在有数据传输的行为时才会建立的通道,并不是一开始连接到FTP服务器就立刻建立的通道。
注意:port 21主要接收来自客户端的主动连接,port 20则为FTP服务器主动连接至客户端。
在这里插入图片描述

(2)客户端选择被动式连接模式
客户端通过命令通道发出被动式连接要求,并等待服务器的回应。
FTP服务器启动数据端口,并通知客户端连接
如果你所使用的FTP服务器是能够处理被动式连接的,此时FTP服务器会先启动一个监听端口。这个端口号码可以是随机的,也可以自定义某一范围的端口,这要看FTP服务器软件而定。然后FTP服务器会通过命令通道告知客户端这个已经启动的端口port pasv,并等待客户端的连接。
客户端随机取用大于1024的端口进行连接
然后客户端会随机取用一个大于1024的端口号来进行对主机的port pasv连接。如果一切都没有问题的话,那么FTP数据就可以通过客户端的随机端口和服务端的port pasv来传送了。
在这里插入图片描述
三、ftp的使用以及软件的安装
为了更安全的使用FTP协议,只介绍较为安全但功能较少的vsftpd这个软件。vsftpd(very secure FTP daemon)。vsftpd是一个设计的较为安全的FTP服务器软件,它的特点如下:
(1)vsftpd服务的启动者身份为一般用户,所以对linux系统的权限较低,对于linux系统的危害就相对降低了。此外,vsftpd也利用chroot这个函数来进行改换根目录的操作,使得系统工具不会被vsftpd这个服务所利用。
(2)任何需要具有较高执行权限的vsftpd命令均以一个特殊的上层程序所控制,该上层程序享有的较高执行权限功能已经被限制的比较低,并以不影响linux系统本身的系统为准。
(3)绝大部分FTP会使用到的额外命令功能(例如ls,cd等)都已经被整合到vsftpd主程序当中了,因此理论上vsftpd不需要使用到额外的系统提供的命令。
(4)所有来自客户端且想要使用这个上层程序所提供的较高执行权限的vsftpd命令的需求,均被视为不可信任的要求来处理,必须要经过相当程度的身份确认后,才可以利用上层程序的功能。
(5)关于上层程序,会使用chroot的功能来限制用户的执行权限。

#软件安装
[root@localhost ~]# yum install vsftpd -y

各种文件的作用
/etc/vsftpd/vsftpd.conf 配置文件,设置参数方式为“参数=设置值”,等号两边不能有空格
/etc/pam.d/vsftpd 这个是vsftpd使用PAM模块时的相关配置文件。主要用来作为身份认证,还有阻挡一些用户身份的功能,(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
/etc/vsftpd/ftpusers与上面一个文件有关系,也就是PAM模块所指定的那个无法登录的用户配置文件,只要将不想让他登录的FTP账号写入这个文件即可。
/etc/vsftpd/user_list这个文件能否生效与vsftpd.conf内的两个参数有关,分别是userlist_enable和userlist_deny。
/etc/vsftpd/chroot_list这个文件默认是不存在的,所以需要手动创建。这个文件的功能是可以将某些账号的用户chroot建立在他们的默认主目录。这个文件是否生效与vsftpd.conf内的chroot_list_enable和chroot_list_file两个参数有关。
/var/ftp/ 这是vsftpd默认匿名用户登录的根目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux ftp服务器是一种用于在Linux操作系统上运行的文件传输协议(FTP)服务器。通过FTP服务器,用户可以在本地计算机和服务器之间传输文件。在Linux系统中,常用的FTP服务器软件包括vsftpd和proftpd。 引用中提到了如何安装和配置vsftpd(Very Secure FTP Daemon)作为一个FTP服务器。首先,需要通过dnf命令安装vsftpd软件包。然后,使用systemctl命令将vsftpd设置为开机启动。最后,启动vsftpd服务并使用lsof命令验证其是否启动。 引用中提到了FTP服务器的配置文件。在Linux系统中,主要的FTP配置文件是vsftpd.conf文件,通常位于/etc/vsftpd/目录下。在配置文件中,可以设置FTP服务器的各种参数和选项,如监听IP地址、允许的用户、允许的访问权限等。 引用提到了FTP支持的两种模式:Standard模式和Passive模式。在Standard模式下,FTP客户端通过发送PORT命令来与FTP服务器建立数据连接。而在Passive模式下,FTP客户端发送PASV命令来与FTP服务器建立数据连接。这两种模式的选择取决于网络环境和防火墙设置。 综上所述,Linux ftp服务器是一种用于在Linux操作系统上运行的文件传输协议(FTP)服务器,常用的软件包括vsftpd和proftpd。可以通过安装、配置和启动FTP服务器软件来搭建一个功能完善的FTP服务器,同时可以根据需要进行FTP服务器的参数和选项的配置。同时,FTP服务器支持Standard模式和Passive模式两种数据传输模式,具体选择取决于实际需求和网络环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Linux】FTP文件服务器](https://blog.csdn.net/qq_45277554/article/details/131452806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小时候不乖的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值