CDH数仓项目(三) —— Kerberos安全认证和Sentry权限管理

0 说明

本文基于《CDH数仓项目(一) ——
CDH安装部署搭建详细流程》
《CDH数仓项目(二)
——
用户行为数仓和业务数仓搭建》
和搭建CDH数仓。本章节主要介绍基于CDH数仓的Kerberos认证和Sentry权限管理

1 Kerberos安全认证

1.1 Kerberos概述

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。

1.2 Kerberos概念

Kerberos中有以下一些概念需要了解:
1)KDC:密钥分发中心,负责管理发放票据,记录授权。
2)Realm:Kerberos管理领域的标识。
3)principal:当每添加一个用户或服务的时候都需要向kdc添加一条principal,principl的形式为:主名称/实例名@领域名。
4)主名称:主名称可以是用户名或服务名,表示是用于提供各种网络服务(如hdfs,yarn,hive)的主体。
5)实例名:实例名简单理解为主机名。

1.3 Kerberos认证原理

在这里插入图片描述

2 Kerberos安装

2.1 server节点安装kerberos相关软件

server节点只需安装一个节点即可,这里安装在chen102节点上

yum install -y krb5-server krb5-workstation krb5-libs

查看安装结果

rpm -qa | grep krb5

在这里插入图片描述

2.2 client节点安装

client节点可以安装多个

yum install -y krb5-workstation krb5-libs

在这里插入图片描述

2.3 配置Kerberos

需要配置的文件有两个为kdc.conf和krb5.conf , kdc配置只是需要Server服务节点配置,即chen102.
1) kdc配置

vim /var/kerberos/krb5kdc/kdc.conf

在这里插入图片描述
说明:

CHEN.COM:realm名称,Kerberos支持多个realm,一般全用大写。
acl_file:admin的用户权。
admin_keytab:KDC进行校验的keytab。

supported_enctypes:支持的校验方式,注意把aes256-cts去掉,JAVA使用aes256-cts验证方式需要安装额外的jar包,所有这里不用

2) krb5文件配置

vim /etc/krb5.conf

在这里插入图片描述

修改内容同步到集群其他节点

default_realm:默认的realm,设置 Kerberos 应用程序的默认领域,必须跟要配置的realm的名称一致。
ticket_lifetime:表明凭证生效的时限,一般为24小时。
renew_lifetime : 表明凭证最长可以被延期的时限,一般为一个礼拜。当凭证过期之后,对安全认证的服务的后续访问则会失败。
udp_preference_limit= 1:禁止使用 udp,可以防止一个 Hadoop 中的错误。
realms:配置使用的 realm,如果有多个领域,只需向 [realms] 节添加其他的语句。
domain_realm:集群域名与Kerberos realm的映射关系,单个realm的情况下,可忽略。

2.4 生成Kerberos数据库

在server节点执行

 kdb5_util create -s

创建完成后/var/kerberos/krb5kdc目录下会生成对应的文件

ls /var/kerberos/krb5kdc/

在这里插入图片描述

2.5 赋予Kerberos管理员所有权限

vim /var/kerberos/krb5kdc/kadm5.acl



#修改为以下内容:
*/admin@CHEN.COM      *

说明:
*/admin:admin实例的全部主体
@HADOOP.COM:realm
*:全部权限
这个授权的意思:就是授予admin实例的全部主体对应CHEN.COM领域的全部权限。也就是创建Kerberos主体的时候如果实例为admin,就具有CHEN.COM领域的全部权限,比如创建如下的主体user1/admin就拥有全部的CHEN.COM领域的权限。

2.6 启动Kerberos服务(server节点执行)

启动krb5kdc

systemctl start krb5kdc

启动kadmin

 systemctl start kadmin

在这里插入图片描述

设置开机自启

systemctl enable krb5kdc



systemctl enable kadmin

查看是否设置为开机自启

systemctl is-enabled krb5kdc



systemctl is-enabled kadmin

注:启动失败时可以通过/var/log/krb5kdc.log和/var/log/kadmind.log来查看。
在这里插入图片描述

2.7 创建管理员主体/实例

kadmin.local -q "addprinc admin/admin"

在这里插入图片描述

2.8 kinit管理员验证

kinit admin/admin
klist

在这里插入图片描述
其他节点尝试
在这里插入图片描述

