浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

vsftpd概述

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

特点

非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高

小巧轻快,安全易用。

ftp、sftp、vsftp、vsftpd这四个的区别

ftp 是File Transfer Protocol的缩写,文件传输协议,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。

sftp 是SSH File Transfer Protocol的缩写,安全文件传输协议;

vsftp 是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是Very Secure FTP从此名称可以看出来,编制者的初衷是代码的安全;

vsftpd 是very secure FTP daemon的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件;

一,匿名用户登录ftp(文件在/var/ftp)

1,安装vsftpd服务

[root@localhost ~]# yum install vsftpd -y ##安装服务
[root@localhost ~]# cd /etc/vsftpd/ ##此目录是配置文件目录
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# systemctl start vsftpd ##开启vsftpd服务
[root@localhost vsftpd]# systemctl stop firewalld.service ##关闭防火墙
[root@localhost vsftpd]# setenforce 0 ##关闭增强功能
[root@localhost vsftpd]# ls /var/ftp/ ##切换到ftp目录下
pub
[root@localhost vsftpd]# echo "this is test" > /var/ftp/test.txt ##添加一个文本文件

2,用测试机cmd访问vsftpd服务(cmd连接ftp)并下载文件

C:\Users\xy007>ftp 192.168.13.140 ##访问ftp服务
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): ftp ##匿名访问
331 Please specify the password.
密码:
##密码无 回车
230 Login successful.
ftp> pwd  ##查看当前路径
257 "/"  ##ftp服务的根目录
ftp> ls -a  ##查看目录中的内容
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
.
..
pub
test.txt  ##服务器中的文件
226 Directory send OK.
ftp: 收到 25 字节,用时 0.00秒 25000.00千字节/秒。
ftp> get test.txt ##下载文件到本地(在哪个磁盘的访问就下载到哪里,可以切换磁盘来下载e:)
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test.txt (13 bytes).
226 Transfer complete.
ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。
ftp> put test1.txt ##在c盘中创建一个test1.txt然后上传到Linux中
200 PORT command successful. Consider using PASV.
550 Permission denied. ##此时是权限受限的
Linux中vsftpd服务配置(匿名,用户,虚拟用户)

3,修改vsftpd配置文件将匿名访问开启最大权限

[root@localhost ftp]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vsftpd.conf
##在配置文件中查找开启下列选项
anonymous_enable=YES ##开启匿名用户
local_enable=YES ##本地用户
write_enable=YES ##写入权限
local_umask=022 ##本地用户反掩码
anon_upload_enable=YES ##上传权限开启
anon_mkdir_write_enable=YES ##开启创建目录并且能够写入
anon_other_write_enable=YES ##添加一个other的重命名和删除的权限
[root@localhost vsftpd]# systemctl restart vsftpd ##重启服务
[root@localhost vsftpd]# cd /var/ftp/ ##切换到ftp目录下
[root@localhost ftp]# ls
pub test.txt
[root@localhost ftp]# ls -l
总用量 4
drwxr-xr-x. 2 root root 6 10月 31 2018 pub
-rw-r--r--. 1 root root 13 11月 5 19:14 test.txt
[root@localhost ftp]# chmod 777 pub ##将pub目录权限给最大,注意不能直接给ftp权限最大

4,用测试机cmd访问ftp并上传本地文件到Linux上

C:\Users\xy007>ftp 192.168.13.140 ##访问ftp服务
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): ftp
331 Please specify the password.
密码:
230 Login successful.
ftp> cd pub/    ##切换到pub目录下
250 Directory successfully changed.
ftp> put test1.txt   ##上传文件
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 13 字节,用时 0.03秒 0.41千字节/秒。
ftp> by ##退出
221 Goodbye.
##你也可以使用delete删除文件

5,查看上传的文件

[root@localhost ftp]# cd /var/ftp/pub ##切换到pub目录下
[root@localhost pub]# ls ##查看上传的文件
test1.txt

二,利用本地用户登录ftp(文件在家目录)

防止本地用户访问系统目录,限制仅访问用户家目录

1,创建系统用户

[root@localhost pub]# useradd zhangsan ##创建用户并设置用户密码
[root@localhost pub]# passwd zhangsan
[root@localhost pub]# useradd lisi ##创建用户并设置用户密码
[root@localhost pub]# passwd lisi

2,测试机上cmd使用用户登录ftp

C:\Users\xy007>ftp 192.168.13.140 ##登录ftp服务
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan ##使用本地用户
331 Please specify the password.
密码:
230 Login successful.
ftp> ls / ##查看用户/下的目录文件,直接到系统根目录下
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
/bin
/boot
/dev
/etc
/home
/lib
/lib64
/media
/mnt
/opt
/proc
/root
/run
/sbin
/srv
/sys
/tmp
/usr
/var
226 Directory send OK.
ftp: 收到 126 字节,用时 0.02秒 7.88千字节/秒。

