Linux中的vsftpd服务的部署及优化
1.vsftpd安装及启用
需要先配置好主机网络
挂载镜像并搭建本地软件仓库:
安装vsftp软件包:
开启vsftp服务并关闭防火墙:
关闭selinux:
测试安装发布:
安装lftp服务(ftp协议文本浏览器):
2.vsftpd基本信息
报错信息情况:
530 认证失败(一般是密码输错了或不让访问)
要访问的用户关闭了匿名访问服务:
编辑vsftp主配置文件,然后把这里改成no:
重启vsftp服务,然后用lftp访问失败,报错为530:
550 程序本身拒绝(功能本身不让用)
由于访问的主机用户没有开启匿名用户建立目录的权限,所以这里程序拒绝匿名用户建立目录的操作:
553 文件系统权限限制(权限过小)
编辑主配置文件,把允许匿名用户上传改为yes:
重启服务后访问westos用户下的Public目录后上传文件,报错553,因为这个目录的拥有人和拥有组都为root而且没有开启其他用户可写的权限:
500 权限过大(一般是安全有问题才会出现这样的报错)
3.匿名用户访问控制
(1)如何让匿名用户可以访问
编辑文件 /etc/vsftpd/vsftpd.conf
把这里的允许匿名访问修改成yes:
重启vsftp服务:
可以在浏览器中通过ftp访问到这台主机的文件:
如果在用lftp访问时可以通过ls命令列出文件,则说明通过ftp服务共享资源成功:
此访问方式必须能列出资源才算访问成功
如果通过ls命令无法列出文件,则说明通过ftp服务共享资源未完成:
可以通过lftp访问到一台主机上的某个用户,输入这个命令后访问的是这个用户的家目录:
(2)修改默认ftp访问目录
通过lftp服务访问主机上时默认的访问目录为下图目录:
建立 /westos 下的10个文件:
编辑文件:
这里意为其他用户用lftp访问时访问的目录为 /westos 目录:
测试:
编辑完文件后重启vsftp服务然后可以列出刚才在 /westos 目录下建立的10个文件,则说明访问的是 /westos 目录:
(3)匿名用户建立目录控制
匿名用户访问主机后建立目录失败:
编辑主配置文件:
需要开启匿名用户访问然后注释掉访问目录即会访问默认目录(也可以不注释):
把这里改成yes:
需要把 /var/ftp/pub 这个目录的权限设置为775让拥有组可写并且让拥有组变为ftp组,然后就可以建立目录了:
(4)匿名用户上传文件控制
编辑主配置文件,把允许匿名用户上传改为yes:
重启服务后进入已经修改过权限和拥有组的pub目录后可以上传文件:
(5)匿名用户下载控制
anon_world_readable_only=NO 匿名用户可以下载不能读的文件
编辑文件内容:
下图红框中内容改为NO:
重启服务后进入pub目录可以下载文件passwd却下载不了目录westos:
(6)匿名用户删除文件控制
anon_other_write_enable=YES|NO
编辑文件:
写入下图红框中内容:
重启服务后进入pub目录可以删除文件passwd:
(7)匿名用户上传文件时系统保留的权限设定
anon_umask=xxx
anon_umask=022 当设定chown_username之后上传文权限将不是用此参数设定
编辑主配置文件:
写入下图红框内容
重启服务后匿名访问,进入pub目录下上传文件并且上传的文件权限为644:
(8)匿名用户上传文件的用户身份及文件权限设定
chown_upload=YES
chown_username=lee
chown_upload_mode=0644
编辑主配置文件:
红框内第一个参数为yes时指启动上传的文件的身份与权限更改功能
红框内第二个参数为westos时意为使上传的文件拥有者为westos用户(这个用户必须在ftp服务器中存在)
红框内第三个参数为0644时意为使上传的文件的权限为0644。并且在设定这个参数后之前如果有设定anon_umask这个参数的值,上传的文件的权限值不再由anon_umask这个参数设定
重启服务后匿名访问,进入pub目录后上传文件passwd,上传的文件权限值为0644且拥有者为westos用户:
(9)访问数量控制
max_clients=2
编辑主配置文件:
写入红框内容,内容为最大访问的用户数目为2
编辑文件完毕后保存退出重启服务,然后尝试多个用户访问这个ip:
第一个匿名用户访问这个ip:
第二个匿名用户访问这个ip:
第三个匿名用户访问这个ip:
报错:访问的用户过多,请重试
第一个用户退出访问后,第三个用户终于可以成功访问了:
(10)匿名用户上传速率控制
anon_max_rate=102400
在 /mnt 下建立一个名为bigfile的500M的文件然后访问并上传,可以看到上传速度为371.37MB每秒
编辑主配置文件:
写入红框中的内容。这里参数值的单位为byte字节,102400byte=100kb
重启服务后访问并进入到pub目录中上传文件,上传速率变为100多kb每秒,eta:62m表示下载所需时间为62分钟:
4.本地用户的访问
(1)访问本地用户控制
编辑文件:
这里默认为yes,改成no则拒绝访问本地用户:
编辑完后重启vsftp服务,然后访问本地用户westos时失败:
改回yes:允许登录本地用户
重启vsftp服务之后可以登录本地用户:
(2)访问本地用户时的访问目录控制
清空 /westos 目录,然后编辑文件:
编辑文件:控制访问本地用户时的访问目录为 /westos :
编辑完成后重启vsftp服务,然后访问用户westos之后,可以看到当前访问位置是在 /westos :
(3)访问本地用户后的可写功能控制
这里需要注意,在访问用户westos时,要想对访问的目录中进行任何之后的功能操作,就必须把该目录的拥有者改成访问用户或者拥有组改成用户名字的组,否则会报错553(文件系统权限限制),因为无权对其他用户的文件目录进行一系列操作。实际上,下图第二个目录为用户westos在系统中的家目录,家目录默认为拥有者和拥有组都为用户westos:
编辑文件:
第一个红框处屏蔽掉,使得访问用户westos的目录为westos的家目录,因为用户westos的家目录的拥有者和拥有组一定为westos
第二个红框处:这里本来是yes,现在改成no之后任何用户访问本地用户后就失去了可写的权力
测试:
重启vsftp服务后访问本地用户westos,然后无法删除和上传文件并且无法建立目录:
改回yes后访问本地用户后可以对文件进行写操作:
(4)访问本地用户上传文件的系统保留权限控制
local_umask=077
默认的上传文件系统保留权限为022,所以这里文件的权限为644:
编辑主配置文件后把这里从022改为077:
重启服务后上传passwd文件后发现文件的权限为600:
(5)用户登录控制
黑白名单:(改完不用重启vsftp服务)
永久黑名单:
编辑下图文件:
只要用户在黑名单内就永远无法访问该用户:
这里加上westos用户
测试:
访问westos用户失败,但是可以成功访问用户endless:
默认黑名单与白名单
编辑文件:/etc/vsftpd/user_list
当userlist_deny=YES时为默认黑名单,只要用户在此默认黑名单内就无法访问该用户,但如果在 /etc/vsftpd/vsftpd.conf 中修改了 userlist_deny=NO,那这个默认黑名单就改为了白名单,只有在此白名单内的用户才可以被访问:
当userlist_deny=YES时为默认黑名单:
测试:
无法访问默认黑名单用户:
但却可以访问不在默认黑名单的用户endless:
当userlist_deny=NO时为白名单:
此时用户westos依然在文件 /etc/vsftpd/user_list 中,westos为白名单用户:
测试:
可以访问在白名单中的westos用户,但无法访问不在白名单中的endless用户:
(6)把用户锁在家目录中
名单里的内容改完就生效,不用重启服务,但在文件/etc/vsftpd/vsftpd.conf 中修改得重启服务才生效
注意:打开这个功能后,家目录不能可写,否则会访问失败
把全部用户锁在家目录中:
当下图红框处为yes时会把全部用户锁在家目录中:
家目录没关掉可写权限后会报错:
关掉可写权限后,在访问用户westos和endless后都无法出家目录:
锁定用户到自己的家目录中的白名单(白名单中用户可以出家目录):
下图第一个红框:把用户锁进家目录中
第二个红框:开启把用户锁进家目录的名单
第三个红框:指向名单位置。注意:此名单文件本来不存在,必须自己建立
测试:
重启服务后访问在白名单内的westos用户后可以出家目录:
访问不在白名单的用户lee后无法出家目录:
锁定用户到自己的家目录中的黑名单:
先把名单中的用户删掉,然后编辑vsftp主配置文件:
编辑的内容为:
把红框内容改成NO,这样就默认所有用户可以出家目录了,打开chroot_list名单,此时chroot_list就为黑名单了,在名单中的用户会被锁进家目录中无法出去:
重启服务,然后把westos用户加进黑名单,访问westos用户后无法出家目录:
不在黑名单中的用户endless可以出家目录:
5.虚拟用户访问
虚拟用户:
只有虚拟用户才符合安全要求,只有虚拟用户才能保证只有ftp服务承认该用户,其他用户不承认,如果都用的是主机用户则开放的权力太大,无法保证服务器的安全
(1)建立虚拟用户过程
建立认证文件模板:
一行用户一行密码:(如果密码最后输了空格则密码内容需要算上空格)
(2)加密认证文件
db_load -T -t hash -f ftp_auth_file ftp_auth_file.db 加密认证文件(原认证文件名可以任意,但加密后的文件的后缀必须为.db)
-T 转换 -t type -f 指定转换文件
(3)建立认证策略文件
重启vsftp服务后建立认证策略文件:
认证策略文件说明:
编辑vsftp配置文件然后重启vsftp服务:
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos 指定认证策略文件
guest_enable=YES 指定虚拟用户功能开启
guest_username=ftp 指定虚拟用户在ftp服务器上的用户身份
测试:
访问user1和user2成功:
6.虚拟用户家目录的独立设定
建立用户家目录及家目录中的文件和目录:
编辑vsftp主配置文件:
第一个红框处内容:指定虚拟用户家目录,$USER为一个变量,用来表示变化的用户名
第二个红框处内容:说明$USER中的$用处跟在shell中相同,并不代表一个字符
在shell中,$USER表示当前登录系统的用户名:
测试:
编辑完文件后重启服务,然后访问user1和user2,访问的均为刚才指定的user1和user2的家目录:
7.让虚拟用户配置独立
这里让虚拟用户的上传配置独立
需要先编辑主配置文件让匿名用户可以上传并删除文件:
由于刚才设置的访问虚拟用户后的身份变成ftp:
需要设定权限,然后设置虚拟用户家目录下的 pub 目录的拥有组为ftp:
设置完成后访问user1和user2后进入pub目录就可以上传并删除文件了:
设置虚拟用户上传配置独立
编辑主配置文件:
把这些红框内的都注释掉,不给这些功能和权限:
在文件中写入红框中内容:
这条意为如果将user_config_dir这个参数等于 /etc/vsftpd/user_conf 目录(user_conf 这个目录名可以是任意的,不过一般都用这个名称,且这个目录必须在 /etc/vsftpd 目录下)后,在这个目录下与用户相同名称的文件中的设定会被系统识别然后给与设定相应的功能和权限:
编辑完后要先创建 user_conf 这个目录(若有则不用创建),然后再重启服务,再建立 /etc/vsftpd/user_conf/用户名 的文件并编辑内容:给匿名用户可以上传文件权力,再重启服务:
这里只建立了user1的文件,没有建立user2的文件:
测试:
Linux中的vsftpd服务的部署及优化相关推荐
- Linux系统工程师--(1)Vsftpd服务的部署及优化与linux中内核级加强型火墙的管理
Linux系统工程师 实验所用系统为Redhat-rhel8.2. 目录 Linux系统工程师 Linux的系统工程师--Vsftpd服务的部署及优化 一.ftp介绍 二.vsftpd安装及启用 三. ...
- Vsftpd 服务的部署及优化
Vsftpd 服务的部署及优化 1 实验环境 2 ftp介绍 3 vsftpd安装与启用 4 vsftpd基本信息 5 用户访问控制 5.1 匿名用户访问 5.2 本地用户访问 6 虚拟用户访问 6. ...
- Linux中samba共享服务的部署及安全优化详解
samba共享服务的部署及安全优化 文章目录 samba共享服务的部署及安全优化 1.samba服务简介 2.samba基本信息 3.samba的安装与启用 a)windows下文件系统的共享 b)L ...
- Vsftpd服务的部署及优化
######################### # 实验环境 # ######################### # #server主机: # westos_node1 # ...
- Linux中阶—文件服务vsftpd (九)
vsftpd服务安装: yum -y install vsftpd* yum -y install pam* libdb -utils libdb* --skip-broken 软件结构如下: ...
- linux中的FTP服务配置详解
本文主要内容有:linux中安装vsftpd(也就是FTP服务). 1.使用匿名用户上传和下载文件. 2.使用身份验证的方式上传和下载文件. 3.建立虚拟用户(步骤比较多). 4.为单独的用户建立单独 ...
- Linux中阶—域名解析服务DNS(十)
全局配置文件:/etc/named.conf //单行注释类型 /* 多行注释 */ //声明控制通道 key "rndc-key" { algorithm h ...
- linux中有关于dhcp的选择题,未指定试题(2014-11-18):DHCP协议的功能是(1)。在Linux中提供DHCP服务的...
试题分类:未指定 DHCP协议的功能是 (1) .在Linux中提供DHCP服务的程序是 (2) :DHCP服务将主机的MAC地址和IP地址绑定在一起的方法是在 (3) 文件中添加"host ...
- linux dhcp 绑定mac地址,●DHCP协议的功能是 (58) 。在Linux中提供DHCP服务的程序是 (59) ;DHCP服务将主机的MAC地址和IP地 - 赏学吧...
●DHCP协议的功能是 (58) .在Linux中提供DHCP服务的程序是 (59) :DHCP服务将主机的MAC地址和IP地址绑定在一起的方法是在 (60) 文件中添加"host主机名{h ...
最新文章
- 三种睡眠时间函数的区别:linux 的sleep()、usleep()、nanosleep()函数
- 线程的核心应用(DoubleCat)
- mfc如何删除lineto画的_见到过的最完整的CAD实例教程:如何画切割刀片
- HTML——meta
- mysql 数据库还原 不齐_请教mysql数据库还原问题。
- VC连接SQLite3的方法 MFC封装类
- Linux 用户线程数与文件句柄树调整(nproc与nofile的问题)
- 【转载】古诗背串了,可是会出大事的哟
- 1078 最小生成树
- Oracle10g 详细安装教程
- 用postman GET调试阿里云银行卡二、三、四要素实名认证
- 终端代码重复率检测实践
- linux软件安装与卸载
- 客户端七牛方式上传文件
- 1	About This Guide
- 10月18号 蒟蒻的流水账
- H3CSE20200603班-IPv6路由协议
- 中南大学 计算机控制,中南大学计算机控制考试重点...pdf
- 反激变压器气隙宽度计算公式推导
- 粒子群优化极限学习机PSOELM做数据预测 PSO-ELM优化算法预测模型