nis+kerberos 实现服务验证
1.NIS部分
1.1 简介
NIS(Network Information Service,or Yellow Page or YP) 网络信息服务,由sun公司开发并授权给unix供应商,最初称为黄页,简称YP,由于 British Telecom PLC公司优先注册了Yellow Page商标,所以sun公司最终将其改名为NIS,但是其应用程序或脚本仍延用以yp开头。
NIS是一种应用层协议,以客户端/服务器端的方式工作,主要作用是在网络中提供轻型目录服务,如存储用户或组帐号信息,计算机名信息等。就像windows中的AD,集中存储用户的帐号信息,计算机信息,这样方便管理帐号,在中大型企业中应用广泛。当然NIS不仅可以进行帐号的统一管理,还可以结合kerberos做应用服务的验证,如:ftp
ssh等。
1.2 NIS架构
NIS服务是C/S模式,NIS服务器可以多台,分为master/slave模式,主服务器负责数据库制作管理,从服务器负责从主服务器更新数据并且提供与master
相同的查寻功能!
NIS的服务器集中维护用户的账号信息,当NIS客户机需要进行用户登录的信息验证时,就向NIS服务器发出查询请求。当系统中的一台NIS服务器为多台NIS客户机提供服务时,用户登录系统中的任何一台NIS客户机都会从NIS服务器进行登录验证,这样就实现了集中管理用户账号的功能。
在NIS服务器的数据库中主要包含以下几类信息:用户账号信息,组账号信息,IP地址和主机名称对应记录的信息,这些信息被保存在不同的数据库文件中进行集中的管理。
1.3 NIS工作原理
- NIS服务器根据本地保存的系统信息,制作数据库文件
- NIS主辅服务器进行数据同步,主可以主动推送到从,从也可以主动找主更新
- 客户端向NIS服务器发送请求(先从本地验证,找不到再向服务器请求)
- 客户端选择处于存活状态且为yp.conf指定的NIS服务器,该服务器响应请求,如果客户端广播,则有ypbind进程查询NIS服务器,响应最快的服务器将与客户端通信。
1.4
NIS应用程序及配置文件1.4.1 服务端
1.4.1.1
服务端主要守护进程及功能 - /lib/systemd/system/ypserv.service
NIS服务器提供的主要服务 - /lib/systemd/system/ypxfrd.service
用于NIS主从数据同步 - /lib/systemd/system/yppasswdd.service
通过此服务,NIS客户端登录的用户可以直接修改在NIS服务器上的密码 - /lib/systemd/system/ypbind.service
用于提供端口绑定服务
##### 1.4.1.2 服务端主配置文件 - /etc/ypserv.conf
关键配置文件,规范NIS客户端登录权限等。
1.4.2 客户端
NIS客户端配置文件
- /etc/hosts
主机名与IP地址对应关系 - /etc/yp.conf
ypbind的主要配置文件,设定NIS Server - /etc/nsswitch.conf
重要的配置文件,设定帐号密码等信息
2
kerberos部分2.1 简介
kerberos希腊语是看门狗的意思,由MIT研发,目前最新版应该第5版。kerberos验证过程有点复杂,曾经MIT在1988年写了一篇有趣的文章,使用对话的方式将整个过程描述出来,它就是雅典娜和欧里庇得斯的对话,有兴趣的朋友可以去阅读一下,可以很好的帮助理解kerberos。
2.2 名词术语
- KDC 指kerberos服务器
- principal
指存放于kerberos服务器中的条目,包括用户条目,服务条目。常见条目写法如下:
条目 写法 user : user/描述@xxx.com ftp server: ftp/hostname@xxx.com ssh server: host/hostname@xxx.com telnet ser: host/hostname@xxx.com nfs server: nfs/hostname@xxx.com - TGT 票据授权票
2.3 工作原理
kerberos验证过程分为2步,初始验证过程和票据验证过程
2.3.1
初始验证过程 - 1. 用户输入用户名和密码
- 2. client登录程序向kdc发送请求
- 3. kdc知道用户的密码并发给client一张以用户密码加密过的TGT
- 4.
client用自己的密码解开了KDC发给以自己的加密过的TGT并将票据存在本地,此时完成验证,允许登录2.3.2 票据验证过程
以client请求登录ssh服务为例:
- 1. client向KDC发送服务验证请求
- 2.
kdc向client发送1个以TGT加密过的ticket和1个以服务密码加密过的ticket - 3.
client收到ticket后用存在本地的TGT进行解密,再将解密后的ticket加上一个时间戳加密形成ticket2和以服务密码加密过的ticket一起发给ssh服务器 - 4.
ssh服务器用自己的服务密码解开ticket,有了ticket便可以解开ticket2从而解开时间戳,完成整个验证过程。3 实验部分
3.1 实验环境
IP 主机名 功能 192.168.5.10 master.example.com NIS主服务器master+kerberos服务 192.168.5.11 node1.example.com NIS从服务器slave 192.168.5.12 node2.example.com ssh server+kerberos workstation 192.168.5.13 node3.example.com nis client+kerberos
workstation3.2 功能实现
- 实现NIS主从服务器数据同步及查询功能
- 实现node3以NIS服务器中用户sshu帐号登录本机
- 实现node3以NIS服务器中用户sshu帐号ssh到node2免密码
3.3
NIS主从架构实验3.3.1
软件包安装 - 在master和node1上安装NIS服务端和客户端软件包:
[root@master ~]# yum install -y ypserv yp-tools
[root@node1 ~]# yum install -y ypserv yp-tools
- 在node3上安装NIS客户端软件包:
[root@node3 ~]# yum install -y yp-tools
3.3.2 启动rpcbind服务
- 在master和node1上启动为rpcbind服务并设置为开机自启动
[root@master ~]# systemctl start rpcbind
[root@master ~]# systemctl enable rpcbind
[root@node1 ~]# systemctl start rpcbind
[root@node1 ~]# systemctl enable rpcbind
- 查看rpcbind服务情况
[root@master ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
3.3.3 修改相关配置文件
- 在master上编辑/etc/sysconfig/network文件,添加如下内容 主要设置主机名和nisdomain ``` HOSTNAME=master.example.com NISDOAMIN=master.example.com ```
- 在master和node1上修改/etc/hosts文件
[root@master ~]# cat /etc/hosts
192.168.5.10 master master.example.com
192.168.5.11 node1 node1.example.com
192.168.5.12 node2 node2.example.com
192.168.5.13 node3 node3.example.com
- 配置/var/yp/ypservers
[root@master yp]# cat /var/yp/ypservers
master
node1
- 修改/var/yp/Makefile文件
NOPUSH=false #允许主服务器向从服务器传递数据库文件
3.3.4 启动nis服务
- 在master和node1上启动nis服务并设置为开机自启动
[root@master yp]# systemctl restart ypserv
[root@master yp]# systemctl restart ypbind
[root@master yp]# systemctl restart yppasswdd
[root@master yp]# systemctl restart ypxfrd
- 从服务器的配置只需将主服务器的yp.conf文件拷贝过来即可,并启动4个服务 #### 3.3.5 初始化NIS数据库并添加用户信息
- 在master上初始化NIS数据库
[root@master ~]# /usr/lib64/yp/ypinit -m At this point, we have to construct a list of the hosts which will run NIS
servers. master is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: master
next host to add:
按ctrl+d保存
The current list of NIS servers looks like this: master Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/master.example.com/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/master.example.com'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory `/var/yp/master.example.com' master has been set up as a NIS master server. Now you can run ypinit -s master on all slave server.
最终在/var/yp目录下生成数据库文件,查看一下
[root@master ~]# ls /var/yp/
Makefile master.example.com ypservers
[root@master ~]# ls /var/yp/master.example.com/
group.bygid mail.aliases protocols.byname services.byname
group.byname netid.byname protocols.bynumber services.byservicename
hosts.byaddr passwd.byname rpc.byname ypservers
hosts.byname passwd.byuid rpc.bynumber
- 新建一个用户帐户
[root@master ~]# useradd sshu
[root@master ~]# passwd sshu
Changing password for user sshu.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
- 将新建帐户添加到NIS数据库中
[root@master ~]# make -C /var/yp/
make: Entering directory `/var/yp'
gmake[1]: Entering directory `/var/yp/master.example.com'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
gmake[1]: Leaving directory `/var/yp/master.example.com'
make: Leaving directory `/var/yp'
使用NIS客户端工具查看数据库信息已经有了刚添加的sshu用户信息
[root@master ~]# ypcat -d master.example.com -h master.example.com passwd
sshu:$6$WrW8Lw06$/.WxYeOBxJ02aV0u3SVzeZ2sz/2csruFdmUcjYbEiA/vLhorYVC2XCUOpGEKpuG1ImGFq87BL61sy4puUWNLO1:1000:1000::/home/frank:/bin/bash
- 在node1从服务器上同步主服务器的全部文件
[root@node1 ~]# /usr/lib64/yp/ypinit -s master
We will need a few minutes to copy the data from master.
Transferring netid.byname...
Trying ypxfrd ... success Transferring group.bygid...
Trying ypxfrd ... success Transferring group.byname...
Trying ypxfrd ... success Transferring passwd.byuid...
Trying ypxfrd ... success Transferring passwd.byname...
Trying ypxfrd ... success Transferring mail.aliases...
Trying ypxfrd ... success Transferring protocols.byname...
Trying ypxfrd ... success Transferring protocols.bynumber...
Trying ypxfrd ... success Transferring services.byservicename...
Trying ypxfrd ... success Transferring services.byname...
Trying ypxfrd ... success Transferring rpc.bynumber...
Trying ypxfrd ... success Transferring rpc.byname...
Trying ypxfrd ... success Transferring hosts.byaddr...
Trying ypxfrd ... success Transferring hosts.byname...
Trying ypxfrd ... success Transferring ypservers...
Trying ypxfrd ... success node1's NIS data base has been set up.
If there were warnings, please figure out what went wrong, and fix it. At this point, make sure that /etc/passwd and /etc/group have
been edited so that when the NIS is activated, the data bases you
have just created will be used, instead of the /etc ASCII files.
- 在从服务器上查看是否有sshu用户
[root@node1 ~]# ypcat -h node1.example.com passwd
frank:$6$WrW8Lw06$/.WxYeOBxJ02aV0u3SVzeZ2sz/2csruFdmUcjYbEiA/vLhorYVC2XCUOpGEKpuG1ImGFq87BL61sy4puUWNLO1:1000:1000::/home/frank:/bin/bash
sshu:$6$K6XRNhSk$st/0cfN6GAq8maTFlPQktxqQwKFPLeOQ97JpqkApQ9EwzwKqsNzIo5OEYeyv9LFMD6bU25367BYeuv4NsjSOy1:1001:1001::/home/u123:/bin/bash
表明数据同步成功,当然不可能每次都要手动同步,设置个定时任务计划便可以解决这个问题。
3.3.6 主从同步配置
在master服务器上添加任务计划
5 * * * * /usr/sbin/yppush -h node1.example.com passwd.byname
5 * * * * /usr/sbin/yppush -h node1.example.com passwd.byuid
5 * * * * /usr/sbin/yppush -h node1.example.com group.byname
5 * * * * /usr/sbin/yppush -h node1.example.com group.bygid
3.3.7 客户端登录验证
- 将node3配置为使用nis验证 ``` [root@node3 ~]# cat /etc/yp.conf # /etc/yp.conf - ypbind configuration file # Valid entries are # # domain NISDOMAIN server HOSTNAME # Use server HOSTNAME for the domain NISDOMAIN. domain master.example.com server master.example.com domain master.example.com server node1.example.com ```
- 更改验证方式
[root@node3 ~]# authconfig-tui
通过终端登录测试
OK 验证成功
3.3.8 NIS数据库访问安全性
可以以/var/yp/目录下创建securenets文件来限制网络主机查看NIS服务器的数据库
[root@master yp]# vi securenets
[root@master yp]# cat !$
cat securenets
255.255.255.255 192.168.5.11
表示允许5.11的主机可以查看NIS数据库
- 到5.11上验证:查询成功
[root@node1 ~]# ypcat -d master.example.com -h master.example.com passwd
frank:$6$WrW8Lw06$/.WxYeOBxJ02aV0u3SVzeZ2sz/2csruFdmUcjYbEiA/vLhorYVC2XCUOpGEKpuG1ImGFq87BL61sy4puUWNLO1:1000:1000::/home/frank:/bin/bash
[root@node1 ~]# ifconfig | grep inet |grep 192
inet 192.168.5.11 netmask 255.255.255.0 broadcast 192.168.5.255
- 到5.12上再试一下:查询失败
[root@node2 ~]# ifconfig |grep inet |grep 5.12
inet 192.168.5.12 netmask 255.255.255.0 broadcast 192.168.5.255
[root@node2 ~]# ypcat -d master.example.com -h master.example.com passwd
No such map passwd.byname. Reason: No such map in server's domain
3.4 NIS+kerberos实现应用服务验证
3.4.1 安装kerberos
在master上安装 krb5-server krb5-workstation,在node2和node3安装krb5-workstation
[root@master ~]# yum -y install krb5-server krb5-workstation
[root@node2 ~]# yum -y install krb5-workstation
[root@node3 ~]# yum -y install krb5-workstation
3.4.2 配置kerberos
- 在master上编辑/etc/krb5.conf
[realms] //表示域
# EXAMPLE.COM = {
# kdc = kerberos.example.com
# admin_server = kerberos.example.com
# }
MASTER.EXAMPLE.COM = { //域名称随便写,一般大写,可以和NIS域名不同
kdc = 192.168.5.10 //kdc主机地址
admin_server = 192.168.5.10 //管理主机地址
}
[domain_realm]
.example.com = MASTER.EXAMPLE.COM //表示后辍为example.com所有域成员
这个配置文件凡是装有krb5-workstation的主机都要有一份
[root@master ~]# for i in {2,3};do scp /etc/krb5.conf node$i:/etc/krb5.conf;done
root@node2's password:
krb5.conf 100% 835 121.9KB/s 00:00
root@node3's password:
krb5.conf 100% 835 280.8KB/s 00:00
- 在master上编辑/var/kerberos/krb5kdc/kdc.conf
[root@master ~]# vi /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88 [realms]
EXAMPLE.COM = {
master_key_type = aes256-cts //取消本行的注释
default_principal_flags = +preauth //增加本行,表示预验证
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
}
- 在master上编辑/var/kerberos/krb5kdc/kadm5.acl
[root@master ~]# vi /var/kerberos/krb5kdc/kadm5.acl */admin@MASTER.EXAMPLE.COM *
第一*表示用户,第二*表示权限
权限可选择的配置列表如下:
a: 允许增加principal或访问策略
A: 不允许增加principal或访问策略
c: 允许变更principals的密码
C: 不允许变更princials的密码
d: 允许删除principals或策略
D: 不允许删除principals或策略
i: 允许查看数据库
I: 不允许查看数据库
l: 允许列出principals或策略列表
L: 不允许列出principals或策略
m: 允许修改principals或策略
M: 不允许修改principals或策略
p: 允许传播(propagation)principal数据库
P: 不允许传播principal数据库
u: 允许创建使用PAM进行密码验证的单一组件用户principal
U: 否决u的权限
x: a,d,m,c,i,l权限的快捷方式
*: 跟x一样
这里的admin帐号系统中还没有,需要后面创建
- 在master上生成kerberos数据库
[root@master ~]# kdb5_util create -r MASTER.EXAMPLE.COM -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'MASTER.EXAMPLE.COM',
master key name 'K/M@MASTER.EXAMPLE.COM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: //提示输入KDC数据库密码,不能忘记
Re-enter KDC database master key to verify:
- 在master上启动服务
[root@master ~]# systemctl start krb5kdc && systemctl enable krb5kdc
Job for krb5kdc.service failed because the control process exited with error code. See "systemctl status krb5kdc.service" and "journalctl -xe" for details.
出了错,先看看日志
[root@master ~]# tail /var/log/krb5kdc.log
krb5kdc: Configuration file does not specify default realm - while attempting to retrieve default realm
krb5kdc: Configuration file does not specify default realm - while attempting to retrieve default realm
krb5kdc: Configuration file does not specify default realm - while attempting to retrieve default realm
日志说配置文件里没有默认的域 在/etc/krb5.conf配置文件里检查下,果然是有一行默认域被注释
[root@master ~]# !vi
vi /etc/krb5.conf # Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/ [logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log [libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM
default_realm = MASTER.EXAMPLE.COM //问题就出在这里
再次启动服务,OK问题解决
[root@master ~]# systemctl start kadmin
[root@master ~]# systemctl enable kadmin
Created symlink from /etc/systemd/system/multi-user.target.wants/kadmin.service to /usr/lib/systemd/system/kadmin.service.
[root@master ~]# systemctl start krb5kdc
[root@master ~]# systemctl enable krb5kdc
Created symlink from /etc/systemd/system/multi-user.target.wants/krb5kdc.service to /usr/lib/systemd/system/krb5kdc.service.
- 在master上创建admin帐号
[root@master ~]# kadmin.local
Authenticating as principal root/admin@MASTER.EXAMPLE.COM with password.
kadmin.local: listprincs //查看当前系统中的principal
K/M@MASTER.EXAMPLE.COM
kadmin/admin@MASTER.EXAMPLE.COM
kadmin/changepw@MASTER.EXAMPLE.COM
kadmin/master@MASTER.EXAMPLE.COM
kiprop/master@MASTER.EXAMPLE.COM
krbtgt/MASTER.EXAMPLE.COM@MASTER.EXAMPLE.COM
kadmin.local: addprinc root/admin@MASTER.EXAMPLE.COM //添加一个principal
WARNING: no policy specified for root/admin@MASTER.EXAMPLE.COM; defaulting to no policy
Enter password for principal "root/admin@MASTER.EXAMPLE.COM":
Re-enter password for principal "root/admin@MASTER.EXAMPLE.COM":
Principal "root/admin@MASTER.EXAMPLE.COM" created.
kadmin.local: listprincs
K/M@MASTER.EXAMPLE.COM
kadmin/admin@MASTER.EXAMPLE.COM
kadmin/changepw@MASTER.EXAMPLE.COM
kadmin/master@MASTER.EXAMPLE.COM
kiprop/master@MASTER.EXAMPLE.COM
krbtgt/MASTER.EXAMPLE.COM@MASTER.EXAMPLE.COM
root/admin@MASTER.EXAMPLE.COM
kadmin.local:
- 在master上添加用户sshu和ssh主机principal
kadmin.local: addprinc u123@MASTER.EXAMPLE.COM //注意用户pirncipal的写法
WARNING: no policy specified for u123@MASTER.EXAMPLE.COM; defaulting to no policy
Enter password for principal "sshu@MASTER.EXAMPLE.COM":
Re-enter password for principal "sshu@MASTER.EXAMPLE.COM":
Principal "sshu@MASTER.EXAMPLE.COM" created.
kadmin.local: addprinc -randkey host/master.example.com@MASTER.EXAMPLE.COM //注意SSH主机pirncipal的写法
WARNING: no policy specified for host/master.example.com@MASTER.EXAMPLE.COM; defaulting to no policy
Principal "host/master.example.com@MASTER.EXAMPLE.COM" created.
kadmin.local: ktadd host/master.example.com@MASTER.EXAMPLE.COM
Entry for principal host/master.example.com@MASTER.EXAMPLE.COM with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
Entry for principal host/master.example.com@MASTER.EXAMPLE.COM with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab WRFILE:/etc/krb5.keytab.
kadmin.local: ktadd sshu@MASTER.EXAMPLE.COM
[root@master ~]# restorecon /etc/krb5.keytab //可选操作
- 在master上修改ssh服务配置文件支持kerberos 确保这一行开启
GSSAPIAuthentication yes
3.4.3 使用kerberos验证ssh service
- 在node3上开启kerberos验证 
这里提示有个包没有安装,安装一下
[root@node3 ~]# yum -y install pam_krb5
配置完成
- 在node3上测试登录node2的ssh服务
[root@node3 ~]# kdestroy
Other credential caches present, use -A to destroy all
[root@node3 ~]# kinit sshu
Password for sshu@MASTER.EXAMPLE.COM:
[root@node3 ~]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: sshu@MASTER.EXAMPLE.COM Valid starting Expires Service principal
11/28/2018 18:40:12 11/29/2018 18:40:09 krbtgt/MASTER.EXAMPLE.COM@MASTER.EXAMPLE.COM
[root@node3 ~]# ssh sshu@master.example.com
Last login: Tue Nov 27 20:40:30 2018 from 192.168.5.13
[sshu@master ~]$ exit
logout
Connection to master.example.com closed.
[root@node3 ~]# ssh sshu@node2.example.com
Last login: Tue Nov 27 20:40:20 2018 from 192.168.5.13
Could not chdir to home directory /home/sshu: No such file or directory
-bash-4.2$
完成ssh免密码登录。
总结
nis服务器上只存帐号信息,验证功能交给kerberos完成,这里需要注意的是,nis中的帐号在kerberos中也要有,如果kerberos有帐号而nis中没有不能完成验证。 Nis中的帐户需要同步到kerberos中,而用户的密码可以不同。 kerberos验证安全可靠,也被众多厂商支持,我们熟知的微软公司就将kerberos揉合进了AD,无需做任何操作就帮我们做好了验证功能。
nis+kerberos 实现服务验证的更多相关文章
- NIS & Kerberos配置
NIS & Kerberos配置 所需RPM包列表: krb5-server-1.10.3-42.el6.x86_64.rpm krb5-workstation-1.10.3-42.el6.x ...
- Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证
原文:Chapter 1 Securing Your Server and Network(9):使用Kerberos用于身份验证 原文出处:http://blog.csdn.net/dba_huan ...
- 使用js 文件参数 以及IHttpModule实现服务验证asp.net 版的初步实现
接上面的文章,上面的主要是进行html 页面自己进行处理.但是对于进行asp.net 的开发者以及其他的就显的不太好了. 我的实现方式是使用IHttpModule 进行对于用户请求的带有参数的js文件 ...
- Kerberos身份验证流程
介绍:Kerberos 是一种由 MIT(麻省理工大学)提出的一种网络身份验证协议.它旨在通过使用密钥加密技术为客户端/服务器应用程序提供强身份验证. 在 Kerberos 认证中,最主要的问题是如何 ...
- 快速搭建Kerberos服务端及入门使用
快速搭建Kerberos服务端及入门使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Kerberos是一种网络身份验证协议.它旨在通过使用秘密密钥加密为客户端/服务器应用程序提 ...
- 域渗透-Kerberos身份验证流程
域渗透-Kerberos身份验证流程 Kerberos协议框架 在 Kerberos 协议中主要是有三个角色的存在: 1. 访问服务的 Client: 2. 提供服务的 Server: 3.KDC(K ...
- SOAPUI使用教程-验证SOAP服务
当soapUI创建一个功能性TestCase 一个很常见的场景是你想一些SOAP / WSDL服务验证响应检查返回正确的结果. 一旦你导入了您想要测试的WSDL服务这样做很容易: 添加一个新的SOAP ...
- SpringCloud初体验:七、gateway 网关服务如何做token验证
说说背景:假如有一个用户服在用户登录后,生成一个token给到客户端,用户每次请求时都需要这个token,于是每次都会在网关 gateway 校验,校验通过后网关从token中解析出userId,然后 ...
- TCP_Wrappers & PAM & Nsswitch服务
cpwrapper:工作在第四层(传输层),能够对有状态连接的服务进行安全检测并实现访问控制的工具.部分功能上跟iptables重叠. 对于进出本主机访问某特定服务的连接基于规则进行检查的一个访问控制 ...
随机推荐
- 第八周学习笔记-ADO.Net中DataTable的应用
ADO.Net中DataTable的应用 一.知识点描述 1.概述:DataTable是一个临时保存数据的网格虚拟表(表示内存中数据的一个表),是ADO.Net库中的核心对象. 2.DataTabl ...
- linux的ls命令中文件颜色含义
linux命令ls会显示出文件的颜色, 系统约定的默认颜色含义如下: 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 主要是使用ln命令建立的文件 红色 ...
- Django中Model-Form验证
Django中Model-Form验证 class UserType(models.Model): caption=models.CharField(max_length=32) class User ...
- FBV和CBV装饰器
FBV装饰器: def cook(request): err_msg="" if request.method == "GET": return render( ...
- Python基础学习---位运算符
<< 左移,每移动1位,相当于乘以2 例如:32<<2 等价于:32*4 ==128 >> 右移,每移动1位,相当于除以2 例如: ...
- linux虚拟机关机、重启命令
linux虚拟机关机.重启命令 一.shutdown 1.shutdown -h now :立即关机 2.shutdown -h 10:53:到10:53关机 3.shutdown -h +10 ...
- JavaScript中call和apply方法的使用
acvaScript中的call()方法和apply()方法,在某些时候这两个方法还确实是十分重要的.1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法.2. 相同点:这两 ...
- 使用RevoUninstaller Pro卸载
使用RevoUninstaller Pro卸载opera浏览器,操作过的注册表 HKEY_CURRENT_USER\SOFTWARE\CLASSES\Local Settings\Mircrosoft ...
- less语法
Linux中的less命令主要用来浏览文件内容,与more命令的用法相似,不同于more命令的是,less命令可往回卷动浏览以看过的部分,下面随小编一起来了解下less命令的具体用法吧. less 的 ...
- 机器学习基础环境的安装与使用(MAC版)
使用到Matplotlib.Numpy.Pandans等库 1.创建虚拟环境 >>>> sudo pip3 install virtualenv >>>> ...