freeipa 安装配置

     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: [email protected]
 Valid starting     Expires            Service principal
 12/19/13 10:22:23  12/20/13 10:22:21  krbtgt/[email protected]
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  [email protected]:/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/[email protected] (aes256-cts-hmac-sha1-96)    
3 12/17/13 17:06:46 host/[email protected] (aes128-cts-hmac-sha1-96)    
3 12/17/13 17:06:46 host/[email protected] (des3-cbc-sha1)    
3 12/17/13 17:06:46 host/[email protected] (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

你可能感兴趣的:(配置,ipa,ipa,身份认证,红帽子身份认证,freeipa)