学习安装和配置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. 函数名、闭包、装饰器 day11

    1, 函数名的内存地址,print(func) 2, 函数名可以赋值给其他变量 3, 函数名可以当做容器类的元素 4, 函数名可以当做函数的参数. 5, 函数名可以当做函数的返回值. 学名:第一对象 ...

  2. React-router4 第四篇 Custom Link 自定义链接

    直接贴代码 虽说我这么懒的人应该不会自定义标签,何必呢,,但是我还是看了官方的例子 直接抄过来, exact 属性:根据我的测试,这个属性应该和路由的精确匹配有关有关,当值为true时,路由是会精确匹 ...

  3. (转)Android学习路线总结,绝对干货

    一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知.懂的越多的时候你才会发现懂的越少. 如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大. ...

  4. JAVA 8.20 游戏:四子连(Java&C++)

    (游戏:四子连 )四子连是一个两个人玩的棋盘游戏,在游戏中,玩家轮流将有颜色的棋子放在一个六行七列的垂直悬挂的网格中:         这个游戏的目的是在对手实现一行.一列或者一条对角线上有四个相同颜 ...

  5. PAT 1013 数素数 (20)(代码)

    1013 数素数 (20)(20 分) 令P~i~表示第i个素数.现任给两个正整数M <= N <= 10^4^,请输出P~M~到P~N~的所有素数. 输入格式: 输入在一行中给出M和N, ...

  6. RNA-seq流程需要进化啦!

    RNA-seq流程需要进化啦! Posted on 2015年9月25日 Tophat 首次被发表已经是6年前 Cufflinks也是五年前的事情了 Star的比对速度是tophat的50倍,hisa ...

  7. linux学习第二天 (Linux就该这么学)

    2018年11月10日,今天是学习的第二天 今天学习了安装vmware workstation12的安装及怎么安装 redhat7系统,在新建虚拟机时注意要选择“稍后安装操作系统”要vmwark wo ...

  8. padding属性

    p {padding:2cm 4cm 3cm 4cm;} 属性定义及使用说明 padding简写属性在一个声明中设置所有填充属性.该属性可以有1到4个值. 实例: 填充:10px 5px 15px 2 ...

  9. mysql mariadb的VC客户端遇到的问题

    在使用VS2017编写数据库客户端 具体设置可参见以下内容 https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-apps-windows- ...

  10. 尝试解决nginx的499错误1