3,防止本地用户访问系统目录,限制仅访问用户家目录

[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf ##修改配置文件
chroot_local_user=YES ##开启限制本地访问系统目录模块
allow_writeable_chroot=YES ##添加写的权限
[root@localhost pub]# systemctl restart vsftpd ##重启服务

4,测试机cmd访问

C:\Users\xy007>ftp 192.168.13.140 ##访问ftp
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan ##用户zhangsan
331 Please specify the password.
密码:
230 Login successful.
ftp> cd / ##切换到系统根目录
250 Directory successfully changed.
ftp> ls ##查看发现还是在用户的家目录中,访问不到系统的其他目录了,增强了安全性
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
设置允许,拒绝指定用户访问ftp
1,设置user-list(默认拒绝),允许或者拒绝特定用户登录ftp
[root@localhost pub]# cd /etc/vsftpd/ ##切换到vsftpd配置文件目录
[root@localhost vsftpd]# vim vsftpd.conf

userlist_enable=YES ##确认user-list开启

[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# echo "zhangsan" >> user-list ##将zhangsan用户添加到列表中
[root@localhost vsftpd]# systemctl restart vsftpd ##重启服务
2,用测试机cmd测试
C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan ##使用zhangsan登录
530 Permission denied.
登录失败。     ##直接拒绝登录
ftp>

3,设置列表为仅允许

[root@localhost ftp]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vsftpd.conf ##配置vsftpd配置文件
userlist_enable=YES
userlist_deny=NO ##添加列表允许

[root@localhost vsftpd]# systemctl restart vsftpd ##重启服务

4,测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): zhangsan ##用zhangsan去登录
331 Please specify the password.
密码:
230 Login successful. ##登录成功
ftp> by
221 Goodbye.

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): lisi ##用lisi去登录
530 Permission denied.
登录失败。    ##登录失败

三,建立虚拟用户账户使用ftp(文件在系统用户vuser家目录)

1,创建虚拟用户文件

[root@localhost vsftpd]# cd /etc/vsftpd/ ##切换到配置文件目录下
[root@localhost vsftpd]# vim vuser ##创建虚拟用户文件

lisa  ##奇数行为用户名
123123 ##偶数行为密码
tom
123123

2,转换数据库文件,设置安全权限

[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db ##将vuser转换成数据库文件
##T转换,t类型,f指定文件
[root@localhost vsftpd]# chmod 600 vuser ##安全起见,不让别人看到,设置权限
[root@localhost vsftpd]# chmod 600 vuser.db

3,编辑pam认证模块支持虚拟用户登录

[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser
##创建系统用户,指定家目录,不能登录
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu ##编译pam认证模块

auth required pam_userdb.so db=/etc/vsftpd/vuser ##识别转换过的数据库文件
account required pam_userdb.so db=/etc/vsftpd/vuser ##连接的密码服务

4,开启虚拟用户,使用pam模块认证登录

[root@localhost vsftpd]# vim vsftpd.conf ##修改配置文件
##大G到末行
#pam_service_name=vsftpd ##注释
##添加下面三行内容
guest_enable=YES  ##开启来宾用户访问
guest_username=vuser ##使用vuser用户名
pam_service_name=vsftpd.vu ##pam模块
[root@localhost vsftpd]# systemctl restart vsftpd ##重启服务

5,测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): tom ##使用虚拟用户tom登录
331 Please specify the password.
密码:
230 Login successful.
ftp> put test1.txt ##上传一个文件
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。
##查看文件的权限为600
[root@localhost vsftpd]# ls -l /opt/vuser/
总用量 4
-rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt

6,单独用户配置,指定上传文件的权限644

[root@localhost vsftpd]# vim vsftpd.conf
##大G末行添加
user_config_dir=/etc/vsftpd/vu_dir ##单独用户配置文件夹
[root@localhost vsftpd]# mkdir vu_dir ##创建文件夹
[root@localhost vsftpd]# cd vu_dir/
[root@localhost vu_dir]# vim lisa ##在配置文件夹里创建用户配置文件
anon_umask=022 ##指定上传文件的权限
[root@localhost vu_dir]# systemctl restart vsftpd ##重启服务

7,测试机cmd使用lisa用户登录,查看上传文件权限

C:\Users\xy007>ftp 192.168.13.140
连接到 192.168.13.140。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.13.140:(none)): lisa ##使用lisa登录
331 Please specify the password.
密码:
230 Login successful.
ftp> put 111.txt ##上传文件
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。

