×

【每日一记6】+第1天+Linux下使用vsftp搭建FTP服务器实现文件共享
  

新手517978 18291人觉得有帮助

{{ttag.title}}
        FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。

        FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议。
        常见FTP服务器:
        Windows:Serv-U FTP Server
        Linux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。
        本文的主角:vsftp。VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
        特点:它是一个安全、高速、稳定的FTP服务器。本文从以下几个方面来介绍ftp服务器:
        一、学习一个新服务的方法
  •                 二、VSFTP服务器的安装配置。        
  •                 三、VSFTP服务器实战        


        一、学习一个新服务的方法
        1、  此服务器的概述:名字,功能,特点,端口号
        2、  安装
        3、  配置文件的位置
        4、  服务启动关闭脚本,查看端口
        5、  此服务的使用方法
        6、  修改配置文件,实战举例
        7、  排错(从下到上,从内到外)
二、VSFTP服务器的安装配置
        本文的服务器架构:
        FTP服务端:xiaolyu10  IP:1**.168.31.10
        FTP客户端:xiaolyu11  IP:1*2.168.31.11
        1. 安装:
         yum安装或rpm安装均可。
        [root@xiaolyu10 ~]# rpm -qa | grep vsftp
vsftpd-2.2.2-21.el6.x86_64
[root@xiaolyu10 ~]# rpm -ivh /mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm
        [root@xiaolyu10 ~]# yum install -y vsftp
        [root@xiaolyu11 ~]# yum -y install  lftp
        2. 配置文件:
        [root@xiaolyu10 ~]# ls -l /etc/vsftpd
total 32
-rw-r--r-- 1 root root  13 Mar 16 15:14 chroot_list
-rw------- 1 root root  125 May 11  2016 ftpusers
-rw------- 1 root root  361 May 11  2016 user_list
-rw------- 1 root root 4644 Mar 16 15:13 vsftpd.conf
-rw------- 1 root root 4599 Mar 16 14:12 vsftpd.conf_bak
-rwxr--r-- 1 root root  338 May 11  2016 vsftpd_conf_migrate.sh
        /etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
        /etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。  黑名单
        /etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。  白名单
        vim  /etc/vsftpd/user_list
        # 如果userlist_deny= YES(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码
        #prompt 提示
        /etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本
        /var/ftp/:默认情况下匿名用户的根目录
三、VSFTP服务器实战
实战1:
        公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用户自己的目录。
        分析:
        允许所有员工上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能
        开启,
        anon_mkdir_write_enable 字段可以控制是否允许匿名用户创建目录。
        备份原配置文件:
        [root@xiaolyu10 vsftpd]# cp vsftpd.conf vsftpd.conf_bak
        [root@xiaolyu10 ~]# vim /etc/vsftpd/vsftpd.conf
        允许匿名用户访问
        anonymous_enable=YES
        允许匿名用户上传文件并可以创建目录
        anon_upload_enable=YES
        anon_mkdir_write_enable=YES
        
        
        启动服务:
        [root@xiaolyu10 ~]# service vsftpd restart
        
         

        [root@xiaolyu10 pub]# chown ftp.ftp /var/ftp/pub/
        然后测试,是可以新建文件夹了,但是不能重命名,不能删除!
        
        

        [root@xiaolyu10 ~]# mkdir /var/ftp/xiaolyudata
[root@xiaolyu10 ~]# chown ftp.ftp /var/ftp/xiaolyudata
[root@xiaolyu10 ~]# ll -d !$
ll -d /var/ftp/xiaolyudata
drwxr-xr-x 2 ftp ftp 4096 Mar 16 14:34 /var/ftp/xiaolyudata
[root@xiaolyu10 ~]#
         重启服务:
        [root@xiaolyu10 ~]# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
[root@xiaolyu10 ~]#
         现在匿名上传的文件是禁止删除的。
        

        

        这样匿名用户的上传就算成功了
        注:工作中,匿名用户只是只读访问,写的权限也没有的。
        补充:
        如果想让匿名用户可以重命名或者删除的权限,添加如下一条配置参数:
        
        重启服务:
        [root@xiaolyu10 ~]# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for: anon_other_write_enable
                                                          [FAILED]
        
        根据提示,说明我刚才添加的那一行匿名写权限的参数有问题
        [root@xiaolyu10 ~]# vim /etc/vsftpd/vsftpd.conf
        
        也就是说参数后面不能有多余的空格。
         重新启动就可以对重新命名和删除文件夹了,
        匿名用户就可以删除和修改,非常不安全,慎重使用这个参数。
        注意,默认匿名用户家目录的权限是755,这个权限是不能改变的。切记!
        [root@xiaolyu10 ~]# service vsftpd restart
        
        

        实战2:
        公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。
        ftp 和www web服务器相结合。
        www web服务器根目录:  /var/www/html
        只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。
        分析:
        FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1team2 锁定在/var/www/html 目录下。如果需要删除文件则还需要注意本地权限
        解决方案:
        1)建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码
        [root@xiaolyu10 ~]# useradd -s /sbin/nologin team1
