• 【研发工具】Centos下搭建轻量级内网FTP服务器


    1 前言

    vsftpd是一款非常小巧、高性能、稳定性好、安全易用的Linuxt环境下的的FTP服务器软件。
    vsftpd 名称是取自 very secure FTP daemon 的缩写,可以在类UNIX类操作系统上运行。

    2 部署

    通常情况下可以在线安装,

    # centos / Redhat 操作系统下
    $  yum -y install vsftpd
    
    # debian / ubuntu 操作系统下
    $ apt-get install vsftpd
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装完后,可以用rpm命令检查是否安装成功

    rpm -qa | grep vsftpd
    
    • 1

    3 启动运行

    启动服务

    systemctl start vsftpd
    
    • 1

    设置自启动

    chkconfig --level 35 vsftpd on
    
    • 1

    查看是否设置成功

    chkconfig --list vsftpd
    
    • 1

    4 服务配置

    vsftpd服务器主要有三个配置文件,都位于/etc/vsftpd目录下:
    #ftp服务器的主配置文件
    vsftpd.conf
    #用来指定哪些用户不能访问ftp服务器
    ftpusers
    #当启用非匿名登录时,会使用到这个文件,这个文件中的用户是否可以登录到服务器,取决于vsftpd.conf文件中的userlist_enable和userlist_deny这两个选项
    user_list

    4.1 使用匿名用户登入

    打开vsftpd.conf

    # vi /etc/vsftpd/vsftp.conf
    
    • 1

    设置以下配置参数,通常大部分参数默认是有的,将前面的’#'去掉就可以,未在下面的参数保持原样即可

    ###匿名者登入的设定值###
    #设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,不允许匿名则设置为NO, 底下的所有相关设定都需要将这个设定为 anonymous_enable=YES 之后才会生效!
    anonymous_enable=YES
    # 如果你允许用户上传数据时,就要启动这个设定值
    write_enable=YES
    ##限制 anonymous 的权限!如果是 077 则 anonymous 传送过来的文件 权限会是 -rw-------
    anon_umask=077
    #是否让 anonymous 具有上传数据的功能,默认是 NO
    anon_upload_enable=YES
    #是否让 anonymous 具有建立目录的权限?默认值是 NO
    anon_mkdir_write_enable=YES
    #允许修改或删除文件,预设是 NO,设定为 YES, 那么开放给 anonymous 写入的目录亦需要调整权限,让 vsftpd 的 PID 拥有者可以写入才行
    anon_other_write_enable=YES
    ##仅允许 anonymous 具有下载可读文件的权限,预设是 YES
    anon_world_readable_only=NO
    #这个设定值后面接的数值单位为 bytes/秒 ,限制 anonymous 的传输速度,如果是 0 则不限制(由最大带宽所限制),如果您想让 anonymous 仅有 30 KB/s 的速度,可以设定『anon_max_rate=30000』
    anon_max_rate=0
    # anonymous 允许访问的根目录,如未设置,则是默认的目录/var/ftp
    anon_root=/home/vsftpd
    tcp_wrappers=YES
    
    pam_service_name=vsftpd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    修改完成后,重启一下vsftpd服务就可以生效:

    systemctl restart vsftpd
    
    • 1

    匿名登录,实际使用的是ftp这个默认的用户,在/etc/passwd用户表中,可以查看到ftp的默认home目录是/var/ftp,如果显示配置了anon_root值,那也要修改一下/etc/passwd中的home目录配置,两者需要保持一样~

    访问方法
    window下可以直接在电脑的资源地址栏输入ftp地址:
    ftp://ip地址

    4.2 使用操作系统的本地用户登入

    需要新建一个用户

    #新建一个系统用户vsftpd, 用户登录终端设为/bin/false(使之不能远程登录操作系统)
    useradd vsftpd -d /home/vsftpd -s /bin/false 
    
    
    • 1
    • 2
    • 3

    修改配置文件

    anonymous_enable=NO
    #
    # Uncomment this to allow local users to log in.
    local_enable=YES
    #
    # Uncomment this to enable any form of FTP write command.
    write_enable=YES
    #
    # Default umask for local users is 077. You may wish to change this to 022,
    # if your users expect that (022 is used by most other ftpd's)
    local_umask=077
    #关闭匿名上传
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    
    #限制用户只能访问自己的主目录,存在chroot_list文件中的用户只能访问自己的主目录,登录后自动跳转至用户的home目录
    chroot_local_user=YES
    #是否启用将访问用户限制在他们的家目录内?预设是 NO
    chroot_list_enable=YES
    #chroot_list_enable=YES 一行一个用户名,需要在配置中的文件中加一下vsftpd用户名
    chroot_list_file=/etc/vsftpd/chroot_list
    
    #允许某些用户登入
    userlist_enable=YES
    #NO,代表只能存在user_list文件中的用户允许登入;YES ,代表仅存在user_list文件中的用户不允许登入
    userlist_deny=NO  
    #需要在配置中的文件中加一下vsftpd用户名
    userlist_file=/etc/vsftpd/user_list
    
    pam_service_name=vsftpd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    修改完成后,同样需要重启一下vsftpd服务就可以生效:

    systemctl restart vsftpd
    
    • 1

    访问方法
    window下可以直接在电脑的资源地址栏输入ftp地址:
    ftp://ip地址
    如果没有主动弹出以下这个登录身份输入框,则可以鼠标右键->登录 来打开
    在这里插入图片描述
    当然,你也可以用专门的FTP client 工具来访问

    4.3 使用虚拟用户登入

    由于使用操作系统用户登录,容易暴露操作系统的用户,所以有这一配置选择。实际 中暂未应用过,待后续补充。

  • 相关阅读:
    通过插件去除Kotlin混淆去除 @Metadata标记
    DDD战略设计--如何设计聚合(含示例代码)
    Python之进程,线程锁,Queue相关
    REF543KB127AAAA 支持整个企业的有效扩展规划和分析
    运动想象 EEG 信号分析
    洛谷P1058 立体图
    Nginx基础组件的使用
    你所不知道的 vscode,汇集历史版本中你可能不知道的新特性
    chrome F12 network 保留之前请求信息
    VBA技术资料MF50:VBA_在Excel中突出显示前3个值
  • 原文地址:https://blog.csdn.net/dongshengliao/article/details/128123890