sftp(Very SecureFTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如ftp.redhat.com,ftp.kde.org,ftp.gnome.org.等。Vsftpd的实现有三种方式
1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问
2、本地用户形式:以/etc/passwd中的用户名为认证方式
3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。
安装:yum -y installvsftpd db4-utils*
vsftpd虚拟用户的配置
womaiadmin 读写删除(上传、下载、删除)
womairw 读写(上传、下载、不能删除)
womairo 读(只能下载)
一、创建虚拟用户数据库
1、创建文件loginuser.txt
#vim/etc/vsftpd/loginuser.txt
womaiadmin
womaiadmin
womairw
womairw
womairo
womairo
2、生成数据库文件:
#db_load -T -t hash-f /etc/vsftpd/loginuser.txt /etc/vsftpd/vsftpd_login.db
#chmod 600/etc/vsftpd/vsftpd_login.db
3、配置pam文件(64bit改/lib64)(32位就是/lib)
#vim/etc/pam.d/vsftpd.vu
auth required/lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required/lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
二、为虚拟用户创建本地系统用户
#useradd vsftp -d/data/ftpdir -s /bin/false
#chown vsftp.vsftp/data/ftpdir
#mv /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftp.conf.bak
#vim /etc/vsftpd/vsftpd.conf 配置主服务
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_port=21
userlist_enable=YES
chroot_local_user=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vsftp
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
pasv_min_port=50000
pasv_max_port=60000
pasv_enable=yes
max_clients=200
max_per_ip=10
idle_session_timeout=600
#mkdir/etc/vsftpd/vsftpd_user_conf 创建虚拟用户配置目录
#vim/etc/vsftpd/vsftpd_user_conf/womaiadmin 创建womaiadmin用户配置文件
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/data/ftpdir
#vim/etc/vsftpd/vsftpd_user_conf/womairw 创建womairw用户配置文件
write_enable=YES
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RNFR,RNTO,SIZE,STOR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT
local_umask=022
local_root=/data/ftpdir
#vim/etc/vsftpd/vsftpd_user_conf/womairo 创建womairo用户配置文件
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
local_umask=022
download_enable=yes
local_root=/data/ftpdir
三、测试虚拟用户
分别登陆ftpadmin ftpuser ftp pwd:123456尝试mkdir delete put get等权限
#ftp -n 192.168.2.200
Connected to192.168.2.200 (192.168.2.200).
220 Welcome to FTP service
ftp> use ftpuser
331 Please specifythe password.
Password:
230 Loginsuccessful.