sftp与vsftp服务的搭建与使用 您所在的位置:网站首页 ftp和vsftpd的区别 sftp与vsftp服务的搭建与使用

sftp与vsftp服务的搭建与使用

2024-06-30 17:59| 来源: 网络整理| 查看: 265

sftp与vsftp服务的搭建与使用 前言一、FTP是什么?1.FTP是干什么的?2.FTP的工作方式3.vsftp的引入 二、VSFTP服务1.安装2.配置文件3.使用4.匿名用户与本地用户权限控制 三、SFTP服务1.SFTP服务的配置

前言

在开始学习的时候第一次搭建的ftp服务就是vsftp,当时以为vsftp就是人们说的sftp,然而他们有很大的区别!

一、FTP是什么? 1.FTP是干什么的?

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP基于TCP协议,由于较高的传输效率,经常用于文件的传输。其包含两部分:客户端和服务器;服务器一般用来存储文件供客户端下载。 FTP默认情况下使用TCP的21和20端口,其中21用于传输控制信息,20用于传输数据。是否使用20作为数据传输端口与ftp的工作方式有关,如果采用主动模式,数据传输端口为20;被动模式下,端口需要客户端和服务器端协商决定。

2.FTP的工作方式

主动模式:Standard (也就是 PORT方式,主动方式),该模式下FTP的客户端发送PORT命令到FTP服务器。该模式下,ftp客户端首先与服务器建立TCP 21端口建立连接,用于发送控制命令,客户端在传输数据时在该通道上发送PORT命令。PORT包含了客户端用什么端口接收数据,FTP服务器通过自己的20端口连接至客户端指定的端口上,然后进行数据的传输。

被动模式:Passive(也就是PASV,被动方式),该模式下FTP的客户端发送 PASV命令到FTP服务器。与主动模式一样,先建立21端口上的连接,用于发送控制命令。客户端在传输数据时在该通道上发送Pasv命令。FTP服务器收到Pasv命令之后,随机打开一个高端端口(大于1024)并且通知客户端在这个端口上传输数据,然后客户端连接至服务器的该端口,然后进行数据的传输。

3.vsftp的引入

由于FTP的文件传输是明文方式,具有一定的危险性,所以就诞生了一种更加安全的传输方式vsftp。

二、VSFTP服务 1.安装 yum install -y vsftpd yum -y install lftp # 本地 ftp 客户端 systemctl restart vsftpd.service #起服务 2.配置文件

代码如下(示例):

/etc/vsftpd/vsftpd.conf vsftpd 的核心配置文件 /etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP 服务器。 黑名单 /etc/vsftpd/user_list 指定允许使用vsftpd 的用户列表文件。 白名单 /etc/vsftpd/chroot_list 指定允许使用vsftpd 的用户列表文件。 控制名单下的目录能不能离开ftp根目录 3.使用 ftp默认存放文件位置在/var/ftp/pub 修改FTP默认访问目录: 修改etc/vsftpd/vsftpd.conf文件即可 添加这几行: local_root=/var/www/html #针对系统用户 anon_root=/var/www/html #针对匿名用户 4.匿名用户与本地用户权限控制

匿名用户

anonymous_enable=YES   #是否启用匿名用户 no_anon_password=YES   #匿名用户login时不询问口令 下面这四个主要语句控制这文件和文件夹的上传、下载、创建、删除和重命名。 anon_upload_enable=(yes/no); #控制匿名用户对文件(非目录)上传权限。 anon_world_readable_only=(yes/no); #控制匿名用户对文件的下载权限 anon_mkdir_write_enable=(yes/no); #控制匿名用户对文件夹的创建权限 anon_other_write_enable=(yes/no); #控制匿名用户对文件和文件夹的删除和重命名 注:匿名用户下载是使用的是nobody这个用户,所以相应的O这个位置要有R权限才能被下载。若想让匿名用户能上传和删除权限,必需设置 anon_root=(none) #匿名用户主目录 anon_umask=(077) #匿名用户上传文件时有掩码(若想让匿名用户上传的文件能直接被匿名下载,就这设置这里为073) chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改

本地用户

write_enable=YES #可以上传(全局控制) 删除,重命名 local_umask=022 #本地用户上传文件的umask userlist_enable=YES #限制了这里的用户不能访问 local_root #设置一个本地用户登录后进入到的目录 user_config_dir #设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名 download_enable #限制用户的下载权限 chown_uploads=YES #所有匿名上传的文件的所属用户将会被更改成chown_username chown_username=whoever #匿名上传文件所属用户名 chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录 chroot_list_file=/etc/vsftpd/chroot_list #指定限制的用户文件 user_config_dir= #后面跟存放配置文件的目录。用来实现不同用户不同权限。 #在vsftpd.conf文件中加入这一句, #在相应的目录里面,为每个用户创建自己的配置文件,用来实现不同的权限 三、SFTP服务

SFTP是基于默认的22端口,是ssh内含的协议,只要启动了sshd就可以使用。sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务

1.SFTP服务的配置 修改/etc/ssh/sshd_config配置文件 #注释掉下面这行 #Subsystem sftp /usr/libexec/openssh/sftp-server 同时添加以下内容: Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp Match user sftpuser #匹配用户,如果要匹配多个组,多个组之间用逗号分割 ChrootDirectory /data/sftp #设定属于用户组sftp的用户访问的根文件夹如设置 /data/sftp 作为sftpuser 的sftp根目录 ForceCommand internal-sftp #指定sftp命令,强制执行内部sftp,并忽略任何 ~/.ssh/rc文件中的命令 X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加 上,否则删掉 AllowTcpForwarding no

对于sftp的目录应该这么设置

chown root:sftp chmod 755


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有