更换镜像源

由于centos5已经历史久远,内置的镜像源已经不能用。看:

因此,我手工更换了阿里云的源。(ps:我本来是想用网易的源,但不知为什么,这个源在安装vsftpd时提示http 404错误)

  1. 备份你的原镜像文件,以免出错后可以恢复。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  1. 下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
  1. 运行yum makecache生成缓存
yum makecache

原文地址


安装vsftpd

  1. 在终端运行下面的命令:
yum install vsftpd
  1. 安装完成后,通过service vsftpd status命令查看,可知服务先是被禁用的,因此我们需要手动启动:
service vsftpd start
  1. 设置在下次启动时自动启用,命令chkconfig:


简单使用

此时,其实你已经可以使用ftp了,通过命令ftp ftp_server_ip_address和用户名密码便可以登录。此时,你可以通过两种方式登录:

  • 匿名登录:账号anonymous,密码为空或者你随意输入。

  • 用户名密码登录,这个用户名和密码是由ftp服务器管理员创建的。比如我用useradd命令创建了一个普通用户busui。注意:现在的ftp服务器由于没有经过任何安全设置,所以普通用户busui拥有的权限非常大。等下面会会讲如何通过修改配置文件vsftpd.conf来提高ftp的安全。


安全配置

所谓配置,就是对vsftpd配置文件/etc/vsftpd/vsftpd.conf的修改(注意,不同发行版配置文件路径不一样),使得ftp服务器按照你意愿的权限/方式运行。

  • 在linux里有这么一个习俗:更改配置文件时,先备份,所以,我们先备份:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  • 接下来,打开/etc/vsftpd/vsftpd.conf:
anonymous_enable=NO 	### 禁用匿名登录
local_enable=YES ### 允许本地用户登录
write_enable=YES ### 允许对文件系统做改动的 FTP 命令
local_umask=022 ### 本地用户创建文件所用的 umask 值
dirmessage_enable=YES ### 当用户首次进入一个新目录时显示一个消息
xferlog_enable=YES ### 用于记录上传、下载细节的日志文件
connect_from_port_20=YES### 使用端口 20 (ftp-data)用于 PORT 风格的连接
xferlog_std_format=YES ### 使用标准的日志格式
listen=YES ### 让 vsftpd 运行在独立模式
listen_ipv6=NO ### 将vsftpd监听 IPv6停止,因为我主机是ipv4
pam_service_name=vsftpd ### vsftpd 使用的 PAM 服务名
userlist_enable=YES ### vsftpd 支持载入用户列表
tcp_wrappers=YES ### 使用 tcp wrappers
  • 跟着,便是重启ftp,使得配置文件生效:service vsftpd restart:



    这里,我也遇到了一点小麻烦,由于跟着这篇文章操作,糊里糊涂地也跟着将listen设置为NO,将listen_ipv6=YES。看:



    所以,便遇到了这样的错误:



    原因分析:

    我看了一下参考文章的出处,才知道原来是从外国翻译回来的。要知道,外国(主要指美国)ipv6基本普及了,天朝还在用ipv4,所以,这样改:listen=YESlisten_ipv6=NO就万事大吉了。 刚开始我还以为是端口冲突了呢,想查看一下日志文件,却连日志都没有看到。(估计没生成)

    对于listen参数,在conf文件中注释是这样的:

    当启用“listen”指令时,vsftpd以独立模式运行,并在IPv4套接字(即ip和端口,一般说侦听某个端口)上侦听。 该指令不能与listen_ipv6指令一起使用。

  • 添加用户,测试:

    useradd -m -c “Busui Kadiven, student” -s /bin/bash busui

    设置密码passwd Busui,之后,便可以启动ftp服务并且登录。此时,除了被我们禁止的匿名用户,这台机器的所有其他用户都可以登录到你的ftp服务器上。所以,要介绍一种机制,可以让你控制谁有登录你的ftp服务器的权限。

  • 现在基于用户列表文件 /etc/vsftpd.userlist 来配置 FTP 来允许/拒绝用户的访问:

    默认情况下,如果设置了 userlist_enable=YES,当 userlist_deny 选项设置为 YES 的时候,userlist_file=/etc/vsftpd.userlist 中列出的用户被拒绝登录。然而, 更改配置为 userlist_deny=NO,意味着只有在userlist_file=/etc/vsftpd.userlist 显式指定的用户才允许登录。将下列命令添加到/etc/vsftpd/vsftpd.conf文件中,保存并重启vsftpd服务:

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

现在假如我的电脑上有这些用户:Busui,test,jack,test1,但只有Busui和test1在vsftpd.userlist文件中,所以,只有Busui和test1有登录的权限。


