在centos7安装ftp服务

 yum install -y vsftpd

启动服务

systemctl start vsftpd

自启动

systemctl enable vsftpd

查看端口

注意关闭SELinux和本地防火墙,否则不能正常操作

重要文件

/var/ftp/pub/  默认共享目录

/etc/vsftpd/vsftpd.conf  主配置文件

/etc/vsftpd/user_list  黑名单,可修改成白名单

/etc/vsftpd/ftpusers  黑名单

FTP相关用户

匿名用户

anonymous或ftp

本地用户

Linux系统用户 

虚拟用户

管理员自定义用户

配置文件/etc/vsftpd/vsftpd.conf

anonymous_enable=YES             ### 允许匿名登录,建议关闭
local_enable=YES ### 允许本地用户登录
write_enable=YES ### 允许对文件系统做改动的 FTP 命令
local_umask= ### 本地用户创建文件所用的 umask 值
dirmessage_enable=YES ### 当用户首次进入一个新目录时显示一个消息
xferlog_enable=YES ### 用于记录上传、下载细节的日志文件
connect_from_port_20=YES ### 主动模式数据传输接口
xferlog_std_format=YES ### 使用标准的ftp日志格式
listen=NO ### 不要让 vsftpd 运行在独立模式
listen_ipv6=YES ### vsftpd 将监听 IPv6 而不是 IPv4
pam_service_name=vsftpd ### vsftpd 使用的 PAM 服务名
userlist_enable=YES ### 用户登入限制
tcp_wrappers=YES ### 使用 tcp wrappers

匿名用户登入

在默认情况下,ftp可以用匿名用户登入,登入的目录为/var/ftp/

用户名为anonymous或ftp,密码为空,建议关闭

默认情况下,只能在对应的目录下进行下载文件,不能上传文件

可以修改对应的配置文件,允许匿名用户进行文件上传和建立目录的权限

配置文件/etc/vsftpd/vsftpd.conf中将以下两行注释去掉即可

anon_upload_enable=YES        #允许上传文件
anon_mkdir_write_enable=YES #允许建立目录

重启服务,同时还需要让ftp作为/var/ftp/pub的所有者

chown ftp pub/

重新用匿名用户登入ftp就可以在pub/上传文件和建立目录

系统用户登入

采用Linux的系统用户作为ftp服务的用户进行登入,但是因为ftp是明文传递,如果被人截获数据包,就相当于获得Linux的用户和密码,因此建议关闭

默认情况下,采用系统用户登入,可以进行上传下载,目录为用户的家目录

可以修改配置文件更换系统用户的登入位置,在/etc/vsftpd/vsftpd.conf添加

local_root=/tmp/test_home/

然后建立对应的目录 mkdir /tmp/test_home,重启服务

再次登入ftp,目录为/tmp/test_home,其他Linux用户登入ftp服务也是在这个目录(注意系统的目录权限)

但是用系统用户登入ftp存在一个缺陷,即可以切换到根目录,可以窃取其他目录的信息,所以我们需要把系统用户禁锢在家目录下

进入配置文件,把这句话前面的注释去掉,然后重启服务,即把所有的系统用户限制在家目录下

chroot_local_user=YES

注意一个特别配置,如果把这三句都去掉注释,同时在/etc/vsftpd/建立一个chroot_list,里面的内容为系统用户,那么写在这里的系统用户则可以访问任何目录

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

假如我们在/etc/vsftpd/chroot_list添加一个系统用户test2,那么这个系统用户登入ftp服务器,则可以访问根目录,也可以访问其他目录

黑名单与白名单

/etc/vsftpd/ftpusers和 /etc/vsftpd/user_list默认情况下都是黑名单,但是/etc/vsftpd/user_list可以通过配置文件修改成白名单

在/etc/vsftpd/vsftpd.conf配置文件中

userlist_enable=YES  #在这句下面添加以下两句,将user_list反转成白名单
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

注意黑名单的权限比白名单大,即同时存在与黑名单和白名单,依旧被禁用

虚拟用户登入

比较安全和常见的登入方式为虚拟用户登入,即只能登入ftp服务器

1、添加一个虚拟用户口令文件

vim /etc/vsftpd/vuser.txt

在里面输入虚拟用户和密码

vtest  #账户
test #密码
vtest2 #账户
test2 #密码

2、生成认证文件

db_load -T -t hash -f /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db

如果没有安装口令认证文件先安装

 yum -y install db4-utils

3、编辑pam认证文件

进入 /etc/pam.d/vsftpd,注释掉原来的内容,因为系统登入依赖这个文件
 在后面添加两行

auth required  /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

4、建立本地映射用户

useradd -d /home/vftproot -s /sbin/nologin vuser
chmod /home/vftproot

5、修改配置文件

在/etc/vsftpd/vsftpd.conf下面添加

guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vuser_conf

