Linux AD 身份统一验证(SSO)
http://www.toxingwang.com/linux-unix/linux-admin/584.html
管理的Linux服务器和Windows服务器如果很多,如果都用本地用户名管理,要管理和记住几十台甚至上百台服务器的 不同账号不同密码,这是很难的;而如何所有服务器账号密码都设置一样,那有完全没有安全性可言。正好网络中有域控制器,而且所有用户也加入了Windows 域,且OA等应用系统也采用统一的域验证,因此可以使用AD域来验证Linux服务器的用户登录。具体如下:
环境:
认证服务器OS:Windows Server 2012核心版
认证服务器IP:192.168.18.210
认证服务器DNS搜索名称:test.com
1、修改主机名称、DNS和防火墙策略:
a、修改主机名:
# vim /etc/sysconfig/network
##主机名后缀为test.com,且主机名不能重复。
b、修改DNS
# vim /etc/resolv.conf
##修改为如下内容
search test.com
nameserver 192.168.18.210
c、编辑vim /etc/hosts,取消本机计算机名部分解析
d、vim /etc/sysconfig/iptables文件,添加两条策略,允许本机与DC之间的全部通讯:
-A OUTPUT -m state --state NEW -m tcp -p tcp -d 192.168.18.210 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.18.210 -j ACCEPT
重启服务器使所有更改生效
2、时间同步
a、编辑计划任务,加入时间同步
# vim /etc/crontab
##加入如下时间同步内容,实现每小时与服务器同步一次时间
00 * * * * root /usr/sbin/ntpdate test.com;/usr/sbin/hwclock -w
b、将crond服务加入开机启动,并立即重启crond服务
# chkconfig crond on
# service crond restart
3、安装samba和krb5:
a、安装支持软件:
#yum -y install pam_krb5* krb5-libs* krb5-workstation* krb5-devel* krb5-auth samba samba-winbind* samba-client* samba-swat*
b、检查krb5相关组件是否全部安装
# rpm -qa|grep krb
pam_krb5-2.3.11-9.el6.x86_64
krb5-libs-1.9-33.el6_3.3.x86_64
krb5-devel-1.9-33.el6_3.3.x86_64
krb5-auth-dialog-0.13-3.el6.x86_64
python-krbV-1.0.90-3.el6.x86_64
krb5-workstation-1.9-33.el6_3.3.x86_64
c、检查Samba组件是否全部安装
# rpm -qa|grep samba
samba-swat-3.5.10-125.el6.x86_64
samba-common-3.5.10-125.el6.x86_64
samba-winbind-clients-3.5.10-125.el6.x86_64
samba-3.5.10-125.el6.x86_64
samba-winbind-3.5.10-125.el6.x86_64
samba-client-3.5.10-125.el6.x86_64
d、验证samba基础库支持
# smbd -b|grep LDAP
HAVE_LDAP_H
HAVE_LDAP
HAVE_LDAP_ADD_RESULT_ENTRY
HAVE_LDAP_INIT
HAVE_LDAP_INITIALIZE
HAVE_LDAP_SASL_WRAPPING
HAVE_LDAP_SET_REBIND_PROC
HAVE_LIBLDAP
LDAP_SET_REBIND_PROC_ARGS
# smbd -b | grep KRB
HAVE_KRB5_H
HAVE_KRB5_LOCATE_PLUGIN_H
HAVE_ADDRTYPE_IN_KRB5_ADDRESS
HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE
HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER
……以下略
# smbd -b | grep ADS
WITH_ADS
WITH_ADS
# smbd -b | grep WINBIND
WITH_WINBIND
WITH_WINBIND
至此,Samba和KRB5的基本安装已经完成,接下来就是配置
4、加域:
a、启动相关服务并设置开机启动:
# service winbind start
# chkconfig winbind on
b、使用setup配置工具,并选择“验证配置”,选择下面三项:
“use winbind” ##对应中文“使用winbind”
“use kerberos” ##对应中文“使用kerberos”
“use winbind authertication” ##对应中文“使用winbind验证”
然后点击【下一步】,按如下填写:
域:test.com
KDC:dc-01.test.com
管理服务器:dc-01.test.com
##并勾选下面两个选项。
再次点击【下一步】,按如下选择或填写:
安全模型:ADS
域:TEST ##注意大写
域控制器:dc-01.test.com
ADS域:test.com
模板Shell: /bin/bash
点击【加入域】,弹出保存提示,选择【是】后,会弹出输入域管理员账号密码的,按提示输入即可。
完成后退出【setup】,看屏幕提示是否有如下这样的错误:
【net_update_dns_internal: Failed to connect to our DC!】
如果返回如下,则加入正常:
[/usr/bin/net join -w TEST -S dc-01.test.com -U Administrator]
Enter Administrator's password:<...>
Using short domain name -- TEST
Joined 'PAYSERVER02' to dns domain 'test.com'
启动 Winbind 服务: [确定]
正在启动 oddjobd: [确定]
c、测试winbind读取域控信息是否正常
# wbinfo –t ##测试RPC通讯,提示succeeded表示成功
cheTEST the trust secret for domain TEST via RPC calls succeeded
# wbinfo -u ##查看域用户
TEST\guest
TEST\administrator
TEST\krbtgt
TEST\barlowliu
……以下省略……
##如果如上,则读取正常
# wbinfo -g ##查看域组
TEST\domain computers
TEST\cert publishers
TEST\domain users
TEST\domain guests
TEST\ras and ias servers
TEST\domain admins
TEST\schema admins
TEST\enterprise admins
……以下省略……
上述两个命令执行后如果可以看到域中的用户和组则正常。如果提示如下,则表示与域控制器同步还未完成:
Error looking up domain users ##稍等后再测试即可
测试ntlm组件
# ntlm_auth --username=administrator
password: ##输入用户密码
NT_STATUS_OK: Success (0x0)
验证代域
# net ads testjoin
Join is OK
d、使用域账户登录
此时就可以使用 xxx@test.com这样的域用户登录Linux服务器了,但登录后显示如下:
Could not chdir to home directory /home/TEST/barlowliu: No such file or directory
-bash-4.1$
##没有自动创建用户的家目录,下面就来解决该问题
5、解决域用户登录后没有家目录的问题:
a、建立域用户家目录:
# mkdir /home/TEST
# chmod 1777 /home/TEST
b、编辑/etc/samba/smb.conf配置文件,添加如下一行:
template homedir = /home/%D/%U
##修改如下一行如下,就可以实现在登录时不需要输入域名
winbind use default domain = true
c、编辑/etc/pam.d/system-auth,增加如下一行:
session required pam_mkhomedir.so skel=/etc/skel umask=0077
d、vim /etc/pam.d/sshd 统一增加上面那一行:
session required pam_mkhomedir.so skel=/etc/skel umask=0077
完成后就可以使用域账号正常登录了,但是还需要配合安全要求,设置每台服务器允许SSH登录和允许运行su和sudo命令的用户。
Linux AD 身份统一验证(SSO)的更多相关文章
- .NET Core微服务之基于Ocelot+IdentityServer实现统一验证与授权
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.案例结构总览 这里,假设我们有两个客户端(一个Web网站,一个移动App),他们要使用系统,需要通过API网关(这里API网关始终作为 ...
- Linux下LDAP统一认证解决方案
Linux下LDAP统一认证解决方案 --http://www.cangfengzhe.com/wangluoanquan/3.html 转自:http://www.cnblogs.com/MYSQL ...
- AD域登录验证
AD域登录验证 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5799699.html 需求 系统在登录的时候,需要根据用户名和密码验证连接域服务器进行 ...
- 本版本延续MVC中的统一验证机制~续的这篇文章,本篇主要是对验证基类的扩展和改善(转)
本版本延续MVC中的统一验证机制~续的这篇文章,本篇主要是对验证基类的扩展和改善 namespace Web.Mvc.Extensions { #region 验证基类 /// <summary ...
- W3C统一验证工具和PR值
W3C统一验证工具(http://validator.w3.org/)用于分析代码. PR值全称为PageRank(网页级别),PR值是Google用于标识网页的等级.重要性.网站的好坏的重要标准之一 ...
- CSS W3C统一验证工具
CssStats 是一个在线的 CSS 代码分析工具 网址是: http://www.cssstats.com/ 如果你想要更全面的,这个神奇,你值得拥有: W3C 统一验证工具: http://v ...
- AWS 身份及验证服务(四)
IAM 概述 集中管理访问AWS资源的访问权限和用户身份认证 支持联合访问管理,支持LADP第三方服务 (Identity Provider) 是非区域相关的服务,全局有效 创建用户.组和角色以应用策 ...
- linux用户身份和文件权限
1.用户身份与能力 root管理员是linux 的超级用户,他拥有系统的所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭服务进程,开启/禁用硬件设备…… "Linux系统中的管理 ...
- Linux 用户身份与进程权限
在学习 Linux 系统权限相关的主题时,我们首先关注的基本都是文件的 ugo 权限.ugo 权限信息是文件的属性,它指明了用户与文件之间的关系.但是真正操作文件的却是进程,也就是说用户所拥有的文件访 ...
随机推荐
- objc_msgSend函数的实现
毕竟汇编语言代码比较晦涩难懂,因此这里将函数的实现反汇编成C语言的伪代码: //下面的结构体中只列出objc_msgSend函数内部访问用到的那些数据结构和成员. /* 其实SEL类型就是一个字符串指 ...
- 1812: [Ioi2005]riv
1812: [Ioi2005]riv Time Limit: 10 Sec Memory Limit: 64 MB Submit: 635 Solved: 388 [Submit][Status][D ...
- memcached迁移方案——记一次memcached session服务的迁移
背景: (1)由于机房调整,需要迁移memcached: (2)需要在短期内迁移完成(一周以内): (3)该memcached 保存了用户的登录数据,非常重要,一旦出问题将导致大量的用户被踢出: (4 ...
- GeeTest 极验验证
前台Html页面 <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> ...
- [原创]关于在VS解决方案下使用文件夹管理多个项目层次关系的说明
由于所创建的应用项目或类库项目较多,于是将这些类库放到一个文件夹下.在VS解决方案下确实能看到一个文件夹下多个类库项目这种层次关系.如下图所示: 但打开“我的电脑”,看到的只有类库,并未看到维护层次关 ...
- SERVICE问题解决方法
这篇文章主要介绍了Windows服务器下出现ZendOptimizer.MemoryBase@NETWORK SERVICE问题解决方法,需要的朋友可以参考下 日志提示 事件 ID ( 2 )的描述( ...
- Algorithms: Design and Analysis, Part 1 - Programming Assignment #1
自我总结: 1.编程的思维不够,虽然分析有哪些需要的函数,但是不能比较好的汇总整合 2.写代码能力,容易挫败感,经常有bug,很烦心,耐心不够好 题目: In this programming ass ...
- 图片在线处理 webp!
之前处理图片的方式是,小图标通过gulp配置的spritesmith雪碧图方式,.png会先用ps工具转成.jpg,然后jpg太大则用在线压缩工具来进行压缩(另外gulp系列的gulp-imagemi ...
- 时间戳转为C#格式时间
经常发现很多地方使用一个时间戳表示时间.比如: 1370838759 表示 2013年6月10日 12:32:39. 我们就需要一个工具,方便地转换这种时间格式 什么是时间戳? 时间戳, 又叫Unix ...
- 2017-2018-2 《网络对抗技术》20155322 Exp6 信息搜集与漏洞扫描
[-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-Google hacking & ZoomEye 2.2-DNS.IP信息收 ...