Linux(18)——Vsftp

Linux(18)——Vsftp&Selinux


- Vsftp

VSFTP

1. Vsftp 信息

  VSFTP是一个类Unix系统上使用的FTP服务器软件,全称Very Secure FTP 。

  • 服务名称:
    vsftpd.service
  • 配置目录: /etc/vsftpd
    主配置文件: /etc/vsftpd/vsftpd.conf
    默认发布目录: /var/ftp
  • 报错信息
代码含义
550程序拒绝
553文件权限限制
500文件权限过大
530登录认证失败

2.vsftpd安装及启用

  • 安装
[root@rhclient Desktop]# dnf install vsftpd -y	#安装vsftpd
[root@rhclient Desktop]# dnf install lftp -y	#安装用于浏览ftp的lftp
[root@rhclient Desktop]# setenforce 0
[root@rhclient Desktop]# systemctl disable --now firewalld
  • 启用
[root@rhclient Desktop]# vim /etc/vsftpd/vsftpd.conf
12 	anonymous_enable=YES		#允许匿名访问
[root@rhclient Desktop]# systemctl restart vsftpd

3. 匿名用户访问控制

   创建共享文件夹,修改权限。

[root@rhclient Desktop]# chmod 775 /var/ftp/pub
[root@rhclient Desktop]# chgrp ftp /var/ftp/pub

   编辑主配置文件: /etc/vsftpd/vsftpd.conf,添加或修改以下内容。

anonymous_enable=(YES)			#是否允许匿名用户登录
anon_root=/dir					#匿名用户家目录
anon_upload_enable=(NO)			#是否允许匿名上传,当write_enable=YES时,此项才有效
anon_mkdir_write_enable=(NO)		#是否允许匿名用户建立目录
anon_world_readable_only=(YES)		#是否不允许匿名用户下载不能读的文件
anon_other_write_enable=(NO)	
#	如果设为YES,则允许匿名用户有上传或者建立目录之外的权限,如删除或者重命名。
# 	如果anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;
# 	如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经存在的文件夹。

anon_umask=022				#设定匿名用户上传文件umask

chown_upload=YES			#为匿名用户上传的文件设定所有者
chown_username=lee			#上传的文件设定所有者。开启时anon_mask设定失效
chown_upload_mode=0644		#设定指定所有者后上传文件的权限

max_clients=2				#最大同时登录用户数量
anon_max_rate=1024			#匿名用户传输速率

4. 本地用户访问控制

   编辑主配置文件: /etc/vsftpd/vsftpd.conf,添加或修改以下内容。

local_enable=NO|YES			#是否开启本地用户登录
local_root=/software		#是否指定登录目录,设定后默认登录至此目录
write_enable=NO|YES			#是否允许写入
local_umask=077				#上传文件umask
  • 登录黑白名单

     /etc/vsftpd/ftpusers		#永久黑名单,用户无法登录
     
     userlist_deny=(YES)
     /etc/vsftpd/user_list		#默认为黑名单
     
     userlist_deny=NO
     /etc/vsftpd/user_list		#此时为白名单,但永久黑名单依然无法登陆
    
  • 用户家目录控制

[root@rhclient Desktop]# chmod u-w /home/*
	#锁定到家目录开启,名单用户无法切换到 / 
	chroot_local_user=YES
	chroot_list_enable=YES
	chroot_list_file=/etc/vsftpd/chroot_list
	
	#锁定到家目录关闭,名单用户可以切换到 /
	chroot_local_user=NO
	chroot_list_enable=YES
	chroot_list_file=/etc/vsftpd/chroot_list
[root@rhclient Desktop]# yumdownloader 			#下载软件包到本机指定位置
[root@rhclient Desktop]# yumdownloader httpd --destdir=/mnt --resolve #下载httpd 安装包和软件依赖性到/mnt目 录

4. 虚拟用户访问

  • 虚拟用户建立
[root@rhclient Desktop]# vim /etc/vsftpd/ftp_auth
user1
password1
user2
password2
user3
password3
  • 配置认证
