2019最新 Kerberos 联调环境 Linux 安装配置

SIstvan 2019-04-11


 2019最新 Kerberos 联调环境 Linux 安装配置

Prerequisite


操作系统: CentOS 7


JDK版本:1.8.0_131


Step 1. Install Kerberos

PS:登录到终端的用户是 ROOT.

 2019最新 Kerberos 联调环境 Linux 安装配置

1.1  安装Kerberos服务

yum install -y krb5-server krb5-workstation

1.2 更新主机名

 2019最新 Kerberos 联调环境 Linux 安装配置

这一步可以参考网上的操作,我不啰嗦了,你们的主机名自己设置,我用的是duanduan。

1.3  配置Kerberos

    服务器hostname需提前配置好以便下列kerberos配置文件使用,参考下图

配置格式:

${IP_ADDRESS}  xxx.iteye.com xxx

1.3.1 查看主机IP

查看命令: ifconfig

 2019最新 Kerberos 联调环境 Linux 安装配置

记住上图红框中的ip,接下来更新到hosts文件

1.3.2  更新hosts文件

查看命令: vi /etc/hosts

 2019最新 Kerberos 联调环境 Linux 安装配置

为了测试,我用的是 192.168.126.144 duanduan.iteye.com duanduan

需要自己添加一行 ,如上图。

 1.3.3  更新客户端文件

查看命令:vi  /etc/krb5.conf

该文件的修改处如下图所示:

 2019最新 Kerberos 联调环境 Linux 安装配置

查看命令:vi  /var/kerberos/krb5kdc/kdc.conf

该文件的修改处如下图所示:

2019最新 Kerberos 联调环境 Linux 安装配置

查看命令:vi  /etc/krb.realms(不存在则创建该文件)

该文件的新增内容如下图所示

 2019最新 Kerberos 联调环境 Linux 安装配置

新增的内容如下:

duanduan.iteye.com ITEYE.COM
.iteye.com ITEYE.COM

1.4  创建KDC数据库

执行命令创建kerberos数据库, 按照提示输入密码

/usr/sbin/kdb5_util create -s

如下图:

 
2019最新 Kerberos 联调环境 Linux 安装配置
 

输入的密码要记住,后续有用!

创建完成会在/var/kerberos/krb5kdc/下面生成一系列文件,若重建数据库则需先删

除/var/kerberos/krb5kdc下面principal相关文件


2019最新 Kerberos 联调环境 Linux 安装配置
 

1.5  配置权限

给数据库管理员添加ACL权限,修改kadm5.acl文件,*代表全部权限

#vi /var/kerberos/krb5kdc/kadm5.acl

编辑文件,更新为ITEYE,如下图:


2019最新 Kerberos 联调环境 Linux 安装配置

1.6  添加Kerberos管理员

根据提示输入管理员密码

# kadmin.local

kadmin.local:  addprinc admin/admin

如下图所示:


2019最新 Kerberos 联调环境 Linux 安装配置
 

完成密码输入后,输入exit 退出命令行。 

输入的密码要记住,后续有用!

1.7  查看Kerberos服务状态,设置开机自启动

service krb5kdc status  -- 查看状态(下同)

service kadmin status  

service krb5kdc start/stop/restart  -- 启动/停止/重启(下同)

service kadmin start/stop/restart

chkconfig krb5kdc on  -- 设置开机自启(下同)

chkconfig kadmin on

如果中途有重启过linux操作系统,需要重启Kerberos的服务。参考上图重启命令。


2019最新 Kerberos 联调环境 Linux 安装配置
 

1.8  配置JCE

CentOS6.5及以上系统默认使用AES-256加密,因此需要所有节点安装并配置JCE,

JCE下载路径:

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

参考下图,使用下载或文章后面的在线安装包中的jar包

替换/usr/lib/jvm/${JAVA_VERSION_PATH}/jre/lib/security下jar包

(注:需使用root用户替换,其他用户可能没权限操作)

 
2019最新 Kerberos 联调环境 Linux 安装配置
 

Step 2. Configure a Service Principal for an Oracle Database Server

2.1 Principal格式及说明

kservice/kinstance@REALM


2019最新 Kerberos 联调环境 Linux 安装配置
 Kservice 只的是ORACLE 的 SID,不懂SID的可以网上搜一下。

示例:

2.2 添加Principal

参考下图

 
2019最新 Kerberos 联调环境 Linux 安装配置
输入exit 退出命令行。

Step 3. Extract a Service Key Table from Kerberos

3.1 提取Service Key Table

root用户执行命令:

先执行 命令 kadmin.local

kadmin.local:  ktadd -k /tmp/keytab orcl/duanduan.iteye.com
kadmin.local:  exit

 
2019最新 Kerberos 联调环境 Linux 安装配置
 

输入exit 退出命令行。

切换 oracle用户执行命令:

--  cd ${ORACLE_HOME}/bin ,需根据${ORACLE_HOME}实际路径执行下列命令
cd /u01/app/oracle/product/11.2.0/dbhome_1/bin
oklist -k -t /tmp/keytab

 注意执行 oklist -k  -t /tmp/keytab 命令,发现这个文件的权限如下

