旅途之为企业搭建linux VSFTP Server

一、vsftp简介
               vsftp是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。安全性是编写vsftp的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。在速度方面:使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。在稳定方面:VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据RedHat的Ftp服务器()的数据,vsftp服务器可以支持15000个并发用户
               ftp全称:file transfer protocal
               ftp是一种工作于应用层的文件共享服务
                       文件共享服务:
                               ftp    (应用层)
                               nfs    (Network File System--->RPC:Remote procedure Call远程过程调用)
                               samba    (Cifs/smb)
                        ftp连接:
                               命令(控制)连接
                                    port:tcp/21
                                    status:连接建立之后始终在线
                               数据连接     
                                    port:
                                        主动模式(Server收到Client的请求之后,主动连接Client) port:tcp/20
                                        被动模式(控制链接建立后,S发送报文给C,包含S已开放的port,之后C主动链接S) port:一般为>5000的随机port
                                    status:连接按需打开/按需关闭
                               ftp数据传输模式:
                                    二进制/文本
                                    自动模式(依据源文件格式定义)
                        ftp server软件:
                                vsftpd --- very secure ftp daemon
                                proftpd
                                wu-ftpd
                                pureftpd
                                Server-u
                                filezilla
                        ftp client软件:
                                CLI:
                                    ftp/lftp
                                GUI:
                                    gftpd/FlashFXP/filezilla

二、vsftpd文件

               1、基本文件     

                                /etc/vsftpd/vsftpd.conf   主配置文件
                                /etc/init.d/vsftpd   服务脚本
                                /usr/sbin/vsftpd   主程序

                                /var/ftp   vsftpd的主目录,也是ftp用户的家目录(运行ftp的用户一定没有对“/var/ftp”目录的写入权限)
                          基于PAM实现用户认证
                                支持虚拟用户
                                     /etc/pam.d/*
                                     /lib/security/*或/lib64/security/*
                          ftp用户:
                                  匿名用户------->系统用户(通过映射为系统用户)匿名用户用户名:anonymous
                                  虚拟用户------->系统用户(通过映射为系统用户)
                                  系统用户
               2、vsftpd.conf配置文件详解

                          vim /etc/vsftpd/vsftpd.conf
                                   anonymous_enable=YES 允许匿名用户访问
                                   local_enable=YES 允许系统用户访问
                                   write_enable=YES  允许上传
                                   anon_upload_enable=YES  允许匿名用户上传(必须和文件系统权限结合设定)
                                   anon_mkdir_write_enable=YES  定义匿名用户是否可以创建目录
                                   anon_other_write_enable=YES  匿名用户是否可以删除文件
                                   dirmessage_enable=YES     当用户进入目录是否显示欢迎信息(一般定义以“.message”命名的隐藏文件)
                            传输日志:   
                                   xferlog_enable=YES   是否启用传输日志功能
                                   xferlog_file=/var/log/xferlog   传输日志文件位置
                                   xferlog_std_format=YES   日志是否使用标准格式
                            文件属主/组
                                   chown_upload=YES   用户上传完文件是否改变文件属主/组
                                   chown_username=whoever   上传之后的文件的属主/组变更为谁
                            链接超时
                                   idle_session_timeout=600   控制链接超时时间
                                   data_connection_timeout=120   数据连接超时时间
                            数据格式
                                   ascii_upload_enable=YES   以文本方式(编码)上传文件
                                   ascii_download_enable=YES   以文本方式(编码)下载文件
                            锁定特定用户家目录
                                   chroot_list_enable=YES   是否定义一个文件锁定用户家目录
                                   chroot_list_file=/etc/vsftpd/chroot_list   创建用户列表。所有在列表中的用户都锁定用户家目录
                            锁定所有用户家目录
                                   #chroot_list_enable=YES
                                   #chroot_list_file=/etc/vsftpd/chroot_list
                                   chroot_local_user=YES
                                   listen=YES   表示vsftpd是否为一个独立守护进程
                                   pam_service_name=vsftpd   定义“/etc/vsftpd”中pam配置文件名字
                            注意:
                                   /etc/vsftpd/ftpusers   所有写在此文件中的用户都禁止访问ftp    
                            访问控制
                                   userlist_enable=YES   是否启用/etc/vsftpd/user_list中的用户列表控制登陆
                                   userlist_deny=NO    不拒绝列表中列表中用户登陆,但列表之外的用户都无法登陆
               
                                   max_clients=#   ftp最大连接数
                                   max_per_ip=#   每ip最多同时有几个链接请求
                            访问带宽限制
                                   anon_max_rate=数值   定义匿名用户的速度
                                   local_max_rate=数值   定义vsftp Server中本地用户的速度
                            如何让用户只能通过某个IP来访问FTP
                                   listen_address=172.24.10.20
                                     Attention:
                                        如何让绑定IP到vsFTPd?也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP,在vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过172.24.10.20来访问FTP; 

                                                为被动模式下的连接定义端口范围
                                   pasv_max_port=65535
                                   pasv_min_port=64000

三、为vsftpd调整防火请规则

               iptables -I INPUT -p tcp --dport 20 -j ACCEPT   允许流量通过FTP控制端口
               iptables -I INPUT -p tcp --dport 21 -j ACCEPT   允许流量通过FTP数据端口
               iptables -I INPUT -p tcp --dport 64000:65535 -j ACCEPT   允许被动模式下的连接,其端口范围已经在vsftpd.conf中予以定义 

               vsftp登陆:
                             ftp://username@[ServerName/IP]

四、vsftp安全通信方式

               ftps:ftp+ssl/tls
               sftp:openssl

                            1、创建SSL/TLS证书和私钥:
                                   sudo openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
                            2、启用SSL/TLS加密
                                   vim /etc/vsftpd/vsftpd.conf
                                         ssl_enable=YES               启用SSL支持
                                         ssl_tlsv1=YES                启用TLSV1支持
                                         ssl_sslv3=YES                启用SSLV3支持
                                         allow_anon_ssl=NO              匿名用户不使用SSL加密链接
                                         force_local_data_ssl=YES          强制本地数据连接使用SSL加密
                                         force_local_logins_ssl=YES         强制本地登陆使用SSL加密
                                         rsa_cert_file=/etc/vsftpd/vsftpd.pem    证书位置
                                         rsa_private_key_file=/etc/vsftpd/vsftpd.pem 密钥位置





本文出自 “运维天空-opsky” 博客,请务必保留此出处http://opsky.blog.51cto.com/9265055/1543117

旅途之为企业搭建linux VSFTP Server,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。