FTP三种访问模式
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
ftpusers或user_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三种访问模式的更多相关文章
- CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)
CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...
- EF3:Entity Framework三种开发模式实现数据访问
前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对 ...
- Entity Framework:三种开发模式实现数据访问
原文地址 http://blog.csdn.net/syaguang2006/article/details/19606715 前言 Entity Framework支持Database First. ...
- vmware 下的三种网络模式
VMWare提供三种工作模式桥接(bridge).NAT(网络地址转换)和host-only(主机模式). 桥接模式 在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和 ...
- vsftpd服务程序的三种认证模式
vsftpd服务程序的三种认证模式的配置方法——匿名开放模式.本地用户模式以及虚拟用户模式.了解PAM可插拔认证模块的原理.作用以及实战配置方法,通过实战课程进一步继续学习SELinux服务的配置方法 ...
- Linux环境下安装配置vsftpd服务(三种认证模式)
一.FTP简介 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议.它工作于网络传输协议的应用层,使用客户/服务器模式,主要是用来 ...
- 云计算的三种服务模式:SaaS/PaaS/IaaS
转载http://blog.chinaunix.net/uid-22414998-id-3141499.html 定义 云计算主要分为三种服务模式,而且这个三层的分法重要是从用户体验的角度出发的: S ...
- 虚拟机安装Ubuntu三种网络模式
VMWare提供三种工作模式桥接(bridge).NAT(网络地址转换)和host-only(主机模式). NAT(网络地址转换) 在NAT模式下,虚拟系统需要借助NAT(网络地址转换)功能,通过宿主 ...
- VMWare提供了三种工作模式上网
VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...
随机推荐
- 在Ubuntu 16.04中搭建RobotFramework环境
1.搭建RF环境 2.安装RF相关库 3.查看RF case 4.设置环境变量 相关知识点:pip --proxy=http://xx.xx.xx.xx:xx install 包名,使用pip的-- ...
- 十九、.net core使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问webservice接口
使用SoapCore实现在.net core平台下开发webservice:以及使用HttpClientFactory动态访问webservice. 首先,需要在包项目下面引用SoapCore: 然后 ...
- Spring常见异常说明
文章要点 Spring bean 的声明方式 Spring bean 的注入规则 Spring bean 的依赖查找规则 Spring bean 的名称定义方式和默认名称规则 XXX required ...
- SQL关联子查询
SQL关联子查询执行顺序: 1.先取到主查询中的相关数据,一次取一行主查询的数据 2.然后传入子查询,进行子查询 3.最后做主查询where筛选,注意子查询的where条件同样需要加在主查询后 参考: ...
- chown、chgrp 改变所有者、所属组
chown [option] [所有者][:[所属组]] file... chown指定文件的拥有者或者所属组,可以通过用户名或者用户id.组名.组id来修改,同时可以修改多个文件,文件以空格分割,支 ...
- python twain
self.SD.SetCapability(twain.CAP_DUPLEXENABLED, twain.TWTY_BOOL, 0) #单面扫描 self.SD.SetCapability(twain ...
- 第 3 题:如何理解 HTML5 语义化?
什么是标签语义化? 提升代码可读性,便于团队开发和维护 为什么要标签语义化? 当网页去掉 CSS 样式时,页面能呈现出来清晰的结构 案例 不存在语义化 <div></div> ...
- MyEclipse无法打开jsp文件(打开是空白的),但是可以打开java文件
转载: 解决MyEclipse使用时打开JSP发生"An error has occurred,See error log for more details"错误的解决方法这个问题 ...
- Linux从入门到进阶全集——【第十五集:安装apache服务器】
1,查看是否安装了httpd软件包以及其依赖:rpm -qa httpd(rpm -qa | grep httpd),如果没有输出任何信息,表示你没有安装httpd软件包,如果有输出一般是已经安装了: ...
- uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...