FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露。

vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

参数

作用

anonymous_enable=YES

允许匿名访问模式。

anon_umask=022

匿名用户上传文件的umask值。

anon_upload_enable=YES

允许匿名用户上传文件

anon_mkdir_write_enable=YES

允许匿名用户创建目录

anon_other_write_enable=YES

允许匿名用户修改目录名或删除目录

确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。

 systemctl restart vsftpd
systemctl enable vsftpd

匿名用户没有写入权限,那我们将所有者修改为ftp

chown  ftp /var/ftp/pub(访问的文件)

在客户端尝试登入FTP服务:

首先安装ftp客户端:yum install ftp -y

虚拟机登陆:

ftp 192.168.10.10

物理机登陆

本地用户模式

既然要使用本地用户模式,而本地用户模式确实要比匿名访问模式更加的安全,所以本实验中会关闭匿名访问模式。

vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf

参数

作用

anonymous_enable=NO

禁止匿名访问模式。

local_enable=YES

允许本地用户模式。

write_enable=YES

设置可写入权限。

local_umask=022

本地用户模式创建文件的umask值。

userlist_deny=YES

参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。

userlist_enable=YES

允许“禁止登陆名单”,名单文件为ftpusers与user_list。

确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。

 systemctl restart vsftpd
 systemctl enable vsftpd

ftpusersuser_list文件中禁止登陆用户名单:

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

vsftpd服务为了让FTP服务更加的安全,默认禁止登入root,那么创建个普通用户吧:

useradd hzk

为hzk用户设置密码:

passwd hzk

在客户端尝试登入FTP服务:

ftp 192.168.5.100

虚拟机登入:

虚拟用户模式

因为虚拟用户模式的帐号口令都不是真实系统中存在的,所以只要配置妥当虚拟用户模式会比本地用户模式更加安全,但是Vsftpd服务配置虚拟用户模式的操作步骤相对复杂一些,具体流程如下:

第1步:建立虚拟FTP用户数据库文件。

第2步:创建FTP根目录及虚拟用户映射的系统用户。

第3步:建立支持虚拟用户的PAM认证文件。

第4步:在vsftpd.conf文件中添加支持配置。

第5步:为虚拟用户设置不同的权限。

第6步:重启vsftpd服务,验证实验效果。

第1步:建立虚拟FTP用户数据库文件。

切换至vsftpd程序目录:

cd /etc/vsftpd/

创建用于生成FTP用户数据库的原始帐号和密码文件:

vim vuser.list

//单数行为帐号,双数行为密码。

使用db_load命令用HASH算法生成FTP用户数据库文件vuser.db:

db_load -T -t hash -f vuser.list vuser.db

查看数据库文件的类型:

file vuser.db

vuser.db: Berkeley DB (Hash, version 9, native byte-order)

FTP用户数据库内容很敏感,所以权限给小一些:

[root@linuxprobe vsftpd]# chmod 600 vuser.db

删除原始的帐号和密码文件:

rm -f vuser.list

第2步:创建FTP根目录及虚拟用户映射的系统用户。

创建用户virtual并设置为不允许登陆系统并定义该用户的家目录:

useradd -d /var/ftproot -s /sbin/nologin virtual

查看该用户的家目录权限:

ls -ld /var/ftproot/

drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/

为保证其他用户可以访问,给予rwxr-xr-x权限:

chmod -Rf 755 /var/ftproot/

第3步:建立支持虚拟用户的PAM认证文件:

vim /etc/pam.d/vsftpd.vu

//参数db用于指向刚刚生成的vuser.db文件,但不要写后缀。

auth       required     pam_userdb.so db=/etc/vsftpd/vuser

account    required     pam_userdb.so db=/etc/vsftpd/vuser

第4步:在vsftpd.conf文件中添加支持配置。

既然要使用虚拟用户模式,而虚拟用户模式确实要比匿名访问模式更加的安全,配置的同时也关闭匿名开放模式。

[root@linuxprobe
~]# vim /etc/vsftpd/vsftpd.conf

参数

作用

anonymous_enable=NO

禁止匿名开放模式。

local_enable=YES

允许本地用户模式。

guest_enable=YES

开启虚拟用户模式。

guest_username=virtual

指定虚拟用户帐号。

pam_service_name=vsftpd.vu

指定pam文件。

allow_writeable_chroot=YES

允许禁锢的FTP根目录可写而不拒绝用户登入请求。

第5步:为虚拟用户设置不同的权限

现在不论是linuxprobe还是blackshield帐户,他们的权限都是相同的——默认不能上传、创建、修改文件,如果希望用户blackshield能够完全的管理FTP内的资料,就需要让FTP程序支持独立的用户权限配置文件了:

