1.安装ftp服务

yum install vsftpd

2.编辑配置文件

vsftpd的配置文件有三个,分别是:
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
其中,/etc/vsftpd.conf是主配置文件。/etc/vsftpd.ftpusers中指定了哪些用户不能访问FTP服务器。

/etc/vsftpd.user_list中指定的用户默认情况下(即在/etc/vsftpd.conf中设置了userlist_deny= YES)不能访问FTP服务器,

当在/etc/vsftpd.conf中设置了userlist_deny=NO时,仅仅允许 /etc/vsftpd.user_list中指定的用户访问FTP服务器。
二、vsftpd的默认主配置文件

vsftpd的默认主配置文件的内容如下:
//允许匿名登录
anonymous_enable=YES
//允许本地用户登录
local_enable=YES
//开放本地用户的写权限
write_enable=YES
//设置本地用户的文件生成掩码为022,默认值为077
local_umask=022
//当切换到目录时,显示该目录下的.message隐含文件的内容
//这是由于默认情况下有message_file=.message的 设置
dirmessage_enable=YES
//激活上传和下载日志
xferlog_enable=YES
//启用FTP数据端口的连接请求
connect_from_port_20=YES
//使用标准的ftpd xferlog日志格式
xferlog_std_format=YES
//设置PAM认证服务的配置文件名称,该文件存放 在/etc/pam.d/目录下
#pam_service_name=vsftpd

三、进一步配置vsftpd

1.允许匿名用户上传
为了使匿名用户能够上传,需要在/etc/vsftpd中激活两个配置选项,分别是:

anon_upload_enable=YES
//允许匿名用户上传
anon_mkdir_write_enable=YES
//开 启匿名用户的写和创建目录的权限
若要以上两项设置生效,同时还要求:

write_enable=YES
//匿名用户对文件系统的上传目录具有写权限

添加如下的配置语句:

anon_world_readable_only=NO
//上面的配置语句用于放开匿名用户的浏览权限

创建匿名上传目录:

mkdir /var/ftp/incoming

修改上传目录的权限:

chmod o+w /var/ftp/incoming/

重新启动vsftpd.

2.启用ASCII传输方式
默认情况下,vsftpd为了安全,禁止了ASCII传输方式。虽然在ftp客户软件中可以使用asc命令,但是传输文件时仍然使用二进制传输方式。可以分别启用上传和下载的ASCII传输方式,方法是编辑/etc/vsftpd配置文件,将如下两 行前的#去掉即可 启用:

#ascii_upload_enable=YES
#ascii_download_enable=YES

3.设置连接服务器后的欢迎信息
为了使用户连接服务器后显示信息,vsftpd提供了两个选项,分别是:

ftpd_banner
banner_file

例如:可以设置如下的ftpd_banner选项的值:
ftpd_banner=Welcome to Smartraining FTP service.
即:用户连接服务器后显示信息“Welcome to Smartraining FTP service.”。
也可以设置如下的banner_file选项的值:

banner_file=/var/vsftpd_banner_file

即:用户连接服务器后显示文件/var/vsftpd_banner_file中的信息。
注意:(1)如果设置了ftpd_banner的值,将覆盖vsftpd默认的服务器连接后的信息。
(2)如果ftpd_banner和banner_file同时设置,那么banner_file将覆盖ftpd_banner的设置。

4.配置基本的性能和安全选项
//设置空闲的用户会话的中断时间
例如下面的配置:

idle_session_timeout=600

将在用户会话空闲10分钟后被中断。

//设置空闲的数据连接的的中断时间
例如下面的配置:

data_connection_timeout=120

将在数据连接空闲2分钟后被中断。

//设置客户端空闲时的自动中断和激活连接的时间
例如下面的配置:

accept_timeout=60
connect_timeout=60

将使客户端空闲1分钟后自动中断连接,并在中断1分钟后自动激活连接

//设置最大传输速率限制
例如下面的配置:

local_max_rate=50000
anon_max_rate=30000

将使本地用户的最大传输速率为50kbytes / sec,匿名用户的 传输速率为30 kbytes / sec。

//设置客户端连接时的端口范围
例如下面的配置:

pasv_min_port=50000
pasv_max_port=60000

将使客户端连接时的端口范围在50000和60000之间。这提高了系统的安全性。

//设置chroot
在 默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内进行下载和上传。这样的设置对于一个FTP服务器来说是不安全的。如果希望用户登录后不能切换到自家目录以外的目录,则需要设置chroot选项,涉及如下选项:

chroot_local_user
chroot_list_enable
chroot_list_file

有两种设置chroot的方法:
(1)设置对所有的本地用户执行chroot(即活动范围限制在自家目录)只要将chroot_local_user的值设 为YES即可, 即:

chroot_local_user=YES

(2)设置指定的用户执行chroot需要如下的设置:

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file= /etc/vsftpd.chroot_list

这样,只有/etc/vsftpd.chroot_list文件中指定的用户才执行chroot。
注意 :上面所提及的文件/etc/vsftpd.chroot_list和下面将要提及的文件 /etc/vsftpd.user_list的格式要求均为每个 用户名占一行。

5.配置基于本地用户的访问控制
要配置基于本地用户的访问控制,可以通过修改vsftpd的主配置文件/etc/vsftpd.conf来进行, 有两种限制方法:

1)限制指定的本地用户不能访问,而其他本地用户可访问
例如下面的设置:

userlist_enable= YES
userlist_deny=YES
userlist_file= /etc/vsftpd.user_list

使文件/etc/vsftpd.user_list中 指定的本地用户不能访问FTP服务器,而其他本地用户可访问FTP服务器。

2)限制指定的本地用户可以访问,而其他本地用户不可访问
例如下面的设置:

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

使文件/etc/vsftpd.user_list中 指定的本地用户可以访问FTP服务器,而其他本地用户不可以访问FTP服务器。
注意:对于userlist_enable可以这样理解:
如果userlist_enable=YES,表示vsftpd将从userlist_file选项给出的文件名中装载一个含有用户名的清单。然后再读取 userlist_deny的值来确定vsftpd.user_list中的用户是否允许访问FTP服务器。如果用户不能访问,将在输入用户口令前被拒绝。

6.配置基于主机的访问控制
由于vsftpd有两种运行方式,即:由inetd启动和独立启动。这两种运行方式的主机访问控制配置是不同的,下面介绍的是由xinetd启动的vsftpd的主机访问控制的配置。显然,要配置这种主机访问控制,需要修改配置文件/etc/xinetd.d/vsftpd。

1)只允许指定的主机访问
在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:

only_from <主机表>

例如:only_from 192.168.1.0
表示只允许192.168.1.0网段内的主机访问。

2)指定不能访问的主机
在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:

no_access <主机表>

例如:no_access 192.168.1.0
表示只有192.168.1.0网段内的主机不能访问。

关于主机表的书写形式,见下表:
访问控制表时主机表的书写语法
选项值 含义
Hostname 可解析的主机名
IP Address 十进制表示的IP地址
Net_name 在/etc/networks中定义的网络名
x.x.x.0 x.x.0.0 x.0.0.0 0.0.0.0 0作为通配符看待。如:191.72.61.0匹配从191.72.61.0到191.72.61.255的所有IP地址。0.0.0.0表示匹配所有的IP地址
x.x.x.{a,b,.} x.x.{a,b,.} x.{a,b,.} 指定主机表。如:191.72.61.{1,3,123}表示包含地址191.72.61.1、191.72.61.2和191.72.61.123
IPAddress/netmask 定义要匹配的网络或子网。如:172.19.16/20匹配从172.19.16.0到172.19.31.255

3)配置每个客户机的最大连结数
//在置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:

per_source = 数值

例如:per_source = 5表示每个客户机的最大连接数为5。

4)配置服务器总的并发连接数
在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:

instances = 数值

例如:instances = 200 表示FTP服务器总共支持的最高连接数为200。

5)配置访问时间限制

在配置文件/etc/xinetd.d/vsftpd的{}中添加如下的配置语句:

access_time = hour:min-hour:min

例如:access_time = 18:00-23:59 表示只有在下午6点到午夜0点之前才能访问此FTP服务器;
又如:access_time = 8:30-11:30 13:00-18:00 表示只有在上午8点半到11点半和下午1点到下午6点才能访问此FTP服务器。

FTP用户添加。

useradd -d /home/test1 -s /sbin/nologin test1 //创建匿名用户

passwd test  //设置用户 密码

============如何处理500错误=====
原因: selinux上
redhat面向目标是企业,为了安全,
增加了一个selinux的服务,secrity enhanced , 安全加强服务.
关闭:
vi /etc/selinux/config
SELINUX=disabled
保存,
然后 运行 setenfoce 0 命令即可