[root@localhost vu_dir]# ls -l /opt/vuser/ ##查看上传文件的权限
总用量 8
-rw-r--r--. 1 vuser vuser 13 11月 5 22:58 111.txt ##lisa上传文件权限644
-rw-------. 1 vuser vuser 13 11月 5 22:51 test1.txt ##tom上传文件权限600

总结

以上所述是小编给大家介绍的Linux中vsftpd服务配置(匿名,用户,虚拟用户),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Linux CentOS服务器搭建与初始化配置教程

    这几天对服务器兴趣贼为浓厚,在虚拟机上装了一个CentOS7玩了玩,遇到过很多问题,比如网卡驱动设置,不能ping 等等问题,然后掏钱买个ECS搭服务器玩玩,下面就开始谢谢我的心路历程吧. 首先 买服务器,什么阿里云,百度云.腾讯云等等,随便买一个低配就好了,我买的学生机,9.9一个月,便宜的不能再便宜了,廉价的不能再廉价了. (自带mysql数据库,php Apache运行环境,FTP,VSftpd,这让我省了很多事) 第一步:安装jdk 去官网下载jdk(官网:http://www.orac

  • 关于linux服务器下vsftpd的一些问题

    前段时间碰到一位牛B的人物,帮我修正了vsftpd基于PAM认证的问题.今天又碰到N个问题,比如Access denied. 和403错误,无法上传文件等等之类的错误.于是,只好请这个高人再次出马,帮忙再次修正.很感谢这位牛B人物.在利益大于一切的这个X蛋的社会,还能为了咱们这群小菜鸟去分析N个文件..这种精神实在是值得佩服. 针对我自己本身出现的问题,将高人与我的QQ聊天记录整理了一份,然后再加上实际的操作.终于让我大彻大悟.现在与大家狠狠的分享这位高人的成果. 用户上传文件访问出现403或者

  • LINUX Centos7搭建vsftpd服务

    前言:在数据传输安全方面,被动模式安全性更高,且ftp连接工具都是默认被动模式:在网络安全方面,则是主动模式安全性更高. 安装vsftpd和ftp连接工具 yum -y install vsftpd ftp 修改vsftpd的配置文件 vim /etc/vsftpd/vsftpd.conf 修改: anonymous_enable=NO //修改为NO chroot_list_enable=YES //去掉前面的#号 chroot_list_file=/etc/vsftpd/chroot_lis

  • Linux编译安装vsftpd服务器(本地用户验证方式)

    Linux vsftpd编译安装和配置允许本地用户登录FTP 1.下载vsftpd源码 wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz 2.编译vsftpd源码 64位的系统编译之前先要执行cp /lib64/libcap.so.1 /lib/libcap.so.1命令: 复制代码 代码如下: tar xzvf vsftpd-2.3.4.tar.gz cd vsftpd-2.3.4 make make install

  • linux下vsftpd的安装及配置使用详细步骤(推荐)

    vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BSD.Solaris. HP-UNIX等系统上面,是一个完全免费的.开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征. 比如:非常高的安全性需求.带宽限制.良好的可伸缩性.可创建虚拟用户.支持IPv6.速率高等. vsftpd是一款在Linux发行版中最受推崇的FT

  • Linux平台通过nginx和vsftpd构建图片服务器

    因为开发需要,需要在Linux上构建一个独立的图片服务器,此处默认您已安装好Linux系统.系统环境:CentOs6.5,Vmware10 一.Nginx安装 1.nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ PCRE(PerlCompatible Regular Expressions)是

  • 在Linux服务器中配置mongodb环境的步骤

    1.到mongodb官网下载一个合适的linux环境安装包 如下图,放到本地的某个角落,要记得位置哦~ 2.然后你需要有一个服务器,并进入 ssh root@你的IP //回车输入密码 3.把下载好的安装包传到服务中 另开ssh窗口(command+n),如果是windows就打开新的cmd窗口,因为我们要操作本地文件,之前的窗口我们已经登了服务器了. 传的方法很多,我只演示其中一种啦. cd "安装包所在文件夹" // 去你刚才安装包放的位置 scp "本地文件"

  • Linux服务器下安装配置Nginx的教程

    Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. 在高连接并发的情况下,Nginx是Apache服务器不错的替代品. Nginx 安装 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二.首先要安装 PCRE PCRE 作用是让 N

  • 浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)

    vsftpd概述 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BSD.Solaris. HP-UNIX等系统上面,是一个完全免费的.开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征. 特点 非常高的安全性需求.带宽限制.良好的可伸缩性.可创建虚拟用户.支持IPv6.速率高 小巧轻快,安全易用. ftp.sftp.

  • Linux中selinux基础配置教程详解

    selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selinux运作时,已经开始限制domain/type. permissive: 警告模式,在selinux运作时,会有警告讯息,但不会限制domain/type的存取. disabled: 关闭模式. 可用getenforce查看selinux状态 selinux对文件的作用: 当开启selinux后,s

  • 浅析Linux中的零拷贝技术的使用

    本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景.为了迅速建立起零拷贝的概念,我们拿一个常用的场景进行引入: 引文## 在写一个服务端程序时(Web Server或者文件服务器),文件下载是一个基本功能.这时候服务端的任务是:将服务端主机磁盘中的文件不做修改地从已连接的socket发出去,我们通常用下面的代码完成: while((n = read(diskfd, buf, BUF_SIZE)) > 0) write(sockfd, buf , n); 基本操作就是循环的从磁盘读入

  • Linux中一对多配置日志服务器的详细步骤

    目录 配置发送端:从server发送到syslog 配置接收端:配置协议,端口号,接收条件,存储位置 取消注释如下代码: 接收条件配置 创建日志接收模板 结语 配置发送端:从server发送到syslog 打开以下文件 在第90行(附近也行)输入以下代码,authpriv代表所有级别的登录日志,@@代表tcp,172.168.2.100代表目标ip,514代表目标端口号,保存退出 authpriv.* @@10.99.8.6:514 配置接收端:配置协议,端口号,接收条件,存储位置 输入以下代码

  • 浅析Linux中使用nohup及screen运行后台任务的示例和区别

    使用SSH终端(比如putty,xshell)连接Linux服务器上运行比较耗时任务,可能需要几个小时甚至几天才能完成,这时候终端被占据,我们还要做其他的任务呢,所以需要将这一类耗时任务放到后台来跑,只需要记录好日志就行了,有下面这些常用方法来实现这个需求. command & 在终端输入command &运行,这时候使用Ctrl + C中止命令将会失效,因为对&后台运行SIGINT1信号免疫,程序会继续运行. 但如果你直接关掉终端, 进程将跟着中止. 可见,使用&后台运行

  • Linux中Go环境配置和GoModule常用操作

    我为什么要学习go语言 当今已经是移动和云计算时代,Go出现在了工业向云计算转型的时刻,简单.高效.内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发(毕竟它就是为此而设计的).到2014年,Go项目拥有了上百的核心贡献者,其生态圈中拥有了数不尽的第三方库和工具(https://godoc.org/),更有很多大公司开始或迁移到go语言,一些重量级的开源云项目,诸如Docker和Kubernetes 都是用Go语言实现的,一些运作基础设置的公司,诸如Google.CloudFlare.C

  • Linux 中LVS NAT 配置步骤的详解

    Linux 中LVS NAT 配置步骤的详解 概要: 规划机器与IP地址,LVS集群中有三种类型机器4种IP地址.机器类型:Client.Director.Real Server,与机器类型对应的IP地址分别为:CIP.DIP.RIP,Director对应两种IP 除了DIP外还有一个VIP.通常DIP.RIP在一个网络,CIP.VIP在一个网络. CIP:192.168.56.1 VIP:192.168.56.101 DIP : 192.168.0.10 RIP : 192.168.0.100

  • python脚本当作Linux中的服务启动实现方法

    脚本服务化目的: python 在 文本处理中有着广泛的应用,为了满足文本数据的获取,会每天运行一些爬虫抓取数据.但是网上买的服务器会不定时进行维护,服务器会被重启.这样我们的爬虫服务就无法运行.这个时候我们可以把python脚本服务化,服务器重启后,脚本就会自动运行.解决服务器维护后需要手动运行python脚本. 实现方法: 1,给编写好的python脚本开头加上 #!/usr/bin/python 2,启动shell 脚本 编写 vi pystock.sh #vim /etc/init.d/

  • VSFTPD配置(匿名——本地用户——虚拟用户)

    1,下载VSFTPD.TAR.GZ 程序下载地址:ftp://vsftpd.beasts.org/users/cevans/ 2,检查和建立相应账户和目录 1,nobody用户 [root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody nobody:x:99:99:Nobody:/:/sbin/nologin 如不存在请建立相关账户. 2,/usr/share/empty 目录, 如不存在请创建 3,如允许匿名访问,需创建Ftp用户,家目录为/

  • linux中ftp服务搭建需要注意的地方

    1.配置文件 /etc/vsftpd 目录下的vsftpd.conf文件 # Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 fo

随机推荐