vsftpd是linux发行版中的一款ftp服务器程序,它的全称是“very secure ftp daemon”,号称是最安全的ftp服务器。它工作在21,20号端口,主要提供文件传输服务,可以跨越网络提供服务,非常好用。
本文主要内容:
一,ftp的工作原理:
二,vsftpd的配置文件:
三,vsftpd的安装
四,vsftpd的启动与关闭:
五,vsftpd的配置文件/etc/vsftpd/vsftpd.conf解析:
六,用tcp_wraper来控制vsftpd:
七,创建ftp虚拟用户
八,启用ssl,建立安全的传输
--------------------------------------分割线 --------------------------------------
Ubuntu实用简单的FTP架设
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置
RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例
--------------------------------------分割线 --------------------------------------
一,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用户离开自己主目录,默认是被注释掉的。