当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > vsftp配置大全---超完整版

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 vsftp配置大全---超完整版


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 54 ::
收藏到网摘: n/a

一、前言
Vsftp(VerySecureFTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,如ftp.redhat.com,ftp.kde.org,ftp.gnome.org.等。Vsftpd的实现有三种方式
1、匿名用户形式:在默认安装的情况下,系统只提供匿名用户访问
2、本地用户形式:以/etc/passwd中的用户名为认证方式
3、虚拟用户形式:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。

二、获取最新版的Vsftp程序
Vsftp官方下载:ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本。假设我们已经将vsftpd-2.0.3.tar.gz文件下载到服务器的/home/xuchen目录

[Copytoclipboard][-]CODE:
#cd/home/xuchen
#tarxzvfvsftpd-2.0.3.tar.gz//解压缩程序
#cdvsftpd-2.0.3

三、三种方式的实现
1、匿名用户形式实现
#vibuilddefs.h\\编辑builddefs.h文件,文件内容如下:

#ifndefVSF_BUILDDEFS_H

#defineVSF_BUILDDEFS_H
#undefVSF_BUILD_TCPWRAPPERS
#defineVSF_BUILD_PAM
#undefVSF_BUILD_SSL

#endif/*VSF_BUILDDEFS_H*/
将以上undef的都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL

#make//直接在vsftpd-2.0.3里用make编译
#ls-lvsftpd
-rwxr-xr-x1rootroot86088Jun612:29vsftpd//可执行程序已被编译成功

创建必要的帐号,目录:
#useraddnobody//可能你的系统已经存在此帐号,那就不用建立
#mkdir/usr/share/empty//可能你的系统已经存在此目录,那就不用建立
#mkdir/var/ftp//可能你的系统已经存在此目录,那就不用建立
#useradd-d/var/ftpftp//可能你的系统已经存在此帐号,那就不用建立
#chownroot:root/var/ftp
#chmodog-w/var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:
#install-m755vsftpd/usr/local/sbin/vsftpd-ano
#install-m644vsftpd.8/usr/share/man/man8
#install-m644vsftpd.conf.5/usr/share/man/man5
#install-m644vsftpd.conf/etc/vsftpd-ano.conf
这样就安装完成了,那么我们开始进行简单的配置

#vi/etc/vsftpd-ano.conf,将如下三行加入文件
listen=YES
listen_port=21
tcp_wrappers=YES
anon_root=/var/ftp//设置匿名用户本地目录,和ftp用户目录必须相同
listen=YES的意思是使用standalone启动vsftpd,而不是superdaemon(xinetd)控制它(vsftpd推荐使用standalone方式)
#/usr/local/sbin/vsftpd-ano/etc/vsftpd-ano.conf&//以后台方式启动vsftpd
注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误:
500OOPS:badboolvalueinconfigfilefor:listen

测试搭建好的匿名用户方式
#ftp127.0.0.1
Connectedto127.0.0.1.
220(vsFTPd2.0.3)
530PleaseloginwithUSERandPASS.
530PleaseloginwithUSERandPASS.
KERBEROS_V4rejectedasanauthenticationtype
Name(127.0.0.1:root):ftp
331Pleasespecifythepassword.
Password:
230Loginsuccessful.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>;pwd
257"/"
ftp>;quit
221Goodbye.
#
OK,已经完成了,verynice.

高级配置
细心的朋友可能已经看出来我们只在默认配置文件增加了四行,就实现了FTP连接(也证明了vsftpd的易用性),那么让我们传个文件吧,呀!!传输失败了(见图1)

为什么呢?因为vsftpd是为了安全需要,/var/ftp目录不能把所有的权限打开,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的。
#mkdir/var/ftp/pub
#chmod-R777/var/ftp/pub

为了测试方便,我们先建立一个名为kill-ano的脚本,是为了杀掉FTP程序的
#!/bin/bash
a=`/bin/ps-A|grepvsftpd-ano|awk'{print$1}'`
kill-9$a

那么现在大家看看我的匿名服务器配置文件吧
anonymous_enable=YES//允许匿名访问,这是匿名服务器必须的
write_enable=YES//全局配置可写
no_anon_password=YES//匿名用户login时不询问口令
anon_umask=077//匿名用户上传的文件权限是-rw----
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/vsftpd.log//将上传下载信息记录到/var/log/vsftpd.log中
xferlog_std_format=YES//日志使用标准xferlog格式
idle_session_timeout=600//客户端超过600S没有动作就自动被服务器踢出
data_connection_timeout=120//数据传输时超过120S没有动作被服务器踢出
chown_uploads=YES
chown_username=daemon//上传文件的属主
ftpd_banner=Welcometod-1701.comFTPservice.//FTP欢迎信息
anon_max_rate=80000//这是匿名用户的下载速度为80KBytes/s
check_shell=NO//不检测SHELL

[1][2][3][4][5][6][7][8][9][10]...下一页>>