Linux大神进阶十七:FTP服务优化管理

文章目录

  • 1.理解
  • 2.用户访问类型
  • 3.实验环境的配置
  • 4.vsftpd服务的配置参数设定
  • 5.vsftpd服务实验结果
    • 5.1匿名用户的设置
    • 5.2 本地用户的设定
    • 5.3虚拟用户的设定
  • 6.实验排错

1.理解

(1)文件传输协议FTP —File Transfer Protocol):用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。 在 FTP 的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。
(2)非常安全的FTP服务Vsftpd—very secure FTP daemon):安全性是它的一个最大的特点。vsftpd是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的FTP 服务器所不支持的特征。

信息 目录
软件安装包 vsftpd
默认发布目录 /var/ftp
默认发布目录的子目录 /var/ftp/pub/
协议接口 21/tcp
服务配置文件 /etc/vsftpd/vsftpd.conf
查看看该服务的配置文件 rpm -qc vsftpd
日志文件 /etc/logrotate.d/vsftpd
认证文件 /etc/pam.d/vsftpd
黑名单文件 /etc/vsftpd/ftpusers
用户名单文件 /etc/vsftpd/user_list
配置文件 /etc/vsftpd/vsftpd.conf

2.用户访问类型

客户端访问时, 用户身份可以分为:
1). 匿名用户:没有指定用户身份, ftp身份实现从服务器上传和下载文件;
2). 本地用户: -u指定用户身份,用户是服务器端的用户;
3). 虚拟用户: -u指定用户身份,但是服务器端并不存在该用户(id username),没有指定用户身份。

3.实验环境的配置

步骤 命令 注释
1. 配置yum源
1.1本地镜像挂载(1) mkdir /var/www/html/rhel7.3 ## 创建挂载目录
(2) mount root/Desktop/iso/rhel-server-7.3-x86_64-dvd.iso /var/www/html/rhel7.3 挂载镜像
1.2yum源搭建 (1) cd /etc/yum.repos.d ## 进入/etc/yum.repos.d文件夹下
(2) rm -rf * ##将多余的.repo文件清除
(3) vim yum.repo ## 建立新的.repo文件
(4) [rhel7.3]>>>name=rhel7.3>>>baseurl=file:///var/www/html/rhel7.3>>>gpgcheck=0 ## 编辑
1.3验证yum源 yum repolist ##yum源搭载成功
2.使用http共享yum源
(1) yum whatprovides httpd ##查找httpd的安装包
(2) yum install httpd-2.4.6-45.el7.x86_ 64 ##yum安装httpd
(3) systemctl start httpd ## 开启http服务
(4) systemctl enable httpd ##自启动http服务
(5) systemctl stop firewalld
(6) systemctl disable firewalld ## 开机不启动防火墙
(7) mount root/Desktop/iso/rhel-server-7.3-x86_64-dvd.iso /var/www/html/rhel7.3 挂载镜像
(8) df ##在浏览器中查看yum是否分享成功
3.共享yum源到虚拟机中
(1) ifconfig ##查看虚拟机网络
(2) cd /etc/sysconfig/network-scripts/ ##入/etc/sysconfig/network-scripts/目录
(3) vim ifcfg-eth0 ## 打开配置文件
(4) BOOTPROTO=none ##静态配置网络IP
IPADDR=172.25.19.251 ## 和真机在同一网段上
NETMASK=255.255.255.0 ## 子网掩码的配置
DEVICE=eth0 ##eth0网卡
ONBOOT=yes ## 开机激活
(5) systemctl restart network ##重启网络查看是否配置成功
(6) ifconfig ## 查看ip
(7) ping 172.25.19.250 ## 查看是否连通
(8) cd /etc/yum.repos.d目录 ## 进入/etc/yum.repos.d目录
(9) rm -rf * ## 清空该目录
(10) vim yum.repo ## 打开配置文件
(11) [rhel7.3]>>>name=rhel7.3>>>baseurl=http://172.25.19.250/rhel7.3>>>gpgcheck=0 ## 编辑
(12) yum clean all ##清空所有的YUM信息
(13)验证yum源 yum repolist ##yum源搭载成功
4.安装vsfp服务
yum install vsftpd -y ## 安装vsfp服务
systemctl start vsftpd ## 启动vsfp服务
systemctl enable vsftpd ##开机自启动vsfp服务
systemctl stop firewalld ## 关闭防火墙
systemctl disable firewalld ####开机自关闭防火墙
yum install lftp -y ## 安装lftp服务
lftp ip ####能登陆并且显示,表示安装成功
5. 注意 ## 机房做实验找不到yum源的方案
(1) vim /etc/hosts ## 打开配置文件
(2) 172.25.254.197 content.example.com ##添加老师的ip信息

