hive.server2.authentication.kerberos.keytab /home/keytabs/hive.service.keytab
hive.metastore.sasl.enabled true hive.metastore.kerberos.principal
hive/node1@EXAMPLE.COM hive.metastore.kerberos.keytab.file
/home/keytabs/hive.service.keytab

​​​​​​​5) 修改Hadoop core-site.xml

修改core-site.xml中相关代理配置为hive代理用户,node1~node5节点core-site.xml中修改如下配置项:

hadoop.proxyuser.hive.hosts * hadoop.proxyuser.hive.users *
hadoop.proxyuser.hive.groups *

以上配置分发到Hadoop各个集群节点后,需要重新启动HDFS。

6) hive conf中准备hdfs-site.xml和core-site.xml

将hdfs配置文件hdfs-site.xml,core-site.xml 发送到客户端和服务端HIVE_HOME/conf/目录中。

​​​​​​​​​​​​​​2. Hive Cli使用Kerberos

使用Hive Client操作Kerberos需要首先启动HDFS,然后在Hive服务端启动Hive Metastore,操作如下:

#启动zookeeper及HDFS
[root@node3 ~]# zkServer.sh start
[root@node4 ~]# zkServer.sh start
[root@node5 ~]# zkServer.sh start
[root@node1 ~]# start-all.sh

#在Hive服务端node1节点启动Hive Metastore,这里可以切换成Hive用户,也可以不切换
[root@node1 ~]# su hive
[hive@node1 ~]$ hive --service metastore &

在Hive客户端node3节点上登录hive客户端:

#需要切换用户为hive,其他用户没有操作hql底层转换成mr操作的目录权限
[root@node3 ~]# su hive
[hive@node3 root]$ cd

#进行节点认证kerberos
[hive@node3 ~]$ kinit hive/node1
Password for hive/node1@EXAMPLE.COM:123456

#登录hive,建表、插入数据及查询
[hive@node3 ~]$ hive
hive> create table person (id int,name string,age int ) row format delimited
fields terminated by ‘\t’;
OK
Time taken: 0.236 seconds
hive> insert into person values (1,‘zs’,18);

hive> select * from person;
OK
1 zs 18

#在node3节点准备如下文件及数据
[hive@node3 ~]$ cat /home/hive/person.txt
2 ls 19
3 ww 20

#在hive客户端将以上文件数据加载到hive person表中,操作如下
hive> load data local inpath ‘/home/hive/person.txt’ into table person;
hive> select * from person;
OK
1 zs 18
2 ls 19
3 ww 20

​​​​​​​​​​​​​​3. Hive beeline使用Kerberos

除了在hive客户端操作Hive外,还可以通过beeline方式操作Hive,具体步骤如下:

1) 在Hive服务端启动hiveserver2 ​​​​​​​

#启动hiveserver2
[hive@node1 root]$ hiveserver2

​​​​​​​​​​​​​​2) 在Hive客户端执行beeline登录hive

#在hive 客户端通过beeline登录hive
[hive@node3 ~]$ beeline
beeline> !connect
jdbc:hive2://node1:10000/default;principal=hive/node1@EXAMPLE.COM

0: jdbc:hive2://node1:10000/default> select * from person;
±-----------±-------------±------------+
| person.id | person.name | person.age |
±-----------±-------------±------------+
| 1 | zs | 18 |
| 2 | ls | 19 |
| 3 | ww | 20 |
±-----------±-------------±------------+

#也可以通过以下方式通过beeline直接操作hive
[hive@node3 ~]$ beeline -u
“jdbc:hive2://node1:10000/default;principal=hive/node1@EXAMPLE.COM”

注意:无论使用哪种方式通过beeline连接hive,针对kerberos认证的hive都需要指定principal参数。

​​​​​​​​​​​​​​4. JDBC访问Kerberos认证Hive

在IDEA中使用JDBC方式读取Kerberos认证Hive时需要指定krb5.conf文件、Principal主体、keytab密钥文件,然后在代码中进行设置即可JDBC方式访问Kerberos认证的Hive。具体操作步骤如下:

1) 准备krb5.conf及keytab文件

在node1
kerberos服务端将/etc/krb5.conf文件放在window固定路径中,同时将hive主体对应的keytab密钥文件放在windows固定路径中。

