Linux下FTP服务器搭建配置:vsftpd的安装与配置实验



vsftpd的安装与配置指南

本文详细介绍如何在Linux系统上安装与配置vsftpd(Very Secure FTP Daemon),包括匿名用户和本地用户的配置、安全性设置、以及黑白名单的使用。

1. vsftpd的安装

  1. 检查vsftpd安装包是否存在

    rpm -qc vsftpd    
    # 检查是否已安装vsftpd包,若存在则无需重新安装
    
  2. 安装vsftpd

    yum install -y vsftpd   # 使用yum安装vsftpd
    
  3. 查看vsftpd配置文件

    cd /etc/vsftpd
    ls        # 切换到vsftpd配置目录下并查看文件
    
  4. 备份配置文件

    cp vsftpd.conf vsftpd.conf.bak   
    # 备份配置文件,避免配置错误时无恢复方案
    

2. vsftpd配置详解

  1. 初始化全局配置
    编辑vsftpd的主配置文件:

    vim /etc/vsftpd/vsftpd.conf
    

    常用配置项:

    • anonymous_enable=YES开启匿名用户访问(默认已开启)。
    • local_enable=YES允许本地系统用户访问(如 useradd zhangsan ,默认已开启)。
    • write_enable=YES允许服务器写操作(开启上传功能,必须开启,默认已开启)。
    • anon_umask=022设置匿名用户上传文件的权限掩码(反掩码,默认022表示权限为755)。
  2. 允许匿名用户拥有更高级别权限

    • anon_upload_enable=YES允许匿名用户上传文件(默认注释,需取消注释)。
    • anon_mkdir_write_enable=YES允许匿名用户创建目录(默认注释,需取消注释)。
    • anon_other_write_enable=YES允许匿名用户进行删除、重命名、覆盖等操作(需手动添加此项配置)。
  3. 重启vsftpd服务并关闭防火墙

    防火墙和SELinux核心防护必须关闭。

    systemctl restart vsftpd    # 重启vsftpd服务
    systemctl stop firewalld    # 关闭防火墙,允许外部访问FTP服务
    setenforce 0                # 临时关闭SELinux
    

3. 匿名访问测试

  1. 设置匿名用户默认根目录

    chmod 777 /var/ftp/pub/   
    # 设置目录权限,允许匿名用户进行读写操作
    echo 'hello world!' > /var/ftp/pub/test.txt   
    # 创建测试文件
    
  2. 在Windows系统中测试FTP访问

    1. 打开命令提示符(cmd)。

    2. 输入以下命令连接FTP服务器:

      ftp 192.168.65.2
      
    3. 使用匿名用户访问,用户名为ftp,密码为空,直接回车登录。

    4. 使用以下命令测试匿名用户访问:

      ftp> pwd            # 查看当前目录,为Linux系统的/var/ftp/目录
      ftp> ls             # 列出当前目录内容
      ftp> cd pub         # 进入pub目录
      ftp> get test.txt   # 下载文件
      ftp> put test2.txt  # 上传文件
      
    5. 下载的文件在当前Windows登录用户的用户文件夹根目录下(如用户名为 aaa,则根目录在 C:\Users\aaa ),此时目录下即可看到test.txt的文件成功下载。

注意: 匿名用户权限过高会带来安全隐患,建议谨慎使用。

4. 本地用户访问FTP的配置

  1. 创建本地用户并设置密码

    id zhangsan
    id lisi 
    # 检查是否存在zhangsan和lisi用户
    
    useradd zhangsan
    echo '123' | passwd --stdin zhangsan
    
    useradd lisi
    echo '123' | passwd --stdin lisi
    
  2. 配置vsftpd允许本地用户访问

    vim /etc/vsftpd/vsftpd.conf
    

    配置项:

    • local_enable=YES启用本地用户访问
    • anonymous_enable=NO禁止匿名用户访问
    • write_enable=YES开放服务器的写权限(若要上传必须开启)。
    • local_umask=077设置上传文件仅宿主用户可访问(反掩码,077表示权限为700)。

    再次尝试登录测试,成功访问,并且可以修改任何目录文件。默认登录目录为登录的用户名的家目录,如 /home/zhangsan

  3. 限制本地用户的访问目录

    vim /etc/vsftpd/vsftpd.conf
    

    配置项:

    • chroot_local_user=YES将本地用户限制在宿主目录中(默认注释,需开启)。
    • allow_writeable_chroot=YES允许被限制的用户主目录具有写权限(需手动添加)。
  4. 重启vsftpd服务

    systemctl restart vsftpd
    
  5. 测试本地用户访问
    在Windows系统中,使用命令提示符连接FTP服务器:

    ftp 192.168.233.21
    

    使用zhangsan作为用户名,123作为密码。测试更改目录操作:

    ftp> cd /etc
    ftp> cd /home
    

    若返回550 Failed to change directory,则说明已成功限制用户访问。

    此时用户访问被限制在当前用户 zhangsan 的家目录下(但是显示为“/”根目录),且只能修改此处目录下的内容。

5. 修改匿名用户和本地用户的默认根目录

  1. 修改配置文件
    配置项:

    vim /etc/vsftpd/vsftpd.conf
    
    • anon_root=/var/www/html设置匿名用户的根目录
    • local_root=/var/www/html设置本地用户的根目录

