【RHCE学习笔记】基于安全的NFS认证(kerberos)

一、Kerberos工作流程理解

kerberos是一种安全的认证系统,通过kerberos,客户端与服务器端之间加入kerberos后,基于对称的加密算法,不再需要将自己的密码通过加密的方式传递到互联网上,而是基于target,用户拿到对应的target后,就可以取得相应服务或者应用的权限

KDC(Key Distribution Center)钥匙分发中心,用于专门存放key,它与client,Server通过加密,KDC拥有client和Server的Key,而client和Server拥有各自的KEY

  1. 首先client客户端需求请求Service端的服务,向KDC中心请求授权,这时,KDC为client和server创建了一个session-key,通过Client的密钥加session-key加密一份发给client,同时,用server的密钥加密session-key+客户端请求的用户名+地址+周期等打包发给client,而这个包是需要委托client发给server的
  2. client收到KDC中心分发过来的两个包,一个包通过自己的密钥直接解密得到session-key,客户端用得到的这个session-key对自己请求的用户+地址+周期等信息加密后发给server,同时将由KDC交付过来转交给server的包转给server,而由于client没有server的密钥,所以他无法对转交给server的包进行篡改。
  3. Server收到client发过来的两个包,首先用自己的密钥将client转交过来的包解密,得到session-key和一些用户名+日期+周期等,利用得到的这个session-key,将client端发过来的包进行解密,也得到一份用户名+日期+周期等,将两个进行比对,如果得到的数据是一致的,说明期间没有人对包数据进行过篡改,认证过程结束。否则则包数据存在问题,不能信任。

二、安全的NFS配置过程

一)、服务器端配置

1.首先安装所需要的组件和包

 yum installnfs-utils sssd krb5-workstation

2.加入开机自启动,服务器端有nfs-server,nfs-secure,sssd三个服务加入自启

  systemctl enable nfs-server.service
  systemctl enable nfs-secure-server.esrvice
  systemctl enable sssd.service

3.开放防火墙,需要加入nfs,mountd,rpc-bind三个服务

  firewall-cmd--permanent --add-service=nfs
  firewall-cmd --permanent --add-service=mountd
  firewall-cmd --permanent--add-service=rpc-bind
  firewall-cmd --reload

4.使用图形化工具authconfig-tui将服务端server9加入到ldap和Kerberos

选择Use LDAP   认证方式选 Use Kerberos

启用 [*]Use TLS

Server:  classroom.example.com

BaseDN:  dc=example,dc=com

Realm:    EXAMPLE.COM

KDC:       classroom.example.com

Admin Server: classroom.example.com

选择OK后,这里会提示用到证书文件,先不要按回车,等将证书文件下载到本地对应目录后再按OK

#wget -O /etc/openldap/cacerts/example-ca.crt http://classroom.example.com/pub/example-ca.crt

同步将kerberos的认证文件下载到本地:

#wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server9.keytab

5.启动nfs-server,nfs-sercure-server,sssd服务

  systemctl start nfs-server
  systemctl start nfs-secure-server
  systemctl start sssd

这里可以提前提服务,然后用authconfig-tui后再重启服务

6.验证ldap和kerberos是否加入成功

getent passwd ldapuser1 验证,如果能看到ldapuser1用户的信息,则说明加入ldap成功

切换到ldapuser1用户:su - ldapuser1

kinit  输入ldapuser1的密码(kerberos)

klist  如果能够正常显示(krbtgt/[email protected])则表示kerberos状态正常

7.创建共享目录,修改权限777

mkdir /secure   chmod 777 /secure

vim/etc/exports

/secure *(rw,sync,sec=krb5p)

这里的*可以用网段代替,表示只针对某一个网段放行。

重新加载配置文件:exportfs -r

二)、客户端配置

1.安装对应的包

 yum install nfs-utils sssd krb5-workstation

2.开启开机自启动

systemctl enable nfs-secure

3.使用图形化工具authconfig-tui将desktop9也加入到ldap和kerberos

这里的配置与服务器端一样,只是下的keytab文件的路径不一样

http://classroom.example.com/pub/keytabs/desktop9.keytab

4.重启服务

systemctlrestart nfs  
systemctl restart nfs-secure
systemctl restart sssd

测试的时候与前面服务器端一样

5.查看NFS共享内容

#showmount -e server9
#mount -t nfs server9:/sercre /mnt/nfs

以上为挂载命令,如果要写入fstab则按常规格式书写

server9:/secure    /mnt/nfs    nfs    defaults    0  0

su - ldapuser1     kinit 输入密码:kerberos

klist可以看到证书文件

cd /mnt/nfs

touch ldapuser1

ll查看文件属性是否为ldapusr1:ldapuser1

验证通过,说明基于安全的NFS实验完成

时间: 2024-10-05 04:26:09

【RHCE学习笔记】基于安全的NFS认证(kerberos)的相关文章

mongo db 学习笔记 之二: mongodb 用户认证

首先要知道mongodb默认安装后是没有任何认证开启的,也就是说,所有能连接到服务器的人都能进数据查看,当然,你可以用防火墙来挡.但没有防火墙的保护,数据库暴露出来是非常危险的. mongodb关于安全分为几个方面,主要是:认证,基于角色的访问控制(授权),审计,加密,部署和环境的安全(涉及到网络跟系统的访问环境). 一 关于认证 使用用户名认证指令为: mongo --port 27017 -u manager -p 12345678 --authenticationDatabase admi

