Centos 6.5使用vsftpd配置FTP服务器教程
什么是vsftpd

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

vsftpd作为FTP服务器,在Linux系统中是非常常用的。下面我们介绍如何在centos系统上安装vsftp。
1
2
3
当前登录用户获取root权限。执行su命令,输入当前用户密码。
执行: su

检测系统是否安装过vsftpd,
执行: rpm -qa | grep vsftpd

若已安装,会显示已安装的vsftpd版本号,

若没有安装,无显示。

若已安装过vsftpd,先卸载。卸载前,先停止服务 ,然后再卸载。
停止服务:service vsftpd stop
卸载:yum remove vsftpd

安装。用yum命令在线安装,命令如下:
yum -y install vsftpd

安装后默认是未启动,需执行start命令启动,然后就可以访问了,此时匿名账户即可访问,考虑安全,需进一步设置。
启动服务:service vsftpd start

此时在安装vsftpd的机器,用浏览器访问ftp://127.0.0.1 测试成功,且匿名可以访问,直接进入pub目录(因为/var/ftp/pub是匿名用户的默认访问目录),但是其他机器还不能访问 ,需要继续配置。

禁止匿名登陆,执行以下命令,配置vsftpb服务:
执行: vi /etc/vsftpd/vsftpd.conf

此时会进入编辑器窗口,这里需要简单了解vi编辑器的使用,可以参考:http://www.linuxidc.com/Linux/2013-03/80588.htm
简单的使用是按i进入插入模式,进行编辑,按esc退出编辑模式,然后输入:wq 保存修改并退出。
.
在vsftpd.conf文件中做如下修改:
按下i键,
设定不允许匿名用户访问(这行靠近文本内容上面,之前是disabled,改为NO即可):
anonymous_enable=NO

