前言:
说到文件共享服务,对于Linux比较熟悉的同学肯定会如数家珍一样的说:这题我会!~~,有nfs,ftp,vsftp,samba,iscsi这几个常用而简单的
那么,这几个服务真的很简单吗?其实,并不是的,而是比较复杂的,难以配置好的。为什么这么说呢?因为,我们通常说的简单,仅仅是简单的文件共享服务应用,在这样的场景下,不考虑一些特殊的需求,比如,安全方面的需求,确实是十分简单的,基本可以说开箱即用的感觉,但,加入很多需求后,就会比较困难啦!!,
Linux我也算接触非常长的时间啦,有时候在工作中,我也经常思考,Linux有时候确实是比较难的,这个就好像厨师做饭一样,厨师有中式厨师,有俄罗斯厨师,有日本厨师,有法国厨师,等等,最终的做饭的结果是满足我们的味蕾(前提是吃饱的情况下,我们才会考虑饭菜有更多的花样,更多的口味以满足我们的一些欲望)。
那么,做饭难在哪呢?难在同样的蛋炒饭,五星大酒店级别的厨师会比一个普通人做的更好吃,难在同样的面条,厨师会比普通人多做出更多花样。
厨师招聘有的时候就是要求先试着做一个普通的饭菜,比如食神里的黯然销魂饭,高等级的厨师具有化腐朽为神奇的能力,越是普通的饭菜,越可以看到,感觉到厨师的功力。
我们在学习的时候,不管是编程当程序员还是当运维工程师,网络工程师等等技术,很多时候都是小处见功力。同样的,说起来简单的服务,比如vsftp,也能够看到你的运维能力。如果不相信,请收起的骄傲,仔细看看这篇文章吧。
本文主要介绍的是vsftp的匿名模式和上传权限以及欢迎语的设置。
相关知识介绍:
一. VSFTP 概述
FTP 是 File Transfer Protocol(文件传输协议)的英文简称,用于 Internet 上的文件的双向 传输。使用 FTP 来传输时,是具有一定程度的危险性, 因为数据在因特网上面是完全没有受到保护 的明文传输方式! VSFTP是一个基于 GPL发布的类 Unix 系统上使用的 FTP 服务器软件,它的全称是Very Secure FTP, 从名称定义上基本可以看出,这是为了解决 ftp 传输安全性问题的。
二. VSFTP 软件信息
服务端软件名:vsftpd
客户端软件名:ftp
服务名:vsftpd
端口号:20、21、指定范围内随机端口
配置文件:/etc/vsftpd/vsftpd.conf
三. VSFTP 的安装方式
通常是yum安装即可。本地仓库即可完成安装。
四. 登录验证方式 —三种登陆方式
(1)匿名用户验证:
用户账号名称:ftp或anonymous
用户账号密码:无密码
工作目录:/var/ftp
默认权限:默认可下载不可上传,
上传权限由两部分组成(主配置文件和文件系统)
(2)本地用户验证:
用户账号名称:本地用户(/etc/passwd)
用户账号密码:用户密码(/etc/shadow)
工作目录:登录用户的宿主目录
权限:最大权限(drwx——)
(3)虚拟用户(virtual)
用户验证:
1. 创建虚拟用户用来代替本地用户,减少本地用户曝光率
2. 使用本地用户作为虚拟用户的映射用户,为虚拟用户提供工作目录和权限控制
3. 能够设置严格的权限(为每一个用户生成单独的配置文件)
五.
默认配置:
1.允许匿名用户和本地用户登陆。 anonymous_enable=YES local_enable=YES
2.匿名用户使用的登陆名为ftp或anonymous,口令为空;匿名用户不能离开匿名用户家目录/var/ftp, 且只能下载不能上传。
3.本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自 己家目录中进行 读写操作;本地用户可以离开自家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上 传/下载。 write_enable=YES 4.写在文件/etc/vsftpd.ftpusers 中的本地用户禁止登陆。
六.
配置文件格式:
vsftpd.conf 的内容非常单纯,每一行即为一项设定。若是空白行或是开头为#的一行,将会被忽略。 内容的格式只有一种, 要注意的是,等号两边不能加空白。
这里需要注意,主配置文件每一行的等号两边不能有空白,也就是制表符,tab键,空格这些的,那么,我们怎么知道配置文件有没有呢?毕竟,平常是看不到空白的。vim的命令 set invlist 即可看到。
七,匿名模式
匿名模式是最不安全的方式,同时也是最简单的一种模式。
该模式的配置文件设置:
匿名用户(anonymous)设置:
anonymous_enable=YES/NO(YES) 控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为 YES。 write_enable=YES/NO(YES) 是否允许登陆用户有写权限。属于全局设置,默认值为 YES。 no_anon_password=YES/NO(NO) 若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为 NO。
ftp_username=ftp 定义匿名登入的使用者名称。默认值为 ftp。
anon_root=/var/ftp 使用匿名登入时,所登入的目录。默认值为/var/ftp。注意 ftp 目录不能是 777 的权限属性,即匿名 用户的家目录不能有 777 的权限。 anon_upload_enable=YES/NO(NO) 如果设为 YES,则允许匿名登入者有上传文件(非目录)的权限,只有在 write_enable=YES 时,此项 才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为 NO。
anon_world_readable_only=YES/NO(YES) 如果设为 YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在 FTP 服务器中打开阅读)。默认值为 YES。 anon_mkdir_write_enable=YES/NO(NO) 如果设为 YES,则允许匿名登入者有新增目录的权限,只有在 write_enable=YES 时,此项才有效。当 然,匿名用户必须要有对上层目录的写入权。默认值为 NO。
anon_other_write_enable=YES/NO(NO) 如果设为 YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如 果 anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如 果 anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经 存在的文件夹。)默认值为 NO。
chown_uploads=YES/NO(NO) 设置是否改变匿名用户上传文件(非目录)的属主。默认值为 NO。
chown_username=username 设置匿名用户上传文件(非目录)的属主名。建议不要设置为 root。
anon_umask=077 设置匿名登入者新增或上传档案时的 umask 值。默认值为 077,则新建档案的对应权限为 700。 deny_email_enable=YES/NO(NO) 若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为 email address。若是 使用匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。 默认值为 NO。 banned_email_file=/etc/vsftpd/banner_emails 此文件用来输入 email address,只有在 deny_email_enable=YES 时,才会使用到此档案。若是使用 匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。
通常的匿名模式的配置文件内容是这样的:
那么,现在有这么几个问题需要大家思考了:
三种模式,匿名模式,本地用户模式,虚拟用户模式可以同时存在吗?
为什么匿名模式的家目录不能是777权限,如果是有什么后果?
匿名模式家目录如何设置?可以设置为/root吗?
vsftp服务的日志应该采用何种形式记录?