[root@rhclient Desktop]# db_load -T -t hash -f ftp_auth ftp_auth.db	
#加密认证文件 -T:转换 -t:type -f:指定转换文件
[root@rhclient Desktop]# vim /etc/pam.d/auth_file
account	 required 	pam_userdb.so 	db=/etc/vsftpd/ftp_auth
auth	 required 	pam_userdb.so 	db=/etc/vsftpd/ftp_auth
[root@rhclient Desktop]# vim /etc/vsftpd/vsftpd.conf
pam_service_name=auth_file		#指定认证策略文件
guest_enable=YES				#指定虚拟用户功能开启
guest_username=ftp				#虚拟用户以ftp在服务器上登录
  • 虚拟用户家目录
[root@rhclient Desktop]# mkdir -p /ftpuserdir/user{1..3}
[root@rhclient Desktop]# vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER
user_sub_token=$USER
  • 虚拟用户独立配置
[root@rhclient Desktop]# vim /etc/vsftpd/vsftpd.conf
[root@rhclient Desktop]# mkdir /etc/vsftpd/user_config
[root@rhclient Desktop]# touch /etc/vsftpd/user_config/user{1..3}
user_config_dir=/etc/vsftpd/user_config
#在此目录中与用户名称相同的文件为用户配置文件
#在配置文件中可以为各用户分别配置ftp权限

- Selinux

1. Selinux信息

   当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载标签内记录程序和文件的安全上下文(context);此外对程序的功能加载开关,并设定此开关的状态为关闭。当需要此功能时需要手动开启功能开关(sebool)。
主配置文件: /etc/selinux/config,修改后需要重启系统

enforcing:不符合条件被拒绝,并会收到警告信息
permissive:不符合条件被允许,并会收到警告信息
disabled:关闭Selinux

[root@rhclient Desktop]# getenforce			#查看状态
[root@rhclient Desktop]# setenforce 0|1		#0为警告模式,1为强制模式

日志存放:/var/log/audit/audit.log

2. 修改安全上下文

  • 临时修改
    重启后失效

     chcon	 -t 		标签 		文件|目录
     chcon -t	 public_content_t 	/var/ftp/file
     chcon -Rt	 public_content_t 	/dir
    
  • 永久修改

[root@rhclient Desktop]# semanage fcontext -l	#查看内核安全上下文列表
[root@rhclient Desktop]# semanage fcontext -a -t public_content_t '/dir(/.*)?' 	
								#设定/dir及子目录文件的安全上下文
[root@rhclient Desktop]# restorecon -RvvF /dir/ #刷新安全上下文,使设定生效
touch /.autorelabel #若该文件存在,系统重启时将重新初始化文件安全上下文

3. Sebool & Seport

  • Sebool
    Sebool控制系统服务的功能
[root@rhclient Desktop]# getsebool -a | grep ftp	#服务的sebool值
[root@rhclient Desktop]# setsebool -P ftpd_anon_write on	#更改
  • Seport
    Seport控制系统服务的网络端口
[root@rhclient Desktop]# semanage port -l | grep http	#查看HTTP port限制
[root@rhclient Desktop]# semanage port -a -t http_port_t -p tcp 8888	#增加http端口8888

4. setrouble

   setroubleshoot-server可以采集警告信息并分析并得到解决方案。

/var/log/audit/audit.log	#selinux警告信息
/var/log/messages			#selinux问题解决方案

- 练习

1. vsftp

  • 匿名用户使用
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 本地用户使用
    锁定家目录
    在这里插入图片描述
    在这里插入图片描述
    取消锁定家目录
    在这里插入图片描述

  • 虚拟用户使用
    创建用户在这里插入图片描述
    生成认证文件在这里插入图片描述
    在这里插入图片描述
    修改配置文件在这里插入图片描述
    创建用户目录、配置文件
    在这里插入图片描述

在这里插入图片描述
修改主配置文件,注释匿名用户权限,在各自用户配置文件中置空,用户权限被限制。在这里插入图片描述

2. Selinux

修改Apache端口为8888,开启Selinux
在这里插入图片描述
开启Apache失败在这里插入图片描述
查看/var/log/messages
在这里插入图片描述
更改后成功在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值