vsftpd搭建ftp服务器

一、vsftpd介绍

? ? ? ?vsftpd是very secure ftp daemon的缩写,它是一个完全免费、开源代码的ftp服务器软件。它有着其他ftp服务器软件不具有的特性,如它满足较高的安全性需求、支持虚拟用户、支持ipv6、传输速率限制等。

二、 vsftpd安装

? ? ? ?实验环境准备:

主机列表 系统版本 ip地址 安装软件
ftp客户端 centos7.6 192.168.36.10 ftp或lftp
ftp服务器 centos6.10 192.168.36.20 vsftpd

1、实验开始前,关闭两台设备的selinux和防火墙设置,防止其影响结果。

客户端关闭防火墙和selinux
[[email protected] ~]# setenforce 0
[[email protected] ~]# systemctl stop firewalld

服务器端关闭防火墙和selinux
[[email protected] ~]#setenforce 0
[[email protected] ~]#service iptables stop
[[email protected] ~]#iptables -F
[[email protected] ~]#iptables -vnL          #确保iptables下没有任何规则。

2、ftp软件安装

客户端192.168.36.10安装:
[[email protected] ~]#yum install ftp lftp -y         #ftp、lftp这两个都是ftp客户端工具  

服务器192.168.36.20安装:
[[email protected] ~]#yum install vsftpd -y
[[email protected] ~]#service vsftpd restart

三、 vsftpd用户认证(三种登录方式)

匿名用户: ftp,anonymous,映射为Linux用户ftp。  

系统用户: Linux系统用户,登录后默认在家目录。

虚拟用户:特定服务的专用用户,可设定登录的家目录。

1) 匿名用户的配置

[[email protected] ~]#vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES            #默认允许匿名用户登录FTP。

anon_upload_enable=YES          #启用匿名用户的上传权限。

anon_mkdir_write_enable=YES     #启用匿名用户创建目录的权限。

anon_other_write_enable=YES     #启用匿名用户删除权限。

anon_umask=022          #匿名用户新建文件时的umask值。

匿名账号启用以上权限后,从vsftpd的角度来说,就可以实现上传和下载功能了,但实际上还需要考虑文件系统的权限问题。

例1:

[[email protected] ~]# ftp 192.168.36.20[[email protected] ~]# ftp 192.168.36.20
Connected to 192.168.36.20 (192.168.36.20).
220 (vsFTPd 2.2.2)
Name (192.168.36.20:root): ftp          #匿名账号ftp
331 Please specify the password.
Password:           #此处直接回车,密码为空。
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd upload          #upload为新建的目录,权限为777
250 Directory successfully changed.
ftp>
ftp> put f1         #实现上传功能。
local: f1 remote: f1
227 Entering Passive Mode (192,168,36,20,193,56).
150 Ok to send data.
226 Transfer complete.
19 bytes sent in 0.0362 secs (0.53 Kbytes/sec)

ftp> ls
227 Entering Passive Mode (192,168,36,20,151,172).
150 Here comes the directory listing.
-rw--w--w-    1 0        0               0 May 19 09:06 a1          #注意该文件的权限。
226 Directory send OK.
ftp> get a1         #下载a1文件失败,这是由于从ftp服务器下载文件,文件的属主、属组、其他此三者的权限都要具有读权限,才能下载。
local: a1 remote: a1
227 Entering Passive Mode (192,168,36,20,42,205).
550 Failed to open file.
ftp> get a1         #服务器端修改a1的权限为644,下载成功。
local: a1 remote: a1
227 Entering Passive Mode (192,168,36,20,52,167).
150 Opening BINARY mode data connection for a1 (0 bytes).
226 Transfer complete.
ftp> 

2) 本地用户的配置

anonymous_enable=no         #不允许匿名用户登入。

local_enable=YES/NO(YES)          #控制是否允许本地用户登入,默认值为YES。

local_root=/home/username           #当本地用户登入时,默认值为各用户的家目录。

write_enable=YES                    #是否允许登陆用户有写权限。

local_umask=022         #指定系统用户上传文件的默认权限。

chroot_local_user=YES           #禁锢系统用户在家目录里面。

关闭匿名账号的登录,使用系统账号登录,且禁锢系统账号登录后在家目录里面。

例2:

[[email protected] ~]# ftp 192.168.36.20
Connected to 192.168.36.20 (192.168.36.20).
220 (vsFTPd 2.2.2)
Name (192.168.36.20:root): wang         #使用系统账号wang进行登录
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> cd /var/ftp            #系统账号被禁锢在自己的家目录里面,不能随意切换到其他目录。
550 Failed to change directory.         

3) 虚拟用户的配置

所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置,即为此系统帐号
的家目录。
pam_service_name=vsftpd         #虚拟用户使用PAM认证方式。
例3:

1. 生成文本格式的用户名和密码文件,文件内容奇数行是用户名称,双行是密码。
[[email protected] /etc/vsftpd]#cat vuser
alice
123asd

2. 生成用户数据库,修改文件权限。
[[email protected] /etc/vsftpd]#db_load -T -t hash -f vuser vuser.db
[[email protected] /etc/vsftpd]#file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
[[email protected] /etc/vsftpd]#chmod 600 vuser.db 

3. 创建pam配置文件。
[[email protected] /etc/pam.d]#vi vsftpd.db          #该文件需要创建
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

