Centos7 vsftpd搭建和虚拟用户
1、vsftpd简介
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
2、特点
①vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;
②任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;
③所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;
④此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。
3、需要的软件
vsftpd
4、安装及配置
1、安装vsftpd
关闭selinux 修改后需要重启生效
关闭防火墙
安装
vim /etc/vsftpd/vsftpd.conf
详细信息参考点击打开链接
创建用户
启动vsftpd
测试用户
因为我使用的时默认的配置文件所以没有限制用户在本地目录,而使用这样的设置风险非常大,不小心就会删掉重要配置文件,所以一定要设置限制用户在本地用户,使用chroot_list,而在我做的过程中遇到一个报错:
这个错误是因为从2.3.5版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能在具有写权限!如果检查有写权限就会报错。
解决方法 1、给用户的主目录去掉写权限
2、可以在vsftpd配置文件中增加一行
allow_writeable_chroot=YES
修改之后就可以登录了,而且登陆后它的主目录直接成为了自己的根目录。
编辑配置文件
添加三行启用虚拟用户、映射用户为vuser、虚拟用户配置文件目录
创建映射用户
创建一个文本文件内容奇数行为用户名偶数行为对应密码,生成数据文件
修改pam认证文件,注释掉所有行,添加两行
编辑虚拟用户配置文件
zhangsan和lisi用户共同用一个家目录,权限一个为只可上传,一个拥有所有权限。
虚拟用户权限选项:
virtual_use_local_privs=NO #匿名用户不具有本地用户的权限,看不到目录中的文件,即不可浏览。
anon_world_readable_only=NO #匿名用户可以浏览FTP目录和下载文件
anon_upload_enable=YES #允许匿名用户上传文件
anon_mkdir_write_enable=YES #允许匿名用户建立和删除目录
anon_other_write_enable=YES #允许匿名用户改名和删除文件
enable_write=YES #拥有写的权限。
重启vsftpd
虚拟用户就完成了。