vsftpd服务 匿名、本地、虚拟用户传输文件以及tftp传输

VSFTPD简介

vsftpd(very secure ftp daemon),非常安全的FTP守护进程

FTP文件传输协议

默认端口:

 1   21——用于接收客户端发出的相关FTP命令与参数
 2  20——用于数据传输

两种模式:

   1   主动:向客户端发起连接
    2  被动:等待客户端发起连接(FTP的默认工作模式)

特点:
1 vsftpd是一款运行在Linux操作系统上的FTP服务程序,完全开源而且免费;
2 具有很高的安全性、传输速度,支持虚拟用户验证等其他FTP服务程序不具备的特点。

注意:

安装vsftpd,因为iptables防火墙管理工具默认禁止了FTP传输协议的端口号,清空iptables防火墙的默认策略并永久生效,以避免被这些默认策略影响vsftpd服务的配置。

vsftpd服务

 1    允许三种模式认证登录:匿名、本地、虚拟。

匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器

安装vsftpd服务程序 [root@lizhiqiang Desktop]# yum install vsftpd
编辑vsftpd主配置文件 [root@lizhiqiang Desktop]# cd /etc/vsftpd
[root@lizhiqiang vsftpd]# vim vsftpd.conf
把vsftpd服务的主配置文件重命名为vsftpd.conf_bak [root@lizhiqiang vsftpd]# mv
vsftpd.conf vsftpd.conf_bak
grep命令添加-v参数,过滤掉所有的注释信息,然后将过滤后的参数行通过输出重定向符写回原始的主配置文件中
[root@lizhiqiang vsftpd]# grep -v “#” vsftpd.conf_bak > vsftpd.conf
[root@lizhiqiang vsftpd]# vim vsftpd.conf
anonymous_enable=YES是否允许匿名用户访问 anon_umask=022匿名用户上传文件的umask值
anon_upload_enable=YES允许匿名用户上传文件
anon_mkdir_write_enable=YES允许匿名用户创建目录
anon_other_write_enable=YES允许匿名用户修改目录名称或删除目录
local_enable=YES是否允许本地用户登录FTP write_enable=YES设置可写权限
local_umask=022本地用户模式创建文件的umask值 dirmessage_enable=YES是否开启目录提示信息
xferlog_enable=YES是否开启日志 connect_from_port_20=YES是否通过端口20连接
xferlog_std_format=YES是否以标准形式写入日志 listen=NO独立监听是否运行
listen_ipv6=YES是否开启v6 pam_service_name=vsftpdpam模块验证,vsftpd默认文件
userlist_enable=YES黑名单开启 tcp_wrappers=YEStcp连接 重启并加入启动项
[root@lizhiqiang vsftpd]# systemctl restart vsftpd [root@lizhiqiang
vsftpd]# systemctl enable vsftpd 清空iptables防火墙策略,并永久性保存
[root@lizhiqiang vsftpd]# iptables -F [root@lizhiqiang vsftpd]#
service iptables save iptables: Saving firewall rules to
/etc/sysconfig/iptables:[ OK ] 匿名用户的FTP根目录为/var/ftp,该目录下还有一个pub目录,
pub目录默认只有root管理员才有写入权限。需要更改目录所有者为ftp。 [root@lizhiqiang vsftpd]# ls -ld
/var/ftp/pub drwxr-xr-x. 2 root root 6 Mar 7 2014 /var/ftp/pub
[root@lizhiqiang vsftpd]# chown -Rf ftp /vat/ftp/pub [root@lizhiqiang
vsftpd]# ls -ld /var/ftp/pub drwxr-xr-x. 2 ftp root 6 Mar 7 2014
/var/ftp/pub 查看与FTP相关的SELinux域策略 [root@lizhiqiang vsftpd]# getsebool
-a | grep ftp 修改SELinux域策略ftpd_full_access为永久允许,经过这一步用户才能进行增删改文件的操作 [root@lizhiqiang vsftpd]# setsebool -P ftpd_full_access=on
安装ftp服务,测试匿名用户的权限 [root@lizhiqiang vsftpd]# yum install ftp
[root@lizhiqiang vsftpd]# ftp 192.168.14.30 Connected to 192.168.14.30
(192.168.14.30). 220 (vsFTPd 3.0.2)
#匿名模式下的账户 Name (192.168.14.30:root): anonymous 331 Please specify the password. Password:#无密码回车 230 Login successful. Remote system type is
UNIX. Using binary mode to transfer files. ftp> cd pub#进入目录pub 250
Directory successfully changed. ftp> mkdir haha#创建子目录haha 257
“/pub/haha” created ftp> ls#查看存在 227 Entering Passive Mode
(192,168,14,30,20,40). 150 Here comes the directory listing.
drwxr-xr-x 2 14 50 6 Nov 09 12:45 haha 226
Directory send OK. ftp> rename haha hei#重命名 350 Ready for RNTO. 250
Rename successful. ftp> ls 227 Entering Passive Mode
(192,168,14,30,248,133). 150 Here comes the directory listing.
drwxr-xr-x 2 14 50 6 Nov 09 12:45 hei 226
Directory send OK. ftp> rm hei#删除目录 250 Remove directory operation
successful. ftp> ls 227 Entering Passive Mode (192,168,14,30,153,58).
150 Here comes the directory listing. 226 Directory send OK. ftp>
exit#退出 221 Goodbye.

