FTP虚拟账户
第一步:服务器端的配置
1 安装相应的软件包
1.1 vsftpd
1.2 db4-utils(生产数据库的软件包)
2 建立虚拟用户及口令的库文件:当前目录在/home下
vi logins.txt (奇数行代表用户名,偶数行代表用户名的密码,分别占一行)
chen
123
wei
123
ftz
123
3 3.1 生产vsftpd的认证的文件
db_load -T -t hash -f /home/logins.txt /etc/vsftpd/vsftpd_login.db
3.2 vsftpd_login.db文件的权限应设置为只对root用户可读可写,即600
chmod 600 /etc/vsftpd/vsftpd_login.db
4 建立虚拟用户所需的PAM的配置文件
cd /etc/pam.d
vi user.txt(身份验证的)
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
5 设置代理用户,此用户为系统真正的用户(备注:系统用户:0--500,真正用户是>500的)
useradd chenwei
passwd chenwei 密码:123
6 修改服务器的主配置文件,在最后面添加几行记录
vi /etc/vsftpd/vsftpd.conf
anonymouns_enable=NO并把#去丢
anon_upload_enable=YES并把#去丢
anon_mkdir_write_enable=YES并把#去丢
guest_enable=YES
guest_username=chenwei(代理的系统用户)
pam_service_name=user.txt(检查用户身份的文件)
重新启动服务(客户端验证效果,看不到用户的主目录,能下载)
7 7.1 修改服务器的主配置文件,在最后面添加几行记录
vi /etc/vsftpd/vsftpd.conf
user_config_dir=/home/conf
7.2 创建文件mkdir /home/conf
7.3 为虚拟用户建立单独的配置文件并分配相应的权限
cd /home/conf
vi chen
anon_world_readable_only=NO
anon_upload_enable=NO
7.4 重新启动服务 service vsftpd restart
9、安装openssl
yum install openssl*
9.1 确认一下安装的vsftpd是否支持ssl加密
[root@localhost public]# ldd /usr/sbin/vsftpd | grep libssl
libssl.so.6 => /lib/libssl.so.6 (0x00502000)
9.2 利用OpenSSL生成证书
[root@localhost] openssl req -x509 -nodes -days 365 -newkey rsa:1024
-keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
其中"-days 365"声明证书的有效期是一年。
接下来的过程需要你输入一些相关的国家,地区,位置,组织名称,common name等信息。
回答这些信息以后系统会将生成完的证书vsftpd.pem文件保存在/etc/vsftpd目录下。
9.3 修改/etc/vsftpd/vsftpd.conf文件
增加下面这些内容,这些参数是与ssl有关的。
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
如果设置force_local_logins_ssl=YES,那么会强制用户登录时采用支持TLS/SSL认证的ftp客户端。如果设置为NO的话,则用户可以选择使用ssl加密或者不加密。
9.4 重新启动vsftpd服务
[root@localhost] /etc/rc.d/init.d/vsftpd restart
#让虚用户获得本地用户权限
virtual_use_local_privs=YES
#开启chmod命令
chmod_enable=YES
10、下载flash客户端测试
flashfxp等ftp客户端设置ssl选项,如下图:
通过FlashFXP连接成功~
第二步: 客户端验证效果(略)