学习安装和配置vsftpd:

实验环境:CentOS 5.8 x86_64

测试环境关掉防火墙和selinux。

service iptables stop

setenforce 0

1、安装vsftpd

yum -y install vsftpd

2、vsftpd相关的目录及配置文件

/usr/sbin/vsftpd vsftpd主程序。

/etc/init.d/vsftpd vsftpd服务控制脚本。

/etc/pam.d/vsftpd 这个是vsftpd使用PAM模块时的相关配置文件,主要用来验证登陆FTP用户账号的身份。

/etc/vsftpd/ 配置文件目录。

/etc/vsftpd/vsftpd.conf vsftpd服务主配置文件,使用方法:参数=设定值。

/etc/vsftpd/ftpusers 与PAM模块的配置文件配合使用,主要填写FTP用户账号,一行一个。

/etc/vsftpd/user_list vsftpd服务自己的用户账户控制文件,与vsftpd.conf配置文件中的userlist_enable、userlist_deny两个参数有关。

/var/ftp/ 默认匿名用户根目录。

3、主配置文件vsftpd.conf详解

与服务器环境较相关的设定值

connect_from_port_20=YES (NO)

主动式连接时使用FTP服务器的端口号,就是FTP-date的端口号。

listen_port=21

vsftpd控制端口。

dirmessage_enable=YES (NO)

当用户进入某个目录时,是否显示该目录需要注意的内容,显示信息的文件默认是 .message 。

message_file=.message

当 dirmessage_enable=YES 时,可以修改默认显示信息文件的文件名。

listen=YES (NO)

设置为YES表示以stand alone方式启动服务器,设置为NO则表示以super deamon的方式启动服务器。

pasv_enable=YES (NO)

启动被动模式(passive mode),一定要设置为YES。

use_localtime=YES (NO)

启用本地时间,一般需要设置为YES。因为vsFTPd默认使用GMT格林威治时间,这比东八区的时间早了8个小时,会使得服务器上的文件时间属性出现混乱。

write_enable=YES (NO)

是否允许用户上传数据。

connect_timeout=60

在数据连接主动模式下,发出的连接信号在60秒内没有得到客户端的响应,则强制断线。

accept_timeout=60

在用户以PASV被动模式进行数据传输时,如果主机启动passive port并等待客户端超过60秒无回应,就强制断线。

data_connection_timeout=300

在客户端和服务器的数据连接已经建立的情况下,如果在300秒内还是无法顺利完成数据传输,则客户端的连线会被vsFTPd强制断开。

idle_session_timeout=300

如果用户在300秒内没有命令操作,则断线。

max_clients=0

当vsFTPd以stand alone模式运行时,这个参数决定同一个IP、同一时间内被服务器允许的连接数。

max_per_ip=0

与上面 max_clients 类似,这里是同一个 IP 同一时间可允许多少联机?

pasv_min_port=0, pasv_max_port=0

这两个参数指定pasv模式使用的端口号的范围,0表示不限制。

ftpd_banner=一些文字说明

用登入FTP时,显示的欢迎信息,可设定显示的信息内容较少。

banner_file=/path/file

这个参数可以弥补FTPd_banner参数的不足,特别是当需要在服务器端展示较多的文字信息时(如站点说明,欢迎文字等等)。

与实体用户较相关的设定值

guest_enable=YES (NO)

开启访客用户,如果开启则所有的非匿名用户的均会被假设成访客身份。访客默认情况下使用FTP这个账户相关的权限设置,但是可以通过参数guest_username来修改。

guest_username=ftp

在开启了guest_enable=YES之后才会生效,用来指定访客的身份。

local_enable=YES (NO)

是否允许/etc/passwd中存在的实体用户帐号登陆vsFTPd服务器。

local_max_rate=0

实体用户的传输速度限制,单位为bytes/second,0表示不限制。

chroot_local_user=YES (NO)

将实体用户限制在自己的家目录之内,默认值为NO。

