vsftp简单应用

vsftp配置详解

前言

FTP(File Transfer Protocol)是文件传输协议的简称。它能让用户 连接上一个远程计算机(运行着 FTP 服务器程序)查看远程 计算机上有哪些文件,然后把文件从远程计算机上下载到 本地计算机,或把本地计算机文件上传到远程计算机。但是ftp是一种古老的文件传输协议,是明文传输,特别的不安全所以就有了vsftp。

一、vsftp相关概念梳理

1、vsftp用户

访问FTP服务器时都需要经过验证,只有经过FTP服务器的验证,用户才能进行访问和传输文件等操作,Vsftpd提供三种验证 登录方式,分别是匿名用户、本地用户、虚拟用户:

匿名用户(anonymous):在默认情况下,系统只提供匿名用户访问。

本地用户(local user):又称为真实账号,本身就是系统用户,它是以真实的用户名和口令进行登录,以/etc/passwd中的用户名进行验证,本地用户既可以登录FTP服务器,又可以登录系统使用其他系统资源,对系统安全有极大的威胁,所以应尽量避免用户使用本地账号访问FTP服务器。

虚拟用户(guest)形式:Vsftpd虚拟用户与系统账号(passwdshadow)是分离的,采用单独的用户名/口令方式进行保存,通过这样的处理来提高系统的安全。Vsftpd用户验证采用PAM方式,由于用户名/口令被单独保存,因此实际验证时Vsftpd需要用一个本地用户的身份读取数据库文件来完成验证,通常由guest_username选项指定本地用户,正如同匿名用户也需要有一个本地用户ftp来映射一样。

相对于本地用户来说,虚拟用户只能访问FTP服务器所提供的资源,这大大增强了系统安全性。相对于匿名用户而言,虚拟用 户需要验证用户名和密码,同时增加了对用户访问权限的可管理性。对于需要提供FTP服务,又要考虑主机安全和管理方便的系 统来说,采用虚拟用户方式是最适合的。

2、VSFTP 的主要功能

从此名称上可以看出,开发者的初衷是将系统的安全性放在 首要位置。除了这个与生俱来的安全特性以外,高速传 输与运行的稳定性也是 VSFTP 的 2 个显著特点。在速 度方面,使用 ASCII 代码模式下载数据时,VSFTP 的速 度是 Wu- FTP(另一种比较流行的类 Unix 平台的 FTP 软件)的 2 倍,如果 Linux 主机使用 2.4.* 的内核,在千 兆以太网上的下载速度可达 86 Mbit/s;在稳定性方面 更加出色,VSFTP 在单机模式下支持 4 000 个以上的并 发用户同时连接。

二、安装配置

1、vsftp安装

(1)查询是否安装vsftp: rpm -q vsftp

(2)没有安装则使用rpm包安装或其他安装方式安装,这里我直接rpm包安装:先挂载,然后找到vsftp包,再安装:

vsftp简单应用

(3)启动:systemctl start vsftpd.service

(4)查看状态:systemctl status vsftpd.service

vsftp简单应用

2、文件配置 :vsftp 配置文件为 /etc/vsftpd/vsftpd.conf,含义如下:

local_enable=YES 设定为NO的情况下(本地用户禁止访问)导致虚拟用户将无法访问。
guest_enable=YES 启用虚拟用户登录功能
guest_username= virtualuser 虚拟用户登录后,其宿主用户为virtualuser
pam_service_name=ftp 指定PAM认证文件/etc/pam.d/ftp
virtual_use_local_privs=NO
为了提高系统安全,我们应该首先设置FTP宿主目录/home/virtualuser属性与权限:
# chown virtualuser:virtualuser /home/virtualuser设置virtualuser目录的拥有者、组。
# chmod 700 /home/virtualuser将目录/home/virtualuser的权限设为拥有者可读写执行;
当virtual_use_local_privs= YES时,虚拟用户的权限与本地用户相同,此时只需设置write_enable=YES,虚拟用户就可以和本地
用户一样就拥有写权限。
默认情况下virtual_use_local_privs取值为NO,此时虚拟用户的权限与匿名用户权限相同,可参考匿名用户的配置对虚拟用户
的访问权限进行配置


举例如下:
1、控制虚拟用户不能浏览目录但仍可以对文件进行操作
anon_world_readable_only=YES
2、允许虚拟用户上传文件
write_enable=YES全局性设置,打开写权限
anon_upload_enable=YES
3、允许虚拟用户修改文件名和删除文件 (write_enable=YES)
anon_other_write_enable=YES
4、允许匿名用户创建目录 (write_enable=YES)
anon_mkdir_write_enable=YES
考虑到以上选项的设置对匿名用户也同样会生效。配置时一定要慎之又慎,如果不想匿名用户趁机拥有同样的权限,配置时
最好关闭匿名用户登录功能。

可以通过配置chroot相关参数,限定本地用户对其他目录的访问。将用户限制在自家目录的做法:
限制所有的本地用户在自家目录
chroot_local_user=YES 系统默认值为NO

三、具体实例:(配置虚拟用户vsftpd服务器)

1、创建虚拟用户口令库文件

(1)创建/root/virtual文件

wangwu   虚拟用户名
redhat   虚拟用户名wangwu的口令
zhaoliu  虚拟用户名
linux    虚拟用户名zhaoliu的口令

(2)生成虚拟用户口令文件

db_load -T -t hash -f /root/virtual /etc/vsftpd/virtual.db

