哇~~真的是你呀!今天是LINUX中的FTP服务

简介: FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络中传输文件的标准协议。它允许用户从一个计算机(称为FTP客户端)向另一个计算机(称为FTP服务器)发送和接收文件。以下是FTP服务的一些关键特点和功能:

前言

FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络中传输文件的标准协议。它允许用户从一个计算机(称为FTP客户端)向另一个计算机(称为FTP服务器)发送和接收文件。


以下是FTP服务的一些关键特点和功能:


1. 文件传输:FTP允许用户在客户端和服务器之间传输文件。用户可以上传(将文件从客户端发送到服务器)和下载(将文件从服务器下载到客户端)文件。


2. 目录操作:FTP提供了一系列的命令,用户可以使用这些命令来浏览服务器上的目录结构、创建新目录、重命名文件或目录、删除文件或目录等。


3. 权限控制:FTP服务器可以实施权限控制机制,以保护文件的安全性。管理员可以为用户分配特定的权限级别,包括读取、写入、删除等。


4. 匿名访问:FTP服务器通常支持匿名访问,这意味着用户可以无需登录就可以访问公共文件库。


5. 端口控制:FTP使用两个端口进行通信,一个用于控制连接(命令交互)和另一个用于数据传输。这种分离使得FTP可以更高效地传输大型文件。


6. 加密支持:为了增强安全性,FTP还提供了通过SSL/TLS进行加密传输的选项。这样可以防止敏感数据在传输过程中被窃听或篡改。


尽管FTP是一种古老的协议,但它仍然被广泛用于文件传输和共享,特别是在需要可靠而高效的传输的场景中,例如网站维护、软件分发等。然而,随着时间的推移,由于安全性和性能方面的限制,FTP现在也逐渐被更现代的协议(如SFTP、FTPS或WebDAV)所取代。


一、DFP概述


(1)概述:

FTP:linux下最常见的文件服务器,工作于应用层,实现文件传输

FTP:file transfer protocol  文件传输协议


(2)FTP连接类型:

   命令连接:客户端发起请求,服务器响应默认一直保持连接

   数据连接: 按需打开,按需关闭,与命令连接相关联有可能同时打开多个数据连接


(3)端口:

   控制连接   TCP/21

   数据连接   20/随机端口

二、工作模式


主动模式

   1、客户端用端口n连接服务器端的21号端口,建立连接并使用PORT命令告知服务器开启了n+1端口

   2、连接建立后,服务器使用20端口主动向客户端的n+1端口发送连接,以建立数据连接

被动模式

   1、客户端使用端口n连接FTP的21号端口,告知服务器使用被动模式

   2、控制连接建立后,服务器建立端口P,使用PASV命令并告知客户端

   3、客户端收到端口P后,使用n+1端口连接FTP的P端口,建立数据连接

三、安装配置


1.概述

1)服务名 vsftpd


2)主配置文件/etc/vsftpd/vsftpd.conf


3)用户控制文件 /etc/vsftpd/ftpusers       /etc/vsftpd/user_list


4)用户验证类型:

   匿名用户:是一种最不安全的模式,任何人都可无需密码验证而直接登录到FTP服务器

   本地用户:是通过linux系统本地的账号密码进行验证登录,相比较匿名开放模式更安全,配置也比较简单。

   虚拟用户


2.安装

1)首先配置我们服务器和客户端的环境关闭防火墙、setlinux、配置yum源、IP这里服务器设置为192.168.1.1客户端为192.168.1.2

同理配置客户机

2)安装

   服务器安装vsftpd软件

安装好可以用rpm -qc vsftpd 查看它的文件位置

客户端安装ftp,否则无法使用ftp命令

 登录时,直接使用ftp命令加上服务器IP地址

可以输入?查看当前可用的命令

3.匿名用户验证

1)匿名用户的用户名可以是ftp或者anonymous 密码无


2)工作目录/var/ftp、/var/ftp/pub


3)目录权限: 更改工作目录pub/的权限,使匿名用户能够进行写入的操作


4)可选配置项(在FTP服务器的/etc/vsftpd/vsftpd.conf)

 

anon_upload_enable=[YES|NO]        //是否允许匿名用户上传文件
    anon_mkdir_write_enable=[YES|NO]   // 是否允许匿名用户创建目录
    anon_other_write_enable=[YES|NO]   // 是否开放匿名用户的其他写入权限(删除、改名)


我们想要让匿名用户上传文件就就修改

anon_upload_enable=YES   anon_mkdir_write_enable=YES   anon_other_write_enable=YES

此外还要修改服务器/var/ftp/pub/目录的权限

4.本地用户验证

1)用户名:服务器本地用户


密码: 本地用户密码


工作目录:本地用户的家目录


2)可选配置项

local_enable=[YES|NO]    是否允许本地用户登录FTP
    local_umask=022    本地用户上传文件的umask值
    local_root=/var/ftp    本地用户的FTP根目录
    chroot_local_user=[YES|NO]    是否将用户权限禁锢在FTP目录,确保安全
    allow_writeable_chroot=YES    是否允许写入
    chroot_list_enable=YES|NO    是否启用chroot_list_file

   在/etc/vsftpd/chroot_list文件中列出被不限制的用户的列表chroot_list_file=/etc/vsftpd/chroot_list


3)本地用户访问控制

 

userlist_enable=YES
userlist_deny=YES

不允许/etc/vsftpd/user_list文件中出现的用户名登录FTP

 

userlist_enable=YES
userlist_deny=NO

仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP

   ftpusers

不允许/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,无论user_list如何设置


4)本地用户使用被动模式传输

   配置项

   

pasv_enable=YES    //启用被动模式
pasv_min_port=2001   // 被动模式使用的最小端口号
pasv_max_port=2005    //被动模式使用的最大端口号

   验证

       服务器主配置文件添加上述3条记录

       客户端下载文件时,查看端口号


目录
相关文章
|
1月前
|
存储 安全 Shell
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
⭐⭐【Shell 命令集合 文件传输 】Linux ftp工具 使用指南
44 0
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
1月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
23 2
|
1月前
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
35 5
|
1月前
|
存储 Shell Linux
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
40 0
|
12天前
|
存储 关系型数据库 MySQL
Linux服务详解
Linux服务详解
26 0
|
13天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
20天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
22天前
|
Ubuntu 网络安全 数据安全/隐私保护
ubuntu篇-配置FTP服务,本机和docker安装
通过以上步骤,你可以在Ubuntu上配置FTP服务,无论是本机安装还是Docker内安装,都可以提供FTP文件传输服务。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
22 1
|
23天前
|
关系型数据库 MySQL Linux
linux特定服务日志
Linux系统的服务日志在`/var/log`目录下,如系统日志(`/var/log/syslog`或`/var/log/messages`)、认证日志(`/var/log/auth.log`)、SSH日志(`/var/log/auth.log`或`/var/log/secure`)。Web服务器(Apache和Nginx)的访问和错误日志、MySQL错误日志、Postfix及Dovecot邮件服务器日志也在此处。日志位置可能因发行版和服务配置而异,不确定时可查服务配置或用`grep`搜索。使用`logrotate`可管理日志文件大小。
22 6