vsftpd虚拟用户

作者:Garany 发布于:2016-05-18 分类:破万卷书

在VSFTP中,虚拟用户认证使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源,由此来提高系统的安全性。并且配置更加灵活。


下面介绍配置过程。注意防火墙和selinx


1.生成虚拟用户口令文件。

# vim /etc/vsftpd/login.txt

ftpu1#用户名

1234#密码

ftpu2

qwer

ftpu3

5678


2.生成口令库文件,并修改其权限:

# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db
# chmod 600 /etc/vsftpd/vsftpd_login.db


3.编辑虚拟用户的PAM文件。清空并添加以下内容:

# > /etc/pam.d/vsftpd
# vim /etc/pam.d/vsftpd

32位系统:

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

account  required  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

说明:/etc/vsftpd/vsftpd_login文件为第2部中生成的虚拟用户的db文件,不可加.db。


4.建立虚拟用户(www),不允许登录系统

# useradd -M -s /sbin/nologin www


5.编辑vsftpd配置文件

# /etc/vsftpd/vsftpd.conf

anonymous_enable=NO    #不允许匿名访问

local_enable=YES    #本地用户可以访问,如果为NO 则所有虚拟用户都将不能访问,因为虚拟用户的访问在主机上其实是以本地用户访问的

local_umask=022

xferlog_enable=YES#开启日志

xferlog_file=/var/log/vsftpd.log#日志保存路径

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

one_process_model=NO

chroot_local_user=YES#限定用户不可立刻家目录

ftpd_banner=Welcom to lst FTP_server.

anon_world_readable_only=NO

guest_enable=YES#开启虚拟用户功能

guest_username=www#指定虚拟用户的宿主内置用户

pam_service_name=vsftpd    #指定pam认证文件名,第3部中的/etc/pam.d/vsftpd

user_config_dir=/etc/vsftpd/vuser.conf.d    #虚拟用户独立配置文件


6.创建每个虚拟用户的独立配置文件。

# mkdir /etc/vsftpd/vuser.conf.d
# vim /etc/vsftpd/vuser.conf.d/ftpu1

local_root=/www/ftpsite/ftpu1    #虚拟用户ftpu1的根目录

anon_world_readable_only=NO

anon_umask=022

write_enable=YES    #可写权限

anon_mkdir_write_enable=YES

anon_upload_enable=YES

anon_other_write_enable=YES


7.创建虚拟用户的家目录,并赋予权限

# mkdir /www/ftpsite/ftpu1
# cd /www/ftpsite/
# chown -R www.www /ftpu1/    #设置文件所有者.所有者为本地用户www
# chmod 700 /www/ftpsite/ftpu1


8.重新启动VSFTP:

# service vsftpd restart


9.本地测试

# ftp 127.0.0.1

Connected to 127.0.0.1 (127.0.0.1).

220 Welcom to my FTP server.

Name (127.0.0.1:root): ftpu1#使用虚拟用户ftpu1登录

331 Please specify the password.

Password:

230 Login successful. Have fun.

Remote system type is UNIX.

Using binary mode to transfer files.


10.添加FTP用户的步骤

1.在/etc/vsftpd/login.txt中添加用户名和密码

2.更新口令库文件

# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db

3.创建虚拟用户的独立配置文件

# vim /etc/vsftpd/vuser.conf.d/ftpuN

4.为新用户新建家目录并修改权限

我来说说