(3)修改虚拟用户口令文件/etc/vsftpd/virtual.db的设置权限为600

chmod 600 /etc/vsftpd/virtual.db

(4)创建/etc/pam.d/vsftpd.vu文件,该文件是PAM配置文件,内容如下:

auth  required  /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual

account  required  /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual

(5)创建用户virtualuser,该用户主目录为编辑?/home/ftpuser,并为该主目录设置权限为700.

useradd -d /home/ftpuser virtualuser

chmod 700 /home/ftpuser

su - virtualuser -c "echo Hello Linux">/home/ftpuser/testfile  以用户virtualuser身份创建/home/ftpuser/testfile文件

(6)编辑/etc/vsftpd/vsftpd.conf文件

anonymous_enable=NO  是否允许匿名用户登录
local_enable=YES     是否允许本地用户登录
write_enable=NO      是否允许用户有写入权限
anon_upload_enable=NO 是否允许匿名用户上传文件
anon_mkdir_write_enable=NO  是否允许匿名用户创建目录权限
anon_other_write_enable=NO 是否允许匿名用户有更改权限

chroot_local_user=YES        是否将本地用户锁定在自己的主目录中
ftpd_banner=Welcome to FTP service.  开场白
guest_enable=YES              是否启用虚拟用户
guest_username=virtualuser    虚拟用户在系统中的真实用户名
local_umask=022               设置本地用户新建文件时的umask值

xferlog_enable=YES      是否启用传输日志文件系统记录下载和上传信息
connet_from_port_20=YES  连接20号端口
xfer_std_format=YES   设置传输日志文件是否写入标准xferlog格式
listen=NO          是否启用独立进程控制vsftpd,no表示启用xinetd进程

pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES

(7)重启vsftpd服务

systectl  restart  vsftpd.service

(8)测试:ftp 192.168.1.109

vsftp简单应用

如果启用chroot,必须保证ftp根目录不可写,这样对于ftp根直接为网站根目录的用户不方便,所以建议假如ftp根目录是/home/ftpuser/,则将访问权限改写如下:chmod a-w /home/ftpuser/

vsftp简单应用

如果出现如下情况,也是/home/ftpuser/权限问题,可以该成777后,a-w。

vsftp简单应用

都改好后,测试结果如下

vsftp简单应用

vsftp简单应用

原创文章,作者:N24_yezi,如若转载,请注明出处:http://www.178linux.com/64009

(0)
N24_yeziN24_yezi
上一篇 2016-12-18 01:48
下一篇 2016-12-18 13:34

相关推荐

  • M22 Centos设置yum源方法

    实验目的: 使用虚拟机模拟建立yum源服务器,在客户机上指定yum源为该服务器。 实验器材: WMware12安装Centos6.8虚拟机作为yum服务源 WMware12安装Centos7.3 作为客户端访问yum源服务器 实验原理图: 实验过程: 服务器端: 1、  显示已经挂载的光盘 #cd /misc/cd #先执行此命令才可以看到光盘挂载…

    2017-03-06
  • 【招聘福利】深圳/系统运维工程师/薪资弹性,可面谈

    深圳市鑫顺诺科技有限公司 有意向的学员,请联系magedu-小助手QQ:1522609717 职位职能: 系统运维工程师岗位职责:1、公司日常机房网络和办公室网络管理调优、日常办公电脑维护。2、管理、维护网站服务器运行状态,处理系统运行故障;3、负责服务器集群的操作系统安装、升级、定制、部署与维护工作;4、负责服务器集群的系统监控和自动化脚本的设计与部署;5…

    Linux干货 2015-11-06
  • 第一周记录

    列出Linux的发行版,描述不同发行版之间的联系与区别。    发行版多达100多种,其中主要的有Debian旗下的Ubuntu、knopix,Slackware旗下的S.u.S.E,RedHat公司旗下的RedHat、CentOS、Fedora。其中各个版本之间的区别:包管理器的区别;但其内核都是Linux内核。 ifconfig: 查…

    Linux干货 2016-08-15
  • LVM2 逻辑卷管理工具

    LVM2:  LVM: Logical Volume Manager, Version: 2  dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块; /dev/dm-#  /dev/mapper/VG_NAME-LV_NAME /dev/mapper/vol0-root /dev/VG_NAME/…

    Linux干货 2015-09-19
  • 搭建一套LVS-DR模型的高性能集群(LVS-DR+Nginx+Mariadb+Nfs+php-fpm+wordpress)

    架构简介 参加马哥linux培训一周了,自己感觉每天都进步很多,现在来说说这个架构,也是架构师第一周的作业第二题。搭建一套LVS-DR模型的高性能集群,做了两天终于完成并实现了这个架构,我设计的架构图如下所示: 此架构主要是用ipvsadm来实现高性能集群,Realserver(RS1,RS2)安装配置nginx,RS服务器分别配置了一个内网,一个外网。正常…

    Linux干货 2016-12-06
  • 路由配置

      RA和RB为linux系统,此处虚拟成为路由器,在每一台路由器的接口上设置好ip之后开始配置路由表 ip地址配置如下: RA:eth1:192.168.100.1/24    eth0:10.1.0.1/8       主机A:10.1.0.25/8 RB: eth1:192.168.100.2…

    Linux干货 2016-09-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 12:15

    赞,过程写的比较详细,可以再扩展一下,比如如何限制用户的存储空间~继续加油~