Linux FTP----vsftpd的搭建

         如果你想在你的Linux/Unix服务器上搭建一个安全、高性能、稳定性好的FTP服务器,那么vsftpd可能是你的首选应用。vsftpd意思为“very secure FTP daemon(非常安全的FTP进程)”,是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux、BSD、Solaris、HP-UX以及Irix等系统上面。vsftpd支持很多其他传统的FTP服务器不支持的良好特性。 


了解概念和原理,实际地,有助于分析遇到的问题或者错误           

1. 什么是FTP

  File Transfer Protocol(文件传输协议)的英文简称。基于TCP,收录于 RFC 959

  FTP会话包含两个通道:控制通道和数据通道。对应一个控制(命令)端口和一个数据端口。通常这两个端口是21-控制端口和20-数据端口

  控制通道: 和FTP服务器沟通的通道。 连接FTP + 发送FTP指令

  数据通道: 读取文件列表 + 进行文件传输

  控制连接均由客户端发起。连接有两种工作方式:PORT、PASV

  主动: 客户端从一个任意的非特权端口N(N>;1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。


在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。

 被动: 


在第1步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”。然后在第2步中,服务器返回命令"PORT 2024",告诉客户端(服务器)用哪个端口侦听数据连接。在第3步中,客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接。最后服务器在第4 步中给客户端的数据端口返回一个"ACK"响应。

总结 

主动FTP: 
   命令连接:客户端 >1023端口 -> 服务器 21端口 
   数据连接:客户端 >1023端口 <- 服务器 20端口 
对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。

被动FTP: 
   命令连接:客户端 >1023端口 -> 服务器 21端口 
   数据连接:客户端 >1023端口 -> 服务器 >1023端口 
对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
 
折衷的办法:既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险。


2. 安装

Fedora 或Redhat 
[root@localhost ~]# yum install vsftpd
debian
[root@localhost ~]# apt-get install vsftpd
RPM的系统,也可通过rpm命令
[root@localhost ~]# rpm -ivh vsftpd*.rpm 
源码安装
比如我们下载的是 vsftpd-2.0.3.tar.gz ;
[root@localhost ~]# tar zxvf vsftpd-2.0.3.tar.gz
[root@localhost ~]# cd vsftpd-2.0.3
[root@localhost ~]# make ;make install
[root@localhost ~]# cp vsftpd.conf /etc
然后修改/etc/vsftpd.conf ,在配置文件的最后一行加入下面一行;
listen=yes
源码包安装的方法,如果您的系统是RPM包管理的系统,可以删除/etc/xinetd.d/vsftpd 这个文件;然后启动xinetd 服务器;
[root@localhost ~]# /etc/init.d/xinetd restart
停止 xinetd:                                              [  确定  ]
启动 xinetd:                                              [  确定  ]


我所使用的方式

1. 在线安装
yum install vsftpd pam* db4*-y
chkconfig --level 35 vsftpd on

vi /etc/vsftpd/vsftpd.conf
将原来的备份
anonymous_enable=NO
anon_upload_enable=NO
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/user_list
local_enable=YES
write_enable=YES
local_root=/data/apps/resource
listen=YES
listen_ipv6=NO
listen_port=2100
pam_service_name=vsftpd
pasv_min_port=60000
pasv_max_port=60010
max_per_ip=3


创建ftp用户   ftpdaemon

/data/apps/resource 文件所属    chown ftpdaemon.root  /data/apps/resource

service vsftpd stop
service vsftpd start


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值