6. 黑名单与白名单的使用

黑名单:在黑名单上标记的用户是禁止访问的对象。

白名单:在白名单上标记的用户是允许访问的对象,白名单比黑名单的制定更为严格和安全。

  1. 修改user_list文件内容

    user_list用户列表文件默认存在于 ****/etc/vsftpd/ 目录下,在其中添加修改用户名,再配置 vsftpd.conf 即可。

  2. 启用黑名单

    vim /etc/vsftpd/vsftpd.conf
    

    配置项:

    • userlist_enable=YES启用user_list用户列表文件(默认存在且开启)。
    • userlist_deny=YES设置为黑名单模式,禁止列表中的用户访问(需手动添加)。
  3. 启用白名单

    vim /etc/vsftpd/vsftpd.conf
    

    配置项:

    • userlist_enable=YES启用user_list用户列表文件
    • userlist_deny=NO设置为白名单模式,仅允许列表中的用户访问

    注:报错的话可以使用 journalctl -xe 详细模式查看日志的尾部消息,并分析。若再报错或无法分析,可以使用备份文件,只在备份文件中修改黑白名单即可。

  4. 使用root用户登录FTP
    如果需要允许root用户登录FTP服务,需要在ftpusers文件中注释掉root用户:

    vim /etc/vsftpd/ftpusers
    

    注释掉root所在的行即可。

  5. 测试黑名单与白名单
    在Windows系统中,使用FTP命令连接服务器测试用户访问权限:

    ftp 192.168.233.21
    

    尝试使用黑名单中的用户登录,会返回530 Permission denied

7. 使用Windows文件资源管理器登录

在Windows文件资源管理器地址栏按照如下格式输入地址:

ftp://lisi@192.168.65.2

以上即为vsftpd的安装与配置详解,配置过程中需注意用户权限的设置,确保系统安全性。

8. 拓展FTP的使用场景

场景一:搭建YUM仓库

可用于通过FTP搭建YUM仓库,可以让多个Linux客户端从FTP服务器获取软件包,简化软件的分发与安装过程。

步骤1:准备YUM仓库

  1. 创建YUM仓库目录
    在FTP服务器上,创建YUM仓库的存储目录:

    mkdir -p /var/ftp/pub/yum-repo   # 创建YUM仓库目录
    
  2. 复制RPM包
    将RPM包复制到该目录下:

    cp /path/to/rpms/*.rpm /var/ftp/pub/yum-repo/   # 复制RPM包到仓库目录
    
  3. 生成YUM仓库元数据
    使用createrepo工具生成YUM仓库的元数据:

    yum install -y createrepo   # 安装createrepo工具
    createrepo /var/ftp/pub/yum-repo/   # 生成仓库元数据
    

步骤2:配置FTP服务

  1. 确保FTP服务器配置正确
    确保FTP服务已启动,并且配置允许匿名用户访问。编辑/etc/vsftpd/vsftpd.conf

    anonymous_enable=YES      # 允许匿名用户访问
    write_enable=YES          # 允许写操作(如上传文件)
    anon_upload_enable=NO     # 禁止匿名用户上传文件
    anon_mkdir_write_enable=NO # 禁止匿名用户创建目录
    

    重启FTP服务以应用更改:

    systemctl restart vsftpd
    
  2. 设置目录权限
    确保YUM仓库目录的权限正确:

    chmod -R 755 /var/ftp/pub/yum-repo/   # 设置目录和文件的读权限
    

步骤3:客户端配置

  1. 配置YUM源
    在客户端上,创建一个新的YUM源配置文件:

    vim /etc/yum.repos.d/ftp.repo
    

    文件内容如下:

    [ftp-yum-repo]
    name=FTP YUM Repository
    baseurl=ftp://192.168.65.2/pub/yum-repo/
    enabled=1
    gpgcheck=0
    
  2. 测试YUM源
    运行以下命令测试YUM源是否配置成功:

    yum clean all
    yum repolist   # 列出可用的YUM源,检查是否包含ftp-yum-repo
    
  3. 安装软件包
    从FTP服务器的YUM仓库中安装软件包:

    yum install -y <package-name> # 安装指定软件包
    

场景2:其他场景

除了搭建YUM仓库外,FTP还可用于以下场景:

  1. 远程备份与恢复
    • 备份数据库: 数据库管理员可以定期将数据库备份文件上传到FTP服务器进行存档。
    • 恢复数据: 在数据丢失时,可以通过FTP从备份服务器中恢复数据。
  2. 网站部署
    • 静态网站托管: 将网站的HTML、CSS、JS等静态文件上传至FTP服务器,作为简单的静态网站托管服务。
    • 动态网站的文件更新: 网站管理员通过FTP更新网站上的文件(如PHP文件或配置文件)。
  3. 文件共享与分发
    • 内部文件共享: 通过FTP服务器在公司内部共享文件,便于员工间的资料分发。
    • 外部客户下载: 为客户提供FTP账户,通过FTP服务器下载大型文件或软件包。

9. 注意事项

  1. 安全性: FTP传输不加密,建议在需要安全传输的场景下使用FTPS或SFTP。
  2. 权限管理: 根据不同场景设置FTP用户的权限,避免不必要的安全风险。
  3. 防火墙设置: 确保防火墙配置允许FTP相关的端口(如21)通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值