[root@xiaolyu10 ~]# useradd -s /sbin/nologin team2
[root@xiaolyu10 ~]# echo "123456" | passwd --stdin team1
Changing password for user team1.
passwd: all authentication tokens updated successfully.
[root@xiaolyu10 ~]# echo "123456" | passwd --stdin team2
Changing password for user team2.
passwd: all authentication tokens updated successfully.
        2)配置vsftpd.conf 主配置文件并作相应修改
        [root@xiaolyu10 vsftpd]# cp vsftpd.conf_bak vsftpd.conf
cp: overwrite `vsftpd.conf'? y
[root@xiaolyu10 vsftpd]# vim vsftpd.conf
        #anonymous_enable=YES
anonymous_enable=NO   
禁止匿名用户登录
#
# Uncomment this to allow local users to log in.
local_enable=YES  允许本地用户登录
        
        继续将:
        
        修改为:
        
        local_root=/var/www/html:设置本地用户的根目录为/var/www/html
        chroot_list_enable=YES:激chroot 功能
        chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名
        保存退出
        3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号
        [root@xiaolyu10 vsftpd]# touch /etc/vsftpd/chroot_list
[root@xiaolyu10 vsftpd]# ll !$
ll /etc/vsftpd/chroot_list
-rw-r--r-- 1 root root 0 Mar 16 15:13 /etc/vsftpd/chroot_list
[root@xiaolyu10 vsftpd]# vim /etc/vsftpd/chroot_list
  #写入以下内容,一行,一个用户名
        team1
        team2
        4)重启vsftpd 服务使配置生效
        service vsftpd restart
        5)修改本地权限
        [root@xiaolyu10 vsftpd]# mkdir -p /var/www/html/
[root@xiaolyu10 vsftpd]# ll -d /var/www/html/
drwxr-xr-x 2 root root 4096 Mar 16 15:16 /var/www/html/
[root@xiaolyu10 vsftpd]# chmod -R o+w /var/www/html/
[root@xiaolyu10 vsftpd]# ll -d /var/www/html/
drwxr-xrwx 2 root root 4096 Mar 16 15:16 /var/www/html/
        (6).测试:
        

        [root@xiaolyu11 ~]# lftp **2.168.31.10 -uteam1,123456
lftp team1@1
**.168.31.10:~> ls
drwxr-xr-x    2 500      500          4096 Mar 16 07:24 web
lftp team1@1
**.168.31.10:~>

写于2020年4月5号

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

平凡的小网工 发表于 2020-4-5 19:48
  
看了楼主的帖子,让我陷入了严肃的思考中,我认为,如果不把楼主的帖子顶上去,就是对真理的一种背叛,就是对谬论的极大妥协。因此,我决定义无返顾的顶了!
807710 发表于 2020-5-27 09:49
  
写得很详细,学习了
新手084679 发表于 2020-9-25 21:00
  
感谢分享
会飞的癞蛤蟆 发表于 2020-9-30 09:18
  
好多英文。。
会飞的癞蛤蟆 发表于 2020-9-30 09:18
  
有点看不懂。。。
航嘉电脑门诊 发表于 2020-9-30 09:20
  
谢谢分享
航嘉电脑门诊 发表于 2020-9-30 09:21
  
在最新版的centos系统里  貌似有的命令提示错误。。
新手338432 发表于 2020-10-15 23:15
  
感谢分享
新手456962 发表于 2020-10-16 09:05
  

打卡学习,感谢分享
发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
【 社区to talk】
技术笔记
干货满满
每日一问
新版本体验
GIF动图学习
信服课堂视频
技术咨询
功能体验
2023技术争霸赛专题
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
POC测试案例
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
全能先锋系列
云化安全能力

本版版主

12
185
6

发帖

粉丝

关注

121
315
351

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人