您的位置:首页 > 编程语言 > PHP开发

ftp服务器高级配置

2012-11-04 17:31 447 查看
1.ftps配置

引导语:ftp和http一样在默认情况下使用明文进行数据传输,如果希望保证ftp服务器与客户端数据通信的安全,可以使用ssl保护其数据通信。在vsftpd 2.0.1以后的版本里提供了对ssl的支持,这也使得vsftpd变得更加安全。

1)建立一个用于存放证书的目录

[root@host ~]# mkdir /etc/vsftpd/.sslkey

[root@host ~]# cd /etc/vsftpd/.sslkey/
2)使用如下命令创建证书,生成的vsftpd.pem文件中即包含私钥也包含证书。
openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem



3)为也保证证书文件的安全,可修改证书存放目录的权限:
[root@host vsftpd]# chmod -R 400 /etc/vsftpd/.sslkey/
4)修改/etc/vsftpd/vsftpd.conf文件,添加如下内容:
force_local_data_ssl=YES #指定vsftpd强制非匿名用户使用加密的数据传输
force_local_logins_ssl=YES #指定vsftpd强制非匿名用户使用加密登录
ssl_enable=YES #指定vsftpd支持加密协议
ssl_sslv2=YES #指定vsftpd支持安全套接字层v2
ssl_sslv3=YES #指定vsftpd支持安全套接字层v3
ssl_tlsv1=YES #指定vsftpd支持tls加密方式v1
rsa_private_key_file=/etc/vsftpd/.sslkey/vsftpd.pem #指定证书的存放路径
5)重启vsftpd后,ftps配置完成,本地用户直接从命令行访问,发现出现如下530错误,无法登录:



6)只有lftp命令和第三方工具才支持访问ftps。下面以FlashFXP为例讲述如何连接到ftps。
a.打开FlashFXP后,选择"站点"-->"站点管理器",新建一个站点,如下图:



b.输入相关的信息后,单击连接,会出现如下:




注:对上图(1)的解释:因为没有配置dns解析,即主机ip与域名的对应关系,故会有如上提示,可以修改hosts文件(向hosts文件中加入一行即192.168.142.2 ftp.liuyuan51.com)实现状态正常。
c.选择接受,即可连接了,哈哈,如下图:ftps连接成功



d.也可以用wireshark抓包来看一下,你会发现其传输过程就是密文的形式:



2.虚拟用户访问(通过本地数据文件实现)
注意:第二个实验虚拟用户,不要在第一个基础,要初始化vsftp服务器配置。
通过本地数据文件实现虚拟用户访问,首先需要建立一个文件,将所有用户和密码保存到该文件中,这种方法主要适用于用户比较少及变化不频繁的情况下,
1)需要安装生成数据库的软件包db4-utils; yum install db4-utils;
2)生成虚拟用户文件,在该文件中用户及密码各一行。本章中是建立/etc/vsftpd/ftpuser.txt
test1 #虚拟用户1
123 #虚拟用户1密码
test2 #虚拟用户2
456 #虚拟用户2密码
3)生成虚拟用户数据文件,处于安全考虑应修改生成的用户数据文件权限:
#db_load -T -t hash -f /etc/vsftpd/ftpuser.txt /etc/vsftpd/ftpuser.db
#chmod 600 /etc/vsftpd/ftpuser.db
4)修改PAM认证文件/etc/pam.d/vsftpd,将原有内容注释并加入以下内容,通过以下两行的配置可以将认证用户及用户其他 检查的工作的数据来源改变为本地数据文件(/etc/vsftpd/ftpuser.db)

需要使用模块/lib/security/pam_userdb.so
查看该模块的手册:
#vim /usr/share/doc/pam-0.99.6.2/txts/README.pam_userdb,用法如下图例子:




#vim /etc/pam.d/vsftpd

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpuser





5)使用如下命令创建本地映射用户,修改本地映射用户家目录权限:
#mkdir /var/ftp/vuser (目录的所有者是root,)
#useradd -d /var/ftp/vuser -s /sbin/nologin vuser -M
#chmod o=rwx /var/ftp/vuser (修改目录的权限值使虚拟用户可以上传、下载、切换目录)
6)修改/etc/vsftpd/vstpd.conf文件,内容如下:(查看man手册,man 5 vsftpd.conf)
#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES #允许虚拟用户
guest_username=vuser #将虚拟用户映射为本地的vuser用户
pam_service_name=vsftpd #pam认证文件(默认就是vsftpd)

7)重启vsftpd,登录测试,



9)测试成功,虚拟用户登录的均是ftp服务器上的同一个目录,即建立的本地映射用户vuser的家目录。

ftpusers 指定哪些用户不能访问ftp服务器
user_list 【userlist_deny=yes时不能访问ftp服务器;userlist_deny=no时,仅仅允许/etc/user_list中指定的用户访问ftp服务器】

本文出自 “刘园的博客” 博客,请务必保留此出处http://colynn.blog.51cto.com/5971950/1049842
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: