CentOS 6.4 安装vsftpd

Vsftpd原理

vsftpd是linux发行版中的一款ftp服务器程序,它的全称是“very secure ftp daemon”,号称是最安全的ftp服务器。它工作在21,20号端口,主要提供文件传输服务,可以跨越网络提供服务,非常好用。

本文主要内容:
一,ftp的工作原理:
二,vsftpd的配置文件:
三,vsftpd的安装
四,vsftpd的启动与关闭:
五,vsftpd的配置文件/etc/vsftpd/vsftpd.conf解析:
六,用tcp_wraper来控制vsftpd:
七,创建ftp虚拟用户
八,启用ssl,建立安全的传输

--------------------------------------分割线 --------------------------------------

--------------------------------------分割线 --------------------------------------

一,ftp的工作原理:
 ftp的两种工作模式:
 1,主动模式
工作原理:客户端从一个任意的非特权端口(大于1024)N连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP 命令“portN+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)
 2,被动模式
工作原理:当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(大于1024)N和N+1。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会 提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(大于1024)P ,并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据

主动模式与被动模式的比较:
主动FTP对FTP服务器的管理和安全很有利,但对客户端的管理不利,因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端 的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。目前,ftp服务器一般工作在被动模式。

Last login: Wed Sep 11 19:46:41 2013 from192.168.2.2

[root@linuxidc ~]# rpm -qa | grep vsftpd

[root@linuxidc ~]# yum -y install vsftpddb4-devel db4 db4-utils pam-devel pam pam_pkcs11 ftp

[root@linuxidc ~]# service vsftpd start

为 vsftpd 启动 vsftpd:[确定]

[root@linuxidc ~]# chkconfig vsftpd on

第二步:配置vsftpd服务的宿主
#useradd vsftpdadmin -s /sbin/nologin
这个vsftpdadmin只是用来替换root的,并不需要登录

第三步:建立ftp虚拟宿主帐户
#useradd ftpuser-s /sbin/nologin
这ftpuser只个虚拟帐户的宿主,本身是不用登录的

[root@linuxidc ~]# cp -rf /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak //备份一下,就算最后vsftpd搭建坏了,也可以恢复

[root@linuxidc ~]# grep -v "#"/etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf//去除#号重定向到/etc/vsftpd/vsftpd.conf文件中。

注:筛选目录一定和重定向目录不能相同,否则里面是空的。

[root@linuxidc ~]# cat /etc/vsftpd/vsftpd.conf

anonymous_enable=YES//允许匿名访问

local_enable=YES//允许本地用户访问,默认就是YES,不用改

write_enable=YES//允许写入,默认是YES,不用改

local_umask=022//上传后文件的权限掩码,不用改

dirmessage_enable=YES//开启目录标语,默认是YES,开不开无所谓,我是默认就行

xferlog_enable=YES//开启日志,默认是YES,不用改

xferlog_file=/var/log/vsftpd.log//设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来

connect_from_port_20=YES//设定连接端口20

xferlog_std_format=YES//设定vsftpd的服务日志保存路径,不用改

listen=YES//如果设置为YES,则vsftpd将以独立模式运行,由vsftpd 自己监听和处理连接请求

local_root=/var/ftp 锁定ftp访问目录

pam_service_name=vsftpd//PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证

userlist_enable=YES//拒绝登录用户名单,不用改

tcp_wrappers=YES//限制主机对VSFTP服务器的访问,不用改(通过/etc/hosts.deny和/etc/hosts.allow这两个文件来配置)

以上除了日志那项外都是系统默认存在的

chroot_list_enable=YES//不允许FTP用户离开自己主目录,默认是被注释掉的。

chroot_list_file=/etc/vsftpd/chroot_list//如果开启了chroot_list_enable=YES,那么一定要开启这个,这条是锁定登录用户只能家目录的位置,如果不开启用户登录时就会报500 OOPS的错。

注意:/etc/vsftp/chroot_list

本身是不存在的,这要建立vim/etc/vsftp/chroot_list,然后将帐户输入一行一个,保存就可以了

[root@linuxidc etc]# vi /etc/vsftpd/chroot_list

virtual

这步如果不写的话,会报500 OOPS: could notread chroot() list file:/etc/vsftpd/chroot_list

idle_session_timeout=600//会话超时,客户端连接到ftp但未操作,默认被注释掉,可根据个人情况修改

#async_abor_enable=YES//支持异步传输功能,默认是注释掉的

#ascii_upload_enable=YES//支持ASCII模式的下载功能,默认是注释掉的

#ascii_download_enable=YES//支持ASCII模式的上传功能,默认是注释掉的

#ftpd_banner=Welcometo blah FTP service//FTP的登录欢迎语,本身是被注释掉的,去不去都行

#chroot_local_user=YES//禁止本地用户登出自己的FTP主目录,本身被注释掉

以上都是配置文件里有,但都是被注释掉的……

相关推荐