Linux下vsftpd安装使用(一)

2019-11-07  本文已影响0人  惜小八

一.vsftpd简介

vsftpd是 “very secure FTP deamon”的缩写,是一个完全免费,开源的ftp服务器软件。
特点:vsftpd是一款在Linux发行版当中最受推崇的FTP服务器程序,小巧轻快,安全易用,支持虚拟用户,支持带宽限制等功能。
ftp服务的作用是用来进行文件的上传和下载的,多用来进行文件的共享,让员工可以通过浏览器来进行文件的上传和下载。
ftp服务端的搭建:提供服务的是程序,程序可以提供服务,所以要让Linux提供ftp服务的第一步是要在服务端安装ftp的软件,此处使用的是vsftpd软件,此时安装vsftpd的Linux服务器成为了文件服务器,

二.vsftpd安装

1.安装vsftpd

1.在安装前需提前确认是否已经安装了vsftpd 
  rpm -qa|grep vsftpd
2.如果已经安装可以使用以下的命令进行卸载
   a.   yum remove vsftpd
   b.   删除vsftpd配置文件
        cd /etc/vsftpd
        yum remove vsftpd* -y
        rm -rf /etc/vsftpd
3.安装
  执行 yum -y install vsftpd
  #默认的配置文件路径为: /etc/vsftpd/vsftpd.conf
4.查看安装目录(有说明安装成功)
  rpm -qa|grep vsftpd
vsftpd卸载

2.开启vsftpd服务

1.开启ftp服务(centos7)
  systemctl start vsftpd.service
2.查看vsftpd服务对应的默认端口
  netstat -nltp|grep vsftpd
3.查看是否设置了开机自启:systemctl list-unit-files | grep vsftpd
    如果显示以下内容说明已经完成设置
    vsftpd.service  enabled

4.设置开机自启
    systemctl enable vsftpd.service
image.png

3.使用匿名用户登陆vsftpd

此时由于还没有创建用户,所以只有匿名用户可以登陆(默认匿名用户可以登陆),匿名用户登陆的登陆目录默认是/var/ftp/,当使用匿名用户登陆时就可以看到这个目录下的文件。

以下是各种PC的时候登陆ftp的方式
客户端是mac:有bug可以登录但是看不到内容,要使用ftp客户端才可以
客户端是windows:浏览器、资源管理器输入 ftp:// ip
客户端是Linux/mac访问Linux主机上的ftp服务器: 在终端输入 ftp:// ftp服务器ip


Linux/mac自带的ftp客户端使用匿名用户登陆ftp服务器

此时ftp代表匿名用户,由于匿名用户没有密码,所以直接enter即可。一般匿名用户是不让登陆的。

4.使用本地用户登陆vsftpd

在默认情况下,vsftpd是支持地用户(/etc/passwd)访问的,要让本地用户访问,第一步当然是创建本地用户,重置密码


创建用户重置密码
用户创建以后,要限制该用户仅能通过 FTP 访问:
限制用户 ftpuser 只能通过 FTP 访问服务器,而不能直接登录服务器,因为那样会有安全隐患,限制命令如下:

usermod -s /sbin/nologin imageftp

第二步就是指定本地用户的登陆目录,即在配置文件/etc/vsftpd/vsftpd.conf当中修改local_root=/ftpfile/imageftp配置,此时当本地用户登录后的目录即为/ftpfile/imageftp这个目录,当然这个目录要先存在,提前创建这个目录即可。
注意要设置访问这个目录的权限

chmod 777 -R /ftpfile/imageftp
本地用户登陆后,登陆目录为/ftpfile/imageftp

此时用户登陆了,但是还可以切换到其他上级目录当中,这是很不安全的,所以第三步就是配置chroot_local_user=YES(禁锢本地用户的登陆目录),此时等用户登陆以后,他的根目录就是ftpfile/imageftp


本地用户登陆后根目录为/(linux系统当中的/ftpfile/imageftp)

注意:当限制用户只能从浏览器登陆当时候,可能会出现登陆失败530 Login incorrect.Login failed.错误,此时参考:https://www.cnblogs.com/HeiDi-BoKe/p/12035235.html

useradd ftpmall
echo "ftpmall" | passwd ftpmall --stdin
usermod -s /sbin/nologin ftpmall

echo "Welcome to use FTP service." > /ftpfile/mmall/welcome.txt

chmod 777 -R /ftpfile/mmall

三.vsftpd主要文件讲解

查看软件所带来的文件列表:rpm -ql vsftpd        
    /etc/vsftpd                    ftp服务主目录
    /etc/vsftpd/vsftpd.conf  主配置文件
    /var/ftp        匿名用户的默认数据目录(即匿名用户若可以访问,则看到的是这个目录下的文件)

image.png

四.vsftpd配置文件讲解

1.ftp配置

local_root=/ftpfile #本地用户的登陆目录
anno_root=/ftpfile #匿名用户的登陆目录
use_localtime=yes #使用本地的时间
chroot_local_user=YES #禁锢本地用户的登陆目录,本地用户登录后不能向上切换了

anonymous_enable=NO #不允许匿名访问(注意匿名用户是没有密码就可以登陆,如果匿名用户重置密码后会变成费匿名用户)
pasv_min_port=61001 #被动传输接口设置
pasv_max_port=62000 #如果不加这个端口范围的话,会采用一个默认的端口范围,这样也是ok的,但是我们的防火墙就设置的不是太严格,由于是在线上所以还是设置的严格一点好,所以我们一般要加上。
#匿名用户默认只有下载权限,没有上传和新建的权限,本地用户默认有上传下载权限
#在ftp当中修改文件后,立马可以在浏览器当中看到,不用重启vsftp服务
配置文件详解

2.ftp的工作方式

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
一、PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了端口,你过来连接我”。于是服务器从20端口向客户端的端口发送连接请求,建立一条数据链路来传送数据
二、PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了
端口,你过来连接我。于是客户端向服务器的**口发送连接请求,建立一条数据链路来传送数据
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

五.ftp常用命令

sudo service vsftpd restart  #centos6
systemctl restart/start vsftpd.service #centos7,#启动vsftpd服务,启动以后不会有任何的输出
上一篇下一篇

猜你喜欢

热点阅读