步骤1:配置yum源
在这里插入图片描述 步骤2.使用http共享yum源
在这里插入图片描述步骤3:虚拟机共享yum源

Linux大神进阶十七:FTP服务优化管理_第1张图片步骤4.安装vsfp服务
Linux大神进阶十七:FTP服务优化管理_第2张图片步骤5.注意

4.vsftpd服务的配置参数设定

注意:vsftpd文件信息
/var/ftp ##默认发布目录
/etc/vsftpd ##配置目录
/etc/vsftpd/vsftpd.conf ##vsftp 的配置文件,修改完之后需要进行重启

功能 命令 注释
1. 匿名用户设定 ##注意修改配置文件,先复制,再进行修改;注意还原
1.1匿名用户登陆限制
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) anonymous_enable=YES NO
systemctl restart vsftpd ## 重启服务
1.2 匿名用户上传
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) write_enable=YES ## 可写
(vim) anon_upload_enable=YES ##可下载
(vim) anonymous_enable=YES NO
systemctl restart vsftpd ## 重启服务
chgrp ftp /var/ftp/pub ## 修改用户组
chmod 775 /var/ftp/pub ##修改写权限
1.3 匿名用户家目录修改 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) anon_root=/var ## 修改默认家目录
systemctl restart vsftpd ## 重启服务
1.4 匿名用户上传文件默认权限修改 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) anon_umask=xxx ##文件的权限为666-xxx
systemctl restart vsftpd ## 重启服务
1.5 匿名用户建立目录 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) anon_mkdir_write_enable=YES NO
systemctl restart vsftpd ## 重启服务
1.6 匿名用户下载 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) anon_world_readable_only=YES NO
systemctl restart vsftpd ## 重启服务
1.7匿名用户删除 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) anon_other_write_enable=YES NO
systemctl restart vsftpd ## 重启服务
1.8匿名用户使用的用户身份修改 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) chown_uploads=YES ## 允许上传
(vim) chown_username=student ## 修改用户为student
(vim) chown_upload_mode=0644 ## 上传的模式
systemctl restart vsftpd ## 重启服务
1.9最大上传速率 ## kb
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) anon_max_rate=102400 ## 最大传输速102400b(/2^10Kb)
dd if =/dev/zero of=/var/ftp/pub/group bs=1M count=100 ##给定文件大小进行下载
systemctl restart vsftpd ## 重启服务
1.10 最大链接数 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) max_clients=2 ## 最大链接数为2
systemctl restart vsftpd ## 重启服务
##
2.本地用户设定 ##
2.1本地用户登陆限制
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) local_enable=YES NO
systemctl restart vsftpd ## 重启服务
2.2 本地用户写权限设定 write_enable=YES|NO 默认状态下YES可以登录, 进行写操作
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) write_enable=NO 限制写操作
systemctl restart vsftpd ## 重启服务
2.3 本地用户家目录修改 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) local_root=/var ## 修改默认家目录
systemctl restart vsftpd ## 重启服务
2.4 本地用户上传文件默认权限修改 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) local_umask=xxx ##修改权限
systemctl restart vsftpd ## 重启服务
2.5限制本地用户浏览/目录 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) chroot_local_user=YES ##所有用户被锁定到自己的家目录中
systemctl restart vsftpd ## 重启服务
chmod u-w /home/* ## 去掉写权限
2.6 本地黑名单的建立
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) chroot_local_user=NO ## 黑名单:NO
(vim) chroot_list_enable=YES ##黑名单生效
(vim) chroot_list_file=/etc/vsftpd/chroot_list ##
vim /etc/vsftpd/chroot_list ##临时黑名单
systemctl restart vsftpd ## 重启服务
2.7本地白名单的建立
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) chroot_local_user=YES ## ## 白名单:YES
(vim) chroot_list_enable=YES ####白名单生效
(vim) chroot_list_file=/etc/vsftpd/chroot_list ##白名单链接
vim /etc/vsftpd/chroot_list ##临时白名单
systemctl restart vsftpd ## 重启服务
2.8 限制本地用户登录
2.8.1 白名单设定
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) userlist_deny=NO ## 白名单
vim /etc/vsftpd/user_list ##临时白名单,只在名单中出现的用户可以登陆ftp
systemctl restart vsftpd ## 重启服务
(2)黑名单的设定 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) userlist_deny=YES ##黑名单
vim /etc/vsftpd/user_list ##临时黑名单,只在名单中出现的用户不可以登陆ftp
systemctl restart vsftpd ## 重启服务
3. ftp虚拟用户的设定
3.0实验准备
配置yum源 ##
yum install vsftpd -y
systemctl start vsftpd ## 启动vsfp服务
systemctl enable vsftpd ##开机自启动vsfp服务
systemctl stop firewalld ## 关闭防火墙
systemctl disable firewalld ####开机自关闭防火墙
setenforce 0 ##关闭selinux服务
vim /etc/sysconfig/selinux
SELINUX=disabled ## 强制关闭(关机生效)
3.1虚拟用户的登录
0) useradd -s /sbin/nologin johnsonlee ## 在创建虚拟用户前我们需要创建一个不可登陆的用户
1). 创建虚拟帐号身份的文件 ## (注意: 不要出现空行或者多余的空格)
vim /etc/vsftpd/loginusers ## ##文件名称任意 ,用户以及密码
(vim) ftpuser1 ## 用户1
(vim) 123 ##密码1
(vim) ftpuser1 ## 用户2
(vim) 123 ####密码2
(vim) ftpuser3 ## 用户3
(vim) 123 ####密码3
2). 对用户帐号和密码进行加密 ##
db_load -T -t hash -f /etc/vsftpd/loginusers /etc/vsftpd/loginusers.db ##加密
chmod 600 /etc/vsftpd/loginusers* ##修改权限
3). 编辑帐号和密码处理的库文件 ## 可以到相应的系统文件下查看
vim /etc/pam.d/ljftpd ## 此时的文件名可以任意修改
(vim) account required pam_userdb.so db=/etc/vsftpd/loginusers ## 用户
(vim) auth required pam_userdb.so db=/etc/vsftpd/loginusers ##密码
4). 配置vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) pam_service_name=ljftpd ## 虚拟用户信息认证文件名称
(vim) guest_enable=YES ##虚拟用户开启
systemctl restart vsftpd ## 重启服务
5)虚拟帐号家目录独立设定) (vim) guest_username=johnsonlee ##
chmod u-w /home/ftpuser ## 去掉写权限
6)client lftp ip -u username ##用户进行验证
3.2虚拟用户的操作 ## 上面的实验为基础
1.server)虚拟帐号家目录独立设定 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
local_root=/johnsonlee_home/$USER ## 修改用户
user_sub_token=$USER ## 用户标签匹配
systemctl restart vsftpd ## 重启服务
mkdir /johnsonlee_home ##创建根目录
chgrp johnsonlee /johnsonlee_home ## 改组
chmod g+s /johnsonlee_home ##修改权限
mkdir /johnsonlee_home/ftpuser{1…3} ##创建目录
mkdir /johnsonlee_home/ftpuser1/curry1 ##常见文件1
mkdir /johnsonlee_home/ftpuser2/curry2 ##创建文件2
mkdir /johnsonlee_home/ftpuser3/curry3 ##创建文件3
2) 测试client lftp ip -u username ## 进入虚拟用户
ls ## 查看文件
3.3虚拟帐号配置独立) ##1). ftpuser1用户上传和下载文件限速;2). ftpuser2用户上传和下载文件不限速, 并且可以上传文件;
1)用户1的设定 ##
vim /etc/vsftpd/vsftpd.conf ## 打开配置文件
(vim) user_config_dir=/etc/vsftpd/conf.d ## 修改目录
systemctl restart vsftpd ## 重启服务
mkdir /etc/vsftpd/conf.d ## 创建目录(任意,对应)
cd /etc/vsftpd/conf.d ## 打开目录
touch ftpuser{1…2} ## 创建用户目录
vim /etc/vsftpd/conf.d/ftpuser1 ## 打开配置文件
(vim) anon_max_rate=1024 ## 在此文件中设定配置文件中的所有参数,此文件的优先级高
2)用户2的设定 ##
vim /etc/vsftpd/conf.d/fptuser2 ## 打开配置文件
(vim) anon_upload_enable=YES ## 允许上传
(vim) write_enable=YES ##可写
systemctl restart vsftpd ## 重启服务
mkdir /etc/vsftpd/conf.d/fptuser2/upload ## 修改用户
chown johnsonlee /etc/vsftpd/conf.d/fptuser2/upload ## 修改用户权限
3)测试
server dd if=/dev/zero of= /etc/vsftpd/conf.d/ftpuser1 bs=1M count=100 ## 文件1大小修改
server dd if=/dev/zero of= /etc/vsftpd/conf.d/ftpuser2 bs=1M count=100 ## 文件2大小修改
desktop lftp 172.25.19.251 -u ftpuser1 >get curry1 ##速度较慢
desktop lftp 172.25.19.251 -u ftpuser2 >get curry2 ## 速度较快;默认
desktop lftp 172.25.19.251 -u ftpuser2>cd upload > put /etc/passwd ##可以进行上传;注意根目录下不能上传

5.vsftpd服务实验结果

5.1匿名用户的设置

Result5.1.1匿名用户的登录限制
Linux大神进阶十七:FTP服务优化管理_第3张图片Result5.1.2匿名用户上传
Linux大神进阶十七:FTP服务优化管理_第4张图片
Result5.1.3匿名用户家目录修改

Linux大神进阶十七:FTP服务优化管理_第5张图片
Result5.1.4匿名用户上传文件默认权限修改

Linux大神进阶十七:FTP服务优化管理_第6张图片
Result5.1.5匿名用户建立目录

Linux大神进阶十七:FTP服务优化管理_第7张图片
Result5.1.6匿名用户下载

Linux大神进阶十七:FTP服务优化管理_第8张图片
Result5.1.7匿名用户删除

Linux大神进阶十七:FTP服务优化管理_第9张图片
Result5.1.8匿名用户使用的用户身份修改

Linux大神进阶十七:FTP服务优化管理_第10张图片
Result5.1.9最大上传速率

Linux大神进阶十七:FTP服务优化管理_第11张图片
Result5.1.10匿名用户最大链接数Linux大神进阶十七:FTP服务优化管理_第12张图片

5.2 本地用户的设定

Result5.2.1本地用户的登录
Linux大神进阶十七:FTP服务优化管理_第13张图片
Result5.2.2本地用户的写权限限制
Linux大神进阶十七:FTP服务优化管理_第14张图片
Result5.2.3本地用户家目录修改
Linux大神进阶十七:FTP服务优化管理_第15张图片
Result5.2.4本地用户的上传文件权限

Linux大神进阶十七:FTP服务优化管理_第16张图片
Result5.2.5 限制本地用户浏览/目录所有用户被锁定到自己的家目录中

Linux大神进阶十七:FTP服务优化管理_第17张图片
Result5.2.6用户黑名单建立

Linux大神进阶十七:FTP服务优化管理_第18张图片
Result5.2.7用户白名单建立

Linux大神进阶十七:FTP服务优化管理_第19张图片
Result5.2.8(1)限制本地用户登陆——用户黑名单

Linux大神进阶十七:FTP服务优化管理_第20张图片
Result5.2.8(2)限制本地用户登陆——用户白名单

Linux大神进阶十七:FTP服务优化管理_第21张图片

5.3虚拟用户的设定

Result5.3.1虚拟用户的登录
Linux大神进阶十七:FTP服务优化管理_第22张图片Result5.3.2虚拟用户的操作
Linux大神进阶十七:FTP服务优化管理_第23张图片RESULT5.3.3虚拟帐号配置独立
Linux大神进阶十七:FTP服务优化管理_第24张图片

6.实验排错

id 错误类型 解决
500文件系统权限过大 oops cannot change directory :/root (1)setsebool ftpd_disable_trans 1 (2) systemctl restart vsftpd (3)由于我的粗心大意在设置单个用户的访问目录时写错了用户目录,也导致了以上错误,请先确认访 问目录没有问题
500 文件系统权限过大 oops:vsftpd:refusing to run with writable root inside chroot() vsftpd匿名用户的默认目录是/home/ftpsize,但是现在设置成了目录“/”下,也就是根目录,在vsftpd新版本中例如现在的2.3.5已经不再推荐使用根目录,可以在外层加一层目录,并设置其权限为不可为全部权限;例如设置为/vsftp/abc >>>chmod u-w /var/ftp/pub
530 用户认证失败 Login incorrect (1) 确认用户名密码正确 passwd username(2) 仔细查看配置文件vsftpd.conf正确: 编写主配置文件(注意: 不要出现空行或者多余的空格);
550 服务本身功能未开放 systemctl restart vsftpd
553.本地文件系统权限过小 Could not create file (1)主配置文件没有重启;systemctl restart vsftpd(2)selinux没有关闭; setenforce 0

你可能感兴趣的:(1.1,Linux大神进阶(基础篇))