2.9 Kerberos数据库操作

2.9.1 登录kerberos数据库

1)本地登录(无需认证)

kadmin.local

在这里插入图片描述

2)远程登录(需进行主体认证,先认证刚刚创建的管理员主体)

kadmin

在这里插入图片描述

2.9.2 创建kerberos主体
kadmin.local -q "addprinc test/test"
2.9.3 修改主体密码
kadmin.local -q "cpw test/test"

在这里插入图片描述

2.9.4 查看所有主体
kadmin.local -q "list_principals"

在这里插入图片描述

2.10 Kerberos主体认证

Kerberos提供了两种认证方式,一种是通过输入密码认证,另一种是通过keytab密钥文件认证,但两种方式不可同时使用

2.10.1 密码认证
kinit test/test
klist

在这里插入图片描述

2.10.2 keytabl密钥文件认证

1)生成主体admin/admin的keytab文件到指定目录/root/admin.keytab

kadmin.local -q "xst -k /root/test.keytab test/test@CHEN.COM"

2)使用keytab进行认证

kinit -kt /root/test.keytab test/test

查看keytab包含的主体名称

klist -ekt /root/test.keytab

3)查看认证凭证

klist

在这里插入图片描述
此时通过密码认证就不能再登录了

2.11 销毁认证

kdestroy
klist

3 CDH安装Kerberos

3.1 CDH启用Kerberos安全认证

为CM创建管理员主体/实例

kadmin.local -q "addprinc cloudera-scm/admin"

在这里插入图片描述

3.2 CDH页面启动kerberos

在这里插入图片描述

3.3 环境确认

在这里插入图片描述

3.4 填写配置

Kerberos 加密类型:aes128-cts、des3-hmac-sha1、arcfour-hmac
在这里插入图片描述

3.5 填写主题名和密码

在这里插入图片描述

3.6 等待导入kdc

在这里插入图片描述

3.7 等待重启集群

在这里插入图片描述

3.8 查看主体

在这里插入图片描述

4 Kerberos安全环境实操

在启用Kerberos之后,系统与系统(flume-kafka)之间的通讯,以及用户与系统(user-
hdfs)之间的通讯都需要先进行安全认证,认证通过之后方可进行通讯。
故在启用Kerberos后,数仓中使用的脚本等,均需要加入一步安全认证的操作,才能正常工作。

4.1 用户访问服务认证

开启Kerberos安全认证之后,日常的访问服务(例如访问HDFS,消费Kafka topic等)都需要先进行安全认证
1)在Kerberos数据库中创建用户主体/实例

kadmin.local -q "addprinc hive/hive@CHEN.COM"

2)进行用户认证

kinit hive/hive@CHEN.COM

3)访问HDFS

hadoop fs -ls /

在这里插入图片描述

4)hive查询

hive

在这里插入图片描述
5)消费Kafka topic
(1)修改Kafka配置
① 在Kafka的配置项搜索“security.inter.broker.protocol”,设置为SALS_PLAINTEXT。
② 在Kafka的配置项搜索“ssl.client.auth”,设置为none。
(2)创建jaas.conf文件

vim /var/lib/hive/jaas.conf



KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};

(3)创建consumer.properties文件

vim /etc/kafka/conf/consumer.properties

文件内容如下

security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka

(4)声明jass.conf文件路径

export KAFKA_OPTS="-Djava.security.auth.login.config=/var/lib/hive/jaas.conf"

(5)使用kafka-console-consumer消费Kafka topic数据

kafka-console-consumer --bootstrap-server chen102:9092 --topic topic_start --from-beginning --consumer.config /etc/kafka/conf/consumer.properties

能够正常消费数据
在这里插入图片描述

4.2 windows webui浏览器认证

我们设置CDH支持kerberos后会出现下图所示的情况:
可以登录9870,但是不能查看目录及文件,这是由于我们本地环境没有通过认证。
接下来我们设置本地验证。
(1) 下载火狐
(2)设置浏览器
① 打开火狐浏览器,在地址栏输入:about:config,进入设置页面。
在这里插入图片描述
② 搜索“network.negotiate-auth.trusted-uris”,修改值为自己的服务器主机名
在这里插入图片描述
③ 搜索“network.auth.use-sspi”,双击将值变为false
在这里插入图片描述
(3)安装kfw
① 安装提供的kfw-4.1-amd64.msi。
② 将集群的/etc/krb5.conf文件的内容复制到C:\ProgramData\MIT\Kerberos5\krb.ini中,删除和路径相关的配置。

