2-1单元-文件服务器三剑客之一FTP服务器

本文详细介绍了FTP服务器的功能,vsftpd服务的基础设置,包括实验环境的搭建,配置文件的解析,以及如何处理常见错误。深入讲解了匿名用户、实体用户和访客登录的设置值,还提供了虚拟用户权限独立的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                      文件服务器之一FTP服务器

< 一 > FTP 功能简介

简介:

FTP(File Transfer Protocol)是相关当古老的传输协议之一,它最主要的功能是在服务器与客户端之间进行文件传输。这个传输协议使用的是明文传输方式(有很多安全隐患)。

功能:

  • 不同等级的用户身份:① 实体用户 user 、② 访客  guest 、③ 匿名用户 anonymous ;
  • 命令记录与日志文件记录 —— 利用系统的 syslogd 来进行数据记录,在 /var/log/里查找各项日志信息 ;
  • 限制用户活动的目录:(change root , 简称 chroot)将用户的工作范围局限在用户主目录下面 ;

 < 二 > vsftpd (Very Secure FTP Deamon)服务器基础设置

1 )实验环境:

server主机(服务器)

  • 主机名 —— sever_node1.westos.com
  • ip         —— 172.25.254.20
  • selinux 关闭状态 —— vim /etc/selinux/config   修改selinux配置文件 ;     getenforce   查看当前selinux状态 (Disabled)  ;
  • 火墙开启状态 ——  ( firewall-cmd --permanent --add-source=172.25.254.10 --zone=trusted )

systemctl enable --now firewalld  ;

firewall-cmd --list-all 查看;

firewall-cmd --permanent --add-service=ftp 添加信任软件服务;

systemctl restart firewalld 重启火墙 ;

  • dnf命令 安装vsftpd服务软件 —— dnf install vsftpd -y    ;   systemctl enable --now vsftpd  ;

client主机 (客户端)

  • 主机名 —— client_westos-user.com
  • ip         —— 172.25.254.10
  • selinux 关闭状态 —— vim /etc/selinux/config  修改selinux配置文件  ;  getenforce   查看当前selinux状态 (Disabled) ;
  • dnf命令 安装vsftpd服务软件 —— dnf install vsftpd -y    ;   systemctl enable --now vsftpd  ;
  • dnf安装 lftp 协议文本浏览器 ——dnf install lftp -y  ;

FTP服务器测试:

  • vim /etc/vsftpd/vsftpd.conf  —— 12行 anonymous_enable=YES  # 设置为允许 anonymous匿名用户登录 vsftpd主机
  • firefox file://172.25.254.20   /  lftp 172.25.254.20 (lftp 访问方式 必须能列出资源信息才算访问成功)

2 )vsftpd 基本信息

服务名称:

vsftpd.service

配置文件:

/etc/vsftpd/vsftpd.conf

默认匿名用户根目录:

/var/ftp/

主要执行文件:

/usr/sbin/vsftpd

常见报错信息:

  • 500   # 权限过大
  • 530   # 认证失败
  • 550   # 程序本身拒绝
  • 553   # 文件系统权限限制

3 )vsftpd.conf 配置值说明

3-1-匿名用户登录的设置值

  • anonymous_enable=YES (NO)

设置为允许 anonymous (匿名用户)登录 vsftpd主机

  • anon_root=/westosdir

改变家目录

  • anon_world_readable_only=YES (NO)

仅允许 anonymous (匿名用户)具有下载可读文件的权限,默认为YES

  • anon_other_write_enable=YES (NO)

是否允许 anonymous (匿名用户)具有除了写入之外的权限,包括删除、修改、重命名等权限,默认为 NO。

如要设置YES,开放给 anonymous (匿名用户)写入的文件目录需要调整权限,让vsftpd的 PID 拥有者可以写入才行。

  • anon_mkdir_write_enable=YES (NO)

是否允许 anonymous (匿名用户)具有建立目录的功能,默认 NO。

如要设置YES,anon_other_write_enable=YES 必须设置

  • anon_upload_enable=YES (NO)

是否允许 anonymous (匿名用户)具有上传数据的功能,默认 NO。

如要设置YES,anon_other_write_enable=YES 必须设置

  • anon_max_rate=0 (bytes/秒) —— 0 不限制传输速度 (有最大宽带所限制)

anon_max_rate=30000 (bytes/秒) —— 传输速率为30 KB/s

  • anon_umask=022 —— 限制 anonymous 上传文件权限,022 则传输文件权限是 -rwr--r---

例 限制匿名用户 传输文件权限 ,unmask(默认权限)为022    (文件权限 777-022-111=644!!)