然后重启服务,就可以进行虚拟用户登入,记得删除原来的vuser.txt文件

虚拟用户进行目录分配

mkdir /etc/vsftpd/vuser_conf

在这个目录下创建文件,文件名为虚拟用户名,在里面指定权限和目录,没有设置的虚拟用户则根据主配置文件

 vim /etc/vsftpd/vuser_conf/vtest2 
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/tmp/vtest2
mkdir /tmp/vtest2
chown vuser vtest2/

并在配置文件中添加

allow_writeable_chroot=YES

重启服务,再次登入,可以正常使用

FTP安装及配置的更多相关文章

  1. [Windows Server 2003] IIS自带FTP安装及配置方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:IIS6.0自 ...

  2. Linux下FTP安装与配置

    第一部分 .note-content {font-family: 'Helvetica Neue', Arial, 'Hiragino Sans GB', STHeiti, 'Microsoft Ya ...

  3. [转]CentOS 5.5下FTP安装及配置

    一.FTP的安装 1.检测是否安装了FTP : [root@localhost ~]# rpm -q vsftpd vsftpd-2.0.5-16.el5_5.1 否则显示:[root@localho ...

  4. CentOS7 FTP安装与配置

    1.FTP的安装 #安装yum install -y vsftpd #设置开机启动systemctl enable vsftpd.service #启动systemctl start vsftpd.s ...

  5. IIS6自带FTP安装及配置方法

    参考:http://v.huweishen.com/video/9.html ·IIS自带的FTP服务是最安全的,不会像Serv-U那样存在各种漏洞:但其配置过程也比较复杂. ·本节将以虚拟目录方式, ...

  6. 从零开始搭建系统1.7——FTP安装及配置

    1.安装vsftp软件包 [root@localhost usr]# yum install -y vsftpd 2.先备份vsftpd的默认配置文件 [root@localhost usr]# cd ...

  7. centos 6.4 FTP安装和配置

    链接地址:http://blog.csdn.net/wind520/article/details/38019647 1: 安装 检查是否安装 [root@localhost ~]# rpm -qa ...

  8. linux ftp安装和配置

    1. 启动VSFTP服务器 A:cenos下运行:yum  install  vsftpd B. 登录Linux主机后,运行命令:"service vsftpd start"C. ...

  9. Linux 安装及配置 Nginx + ftp 服务器

    Nginx 安装及配置 一.Nginx 简介: Nginx("engine x") 是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web和 反向代理服务器, ...

随机推荐

  1. Python numpy的基本操作你一般人都不会

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.  PS:如有需要最新Python学习资料的小伙伴可以加点击下方链接自行获取 ...

  2. Butterknife Attribute value must be constant

    背景 在下面的R.id.rv_msg_remind 标红,然后鼠标附上去,显示attribute value must be contant.如下: @BindView(R.id.rv_msg_rem ...

  3. Django大纲

    Django框架 ........ 2.聚合查询 分组 F与Q查询 字段 及其 参数 | 数据库的三大范式 3.orm查询优化 MTV与MVC模型 choice参数 ajax serializers ...

  4. CodeForces - 556C Case of Matryoshkas (水题)

    Andrewid the Android is a galaxy-famous detective. He is now investigating the case of vandalism at ...

  5. Python工作好找吗?没有工作经验和学历怎么找?【就业必学】

    大家都知道,随着人工智能时代的到来,Python的需求也变的越来越大了.从目前各大IT招聘网上显示招聘需求是非常大,而且薪资基本都在10k起,高的可达40-50k,当然这个要求很高,看下普遍的吧: 一 ...

  6. laravel起步的一些小问题

    工作中主要使用的是.NET,PHP只是我业余喜欢的一门语言,而之前一直用的是yii2框架,觉得Yii2是最好的框架了,然而,laravel在业界的名声太大,被誉为:最优雅的框架,所以,我决定花点时间研 ...

  7. [从今天开始修炼数据结构]队列、循环队列、PriorityQueue的原理及实现

    [从今天开始修炼数据结构]基本概念 [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList [从今天开始修炼数据结构]栈.斐波那契数列.逆波兰四则运 ...

  8. Python面向对象-定制方法

    Python中的class可以定义许多定制方法,可以让我们方便的生成特定的类. 我们之前介绍了__slots__.__len__(),python中还有许多这样的特殊函数: __str__ >& ...

  9. 代码的鲁棒性:链表中倒数第k个结点

    题目描述 输入一个链表,输出该链表中倒数第k个结点.例如:输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点.例如一个链表有6个结点,从 ...

  10. docker快速部署本地项目到服务器(tomcat8+mysql8)

    目标是:将本地运行的spring项目,部署到服务器上 为什么使用docker? 环境隔离 服务器上,各种环境交杂,使用docker,能清楚的把各个项目进行隔离,不单维护的人员方便,也会省去很多维护这些 ...