链接:https://pan.baidu.com/s/1sMmqTbVcVhNQubjQR5CrCQ 
提取码:amo6

文件内容:

[logging]

 [libdefaults]
  default_realm = CHEN.COM
  dns_lookup_realm = false
  dns_lookup_kdc = false
  ticket_lifetime = 24h
  renew_lifetime = 7d
  forwardable = true
  udp_preference_limit = 1

[realms]
 CHEN.COM = {
  kdc = chen102  
  admin_server = chen102
 }

[domain_realm]

③ 打开MIT,输入主体名和密码:

在这里插入图片描述
④ 测试
在这里插入图片描述

4.3 用户行为数仓

4.3.1 日志采集Flume配置

日志采集Flume,数据被发送到了Kafka,该Flume相当于一个Kafka生产者。所以需要我们进行上述Kafka客户端的安全认证。但是此处不需要我们进行手动配置,在开启Kerberos后,CM会自动进行配置。

4.3.2 消费Kafka Flume配置

消费Kafka
Flume,将数据从Kafka传输到HDFS,该Flume相当于一个Kafka消费者。所以也需要我们进行上述Kafka客户端的安全认证(无需手动认证,CM会自动进行配置)。除此之外,我们还需要进行HDFS客户端的安全认证,这需要我们手动配置。
(1)生成hive用户的keytab文件
用户认证的方式有“输入密码”和“使用keytab密钥文件”两种方式,此处需使用keytab密钥文件进行认证。

kadmin.local -q "xst -k /var/lib/hive/hive.keytab hive/hive@CHEN.COM"

(2)增加读权限
chmod +r /var/lib/hive/hive.keytab
(3)分发keytab文件
(4)修改flume agent配置文件

## 组件
a1.sources=r1 r2
a1.channels=c1 c2
a1.sinks=k1 k2

## source1
a1.sources.r1.type = org.apache.flume.source.kafka.KafkaSource
a1.sources.r1.batchSize = 5000
a1.sources.r1.batchDurationMillis = 2000
a1.sources.r1.kafka.bootstrap.servers = chen102:9092,chen103:9092,chen104:9092
a1.sources.r1.kafka.topics=topic_start

## source2
a1.sources.r2.type = org.apache.flume.source.kafka.KafkaSource
a1.sources.r2.batchSize = 5000
a1.sources.r2.batchDurationMillis = 2000
a1.sources.r2.kafka.bootstrap.servers = chen102:9092,chen103:9092,chen104:9092
a1.sources.r2.kafka.topics=topic_event

## channel1
a1.channels.c1.type=memory
a1.channels.c1.capacity=100000
a1.channels.c1.transactionCapacity=10000

## channel2
a1.channels.c2.type=memory
a1.channels.c2.capacity=100000
a1.channels.c2.transactionCapacity=10000

## sink1
a1.sinks.k1.type = hdfs
#a1.sinks.k1.hdfs.proxyUser=hive
a1.sinks.k1.hdfs.kerberosPrincipal=hive/hive@CHEN.COM
a1.sinks.k1.hdfs.kerberosKeytab=/var/lib/hive/hive.keytab
a1.sinks.k1.hdfs.path = /origin_data/gmall/log/topic_start/%Y-%m-%d
a1.sinks.k1.hdfs.filePrefix = logstart-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = second

##sink2
a1.sinks.k2.type = hdfs
#a1.sinks.k2.hdfs.proxyUser=hive
a1.sinks.k2.hdfs.kerberosPrincipal=hive/hive@CHEN.COM
a1.sinks.k2.hdfs.kerberosKeytab=/var/lib/hive/hive.keytab
a1.sinks.k2.hdfs.path = /origin_data/gmall/log/topic_event/%Y-%m-%d
a1.sinks.k2.hdfs.filePrefix = logevent-
a1.sinks.k2.hdfs.round = true
a1.sinks.k2.hdfs.roundValue = 10
a1.sinks.k2.hdfs.roundUnit = second

