vsftp安装配置笔记(三)配置虚拟用户访问
小编:动力软件园 时间:2018-08-21 16:04:40
配置vsftpd服务器总体概要:
网上大把的vsftp服务配置教程,我看的晕乎乎的,需要用的时候很吃力的看一遍,配置完就忘记了。原因没有彻底理解vsftp服务的工作原理。想必很多朋友和我一样吧。今天就特意花几个小时整理一下文档,以便下次使用。保证你看完之后不会忘记。该教程是针对配置vsftp服务使用虚拟账号登陆的,liunx中的vsftp服务 默认禁止root用户登录。因为是明文传输,如果被抓包,得到的root密码是可以直接登陆系统,拿到最高权限的。【测试方法:tcpdump -i -eth0 -nnX port 21 使用tcpdump 命令在eth0的21端口进行抓包。X的意思是进行16进制拆分。】如果你非要使用vsftp本地账户登陆。那你可以直接略过看该文档。
首先要牢记以下几点,才能明白以下操作的意义:
1、vsftp用户分三种(1)anonymous【禁止】 匿名用户(2)本地用户【禁止】(3)虚拟用户【使用该模式登录】。
2、默认安装的vsftp也是采用PAM认证的。我们配置虚拟账户也采用PAM认证方式。
3、建立虚拟用户列表,生成db文件后要记得删除或者移位到其他位置,放置信息泄露。
4、每一个虚拟用户对应一个属于自己的权限配置文件,方便灵活。
用一张图来形容VSFTP虚拟用户安全访问机制。
开始配置服务器 :
一、安装vsftp
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt/cdrom 忙
/dev/sr0 已经挂载到 /run/media/slz0907/CentOS 7 x86_64 上
/dev/sr0 已经挂载到 /mnt/cdrom 上
[root@localhost ~]# cd /mnt/cdrom/Packages/
[root@localhost Packages]# rpm -ivh vsftpd-3.0.2-9.el7.x86_64.rpm
我这里已经安装好了。如果你还没有安装,执行该命令后出现两个100%,表示正常安装。
二、配置虚拟映射用户(看图)
创建一个不能登录系统的用户ftpuser用于映射虚拟用户,该虚拟用户只做映射不能登录系统,你可以理解为只能做路由转发,但是不能上网的路由器。
[root@localhost /]# useradd -d /home/ftpsite -s/sbin/nologin ftpuser
[root@localhost /]# chmod 700 /home/ftpsite/
[root@localhost /]#
打开vsftpd.conf文件添加配置:
guest_enable=YES <--用于虚拟用户
guest_username=ftpuser <--定义虚拟映射用户的用户名
user_config_dir=/etc/vsftpd/vsftpd_user_list #这是第四步要加上的内容。
同时要记得修改,注释掉就可以了。
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
#anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
#local_enable=YES
三、建立虚拟用户列表(看图)
1、vim login.txt
test <--账号
123456 <--密码
ftptest
121121
# 文件的内容是:奇数行用户名、偶数行密码。
2、生成认证db_load命令生成db文件,供vsftp认证调用。将用户文件信息转化为数据库并使用hash加密。
db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
修改权限:
chmod 600 /etc/vsftpd/vsftpd_login.db
3、新建或者修改PAM文件,调用2、生成的db文件,采用新的PAM认证。
vim /etc/pam.d/vsftpd
加入下面内容,其他行全部注释:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
64位系统:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
# auth是对用户密码进行验证。
# accout是对用户的权限进行验证。
到此为止,虚拟用户的新建,pam认证,搞定。
四、为test和ftptest用户配置访问权限吧。没有权限的账号是没有用滴。
vim test文件加入以下权限,切记 vsftpd.conf 要加入 user_config_dir=/etc/vsftpd/vsftpd_user_list
local_root=/home/ftpsite/xxxxxx #这里的目录可以是系统中其他目录,根据用途定义。
file_open_mode=0777
write_enable=YES
virtual_use_local_privs=YES #配置虚拟用户具有写权限(上传、下载、删除、重命名)
其他权限设置: