码迷,mamicode.com
首页 > 其他好文 > 详细

vsftp安装架设

时间:2015-08-21 23:31:03      阅读:447      评论:0      收藏:0      [点我收藏+]

标签:vsftp

    VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

    

安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。

在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。

在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器的数据,VSFTP服务器可以支持15000个并发用户


    

1、它是一个安全、高速、稳定的FTP服务器;

2、它可以做基于多个IP的虚拟FTP主机服务器;

3、匿名服务设置十分方便;

4、匿名FTP的根目录不需要任何特殊的目录结构,或系统程序或其它的系统文件;

5、不执行任何外部程序,从而减少了安全隐患;

6、支持虚拟用户,并且每个虚拟用户可以具有独立的属性配置;

7、可以设置从inetd中启动,或者独立的FTP服务器两种运行方式;

8、支持两种认证方式(PAP或xinetd/ tcp_wrappers);

9、支持带宽限制;

VSFTP市场应用十分广范,很多国际性的大公司和自由开源组织在使用,如:Red Hat, Suse,Debian,OpenBSD。



vsftp 缺点

vsftp ,从w没有处理文件编码转换windows客户端访问时有乱码现象。

解决办法:

1、使用vsftp的补丁,

2、转换服务器目录文件编码,linux下:

convmvfs /ftp/pub_gbk -o srcdir=/ftp/pub, icharset=utf8,ocharset=gbk的代码,那么访问/ftp/pub_gbk的时候文件名就都是GBK的了,windows下也就不会有乱码。

也可以用下面这个命令把文件名编码转换一下:

convmv -f UTF-8 -t GBK -r yourfile --notest

不用--notest选项,只显示转换后的结果,不对文件真正进行操作

3、windows不使用资源管理器、IE来访问服务器,使用FTP客户端工具来访问服务器,找能设置编码的FTP客户端,设置一下编码就可以了。

4、编码解决步骤

修改源代码文件opts.c

if (str_equal_text(&p_sess->ftp_arg_str,"UTF8 ON")) 更改成

if (str_equal_text(&p_sess->ftp_arg_str,"DISABLE UTF8 ON"))


    ftp的响应码:

1xx: 信息

2xx:成功类的状态码

3xx:提示需进一步提供补充类信息的状态码

4xx:客户端错误

5xx:服务端错误


    注意:ftp为明文传输的,所以在安全上可能会比较欠缺,如果想要安全的传输,可以使用sftp,ftps来实现,不过本文暂时还没有介绍。

    

        ftps:基于ssl

        sftp:基于ssh




    看了上面那么多介绍,大家应该对VSFTP有些了解了,那么我们现在来开始安装VSFTP服务。

    

    本次实验的环境为:

        虚拟机:VMware Workstation 11

         操作系统:CentOS 6.6

        编辑程序:vim

        安装程序:yum

        连接程序:xshell 5

        

        

    开始安装vsftp服务
    yum -y install vsftpd
    
    安装完成后可以查看,安装了哪些文件
    rpm -ql vsftpd | less
    
    /etc/pam.d/vsftpd: 用户认证配置文件
		/etc/rc.d/init.d/vsftpd: 服务脚本
		/etc/logrotate.d/vsftpd: 日志脚本
		/etc/vsftpd: 配置文件所在目录
			vsftpd.conf: 主配置文件
			其他文件都是跟用户控制相关的
		/usr/sbin/vsftpd: 主程序
		/var/ftp:匿名用户(映射为ftp用户)共享资源访问位置
			ftp用户的默认目录为/var/ftp
			finger ftp:可以查看ftp用户的目录以及其他信息
		
		系统用户通过ftp访问的资源的位置:用户自己的家目录
		虚拟用户通过ftp访问的资源的位置:给虚拟用户指定的映射成为的系统用户家目录
    
    然后查看防火墙是否开启
    iptables -L -n
    
    如果出现一下图片代表防火墙开启了,不一定与图片一模一样
    如果不会配置防火墙就将防火墙关闭,否则不能连接服务。
        防火墙关闭:service iptables stop,临时关闭防火墙
                    chkconfig iptables on,开机不启动防火墙

   技术分享

    防火墙关闭之后,可以启动服务了
    service vsftpd start
    
    启动服务后查看是否启动成功了
    ftp服务监控在21号端口
    ss -tunl 
    
    Netid State      Recv-Q Send-Q    Local Address:Port                       
    tcp   LISTEN     0      32         *:21 
    本次是有监听21号端口了,代表服务已经启动成功了
    
    启动成功开始测试服务,现在本机测试
        可以使用lftp测试,如果没有安装lftp可以先安装
            yum -y install lftp
            
       测试:     
        lftp 本机IP地址
            如果是允许匿名登录的话,lftp将会不用输入帐号密码就会自动登录。
            登录成功输入ls可以查看到本地文件
        一般本机都可以测试成功。
        
        在外部机上面测试,本次在实体主机上测试
        win键+R出现运行窗口,输入cmd

 技术分享

输入
    ftp 服务端IP地址
    如下图代表也是测试成功的,能连接ftp了

技术分享



到此我们的ftp就安装成功了,不过还不能完全使用,我们还要进行一些配置