指定用户独立的权限配置文件存放的目录:

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers_dir

创建用户独立的权限配置文件存放的目录:

mkdir /etc/vsftpd/vusers_dir/

切换进入到该目录中:

cd /etc/vsftpd/vusers_dir/

创建空白的linuxprobe1的配置文件:

touch linuxprobe1

指定linuxprobe1用户的具体权限:

vim linuxprobe1

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

第6步:重启vsftpd服务,验证实验效果。

确认填写正确后保存并退出vsftpd.conf文件,重启vsftpd程序并设置为开机后自动启用:

systemctl restart vsftpd
 systemctl enable vsftpd

ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service

虚拟机/客户机登入:

mkdir files

FTP三种访问模式的更多相关文章

  1. CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)

    CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...

  2. EF3:Entity Framework三种开发模式实现数据访问

    前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对 ...

  3. Entity Framework:三种开发模式实现数据访问

    原文地址 http://blog.csdn.net/syaguang2006/article/details/19606715 前言 Entity Framework支持Database First. ...

  4. vmware 下的三种网络模式

    VMWare提供三种工作模式桥接(bridge).NAT(网络地址转换)和host-only(主机模式). 桥接模式 在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和 ...

  5. vsftpd服务程序的三种认证模式

    vsftpd服务程序的三种认证模式的配置方法——匿名开放模式.本地用户模式以及虚拟用户模式.了解PAM可插拔认证模块的原理.作用以及实战配置方法,通过实战课程进一步继续学习SELinux服务的配置方法 ...

  6. Linux环境下安装配置vsftpd服务(三种认证模式)

    一.FTP简介 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议.它工作于网络传输协议的应用层,使用客户/服务器模式,主要是用来 ...

  7. 云计算的三种服务模式:SaaS/PaaS/IaaS

    转载http://blog.chinaunix.net/uid-22414998-id-3141499.html 定义 云计算主要分为三种服务模式,而且这个三层的分法重要是从用户体验的角度出发的: S ...

  8. 虚拟机安装Ubuntu三种网络模式

    VMWare提供三种工作模式桥接(bridge).NAT(网络地址转换)和host-only(主机模式). NAT(网络地址转换) 在NAT模式下,虚拟系统需要借助NAT(网络地址转换)功能,通过宿主 ...

  9. VMWare提供了三种工作模式上网

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...

随机推荐

  1. mysql被收购 用mariadb (转)

    ~]# systemctl start mysql.service 要启动MySQL数据库是却是这样的提示 Failed to start mysqld.service: Unit not found ...

  2. Linux 命令行通配符及转义符的实现

    我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令会是: [root@linuxprobe ~]# ls /dev/sda [root@linuxprobe ~]# ls /dev/sd ...

  3. 《PHP安全编程系列》系列分享专栏

    PHP安全编程系列收藏夹收藏了有关PHP安全编程方面的知识,对PHP安全编程提供学习参考 <PHP安全编程系列>已整理成PDF文档,点击可直接下载至本地查阅https://www.webf ...

  4. 阿里云低延时直播 RTS 能力升级 让直播推流效果更佳

    行业背景 直播技术飞速发展让各个行业的用户体验呈现多样化和个性化,不同业务场景下创新实践满足大众对于音视频互动体验和参与的高标准要求.历经2020年初的巨变之后,以视频.游戏.电商.教育为主的互联网经 ...

  5. Django 基础05篇 上下文管理和前端代码复用

    一.上下文管理器 在views中重复使用的代码,可以通过上下文管理器(在setting.py文件中的TEMPLATES中配置)中实现,减少代码冗余 上下文管理器的处理流程如下: 1.先走完views里 ...

  6. python 14篇 写日志

    import sys from loguru import logger # 日志级别: debug 调试信息打印日志比较详细,级别最低 # info 正常的提示信息,级别较低 # waring 警告 ...

  7. shell脚本(3)-格式化输出

    一个程序需要有0个或以上的输入,一个或更多输出 一.echo语法 1.功能:将内容输出到默认显示设备. echo命令功能在显示器上显示一段文字,一般提到提示的作用 2.语法:echo[-ne][字符串 ...

  8. 【LeetCode】59.螺旋矩阵II

    59.螺旋矩阵II 知识点:数组: 题目描述 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . 示例 输入:n = 3 ...

  9. JPcap入门

    1,参照入门:安装第一个代码:https://blog.csdn.net/qq_37638061/article/details/80710143 2,数据解析,不可用但有启发意义:https://b ...

  10. python -- 结构数据类型(列表、元组、集合、字典)

    一.列表 列表表示一组有序的元素,这些元素可以是数字.字符串,也可以是另一个列表. # ----------------------------------------# 列表(list):一组有序的 ...