例  限制匿名用户同时登录的最大连接数量为3,总传输带宽最大为1024kb/s

  • vim  /etc/vsftd/vsftpd.conf
  • anon_max_rate=1048576   (bytes/second)      # 总传输带宽最大为1024kb/s  (1024*1024=1048576)
  • max_clients=3                                                    # 用户同时登录的最大连接数量为3
  • systemctl restart vsftpd

 

 例 让匿名用户可上传/下载自己资料

  • vim  /etc/vsftpd/vsftpd.conf
  • write_enable=YES                                # user(实体用户-包含具有ftp用户权限的匿名用户)具有写入的权限
  • anon_other_write_enable=YES          # anonymous (匿名用户)具有除了写入之外的权限,包括删除、修改、重命名等权限
  • anon_mkdir_write_enable=YES         # anonymous (匿名用户)具有建立目录的功能
  • anon_upload_enable=YES                 # anonymous (匿名用户)具有上传数据的功能
  • systemctl restart vsftpd
  • mkdir /var/ftp/pub                # 建立匿名用户默认登录的家目录下的共享目录
  • chgrp ftp /var/ftp/pub       # 目录拥有组为ftp
  • chmod 775 /var/ftp/pub    # 更改权限使ftp权限的用户拥有最大权利

 

3-2-实体用户登录的设置值

  • local_enable=YES (NO)

这个设置值必须为YES时,在/etc/passwd 内的账号才能以实体用户的方式登录vsftpd服务器

  • local_root=/software

   改变实体用户家目录

  • write_enable=YES (NO)

是否允许 user(实体用户)具有写入的权限

  • local_max_rate=0 (bytes/秒) —— 0 不限制传输速度 (有最大宽带所限制)

例 用户具有上传文件的权限,但不可以(下载/删除/修改)文件,只有指定用户(westos)可以

  • vim  /etc/vsftd/vsftpd.conf
  • chown_uploads=YES                   # 上传文件拥有者默认为上传用户
  • chown_username=westos           #  指定上传文件的拥有者为 westos用户
  • chown_upload_mode=0644         #  设置上传文件的用户权限为644 ,默认600
  • systemctl restart vsftpd

 

  • chroot_local_user=YES (NO)

是否将用户限制在自己用户主目录内(chroot)?

 

  • chroot_list_enable=YES (NO)

是否启用chroot 写入列表功能?

  • chroot_list_file=/etc/vsftpd.chroot_list

与chroot_local_user 有关

 

  • userlist_enable=YES (NO)

用户名单,借助vsfypd 的阻挡机制处理不受欢迎的账号

  • userlist_deny=YES (NO)

当userlist_enable=YES 时才会生效,若设置YES,用户账号被列入某文件时,在该文件内的用户将无法登录vsfypd服务器

  • user_list_file=/etc/vsftpd.user_list

当userlist_deny=YES 时才会生效,则这个文件内的账号将无法登录vsfypd服务器

3-3-访客登录的设置值

  • guest_enable=YES (NO)

若这个值设置为 YES 时,那么任何实体账号,均会被假设成为 guest (访客),默认NO 。访客在 vsftpd 当中,默认取得 ftp 这个用户的权限,可以通过 guest_username 来修改。

  • guest_username=ftp (other user)

在guest_enable=YES 时才会生效,指定访客的用户身份

 附1:虚拟用户的建立以及vsftp服务设置

1 )建立虚拟用户账号

  • cd /etc/vsftpd/
  • vim westos_user

  • db_load -T -t hash -f westos_user  westos_user.db
  • rpm -qc vsftp
  • cd /etc/pam.d/
  • vim westos_ftp

  • vim /etc/vsftpd/vsftpd.conf

  • systemctl restart vsftpd

2 ) 虚拟用户家指定目录建立

  • mkdir -p /virtuserdir/westos{1..3}/pub
  • touch /virtuserdir/westos1/westos1file
  • touch /virtuserdir/westos2/westos2file
  • touch /virtuserdir/westos3/westos3file
  • chmod 775 /virtuserdir/westos{1..3}/pub
  • chgrp ftp /virtuserdir/westos{1..3}/pub

3 ) 修改配置文件vsftpd.conf,指定虚拟用户登录根目录路径

  • vim /etc/vsftpd/vsftpd.conf

  • systemctl restart vsftpd

 4 )测试虚拟用户登录 (172.25.254.10 客户端主机)

 附2:虚拟用户权限独立——vsftp服务的设置

1 )验证虚拟用户权限独立-测试环境

  • vim /etc/vsftpd/vsftpd.conf   (禁止虚拟用户上传文件!!)

  • systemctl restart vsftpd

2 )建立虚拟用户独立配置文件

  • mkdir /etc/vsftpd/user.conf
  • touch /etc/vsftpd/user.conf/user2
  • vim /etc/vsftpd/user.conf/user2

  •  vim /etc/vsftpd/vsftpd.conf     # 指定子配置文件访问路径

  • systemctl restart vsftpd

3 )测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值