配置vsftpd
    主配置文件说明:
			井号开头后面跟了空格的,都是注视
			井号开头后面没跟空格的,都是选项
			不能在选项前门加空格,否则语法错误
			不能多任意空白字符
   
    vim /etc/vsftpd/vsftpd.conf
    
    我们这边就介绍下匿名用户配置与系统用户配置
    匿名用户配置:
	anonymous_enable=YES: 是否启用匿名用户
			
	anon_upload_enable=YES: 是否允许匿名用户上传
	anon_mkdir_write_enable=YES:是否允许匿名用户创建
	    匿名用户不能创建目录与文件,所以不能上传数据。
	    匿名用户的根目录,又不能修改权限,因为vsftp不给修改,修改了就会被禁止启动。
		需要在根目录下创建子目录,可以修改子目录属主属组
		上传数据的时候,也要进入子目录上传
		
        anon_other_write_enable=YES: 默认没有这一项,允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
			
			
			
		
    系统用户的配置:
	local_enable=YES: 是否允许本地用户
	系统用户登录之后是系统用户的家目录,这样也可以访问etc之类的目录了
	非常的不安全,不建议开启系统用户
			
	write_enable=YES: 是否允许本地用户有写权限
				开启:可以创建,修改,删除
	local_umask=022: 代表文件上传上去之后修改成什么权限,这里是644,反向掩码
	chroot_local_user=YES:禁锢所有的ftp本地用户与其家目录中,代表本地用户只能访问家目录
	chroot_list_enable=YES: 启用list规则,list文件中的用户,都被禁锢,没写的都不禁锢
	chroot_list_file=/etc/vsftpd/chroot_list
			
		
    全局配置:
	dirmessage_enable=YES: 可以让用户登录后看到你想让他看到的信息。
				需要在想让她看到信息的目录中建立一个.message文件
	ascii_upload_enable=YES: 强制使用文本格式上传,不建议启用
	asscii_download_enable=YES: 强制使用文本格式下载,不建议启用
	ftpd-banner=Welcome to blah FTP service. : 登录ftp时的欢迎信息
			
			
    日志:	
	xferlog_enable=YES: 是否开启传输日志
	xferlog_std_format=YES: 是否使用日志标准格式
	xferlog_file=/var/log/xferlog:日志文件存放在哪
		
    改变上传文件的属主:
	chown_uploads=YES: 是否改变上传文件的属主
	chown_username=whoever: 属主改为whoever
			
    连接时间:
	idle_session_timeout=600: 用户连接FTP空闲时长为600秒
	data_connection_timeout=120: 数据连接超时时长为120秒
    pam认证:
	pam_service_name=vsftpd.mysql: vsftpd使用pam完成用户认证,其用到的pam配置文件
		/etc/pam.d/vsftpd: 这个文件中定义了用户访问vsftpd时用哪个pam模块做认证的
	        auth: 做认证的
		account:做用户帐号是否在有效期检测的
		session: 这认证通过了
		required: 对这个认证的要求是怎么参考这个认证结果的,必须要过这关,这关不过结果就不通过
		    item=user: 代表这个文件中放的是用户名,
		    sense=deny: 用户名出现在这个文件中,拒绝访问
		    file=/etc/vsftpd/ftpusers: 用户名存放的文件位置
		    onerr=succeed: 发生错误,直接终止
				存放在文件中的用户名,是无法登录的。
						
	userlist_enable=YES: 是否启用控制用户登录的列表文件
	userlist_file=/etc/vsftpd/user_list: 定义userlist的文件,定义了userlist_deny路径就默认了。不需要另外另外添加userlist_file除非需要改地址
	userlist_deny=YES|NO:定义userlist用户是能登录还是不能登录
			
	tcp_wrappers=YES: 
	
	连接限制:
		max_clients: 最大并发连接数
		max_per_ip: 每个IP可同时发起的并发请求数
	传输速率:
		anno_max_rate: 匿名用户的最大传输速率,单位是“字节/秒”
		local_max_rate: 本地用户的最大传输速率
		
		
    以上为匿名登录与系统用户登录的通用设置,可以按照自己的要求来设置。
        我们这里就不一一举例了,就改几个简单匿名用户设置。
       
        注意:设置好一次之后最好重启下服务来确认是否已经设置成功了
            service vsftpd restart
            
            设置匿名用户可以上传下载:
                anon_upload_enable=YES
                anon_mkdir_write_enable=YES
                anon_mkdir_write_enable=YES
            设置完重启下就可以了。
         注意:这边需要配置selinux,如果不会配置的就将selinux关闭,否则只能下载不能上传。
                selinux关闭:setenforce 0 ,临时关闭
                            开机不启动:  
                                vim /etc/selinux/config:打开配置文件
                                将SELINUX=enforcing改为SELINUX=disabled


到此:vsftp就配置完成了,可以使用匿名用户登录ftp,进行下载上传操作了。

    重要:ftp的配置不能有多余的空格,在配置开头如果出现空格,配置不会报错,但是会不生效,非常要注意。

vsftp安装架设

标签:vsftp

原文地址:http://kmk0226.blog.51cto.com/5975994/1686952

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!