-rw------- 1 root    root        634 4月  11 16:59 keytab

需要将keytab 的访问权限开放给oracle。否则会执行失败。

  用ROOT 用户 执行开放权限的命令 chmod 777 /tmp/keytab  


2019最新 Kerberos 联调环境 Linux 安装配置
 

切换oracle用户执行命令,执行结果如下:


 
2019最新 Kerberos 联调环境 Linux 安装配置
 

3.2 移动Service Key Table

# mv /tmp/keytab /etc/v5srvtab

3.3 检查Service Key Table权限

查看/etc/v5srvtab权限,确保oracle用户拥有该文件读权限

 
2019最新 Kerberos 联调环境 Linux 安装配置
 

若无读权限,可使用下列命令授予权限

# chmod 777 /etc/v5srvtab

Step 4. Configure Kerberos Authentication

4.1 配置sqlnet.ora

编辑${ORACLE_HOME}/network/admin/sqlnet.ora配置, 参考下图:

若该配置文件存在,直接编辑;若该配置文件不存在,复制${ORACLE_HOME}/network/admin/samples/sqlnet.ora到${ORACLE_HOME}/network/admin/目录下,然后再编辑。

SQLNET.KERBEROS5_REALMS = /etc/krb.realms
SQLNET.KERBEROS5_CC_NAME = /tmp/krb5cc_0
SQLNET.AUTHENTICATION_SERVICES= (BEQ, TCPS, KERBEROS5)
TRACE_LEVEL_CLIENT = SUPPORT
TRACE_LEVEL_SERVER = SUPPORT
SQLNET.KERBEROS5_CONF = /etc/krb5.conf
SQLNET.KERBEROS5_CONF_MIT=TRUE
SQLNET.AUTHENTICATION_KERBEROS5_SERVICE = orcl
ADR_BASE = /u01/app/oracle

新增的文件


2019最新 Kerberos 联调环境 Linux 安装配置
 

4.2 配置init.ora

编辑${ORACLE_HOME}/dbs/init.ora, 添加下列配置

OS_AUTHENT_PREFIX=""

新增的内容如下:


2019最新 Kerberos 联调环境 Linux 安装配置
 
 

Step 5. Create a Kerberos User

创建kerberos用户,根据提示输入密码

kadmin.local: addprinc krbuser
kadmin.local: exit


2019最新 Kerberos 联调环境 Linux 安装配置
  

完成密码输入后,输入exit 退出命令行。 

输入的密码要记住,后续有用!

Step 6. Create an Externally Authenticated Oracle User

切换oralce用户

# su - oracle

# sqlplus /nolog
SQL> CONNECT / AS SYSDBA;
SQL> CREATE USER "[email protected]" IDENTIFIED EXTERNALLY;
SQL> GRANT CREATE SESSION TO "[email protected]";

执行结果


2019最新 Kerberos 联调环境 Linux 安装配置
 

Step 7. Get an Initial Ticket for the Kerberos/Oracle User

切换到${ORACLE_HOME}/bin目录, 执行下列命令初始化ticket

okinit krbuser

完成密码输入后,输入exit 退出命令行。 

输入的密码要记住,后续有用!

测试数据库连接,如能连接,说明已安装成功

sqlplus /@orcl

 连接成功后的效果图


2019最新 Kerberos 联调环境 Linux 安装配置
 

 如果连接不上,从这3个方面入手解决

1.查看Oracle 的 ora 监听文件的host是否改成 duanduan,跟着主机名一样就行。

2.用kist 命令 检查是否过期。如果过期用 kinit krbuser 重新注册。密码用之前保存设置的。[root@duanduan ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting       Expires              Service principal
2019-04-11T18:25:27  2019-04-12T02:25:12  krbtgt/[email protected]
[root@duanduan ~]# kinit krbuser
Password for [email protected]:
[root@duanduan ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]

Valid starting       Expires              Service principal
2019-04-12T15:13:53  2019-04-13T15:13:53  krbtgt/[email protected]

 3.检查 /tmp/krb5cc_0  的文件权限是否有问题,建议执行如下命令:

[root@duanduan ~]# chmod 777 /tmp/krb5cc_0
[root@duanduan ~]# ll /tmp/krb5cc_0
-rwxrwxrwx 1 root root 685 4月  12 15:14 /tmp/krb5cc_0

Resources

官网:

https://web.mit.edu/kerberos/krb5-1.16/doc/index.html

相关说明文章:

https://docs.oracle.com/cd/E56344_01/html/E53971/kintro-1.html#scrolltoc

http://linux.vbird.org/linux_enterprise/kerberos.php

安装配置参考文章:

https://docs.oracle.com/cd/E11882_01/network.112/e40393/asokerb.htm#ASOAG060

https://blog.csdn.net/Post_Yuan/article/details/54406148

http://www.ateam-oracle.com/configuring-your-oracle-database-for-kerberos-authentication/

https://yq.aliyun.com/articles/624363?spm=a2c4e.11154873.tagmain.6.77abc71cxnqftk

常见错误原因列表及解决办法:

https://docs.oracle.com/cd/E19253-01/816-4557/trouble-6/index.html

 

2019最新 Kerberos 联调环境 Linux 安装配置

相关推荐