## 不要产生大量小文件
a1.sinks.k1.hdfs.rollInterval = 10
a1.sinks.k1.hdfs.rollSize = 134217728
a1.sinks.k1.hdfs.rollCount = 0

a1.sinks.k2.hdfs.rollInterval = 10
a1.sinks.k2.hdfs.rollSize = 134217728
a1.sinks.k2.hdfs.rollCount = 0

## 控制输出文件是原生文件。
a1.sinks.k1.hdfs.fileType = CompressedStream 
a1.sinks.k2.hdfs.fileType = CompressedStream 

a1.sinks.k1.hdfs.codeC = lzop
a1.sinks.k2.hdfs.codeC = lzop

## 拼装
a1.sources.r1.channels = c1
a1.sinks.k1.channel= c1

a1.sources.r2.channels = c2
a1.sinks.k2.channel= c2

在这里插入图片描述
在这里插入图片描述
配置成功后,重启flume,执行采集脚本验证是否能正常采集。查看hdfs可看到如下页面,说明已经可以正常采集
在这里插入图片描述

4.3.3 ods层

ods_log.sh添加如下内容:

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"

在这里插入图片描述

4.3.4 dwd层

dwd_start_log.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"
4.3.5 dws层

dws_log.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"
4.3.6 ads层

ads_uv_log.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"

4.4 业务数仓

分别向业务数仓中添加kerberos认证

4.4.1 sqoop导入

sqoop_import.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
4.4.2 ods层

ods_db.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"
4.4.3 dwd层

dwd_db.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"
4.4.4 dws层

dws_db_wide.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"
4.4.5 ads层

ads_db_gmv.sh

kinit -kt /var/lib/hive/hive.keytab hive/hive
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM" -n hive -e "$sql"
4.4.6 sqoop导出
kinit -kt /var/lib/hive/hive.keytab hive/hive

4.5 测试运行

4.5.1 hdfs新建目录
hadoop fs -mkdir /user/hive/bin_kerberos
4.5.2 上传最新脚本到hdfs目录
4.5.3 造数据

在这里插入图片描述

4.5.4 hue页面新建调度任务

在这里插入图片描述

4.5.6 查看执行结果

5 Sentry

5.1 sentry概述

cdh版本的hadoop在对数据安全上的处理通常采用Kerberos+Sentry的结构。kerberos主要负责平台用户的用户认证,sentry则负责数据的权限管理。

5.2 Sentry 是什么

Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,它提供了细粒度级、基于角色的授权以及多租户的管理模式。
Sentry提供了对Hadoop集群上经过身份验证的用户和应用程序的数据控制和强制执行精确级别权限的功能。Sentry目前可以与Apache
Hive,Hive Metastore / HCatalog,Apache Solr,Impala和HDFS(仅限于Hive表数据)一起使用。
Sentry旨在成为Hadoop组件的可插拔授权引擎。它允许自定义授权规则以验证用户或应用程序对Hadoop资源的访问请求。Sentry是高度模块化的,可以支持Hadoop中各种数据模型的授权

在这里插入图片描述

5.3 Sentry安装部署

5.3.1 添加Sentry服务

在这里插入图片描述

5.3.2 自定义sentry角色

在这里插入图片描述

5.3.3 配置数据库连接

在这里插入图片描述

5.3.4 完成sentry服务添加

在这里插入图片描述

5.4 sentry与Hive集成

5.4.1 修改配置参数

(1)取消HiveServer2用户模拟
在hive配置项中搜索“HiveServer2 启用模拟”,取消勾选
在这里插入图片描述
(2)确保hive用户能够提交MR任务
在yarn配置项中搜索“允许的系统用户”,确保包含“hive”。
在这里插入图片描述
(3)在Hive配置项中搜索“启用数据库中的存储通知”,勾选。
在这里插入图片描述

(4)在Hive配置项中搜索“Sentry”,勾选Sentry。
在这里插入图片描述

5.5 sentry与impala配置

在Impala配置项中搜索“Sentry”,勾选。
在这里插入图片描述

5.6 HDFS配置sentry

1)在HDFS配置项中搜索“启用访问控制列表”,勾选。
在这里插入图片描述

2)在HDFS配置项中搜索“启用 Sentry 同步”,做出下图修改。
在这里插入图片描述

5.7 sentry与hue

