ftp服务器高级配置

 1.ftps配置

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

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

[[email protected] ~]# mkdir /etc/vsftpd/.sslkey

[[email protected] ~]# cd /etc/vsftpd/.sslkey/

2)使用如下命令创建证书,生成的vsftpd.pem文件中即包含私钥也包含证书。

openssl req -new -x509 -nodes -out vsftpd.pem  -keyout vsftpd.pem

ftp服务器高级配置

3)为也保证证书文件的安全,可修改证书存放目录的权限:

[[email protected] 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错误,无法登录:

ftp服务器高级配置

6)只有lftp命令和第三方工具才支持访问ftps。下面以FlashFXP为例讲述如何连接到ftps。

a.打开FlashFXP后,选择"站点"-->"站点管理器",新建一个站点,如下图:

ftp服务器高级配置

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

ftp服务器高级配置

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

c.选择接受,即可连接了,哈哈,如下图:ftps连接成功

ftp服务器高级配置

d.也可以用wireshark抓包来看一下,你会发现其传输过程就是密文的形式:ftp服务器高级配置

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,用法如下图例子:

ftp服务器高级配置

#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

 

ftp服务器高级配置

 

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,登录测试,

ftp服务器高级配置

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

 

ftpusers  指定哪些用户不能访问ftp服务器

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

 



本文转自 刘园  51CTO博客,原文链接:http://blog.51cto.com/colynn/1049842