添加ftp用户(这两行比较靠下面,用#号注释掉了,删除#符号即可)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

之后按esc,输入:wq 保存退出

上面配置的意义:userlist_enable=YES
此项配置/etc/vsftpd.user_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpd.user_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpd.user_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器

添加上面指定的 /etc/vsftpd/chroot_list 文件。
执行:vim /etc/vsftpd/chroot_list

进入编辑器界面,直接输入 :wq保存退出即可创建chroot_list文件。

此时使用 service vsftpd restart 重启服务,再次访问 ftp://127.0.0.1/,可以看到需要输入账号密码了,说明上面的配置生效了。(这步先不执行也行,执行只是为了及时看到修改效果。最后全部修改完,再执行一次也行,这样可以直接看到最后效果)

添加ftp用户,执行以下命令 (不换行,下面是一条命令):
useradd -d /var/www/html -g ftp -s /sbin/nologin test

说明:其中,-d命令是指定用户主目录,-g是指定用户分组,-s /sbin/nologin 是禁止用户登陆系统,最后test是本次新建用户的用户名。

设置test用户密码,根据提示,输入两次。
执行: passwd test

密码尽量设置字母加数字的组合,不要太过简单

修改ftp用户目录权限,依次执行以下两条命令:
执行: chown test:ftp /var/www/html
目的:设置test用户到文件夹

执行: chmod 777 /var/www/html –R
目的:设置权限 777代表修改它的权限为完全开放

chown用法
用来更改某个目录或文件的用户名和用户组的
chmod用法
用来修改某个目录或文件的访问权限。
参考
http://blog.csdn.net/doupei2006/article/details/8015986

此时重启服务 service vsftpd restart 在本机用test用户登陆测试成功,但是外部机器还不能访问,需要继续配置(这步先不执行也行,执行只是为了及时看到修改效果。最后全部修改完,再执行一次也行,这样可以直接看到最后效果)。

开放21端口 因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件
执行:vi /etc/sysconfig/iptables

进入编辑器界面,在行上面有22 -j ACCEPT 的那行下面另起一行输入
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

然后esc退出编辑模式,输入:wq保存退出。

重启iptables (这步先不执行也行,执行只是为了及时看到修改效果。最后全部修改完,再执行一次也行,这样可以直接看到最后效果)
执行:service iptables restart

此时测试,正常情况下,本机和其他机器应该都可以访问,但是无法返回文件列表。(就是只能登陆,无返回数据,因为有些浏览器会记住密码,再次刷新无登陆页面,只有无法访问页面,可以清除浏览器缓存或者换个之前没登陆过的浏览器访问)

修改selinux

SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。

执行:getsebool -a | grep ftp

执行上面命令,在返回的结果看到两行都是off,代表没有开启外网的访问。

依次执行下面两条命令,这两条执行需要一定时间,耐心等待
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on

再次执行: getsebool -a | grep ftp,如图所示,修改成功:

开启passive模式(被动模式默认是开启的,但是要指定一个端口范围)
执行:vi /etc/vsftpd/vsftpd.conf

进入编辑模式,在最后面添加以下两行:
pasv_min_port=30000
pasv_max_port=30999

然后esc退出编辑模式,输入:wq 保存退出。
上面是指定被动模式端口范围:表示端口范围为30000~30999,这个可以随意改

由于指定了这段端口范围,iptables也要相应的开启这个范围。
执行: vi /etc/sysconfig/iptables

进入编辑模式,在21那一行下添加一行,和上面差不多,只是把21 改为30000:30999
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30000:30999 -j ACCEPT

然后esc退出编辑模式,输入:wq 保存退出。

配置完成,重启iptables和vsftp服务
执行:service iptables restart
执行:service vsftpd restart

为便于演示效果,可以在用户主目录 /var/www/html 添加一个文件,
执行:vi /var/www/html/test.txt

打开编辑器窗口,按i,输入内容,然后按esc退出编辑模式,输入:wq 保存退出。

用另一台机器访问本机配置的服务,访问 ftp://服务器ip ,例如 ftp://192.168.122.133/

使用windows系统下的ftp客户端端软件 FileZilla 测试,上传下载都正常,配置成功。

配置开机默认启动vsftp服务
执行:chkconfig vsftpd on
以上就是简单配置过程,vsftpd.conf 文件还有更详细的配置,比如欢迎语、上传下载速度等,可以自行百度了解。
本文如有疏漏或错误,欢迎指出。

Centos 6.5使用vsftpd配置FTP服务器教程的更多相关文章

  1. 如何在CentOS 7上使用vsftpd设置ftp服务器

    一.前言介绍 FTP(文件传输协议)是一种标准的客户机-服务器网络协议,允许用户在远程网络之间传输文件. 有几个开源的FTP服务器可用于Linux.最受欢迎和广泛使用的是pureftpd.proftp ...

  2. Ubuntu 用vsftpd 配置FTP服务器

    网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久,其实弄出来能用不就这么点内容吗... 本文在Ubuntu Server 14.04 amd64系统测试. Ma ...

  3. [转]Ubuntu 用vsftpd 配置FTP服务器

    FROM : http://www.cnblogs.com/CSGrandeur/p/3754126.html 网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久 ...

  4. Ubuntu 14.04 配置vsftpd实现FTP服务器 - 通过FTP连接AWS

    测试主机:亚马逊AWS EC2 系统:Ubuntu 14.04 想用AWS来做服务器玩,结果发现其不能像简单使用阿里云服务器那样用ftp连接,反正也不熟悉ftp服务器搭建,那就乘这个机会学习一下如何利 ...

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

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

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

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

  7. Ubuntu 配置FTP服务器

    第三方的文件传输软件用着很不爽,想着自己搭建一个FTP来干活. 首先检查是否已经安装了FTP,输入命令: vsftpd -v  可以查看版本,如果没有安装,无法执行. 安装FTP p.p1 { mar ...

  8. 安装与配置FTP服务器

    概:   文件传输协议 (File Transfer Protocol,FTP),用于在网络上进行文件传输的协议.如果用户需要将文件从本机发送到另一台计算机,可以使用FTP上传操作:反之,用户可以使用 ...

  9. windows2003通过iis配置ftp服务器

    以前习惯于用filezilla作为windows的ftp服务器,但是现在新版本的filezilla已经不支持windows2003了,所以趁机试一下iis配置ftp服务器. 前面都是很常规的配置 参考 ...

随机推荐

  1. webview之学习文章(待续)

    webview与js交互: Tencent/VasSonic(缓存优化方案) lzyzsd/JsBridge: pengwei1024/JsBridge: -----webview的框架 TheFin ...

  2. WebApi设置HttpContext.Current.User

    1.Web.config配置上system.web节点下加入以下配置 <system.web> <authentication mode="Forms"> ...

  3. 大数据学习之路(1)Hadoop生态体系结构

    Hadoop的核心是HDFS和MapReduce,hadoop2.0还包括YARN. Hadoop1.x的生态系统: Hadoop2.x引入YARN: HDFS(Hadoop分布式文件系统)源自于Go ...

  4. 树莓派做下载服务器 aria2 篇

    一开始要运行一下配置,扩大树莓派的根目录的空间,不然所有软件装完之后空间会只剩几百兆. sudo raspi-config 扩展根目录空间, 开启 SSH ,修改 pi 密码. 另外要提一下,树莓派默 ...

  5. Mock Server

    下载地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/ 此处使用standalone的方式,不使用api用法 启动方 ...

  6. FastSocket客户端/服务端通讯示例 客户端被动接收

    示例代码参见  http://www.cnblogs.com/T-MAC/p/fastsocket-asyncbinary-usage.html 我这里只写一份客户端如何被动接收的代码.   先从As ...

  7. java异常处理——finally相关

    示例程序1 public class EmbededFinally { public static void main(String args[]) { int result; try { Syste ...

  8. 【亲测】Java 接口自动化步骤

    GET请求(Maven) 一. src/main/java 1.[地址--HOST]创建并设置配置文件(后缀名.properties的文本文件):存放接口请求的host地址 2.[地址]TestBas ...

  9. HTTP 请求头中的 Remote_Addr,X-Forwarded-For,X-Real-IP

    REMOTE_ADDR 表示发出请求的远程主机的 IP 地址,remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间 ...

  10. iOS字符串自动计算文本的宽和高

    根据字符串如何自动计算出这些字符所占的宽和高: 首先,需要知道要显示的字体的样式,因为不同大小的字体所占据的空间大小不一样. 其次,要设置限制范围,例如一串字符可以显示成一行(较宽),也可以显示成多行 ...