chroot_list_enable=YES (NO)、chroot_list_file=/etc/vsftpd.chroot_list

这两个参数需要配合使用,用以将chroot_list文件中列出的用户限制在自己的默认目录中。

userlist_enable=YES (NO)、userlist_deny=YES (NO)、userlist_file=/etc/vsftpd/user_list

参数userlist_enable=YES表示借助vsFTPd的阻止机制来处理user_list文件中列出的某些不受欢迎的帐号;当userlist_deny=YES时user_list文件中的帐号将被拒绝,当userlist_deny=NO时则表示允许user_list中的帐号登陆服务器;

匿名者登入的设定值

anonymous_enable=YES (NO)

是否允许匿名账户anonymous登录,以下参数均在允许情况下生效。

anon_world_readable_only=YES (NO)

是否允许匿名用户具有只读权限。

anon_other_write_enable=YES (NO)

是否允许匿名账户具有可写权限。

anon_mkdir_write_enable=YES (NO)

是否允许匿名用户具有创建目录的权限。

anon_upload_enable=YES (NO)

是否允许匿名用户具有上传文件的权限。

deny_email_enable=YES (NO)

若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO。

banned_email_file=/etc/vsftpd/banned_emails

如果 deny_email_enable=YES 时,可以利用这个设定项目来规定哪个 email address 不可登入我们的 vsftpd 喔!在上面设定的档案内,一行输入一个 email address 即可!

no_anon_password=YES (NO)

此文件用来输入email address,只有在deny_email_enable=YES时,才会使用到此档案。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。

anon_max_rate=0

设置匿名登入者使用的最大传输速度,单位为B/s,0 表示不限制速度。默认值为0。

anon_umask=077

设置匿名登入者新增或上传档案时的umask 值。默认值为077,则新建档案的对应权限为700。

关于系统安全方面的一些设定值

ascii_download_enable=YES (NO)

设置是否启用ASCII 模式下载数据。默认值为NO。

ascii_upload_enable=YES (NO)

设置是否启用ASCII 模式上传数据。默认值为NO

one_process_model=YES (NO)

是否使用单进程模式

tcp_wrappers=YES (NO)

设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。

xferlog_enable=YES (NO)

是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。

xferlog_file=/var/log/xferlog

设置日志文件名和路径,默认值为/var/log/vsftpd.log。

xferlog_std_format=YES (NO)

如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。

dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log

如果启用该选项,将生成两个相似的日志文件,默认在 /var/log/xferlog 和 /var/log/vsftpd.log 目录下。前者是 wu-ftpd 类型的传输日志,可以利用标准日志工具对其进行分析;后者是Vsftpd类型的日志。

nopriv_user=nobody

预设vsftpd服务的运行账户。

pam_service_name=vsftpd

设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。

4、配置实例

基于匿名用户的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
1.cd /etc/vsftpd/
2.vim vsftpd.conf
 
write_enable=YES
anonymous_enable=YES
no_anon_password=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_root=/data/vsftpd
anon_world_readable_only=NO
syslog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
listen=YES
 
1.mkdir -p /data/vsftpd/upload
2.chmod 777 /data/vsftpd/upload
 
基于本地用户的配置:
1.cd /etc/vsftpd/
2.vim vsftpd.conf
 
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
userlist_deny=NO
 
useradd test
echo test | passwd --stdin test
echo "test" >> user_list
基于虚拟用户的配置:
yum -y install db4-utils
cd /etc/vsftpd/
vim virtual_userlist.txt
test1
123456
test2
123456
db_load -T -t hash -f /etc/vsftpd/virtual_userlist.txt /etc/vsftpd/virtual_userlist.db
chmod 600 /etc/vsftpd/virtual_userlist.db
vim /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_userlist
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_userlist
 
useradd virtual_user -d /data/vsftpd
chmod 700 /home/ftpsite
chown virtual_user.virtual_user /data/vsftpd/
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_port=21
userlist_enable=YES
guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftpd.vu
virtual_use_local_privs=YES
ftpd_banner=Welcome to opendoc FTP service.
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/data/vsftpd

