概述
2019独角兽企业重金招聘Python工程师标准>>>
FreeIPA 是集成了ldap+Kerberos(Kerberos 认证原理不多说,简单的说就是在身份认证的时候不传输密码,而是在传输票据,更加安全可靠)+web管理的集中式用户认证管理系统(系统级别的sso,可以对apache,ftp,nfs,ldap,smtp ,ssh做身份认证。但是对samba 的身份认证不支持。samba貌似只支持AD),同时还可以与微软的AD进行用户信息的同步。
我是基于centos 6.5 配置安装配置,centos ipa 身份认证是redhat 建立在开源FreeIPA身份管理软件上。与FreeIPA配置,命令完全一样。
基本环境:
ipa.dadi.com ipa1.dadi.com (ipa server)
nfs3.dadi.com (nfs server)
client.dadi.com (ipa client)
dns 配置:
bind 配置参考:
; ldap servers
_ldap._tcp IN SRV 0 100 389 ipa.dadi.com
_ldap._tcp IN SRV 0 100 389 ipa1.dadi.com
;kerberos realm
_kerberos IN TXT DADI.COM
; kerberos servers
_kerberos._tcp IN SRV 0 100 88 ipa.dadi.com
_kerberos._udp IN SRV 0 100 88 ipa.dadi.com
_kerberos-master._tcp IN SRV 0 100 88 ipa.dadi.com
_kerberos-master._udp IN SRV 0 100 88 ipa.dadi.com
_kpasswd._tcp IN SRV 0 100 464 ipa.dadi.com
_kpasswd._udp IN SRV 0 100 464 ipa.dadi.com
_kerberos._tcp IN SRV 0 100 88 ipa1.dadi.com
_kerberos._udp IN SRV 0 100 88 ipa1.dadi.com
_kerberos-master._tcp IN SRV 0 100 88 ipa1.dadi.com
_kerberos-master._udp IN SRV 0 100 88 ipa1.dadi.com
_kpasswd._tcp IN SRV 0 100 464 ipa1.dadi.com
_kpasswd._udp IN SRV 0 100 464 ipa1.dadi.com
ipa IN A 192.88.50.48
ipa1 IN A 192.88.50.49
nfs3 IN A 192.88.50.50
client IN A 192.88.50.51
注意:每台服务器还需要配置反向DNS解析,否则会有问题。
server 安装与配置:
yum install ipa-server bind-dyndb-ldap -y
然后同步时间:
ntpdate ntp.dadi.com
配置:
ipa-server-install
然后一路yes 即可,会自动配置krdc,ldap,ldap web 管理,安装完成后执行:
kinit admin
klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@DADI.COM
Valid starting Expires Service principal
12/19/13 10:22:23 12/20/13 10:22:21 krbtgt/DADI.COM@DADI.COM
ipa config-mod --defaultshell=/bin/bash ##修改所有用户默认shell 路径
添加用户:
ipa user-add fsm --uid=1001 --gid=1001
修改用户密码:
ipa passwd fsm
查询添加用户信息:
ldapsearch -x -b "dc=dadi, dc=com" uid=fsm
GSS 加密查询:
ldapsearch -Y GSSAPI uid=fsm -LLL
ipa Recplica server 安装:
由于是身份认证系统,必须做HA,否则如果ipa server 坏了,那么你还能登录其他系统吗。后果可想而知。
ipa.dadi.com 上执行:
kinit admin
ipa-replica-prepare ipa1.dadi.com
scp /var/lib/ipa/replica-info-ipa1.dadi.com.gpg root@ipa1.dadi.com:/root
ipa1 上执行:
yum install ipa-server bind-dyndb-ldap -y
/etc/init.d/iptables stop
chkconfig iptables off
ntpdate ntp.dadi.com ###时间一定要同步,防火墙关闭把,不然要开放几个端口。
ipa-replica-install replica-info-ipa1.dadi.com.gpg --skip-conncheck
安装成功后查看,在ipa或者是ipa1上执行:
kinit admin
ipa-replica-manage list
ipa1.dadi.com: master ###两台都是master,可以同时进行读写
ipa.dadi.com: master
ssh client 安装配置:
yum install ipa-client ipa-admintools openldap-clients -y
ipa-client-install --mkhomedir --no-ntp --domain=dadi.com --server=ipa.dadi.com --no-sssd -p admin
ipa.dadi.com 上执行:
kinit admin
ipa-getkeytab -s ipa.dadi.com -p host/client.dadi.com -k /tmp/krb5.keytab
scp /tmp/krb5.keytab client.dadi.com:/tmp
在client.dadi.com 上执行:
(echo rkt /tmp/krb5.keytab; echo wkt /etc/krb5.keytab) |ktutil
klist -etk
Keytab name: FILE:/etc/krb5.keytabKVNO Timestamp
Principal---- ----------------- --------------------------------------------------------
3 12/17/13 17:06:46 host/client.dadi.com@DADI.COM (aes256-cts-hmac-sha1-96)
3 12/17/13 17:06:46 host/client.dadi.com@DADI.COM (aes128-cts-hmac-sha1-96)
3 12/17/13 17:06:46 host/client.dadi.com@DADI.COM (des3-cbc-sha1)
3 12/17/13 17:06:46 host/client.dadi.com@DADI.COM (arcfour-hmac)
测试登录:
这个时候可以在任意一台机器上执行ssh -l fsm client.dadi.com 就可以登录 client 这台机器了。注意client 的时间一定要与ipa server 时间是同步的,否则ssh 用户是无法登录的。
添加ipa1 /etc/krb5.conf 配置中。
#File modified by ipa-client-install[libdefaults]
default_realm = DADI.COM
dns_lookup_realm = false
dns_lookup_kdc = false
rdns = false
ticket_lifetime = 24h
forwardable = yes[realms]
DADI.COM = {
kdc = ipa.dadi.com:88
kdc = ipa1.dadi.com:88 ###添加ipa1
master_kdc = ipa.dadi.com:88
master_kdc = ipa1.dadi.com:88 ###添加ipa1
admin_server = ipa.dadi.com:749
admin_server = ipa1.dadi.com:749 ###添加ipa1
default_domain = dadi.com
pkinit_anchors = FILE:/etc/ipa/ca.crt }
[domain_realm]
.dadi.com = DADI.COM
dadi.com = DADI.COM
/etc/nslcd.conf /etc/pam_ldap.conf 中添加:
uri ldap://ipa.dadi.com,ldap://ipa1.dadi.com
service nslcd restart
service sshd restart
service oddjobd restart
测试HA:
人工down掉ipa server 看看能不能够ssh 登录 client。正常情况当然是可以了。或者是在ipa1上添加一个用户,然后启动ipa,看是否能够同步到ipa上来。
ldap tls 信息加密:
centos6/redhat6:
/etc/nslcd.conf /etc/pam_ldap.conf 中添加:
ssl start_tls
tls_reqcert never
tls_cacertdir /etc/cacerts
mkdir /etc/cacerts
cd /etc/cacerts
cp /etc/ipa/ca.crt cacert.crt
service nslcd restart
service sshd restart
ldap user autofs nfs
ipa.dadi.com 上执行:
kinit admin
ipa host-add nfs3.dadi.com
ipa service-add nfs/nfs3.dadi.com
添加用户登录ldap mount nfs 键值:
ipa automountkey-add default auto.home --key=fsm --info=nfs3.dadi.com:/export/fsm ##添加fsm /home 目录
nfs3.dadi.com 上执行:
mkdir /export/fsm && cp /etc/skel/.bash* /export/fsm && chmod 700 /export/fsm && chown -R fsm:fsm /export/fsm
vi /etc/export
/export *.dadi.com(rw,fsid=0,insecure,no_subtree_check) ###不用krb5认证,krb5 由于加密密钥问题,还没有做通
service rpcbind restart
service nfs restart
client.dadi.com 上执行:
ipa-client-automount --location=default -S --server=ipa.dadi.com
测试:
ssh -l fsm client.dadi.com 的时候会自动mount /home/fsm 这个目录
说明:这是我目前真实的系统环境。
剩余问题:
一、nfs krb5 问题,总是报错如下:
WARNING: gss_accept_sec_context failed
nfs3 rpc.svcgssd[1960]: ERROR: GSS-API: error in handle_nullreq: gss_accept_sec_context(): GSS_S_FAILURE (Unspecified GSS failure. Minor code may provide more information) - Wrong principal in request
这个错说是加密密钥造成,目前还没解决。
二、夸机房问题。
其实这个问题比较简单,每个机房放两台ipa server,因为全部是master(ldap 版本必须是2.4 以上的版本),所有哪里写用户信息都会同步到全网。当然夸机房mount nfs 是可以的。考虑到高可用,如果放置nfs 的机房断网或者是无法链接的时候就会有问题。这个问题有两个解决方案,一是不用自动mount nfs,ldap 的home 目录就放在本地机器上。二是通过私网IP地址解决,每个机房都放置一台nfs 服务器,并且都配置私网ip地址,比如 192.88.50.53。这样就可以解决nfs夸机房问题,还会引出一个问题,nfs 之间数据同步问题。请你想一下?
参考文档:http://docs.fedoraproject.org/en-US/Fedora/18/html/FreeIPA_Guide/index.html
转载于:https://my.oschina.net/u/142602/blog/186481
最后
以上就是糊涂板凳为你收集整理的freeipa 安装配置的全部内容,希望文章能够帮你解决freeipa 安装配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复