2) 启动HiveServer2

需要在Hive服务端启动HiveServer2服务:

#在Hive服务端node1节点执行如下命令
[root@node1 ~]# su hive
[hive@node1 root]$ hiveserver2

​​​​​​​​​​​​​​3) 编写JDBC访问Hive代码

/**

  • 通过JDBC方式读取Kerberos认证Hive的数据
    */
    public class JDBCReadAuthHive {
    // Kerberos主体
    static final String principal = “hive/node1@EXAMPLE.COM”;

// Kerberos配置文件路径
static final String krb5FilePath =
“D:\idea_space\KerberosAuth\KerberosAuthHive\src\main\resources\krb5.conf”;

// Keytab文件路径
static final String keytabFilePath =
“D:\idea_space\KerberosAuth\KerberosAuthHive\src\main\resources\hive.service.keytab”;

public static void main(String[] args) throws SQLException,
ClassNotFoundException, IOException {

// 1.加载Kerberos配置文件
System.setProperty(“java.security.krb5.conf”, krb5FilePath);

// 2.设置Kerberos认证
Configuration configuration = new Configuration();
configuration.set(“hadoop.security.authentication”, “kerberos”);
UserGroupInformation.setConfiguration(configuration);
UserGroupInformation.loginUserFromKeytab(principal, keytabFilePath);

// 3.JDBC连接字符串
String jdbcURL =
“jdbc:hive2://node1:10000/default;principal=hive/node1@EXAMPLE.COM”;

Class.forName(“org.apache.hive.jdbc.HiveDriver”);

try {
// 4.创建Hive连接
Connection connection = DriverManager.getConnection(jdbcURL, “”, “”);

// 5.执行Hive查询
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(“SELECT id,name,age FROM person”);

// 6.处理查询结果
while (rs.next()) {
System.out.println(rs.getInt(1) + “,” +
rs.getString(2)+ “,” +
rs.getInt(3)) ;
}

// 7.关闭连接
rs.close();
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}

}
}

以上代码需要在项目maven pom.xml文件中加入如下依赖:

org.apache.hive hive-jdbc 3.1.3

以上代码运行结果如下:

1,zs,18
2,ls,19
3,ww,20

​​​​​​​5. Spark访问Kerberos认证Hive

这里是通过SparkSQL来读取Kerberos认证Hive中的数据,按照如下步骤配置即可。

1) 准备krb5.conf及keytab文件

在node1
kerberos服务端将/etc/krb5.conf文件放在window固定路径中,同时将hive主体对应的keytab密钥文件放在windows固定路径中。这里项目中已经有了,可以忽略。

2) 准备访问Hive 需要的资源文件

将HDFS中的core-site.xml 、hdfs-site.xml 、yarn-site.xml文件及Hive客户端配置hive-
site.xml上传到项目resources资源目录中。

3) 准备Maven项目依赖

在IDEA项目中将hive-jdbc依赖进行注释,该包与SparkSQL读取Hive中的数据的包有冲突,向maven依赖中导入如下依赖包:

org.apache.spark spark-core_2.12 3.4.0

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
![img](https://img-
blog.csdnimg.cn/img_convert/ee0681002d8fc161bf26918e2cbe261a.png)
![img](https://img-
blog.csdnimg.cn/img_convert/44247dc9bccf990e2bc4764b81eda278.png)
![img](https://img-
blog.csdnimg.cn/img_convert/cacd8356df921f3ebf9e22fd98d64d3b.png)
![img](https://img-
blog.csdnimg.cn/img_convert/5d72998fb4a70a7f121a8cd8a315d48c.png)
![img](https://img-
blog.csdnimg.cn/img_convert/5205d604a466411f4b44a6a329ce3b95.png)
![img](https://img-
blog.csdnimg.cn/img_convert/4bace5e50fd738aa77021f56f95c760c.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
![img](https://img-
blog.csdnimg.cn/img_convert/2ffc620ab14143fc5252536507c520c6.png)

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
![在这里插入图片描述](https://img-
blog.csdnimg.cn/15c1192cad414044b4dd41f3df44433d.png)![在这里插入图片描述](https://img-
blog.csdnimg.cn/b07abbfab1fd4edc800d7db3eabb956e.png)

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C
C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

c800d7db3eabb956e.png)

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C
C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