FTP服务学习笔记之ssl/tls安全认证配置(3)

在Redhat5.8_X64bit上配置 一.实验说明 操作系统:Redhat5.8_x64bit 实验平台:VMware Workstation 实验目的:配置ftp基于ssl/tls安全认证 二.实验步骤如下: 1.安装vsftpd #yum install vsftpd #rpm -ql vsftpd #service vsftpd start #chkconfig vsftpd on 2.配置CA #cd /etc/pki/CA #mkdir certs newcerts crl #to

RHCE 学习笔记(38 ) - Shell

Shell脚本的参考书从基础到高级可以找几百本出来,豆子这里过为了整个学习笔记的完整性,还是厚颜把最最基本的语法回顾一遍.最基本包括变量,比较,运算符,条件语句,循环语句. 变量分为本地变量,环境变量,位置变量 首先看看本地变量, 变量名=值的方式赋值,不过只在当前的shell里面有效 比如,子shell里面就无法识别了 可以通过export的方式配置环境变量,这样子shell里面也可以识别 不过上面的配置只是临时生效,重启就没了 可以通过修改配置文件的方式永久生效.登录家目录的时候,会自动加载

RHCE 学习笔记(39) - LDAP 服务器,NFS和autofs

这一节应该算补充一下前面的网络用户和autofs的内容.LDAP的服务器配置不在考核内容,不过客户端的连接和autofs连接nfs远程主目录反而是考察重点.所以,还是需要配置LDAP的服务器. 安装配置LDAP服务器 安装软件 配置密码 生成证书 更改证书权限 数据库配置文件 测试一下 更改权限,运行ldap服务 添加schema,我已经加过了,所以给出重复的警告 创建下列配置文件 添加 增添新的结构 添加 创建一个目录,创建新的ldap用户,并设置家目录 把现有的本地用户和组导入ldap 导入

【安全牛学习笔记】思路、身份认证方法、密码破解方法、字典

思路 目标系统实施了强安全措施 - 安装了所有补丁 - 无任何已知漏洞 - 无应用层漏洞 - 攻击面最小化 社会工程学 获取目标系统用户身份 - 非授权用户不守信,认证用户可以访问守信资源 - 已有用户账号权限受限,需要提权 - 不会触发系统报警 身份认证方法 证明你是声称你是的那个人 - 你知道什么(账号密码.pin.passphrase) - 你有什么(令牌.token.key.证书.密保.手机) - 你是谁(指纹.视网膜.虹膜.掌纹.声纹.面部识别) - 以上方法结合适用(多因素身份认证)

Linux学习笔记—— 基于CentOS创建私有CA及应用

这篇文章应该是有史以来,历时最长最纠结的一次,毫不夸张的讲总结到词穷的地步了.现在每次一到理论知识梳理的过程,总有种茶壶里的饺子,稍微懂点但有说不出来,哎!这辈子估计当不了老师了,话不多说还得撸起袖子接着写不是. 第一章.详细描述一次加密通讯的过程,结合图示最佳. HTTPS在基于SSL建立会话前,会经历4次握手过程以获取会话密钥.流程如下: 图示1 HTTPs 通讯流程详细说明 1. 客户端请求(ClientHello) 客户端向服务器发送会话请求,这一步称为ClientHello.Clien

PMP项目管理学习笔记前言——为啥要取得认证?

(一)为啥要取得认证? 如果你参与过很多项目,就会发现,你总是在周而复始地面对同样的一些问题.一些常见的问题目前已经有了通用解决方案.经过多年的实战,项目经理已们已经掌握了很多应验教训,而通过PMP(项目管理专业人士资格认证-Project Management Professional)考试则是将这些智慧结晶付诸实践的“入场卷”. (二)优秀的项目经理需要什么? 知识(knowledge)如果你关注项目管理领域的发展动态,可以从每个人的成功与失误中学习经验教训,从而能更好地完成你的工作. 绩效

Android学习笔记--基于XMPP的即时通讯

一.常见即时通讯实现 socket openfire+asmack 环信 信鸽 融云 二.XMPP优势 1. 开放性 XMPP协议是自由.开放.公开的,并且易于了解.而且在客户端.服务器.组件.源码库等方面,都已经各自有多种实现. 2.跨平台 客户端只要基于XMPP协议,不管是什么平台(包括不同的移动终端)都可以互联互通. 三.XMPP协议简介 The Extensible Messaging and Presence Protocol (可扩展通讯和表示协议) XMPP 以 Jabber 协议

WCF学习笔记(基于REST规则方式)

一.WCF的定义 WCF是.NET 3.0后开始引入的新技术,意为基于windows平台的通讯服务. 首先在学习WCF之前,我们也知道他其实是加强版的一个面向服务(SOA)的框架技术. 如果熟悉WebService就会知道WebService是基于XML+XSD,SOAP和WSDL三大技术,当然他也是采用HTTP协议的通信,严格来说WebService是一种面向服务开发的标准.而ASP.NET WebService则是微软平台下的服务. WCF其实一定程度上就是ASP.NET Web Servi