【linux】 LINUX FTP搭建的更多相关文章

  1. linux私有ftp搭建与创建新用户

    一.私有ftp搭建 以后补充 1. 搭建 2.修改配置文件 二.创建新用户 在linux搭建好私有ftp后,默认存放目录是 /var/ftp/ 我们有时候需要给外部公司之类的用,但又不想让他们直接在  ...

  2. LINUX使用FTP搭建网络版YUM源

    在YUM,FTP服务器上配置(192.168.56.2) .安装.配置vsftp # rpm -ivh vsftpd--.el6.x86_64 # chkconfig vsftpd on # serv ...

  3. Linux下ftp搭建

    FTP服务器搭建教程: https://blog.csdn.net/plssmile/article/details/17061271 https://blog.csdn.net/guofengdid ...

  4. 《Linux下FTP服务器搭建及FTP使用》

    .LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...

  5. Linux测试环境搭建的学习建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...

  6. Linux下ftp和ssh详解

    学习了几天Linux下ftp和ssh的搭建和使用,故记录一下.学习ftp和ssh的主要目的是为了连接远程主机,并且进行文件传输.废话不多说,直接开讲! ftp服务器 1. 环境搭建 本人的系统是Arc ...

  7. Linux 下 ftp的使用

    最近需要在Linux上搭建FTP服务,通过网上的一些大神学习了一些新知识,在这个做一个总结: Linux 下FTP 为 vsftp (linux red hat)1.FTP配置路径:/etc/vsft ...

  8. 大数据中Linux集群搭建与配置

    因测试需要,一共安装4台linux系统,在windows上用vm搭建. 对应4个IP为192.168.1.60.61.62.63,这里记录其中一台的搭建过程,其余的可以直接复制虚拟机,并修改相关配置即 ...

  9. 阿里云linux配置ftp服务

    阿里云linux配置ftp服务 一.ftp服务安装 运行以下命令安装ftp yum install -y vsftpd 运行以下命令打开及查看etc/vsftpd cd /etc/vsftpd ls ...

  10. linux配置ftp高级权限

    建一个用于管理的ftp高级账号,ftproot,定义它的目录,也就是我们存放项目的地址,所属组www, useradd -d /home/www -g www ftproot www里存放很多项目,我 ...

随机推荐

  1. input里面placeholder水平居中

    <style type="text/css">input::-ms-input-placeholder{text-align: center;}input::-webk ...

  2. 从一道Python面试题说起(大神勿入)

    作为一个自学Python的小白,在了解了点皮毛之后,便按捺不住自己内心的骚动,在某招聘网站上投了些简历,居然也收到了面试邀请.第二天到公司,HR废话不多讲,上来就抛出几张A4纸,"先做题吧, ...

  3. 吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(二)

    经典网络 LeNet-5 AlexNet VGG Ng介绍了上述三个在计算机视觉中的经典网络.网络深度逐渐增加,训练的参数数量也骤增.AlexNet大约6000万参数,VGG大约上亿参数. 从中我们可 ...

  4. Hadoop学习笔记五

    一.uber(u:ber)模式 MapReduce以Uber模式运行时,所有的map,reduce任务都在一个jvm中运行,对于小的mapreduce任务,uber模式的运行将更为高效. uber模式 ...

  5. java异常丢失及异常链

    1.Java中异常丢失的情况: 先定义三个异常: public class ExceptionA extends Exception { public ExceptionA(String str) { ...

  6. [代码]JS原生Ajax,GET和POST

    javascript/js的ajax的GET请求: <script type="text/javascript"> /* 创建 XMLHttpRequest 对象 */ ...

  7. pyhton:图像旋转

    最近一个作业中要用到图像旋转,分享一下学习过程.如有讲错的地方,恳请指正! 图像旋转,想想真简单啊,不就是将图像矩阵乘上一个旋转平移矩阵就完了吗?实际上还真没这么简单.首先这个旋转平移矩阵怎么获得?通 ...

  8. vi代码智能提示功能及相关配置

    vim是一款支持插件.功能无比强大的编辑器,无论你的系统是linux.unix.mac还是windows,都能够选择他来编辑文件或是进行工程级别 的coding.如果能把vim用好了,不仅编程效率能得 ...

  9. PHP判断SQL语句是否合法:mysqli_error()

    假设现在有条update语句,有时候update语句正确,但是受影响的行数是0. 那么怎么判断这条SQL语句到底是否正确?使用 mysqli_error($Conn); create table us ...

  10. CentOS下安装XAMPP详细教程(转)

    [原文]http://blog.csdn.net/hel12he/article/details/49781813 现在PHP的集成运行环境越来越多,个人比较喜欢XAMPP,更新速度快,好用,安装便捷 ...