设置chroot jail(参看这里)

到了这里,其实还有一些很重要的东西要说,参考这里。chroot jail主要有三个参数:

1,chroot_local_user: 是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)

  • 设置为YES时:

  • 设置为NO或注释掉时

2,chroot_list_enable:是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)

3,chroot_list_file=/etc/vsftpd/chroot_list:是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值. chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!


结尾

到了这里,基本是结束了,关于centos7还有更详细的设置,请参考这里

Centos5搭建vsftpd服务的更多相关文章

  1. 搭建vsftpd服务

    配置文件 anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_ ...

  2. Linux下搭建ftp服务

    Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...

  3. 快速搭建FTP服务

    Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...

  4. FTP相关、用vsftpd搭建ftp、xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务

    1.FTP相关(file transfer protocol,文件传输协议)   2.用vsftpd搭建ftp安装:yum install vsftpd -y创建一个虚拟用户:useradd  vft ...

  5. FTP 基础 与 使用 Docker 搭建 Vsftpd 的 FTP 服务

    FTP 基础 与 使用 Docker 搭建 Vsftpd 的 FTP 服务 前言 最近的工作中,需要将手机上的文件发送到公司的 FTP 的服务器.按照从前的思路,自然是,先将文件传到电脑,再由电脑上传 ...

  6. Vsftpd服务的搭建

    安装vsftpd服务程序 yum install vsftpd -y Vsftpd的程序与配置文件: 主程序 /usr/sbin/vsftpd 用户禁止登陆列表 /etc/vsftpd/ftpuser ...

  7. vsftpd搭建ftp服务,并实现虚拟用户访问

    安装vsftpd服务: yum install vsftpd -y [root@wadeson ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam. ...

  8. 使用vsftpd 搭建ftp服务

    ftp 基础服务器基础知识 ftp有三种登录方式.匿名登录(所有用户).本地用户.虚拟用户(guest). FTP工作模式 主动模式:服务端从20端口主动向客户端发起链接. 控制端口21:数据传输端口 ...

  9. Ubuntu server搭建vsftpd小记

    Ubuntu server中搭建vsftpd小记 <h1> 在Ubuntu server中安装vsftpd</h1> sudo apt-get install vsftpd & ...

随机推荐

  1. TabBar自定义方式(一)

    1.思路:创建一个继承UIView的TabBar类,并将需要的item添加到TabBar上面去,并用代理来处理相应的时间 [self.view bringSubviewToFront:self.one ...

  2. mysql 主从同步 实现增量备份

    数据库复制 replication 的实现原理 1:主服务器凡运行语句,都产生一个二进制日志 binlog 2:从服务器不断读取主服务器的binlog 3:从主服务读取到的binlog,转换为自身可执 ...

  3. Linux常用命令List

    参考<linux命令行大全> 一.文件命令 cd - 切换为之前目录 wc -l -w file cmd --help apropos keyword apropos cpu > t ...

  4. 深入Callable及Runnable两个接口 获取线程返回结果

    今天碰到一个需要获取线程返回结果的业务场景,所以了解到了Callable接口. 先来看下下面这个例子: public class ThreadTest { public static void mai ...

  5. 浩哥解析MyBatis源码(九)——Type类型模块之类型处理器注册器(TypeHandlerRegistry)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6709157.html 1.回顾 上一篇研究的是类型别名注册器TypeAliasRegist ...

  6. ecshop打开手机端QQ对话窗口

    ecshop的手机功能比较弱,默认的模板很丑,也不带打开手机端QQ等功能,在程序里添加im等程序变量后,在模板里引入以下代码,即可打开手机端qq对话窗口 <!-- QQ 号码 {foreach ...

  7. Spark源码分析之分区器的作用

    最近因为手抖,在Spark中给自己挖了一个数据倾斜的坑.为了解决这个问题,顺便研究了下Spark分区器的原理,趁着周末加班总结一下~ 先说说数据倾斜 数据倾斜是指Spark中的RDD在计算的时候,每个 ...

  8. Elasticsearch搜索之explain评分分析

    Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来.这里用一个中文实例来纯手工验算一遍Luce ...

  9. ios系统判断某些适配 __IPHONE_OS_VERSION_MAX_ALLOWED

    由于app的最新设计字体是ios9之后的平方字体,但app最低支持ios7,so...想在常量配置文件类里统一适配下字体,如下: //适配字体,ios9及以上系统使用新字体--平方字体 #if __I ...

  10. eclipse中AndroidA工程依赖B工程设置

    假设library为B工程,而SlideMenuTest为A工程,且SlideMenuTest需要依赖library工程(减少jar包形式的修改麻烦). 需要简单的设置即可. 1.B工程设置为libr ...