本地用户模式:
相较于匿名开放模式,本地用户模式要更安全,而且配置起来也很简单

针对本地用户模式的权限参数以及作用 anonymous_enable=NO#关闭匿名访问
local_enable=YES#允许本地用户模式 write_enable=YES#设置可写权限
local_umask=022#本地用户模式创建文件的umask值
userlist_deny=YES#启用“禁止用户名单”,名单文件为ftpusers和user_list
userlist_enable=YES

在匿名的基础上

在这里插入图片描述

结果成功

在这里插入图片描述

虚拟用户模式:
三种模式中最安全的一种认证模式,因为安全性较之于前面两种模式有了提升,所以配置流程也会稍微复杂一些。

PAM(可插拔认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。要想把PAM功能和作用完全讲透,至少要一个章节的篇幅才可以(对该主题感兴趣的读者敬请关注本书的进阶篇,里面会详细讲解PAM)。

通俗来讲,PAM是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改。PAM采取了分层设计(应用程序层、应用接口层、鉴别模块层)的思想,其结构如图所示。

在这里插入图片描述

利用PAM文件进行认证时使用的参数以及作用

在这里插入图片描述

(1)创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码
在这里插入图片描述

(2)用db_load命令用hash算法将原始的明文信息文件转换成数据库文件。 file命令查看文件类型

在这里插入图片描述

由于Linux系统中的每一个文件都有所有者、所属组属性,需要创建一个可以映射到虚拟用户的系统本地用户,让虚拟用户默认登录到与之有映射关系的这个系统本地用户的家目录中,虚拟用户创建的文件的属性也都归属于这个系统本地用户,从而避免Linux系统无法处理虚拟用户所创建文件的属性权限。

(3)创建用户lzq,shell解释器为nologin,即不允许登录,默认家目录为/var/haha,即虚拟用户登录ftp后的默认目录
(4)设置权限保证其他用户能对该目录进行相关操作

在这里插入图片描述

(5)创建用于虚拟用户认证的PAM文件vsftpd.vu
配置参数格式可以参考/etc/pam.d/vsftpd

 1   auth       required     pam_userdb.so db=/etc/vsftpd/vuser
 2   account    required     pam_userdb.so db=/etc/vsftpd/vuse

db=参数为使用db_load命令生成的账户密码数据库文件的路径,但不用写数据库文件的后缀
(6)为虚拟用户设置不同权限。创建一个目录,在目录里生成与虚拟用户同名的权限参数配置文件。在后续配置vsftpd服务主配置文件时通过添加user_config_dir参数来引用。
(7)重启服务

在这里插入图片描述

测试赋予权限的用户和无权限的用户

在这里插入图片描述

TFTP简单文件传输协议

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。顾名思义,它提供不复杂、开销不大的文件传输服务(可将其当作FTP协议的简化版本)。

TFTP的命令功能不如FTP服务强大,甚至不能遍历目录,在安全性方面也弱于FTP服务。而且,由于TFTP在传输文件时采用的是UDP协议,占用的端口号为69,因此文件的传输过程也不像FTP协议那样可靠。但是,因为TFTP不需要客户端的权限认证,也就减少了无谓的系统和网络带宽消耗,因此在传输琐碎(trivial)不大的文件时,效率更高。

tftp命令中可用的参数以及作用

在这里插入图片描述

安装tftp服务 安装tftp客户端工具 在xinetd服务程序中将TFTP服务开启,把默认的禁用(disable)参数修改为no
[root@lizhiqiang Desktop]# vim /etc/xinetd.d/tftp 重启并加入启动项
[root@lizhiqiang Desktop]# systemctl restart xinetd.service
[root@lizhiqiang Desktop]# systemctl enable xinetd.service
手动将UDP协议的69端口加入到防火墙的允许策略中。 [root@lizhiqiang Desktop]# firewall-cmd
–permanent --add-port=69/udp success [root@lizhiqiang Desktop]# firewall-cmd --reload success 服务端在TFTP根目录创建一个文件,供服务端测试。
[root@lizhiqiang Desktop]# echo “一口甜” > /var/lib/tftpboot/a.txt
服务端和客户端都需要清空防火墙并永久生效,客户端才能访问服务端的TFTP服务。 [root@lizhiqiang Desktop]#
iptables -F [root@lizhiqiang Desktop]# service iptables save
客户端访问服务端的TFTP服务,并下载根目录下的a.txt文件,文件会下载到客户端在登录到tftp之前的路径 tftp
192.168.10.10 tftp>get liwh.txt

此文件只有安装了tftp服务后才会自动生成

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值