(转)https://www.cnblogs.com/halberd-lee/p/11734363.html
(转)https://blog.51cto.com/aceruser/647241
一、创建虚拟用户模式
下面我们就来实现这个vsftp的虚拟用户登录的功能。
1、建立虚拟ftp的帐号和密码数据文件 vim /etc/vsftpd/vusers.list admin 123 john 456 (奇数行为帐号,偶数行为密码) 保存退出。 因为我们要使用哈希对列表进行转换,以便能过被vsftp服务所识别,所以安装这个提供哈希转换的软件包 db4-utils yum install db4-utils 对创建的帐号和密码文件进行哈希转换 db_load -T -t hash -f vusers.list vusers.db 为了数据的安全修改文件的权限 chmod 600 /etc/vsftpd/vusers.* 2、创建ftp根目录及虚拟用户映射的系统用户 mkdir /var/ftproot 虚拟用户登录ftp进入的目录 useradd -d /var/ftproot -s /sbin/nologin virtual 创建虚拟用户在主机上的映射用户 chmod 755 /var/ftproot 3、建立支持虚拟用户的PAM认证文件 vi /etc/pam.d/vsftp.vu 内容如下: #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vusers account required pam_userdb.so db=/etc/vsftpd/vusers 4、在vsftpd.conf文件中添加支持配置 vim /etc/vsftpd/vsftpd.conf anonymous_enable=no 拒绝匿名用户登录 local_enable=YES 开启虚拟用可以登录的前提 write_enable=YES 开启ftp的写权限 anon_umask=022 guest_enable=YES 允许虚拟用户登录 guest_username=virtual 指定虚拟用户的映射用户名 pam_service_name=vsftpd.vu 指定我们的认证文件 user_config_dir=/etc/vsftpd/user_conf chroot_list_file=/etc/vsftpd/chroot_list 5、chroot_list中加入admin用户 6、#执行以下命令 [root@localhost ~]# mkdir /etc/vsftpd/user_conf [root@localhost ~]# cd /etc/vsftpd/user_conf [root@localhost ~]# vi /etc/vsftpd/user_conf/admin #加入以下内容 拥有所有权限 local_root=/var/ftproot #如果不能读写操作 可能是目录权限不够需要设置权限 试试看 [root@localhost ~]# chmod 777 /var/ftproot 6、配置完成,重启服务进行测试 service vsftp resart 问题报错:: 响应: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
# Example config file /etc/vsftpd/vsftpd.conf
anonymous_enable=no
local_enable=yes
write_enable=YES
#
# Uncomment this to enable any form of FTP write command.
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
# ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
#vsftp,4中的文件名一致
pam_service_name=vsftp.vu
userlist_enable=YES
tcp_wrappers=YES
#vsftp user, 新增 vsftpuser, useradd 添加用户 guest_enable=YES #vsftpuser即5中新建的用户名 guest_username=virtual virtual_use_local_privs=NO file_open_mode=0777 anon_umask=0222 reverse_lookup_enable=no #vsftp的配置文件默认开启了DNS反向解析,登录会很慢,设置no即可 allow_writeable_chroot=YES
#用户配置目录,不通的用户对应不通的文件. 文件名为用户名,和6中一致
user_config_dir=/etc/vsftpd/user_conf/
allow_writeable_chroot=YES
二、FTP的SSL配置[即FTPS(FTP over SSL),与SFTP(SSH FTP)不同]
[root@localhost ~]# cd /etc/pki/tls/certs/ [root@localhost ~]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem [root@localhost ~]#vi /etc/vsftpd/vsftpd.conf 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/pki/tls/certs/vsftpd.pem(证书的路径) ssl_enable=YES ssl_sslv2=YES ssl_sslv3=YES ssl_tlsv1=YES
这样重启vsftpd 就可以用客户端来尝试进行SSL加密连接了 。
相关参数说明:
使用Filezilla客户端就可以实现ssl ftp登录
文章评论