4. 创建虚拟账号对应的系统用户。
[[email protected] /]#useradd -d /var/ftproot -s /sbin/nologin vuser
[[email protected] /]#chmod a=rx /var/ftproot/
[[email protected] /]#ll -d /var/ftproot/
dr-xr-xr-x. 4 vuser vuser 4096 May 19 18:23 /var/ftproot/

5. 指定pam配置文件。
[[email protected] /]#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.db

6.重启vsftpd服务,在客户端上进行验证。
[[email protected] ~]# ftp 192.168.36.20
Connected to 192.168.36.20 (192.168.36.20).
220 (vsFTPd 2.2.2)
Name (192.168.36.20:root): alice            #使用虚拟用户进行验证
331 Please specify the password.
Password:
230 Login successful.           #使用虚拟账号成功登录。
Remote system type is UNIX.
Using binary mode to transfer files.

原文地址:https://blog.51cto.com/13932385/2396998

时间: 2024-10-14 22:49:06

vsftpd搭建ftp服务器的相关文章

在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. vsftpd 的名字代表"very secure FTP daemon",安全是它的开发者 Chris Evans 考虑的首要问题之一.在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标. 准备工作 安装vsftpd yum install v

Centos 7使用vsftpd搭建FTP服务器

FTP,即:文件传输协议(File Transfer Protocol),基于客户端/服务器模式,默认使用20.21端口号,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数.FTP服务器普遍部署于局域网中,具有容易搭建.方便管理的特点.而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此FTP服务得到了广大用户的青睐.FTP协议有以下两种工作模式: 主动模式(PORT):FTP服务器主动向客户端发起连接请求. 被动模式(PA

腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd

腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd # 安装 vsftpd $ yum install vsftpd -y # 启动 $ service vsftpd start && systemctl restart vsftpd.service # 查看 $ netstat -nltp | grep 21 /*目前 FTP 服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置 FTP 访问权限vsftpd 的配置目录为 /etc/vsftpd,包含下列的配

RedHat5.9下搭建FTP服务器

FTP服务:基于C/S结构的文件传输协议 FTP会话属于复合TCP连接: 控制连接:TCP 21端口,发送FTP命令信息 数据连接:TCP 20端口,上传/下载数据 实验环境: Linux Client -----RHEL5.9(vmnet1)----------(vmnet1) Win7 Client 一. 实验要求:配置可匿名上传FTP服务 1.安装软件包 [[email protected] ~]# rpm -q vsftpd package vsftpd is not installed

搭建FTP服务器

FTP服务器软件: FTP服务使用FTP协议来进行文件的上传和下载. 注:如果新下载了一个软件而不会安装,则先将软件解压,然后进入软的目录,打如下命令来查看软             件的安装帮助:       #man   INSTALL   或#man   README 实验拓扑: Linux Client -----RHEL5.9(vmnet1)----------(vmnet1) Win7 Client 实验一:测试默认安装vsftpd的结果 匿名用户与本地用户都可以登录 匿名用户登录到

RedHat6.2搭建FTP服务器

我的环境: A:Red Hat Enterprise 6.2 IP:192.168.16.12 此机作测试端 B:Red Hat Enterprise 6.2 IP:192.168.16.13 此机做FTP服务端 B机上搭建FTP服务器: 下载并安装vsftpd-2.2.2-6.el6_0.1.i686 [[email protected] ~]# rpm -ivh vsftpd-2.2.2-6.el6_0.1.i686.rpm 创建测试用户: [[email protected] ~]# us

ubuntu12.04下搭建ftp服务器

楼主想把同学硬盘里面的200多G电影共享给实验室的小伙伴们看,就打算在内网服务器上搭建一个ftp的服务器. 1.安装ftp 首先在终端下键入如下内容,安装ftp服务器: sudo apt-get install vsftpd 2.配置ftp 修改ftp的配置文件,该文件在/etc目录下,在终端中键入如下命令以打开配置文件: sudo gedit /etc/vsftpd.conf 简单的修改以下几个配置项即可: #禁止匿名访问 anonymous_enable=NO #接受本地用户 local_e

Linux系统搭建FTP服务器

在Linux系统中搭建FTP服务器 一.搭建概述: 在Linux系统中搭建一台FTP服务器是很必要的,这个服务器只要你搭建成功以后就可以在这个服务器上存放一些你自己需要的一些软件.文档.手册等等.搭建好以后就可以直接使用这个服务器,提升了你自己的一个工作速度和一些工作的简便方法.下面就来具体的搭建一下.本问是自己一个人摸索搭建的,如有什么不妥的地方请多多指教.谢谢! 二.搭建步骤: 1.启动Linux虚拟机,并在命令终端上操作. 2.检测一下系统中是否安装FTP服务器 命令:rpm-qa | g

Ubunton下搭建ftp服务器 实现虚拟用户、本地用户、匿名用户的登陆及权限

#在ubunton系统下安装和配置ftp可以说是比较简单的 本篇教程是为了解决一下问题 需要搭建ftp服务器实现三种用户的登陆及权限管理 其中 anon可以自由的到特定的目录里下载东东: stu则可以到特定的目录里上传东东; 而tearcher,则可以对特定的目录里上传.下载东东; admin则可以对stu.teacher的数据进行统一的管理. 另外,做为系统上已经有的本地用户则可以登录自己的home目录. 针对上面的需求,ftp需要开通对匿名用户.本地用户.及虚拟用户的支持.并且特别对虚拟用户