centos 6.5 vsftpd 虚拟用户配置

一:基本知识
1:虚拟用户:与系统无关联,不能登入系统,只能访问FTP服务器
2:vsftp的服务进程是vsftpd
3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf .
4:vsftpd的用户文件是/etc/vsftpd/ftpusers
5:vsftpd的用户文件是/etc/vsftpd/user_list
6:推荐使用虚拟用户登入vs-FTP服务器

二:安装

1.检查是否安装过vsftpd

rpm -qa vsftpd

安装:

(1)  yum -y install vsftpd lftp

(2) 关闭iptables 和  selinux

/etc/init.d/iptables stop

临时关闭selinux

setenforce 0

永久性的关闭selinux

vim /etc/selinux/config

修改为  ————》SELINUX=disabled

(3) 创建虚拟用户文本文件,添加用户及密码

cd  /etc/vsftpd

touch vuser.txt

备注:奇数行是用户名,偶数行是密码。例如:

alix

123456

(4) 生成虚拟数据库文件(需使用到db_load)

yum -y install db4-utils db4-devel db4-4.3

db-load  -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

(5) 配置PAM文件,用来验证客户端

vim /etc/pam.d/vsftpd

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

account  required  pam_userdb.so  db=/etc/vsftpd/vuser

(6)修改虚拟数据库文件的权限

chmod    700  /etc/vsftpd/vuser.db

(7) 增加一个系统用户vuser,用于匿名用户的映射。

mkdir /data

useradd -d /data vuser

chown vuser.vuser /data

usermod -s /sbin/nologin  vuser

(8) 修改主配置文件vsftpd.conf,添加:

guest_enable=YES                ##激活虚拟用户

guest_uaername=vuser    ##把虚拟用户绑定为系统账户vuser

pam_service_name=vuser  ##使用pam认证

(9) 添加虚拟用户的配置文件

vim /etc/vsftpd/vsftpd.conf

添加:user_config_dir=/etc/vsftpd/vsftpd_user_conf

(10) 创建vsftpd_user_conf目录

mkdir /etc/vsftpd/vsftpd_user_conf

(11) 设置虚拟用户配置文件,与虚拟用户名相同

touch   /etc/vsftpd/vsftpd_user_conf/testuser

(12) 编辑虚拟用户配置文件

vim   /etc/vsftpd/vsftpd_user_conf/testuser

anon_world_readable_only=NO               ###浏览FTP目录和下载  

anon_upload_enable=YES                      ###允许上传  

anon_mkdir_write_enable=YES                ###建立和删除目录  

anon_other_write_enable=YES                ####改名和删除文件

local_root=/ftpdir/                                 #### 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。  

备注:一定要检查后面是否有空格。

(13)启动

/etc/init.d/vsftpd restart

 

三。添加新的虚拟用户

添加虚拟用户

vim /etc/vsftpd/vuser.txt

web2

123456

生成库文件

db-load  -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

编辑虚拟用户的配置文件

touch   /etc/vsftpd/vsftpd_user_conf/web2

vim /etc/vsftpd/vsftpd_user_conf/web2

anon_world_readable_only=NO               ###浏览FTP目录和下载  

anon_upload_enable=YES                      ###允许上传  

anon_mkdir_write_enable=YES                ###建立和删除目录  

anon_other_write_enable=YES                ####改名和删除文件

local_root=/ftpdir/                                 #### 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。  

创建用户家目录

mkdir  /ftpdir/web2

修改权限

chown -R vuser.vuser  /ftpdir/web2

加载vsftpd

/etc/init.d/vsftpd reload

 本地连接:

ftp

(需要把vsftpd.conf 里的ssl关了)

lftp

(在 /etc/lftp.cong里添加   set ssl:verify-certificate no)

 

四、配置ssl
1、安装包
apt-get -y install openssl
 
2、创建一个证书(时间365天)并填写相关一些信息
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/ssl/certs/vsftpd.pem -keyout /etc/ssl/certs/vsftpd.pem
Generating a 2048 bit RSA private key
..........+++
.............+++
writing new private key to '/etc/ssl/certs/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:shanghai
Locality Name (eg, city) []:shanghai
Organization Name (eg, company) [Internet Widgits Pty Ltd]:aaa
Organizational Unit Name (eg, section) []:aaa
Common Name (e.g. server FQDN or YOUR name) []:aaa
Email Address []:
 
3、修改权限
chmod 0400 /etc/ssl/certs/vsftpd.pem
 
4、ssl具体配置/etc/vsftpd.conf最后添加
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES
 
5、配置说明
ssl_enable=YES                            #开启vsftpd对ssl协议的支持
ssl_sslv2=YES                             #支持SSL v2 protocol
ssl_sslv3=YES                             #支持SSL v3 protocol
ssl_tlsv1=YES                             #支持TSL v1
rsa_cert_file=/etc/ssl/certs/vsftpd.pem   #存放证书地方
 
6、重启服务
/etc/init.d/vsftpd restart
Stopping FTP server: vsftpd.
Starting FTP server: vsftpd.
 
7、测试
1)lftp fileftp:'redhat'@192.168.1.124
ls: Fatal error: Certificate verification: Not trusted
解决在/etc/lftp.conf文件中添加1行到最后
set ssl:verify-certificate no
再登录一次就OK了
2)查看日志
Sat Aug  1 13:52:23 2015 [pid 2] CONNECT: Client "192.168.1.124"
Sat Aug  1 13:52:23 2015 [pid 2] DEBUG: Client "192.168.1.124""Connection terminated without SSL shutdown - buggy client?"
Sat Aug  1 13:56:25 2015 [pid 2] CONNECT: Client "192.168.1.120"
Sat Aug  1 13:56:25 2015 [pid 1] [fileftp] OK LOGIN: Client "192.168.1.120"
 
8、工具测试(flashfxp)
posted @ 2017-10-09 15:31  爱热闹的杨小厨  阅读(888)  评论(0编辑  收藏  举报