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. 解决logging模块日志信息重复问题

    解决logging模块日志信息重复问题 问题描述 相信大家都知道python的logging模块记录日志信息的步骤: # coding:utf-8 import logging ### 创建logge ...

  2. 关于Unity单个对象多个脚本的Update调用的时序问题

    先说几句废话, 最近在研究Unity, 这玩意用起来比较简单, 而且商店里还有各种插件, 初学者也能轻松拼凑出一个像模像样的游戏(顺便说一句,自己做着玩就无所谓了,但随便拼凑个辣鸡丢出来骗钱就不好了) ...

  3. jenkins部署前后端分离的vue项目

    1 General Name: 变量名. 类似给分支起一个名字的意思, 可随意取 Description: 描述, 非必填 Parameter Type: 选择 Branch or Tag Defau ...

  4. 使用requests+BeautifulSoup爬取龙族V小说

    这几天想看龙族最新版本,但是搜索半天发现 没有网站提供 下载, 我又只想下载后离线阅读(写代码已经很费眼睛了).无奈只有自己 爬取了. 这里记录一下,以后想看时,直接运行脚本 下载小说. 这里是从   ...

  5. js Base64 转化成图片格式

    function dataURLtoFile(dataurl, filename = 'file') { let arr = dataurl.split(',') let mime = arr[0]. ...

  6. 使用JavaScript制作页面效果3

    一. 1.下拉列表:select对象 属性: option[ ]:选项数组 selectedIndex:被选中选项的索引号 length:选项总数 方法: add(option对象,添加位置):增加选 ...

  7. Java学习之代码块(静态,构造代码块,构造方法)执行顺序

    静态代码块   static{ 代码 } 随着类的加载而加载,随类的消失而消失,存在于类中,方法外,最先执行,且只加载1次,可用来加载驱动及初始化对象属性. 构造代码块   {   } 也存在于类中, ...

  8. HTML5 关于一些本地操作 cookie,sessionStorage,localStorage

    1,b/s 开发中经常会使用到 cookie,大部分情况下,都是由后端代码实现,那么 js 怎么实现对 cookie 的操作呢? <!DOCTYPE html> <html> ...

  9. 11Linux_sshd_Apache

    1.Linux系统中一切都是文件. 2.配置服务实际上就是在修改配置文件. 3.重启相应服务来加载最新的配置参数. 4.为了保证下次还生效,加入到开机启动项中.

  10. Idea安装svn插件

    1. 首先要注意:TortoiseSVN在安装的时候没有command line,在安装TortoiseSVN时,要支持Idea需要点击叉的下拉单,选择will be installed local ...