1)配置HUE支持Sentry
在HUE配置项中搜索“Sentry”,勾选Sentry。
在这里插入图片描述

6 sentry权限认证测试

6.1 通过HUE操作

1)查看Sentry权限管理中的管理员组。
在Sentry的配置项中搜索“管理员组”,其中包括hive、impala,只有当某用户所属组位于其中时,才可为其他用户授予权限。
在这里插入图片描述
2)在Hive集群所有节点创建两个用户reader,writer,为权限测试做准备。

useradd reader
passwd reader
useradd writer
passwd writer

3)使用hive用户登录HUE,创建两个用户组reader、writer,并在两个用户组下创建两个用户reader、writer,为权限测试做准备。
在这里插入图片描述

4)Sentry工作界面(需要授予HUE用户访问Sentry的权限)

5)点击Roles按钮,并点击添加按钮
在这里插入图片描述

6)编辑Role
admin_role(首先为hive用户添加管理员权限)
在这里插入图片描述
reader_role
在这里插入图片描述

writer_role
在这里插入图片描述

7)权限测试
(1)分别使用reader和writer用户登录HUE
(2)查询gmall数据库中的任意一张表,发现只有reader用户可查出,而writer则不能。说明权限控制生效。
reader用户,具有查询权限
在这里插入图片描述
reader用户,不具备插入数据权限
在这里插入图片描述
writer用户不具备查询权限
在这里插入图片描述

writer用户具备插入权限
在这里插入图片描述

6.2 命令行操作

1)在Hive集群所有节点创建两个用户reader_cmd,writer_cmd

useradd reader_cmd
passwd reader_cmd
useradd writer_cmd
passwd writer_cmd

2)使用Sentry管理员用户hive通过beeline客户端连接HiveServer2

kinit -kt /var/lib/hive/hive.keytab hive/hive@CHEN.COM
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM"

在这里插入图片描述

① 创建Role(reader_role_cmd,writer_role_cmd)

create role reader_role_cmd;
create role writer_role_cmd;

在这里插入图片描述
② 为role赋予privilege

GRANT select ON DATABASE gmall TO ROLE reader_role_cmd;
GRANT insert ON DATABASE gmall TO ROLE writer_role_cmd;

在这里插入图片描述

③ 将role授予用户组

GRANT ROLE reader_role_cmd TO GROUP reader_cmd;
GRANT ROLE writer_role_cmd TO GROUP writer_cmd;

在这里插入图片描述
执行上述命令后,在hue页面也能查看到当前新建的角色
在这里插入图片描述

④ 查看权限授予情况
(1)查看所有role(管理员)

SHOW ROLES;

在这里插入图片描述
(2)查看指定用户组的role(管理员)

SHOW ROLE GRANT GROUP reader_cmd;

在这里插入图片描述

(3)查看当前认证用户的role

SHOW CURRENT ROLES;

在这里插入图片描述

(4)查看指定ROLE的具体权限(管理员)

SHOW GRANT ROLE reader_role_cmd;

在这里插入图片描述

⑤ 权限测试
(1)为reader_cmd、writer_cmd创建Kerberos主体

kadmin.local -q "addprinc reader_cmd/reader_cmd@CHEN.COM"
kadmin.local -q "addprinc writer_cmd/writer_cmd@CHEN.COM"

在这里插入图片描述
(2)使用reader_cmd登录HiveServer2,查询gmall库下的任意一张表

kinit reader_cmd/reader_cmd@CHEN.COM
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM"

在这里插入图片描述
具有查询权限
在这里插入图片描述
不具备插入权限
在这里插入图片描述
(3)使用writer_cmd登录HiveServer2,查询gmall库下的任意一张表

kinit writer_cmd/writer_cmd@CHEN.COM
beeline -u "jdbc:hive2://chen102:10000/;principal=hive/chen102@CHEN.COM"

在这里插入图片描述
writer_cmd不具备查询表权限
在这里插入图片描述
writer_cmd具备插入表权限
在这里插入图片描述
(4)查询结果
reader_cmd有对于gmall表的查询权限,而writer_cmd没有。说明授权生效。

后面是对CDH数仓项目性能测试及清理CDH集群操作,详见
《CDH数仓项目(四) ——
集群性能测试/资源管理/清理CDH集群》

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

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值