关于服务器控制:

<!--[if !supportLists]-->1. <!--[endif]-->service vsftpd {start|stop|restart|condrestart|status}

客户端操作:

到此,vsftpd的安装配置算是告一段落了,如有问题请和我联系。

http://sbqing.com/archives/1193.html

CentOS 5.8下快速搭建FTP服务器的更多相关文章

  1. CentOS 6.5下快速搭建ftp服务器[转]

    CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...

  2. CentOS 6.5下快速搭建ftp服务器

    来源:Linux社区 作者:Linux CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了v ...

  3. 1 Linux平台下快速搭建FTP服务器 win7下如何建立ftp服务器

    百度经验连接(亲测可用) http://jingyan.baidu.com/article/380abd0a77ae041d90192cf4.html win7下如何建立ftp服务器 http://j ...

  4. Linux平台下快速搭建FTP服务器

      FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序 ...

  5. Windows下IIS搭建Ftp服务器

    第一步:启用Windows IIS Web服务器 1.1 控制面板中找到"程序"并打开 1.2 程序界面找到"启用或关闭Windows功能"并打开 1.3 上面 ...

  6. linux系统快速搭建ftp服务器——实现匿名用户和创建用户访问服务器

    一.准备工作: linux系统为CentOS Linux release 7.5.1804 (Core)  可以使用 lsb_release -a  命令查看 window系统中安装 SecureCR ...

  7. 快速搭建FTP服务器

    快速搭建一个本地的FTP服务器  如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试.第一步:配置IIS Web服务器1.1 控制面板中找到“程序”并打开 1.2 ...

  8. Proftpd快速搭建FTP服务器

    前言 在Linux系统中,FTP服务器软件有很多,都已经成熟,像vsftpd, wu-ftp, Pure-FTPd等.但这些软件安装配置起来都比较麻烦,搭建个人的FTP服务器,还是Proftpd比较简 ...

  9. Linux快速搭建FTP服务器

    FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(A ...

随机推荐

  1. jQuery 作业三个按钮

    作业三个按钮 <!--声明 文档--> <!DOCTYPE html> <!--定义字符集--> <html lang="zh-CN"&g ...

  2. 基于kafka-net实现的可以长链接的消息生产者

    今天有点时间,我就来说两句.最近接触的Kafka相关的东西要多一些,其实以前也接触过,但是在项目使用中的经验不是很多.最近公司的项目里面使用了Kafka消息中间件,由于以前的人员编写的客户端的类不是很 ...

  3. Java中的forin语句

    forin的原理 forin语句是JDK5版本的新特性,在此之前,遍历数组或集合的方法有两种:通过下标遍历和通过迭代器遍历.先举个例子: @Test public void demo() { Stri ...

  4. angular2.0学习笔记1.开发环境搭建 (node.js和npm的安装)

    开发环境, 1.安装Node.js®和npm, node 6.9.x 和 npm 3.x.x 以上的版本. 更老的版本可能会出现错误,更新的版本则没问题. 控制台窗口中运行命令 node -v 和 n ...

  5. MySql数据库 sql查询增加序号的伪列

    在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n 例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢? ...

  6. BUG(0):用某位表示特定属性

    用某个bit表示特定属性通常有两种方式: 1.指定某个特定的value #define _PAGE_VALID 0x0001 0bit 为 1 时表示此时的page entry是有效的 用法如下,此时 ...

  7. Sliding Window Median LT480

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  8. python常用命令

    安装sudo easy_install pip 列出已安装的包pip freeze or pip list 导出requirements.txtpip freeze > <目录>/r ...

  9. js Array 方法总结

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. python中从内部循环直接跳出多层循环

    学习循环的时候碰到一道题,需要从内部循环中直接跳出所有循环,想了很久终于想到一种好办法(小白认知) 题目为:使用while循环输出100-50,从大到小,到50时,再循环输出0-50,从小到大. ex ...