一、背景
随着公司服务器、服务、用户越来越多,以前单机用户管理、单机sudo授权的方式已不是发展的要求,故需要做企业级的集中身份认证授权管理(比如:ldap、kerberos、ca、dns、sudo、密码策略),原因有三:
1、便于大规模集中管理,
2、能够实现单点登录SSO,
3、结合堡垒机实现双层授权、双层审计。
经过简单考察发现freeipa是个不错的选择:
1、all in one,所有我需要的好东西都全部集成了,几条命令就能搞定,省的一个个做适配,极大的节省实施部署时间
2、背后redhat支持的开源项目,是IDM的开源版本,持续维护有保证
3、支持多主复制避免单点,毕竟是企业级应用必须得考虑高可用
4、接口丰富,支持web ui、cli、api,非常棒
5、客户端能够自动注册到ipa服务器(结合kickstart或后期脚本,本文有介绍)
freeipa官网:http://www.freeipa.org/
二、freeipa官方推荐的生产环境部署方案:
原文:http://www.freeipa.org/page/Deployment_Recommendations
freeipa生产环境部署方案主要内容:
1、域名是 Kerberos的基础,为避免domain的冲突,在搭建前一定要规划好域名体系,推荐采用申请的有管理权限的域名,即使在内网使用,也不建议随便使用没有管理权限的域名,比如使用baidu.com就不是一个好的选择;
2、freeipa只能从头搭建,不能在测试环境搭建好,修改一下域名啥的就能在生产环境使用的
It is not possible to change FreeIPA primary domain and realm after installation. Plan carefully. Do not expect move from lab/staging environment to production environment (e.g. change lab.example.com to prod.example.com)
3、建议采用集成的dns server,虽然可以使用外部的dns server,但配置起来较为复杂且出错概率较大。
freeIPA domain may be either served from an integrated DNS service or an external name service. A FreeIPA domain delegated to the integrated DNSservice is a recommended approach.
4、为了性能和稳定性,freeipa server上不要安装其他的应用。
5、多主复制环境根据规模大小、访问频度,每个数据中心推荐2-3个副本,但不要超过4个。
Generally it is recommended to have at least 2-3 replicas in each datacenter. There should be at least one replica in each datacenter with additional FreeIPA services like PKI or DNS if used. Note that it is not recommended to have more than 4 replication agreements per replica.
6、客户端至少需要配置2个dns server来增加冗余性。
Every client should have at least 2 DNS servers configured in /etc/resolv.conf for resiliency
7、备份与恢复:场景不同有不同的方法,但方法都较复杂,简单可行的方法是用虚拟机来搭建并定期做快照。
http://www.freeipa.org/page/Backup_and_Restore
三、具体部署环境及方案架构
1、部署环境:
freeipa server:fedara server 23
freeipa version:4.2.4
$ ipa –version
VERSION: 4.2.4, API_VERSION: 2.156
client host:centos 6.5
网络环境:全内网访问,freeipa server不对外暴露
域名:example.com (这个用法不推荐的,因为example.com不是我申请的域名,但内网使用到不影响)
2、方案架构–多主复制:
freeipa101.example.com
freeipa102.example.com
3、公司环境都是centos为什么freeipa不部署在centos上?
在centos 6上安装会有各种各样的问题,freeipa版本还比较老,为了简化安装步骤,采用fedora server 23。
在centos 6上会有这个问题,即使解决了也无法成功安装ipa server,所以最终放弃了,转战fedora。
yum install ipa-server
Transaction Check Error:
file /usr/share/man/man3/XML::SAX::Base.3pm.gz conflicts between attempted installs of perl-XML-SAX-0.96-7.el6.noarch and perl-XML-SAX-Base-1.04-1.el6.rf.noarch
file /usr/share/man/man3/XML::SAX::Exception.3pm.gz conflicts between attempted installs of perl-XML-SAX-0.96-7.el6.noarch and perl-XML-SAX-Base-1.04-1.el6.rf.noarch
Error Summary
解决方法:
http://www.linuxidc.com/Linux/2013-09/90530.htm(已验证)
https://github.com/repoforge/rpms/issues/211
四、freeipa server基本系统准备工作
1、安装fedara server 23,推荐在虚拟机里做,好处你懂的
2、更新系统:
yum update
3、设置完全合格的主机名并配置hosts
[root@freeipa101 ~]# hostname
freeipa101.example.com
[root@freeipa101 ~]# more /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.101 freeipa101.example.com freeipa101
[root@freeipa101 ~]#
4、设置dns服务器为freeipa101
more /etc/resolv.conf
nameserver 192.168.0.101
5、为避免不必要的麻烦,关闭防火墙,关闭开机启动
systemctl stop firewalld
systemctl disable firewalld (fedara下关闭firewall开机启动好像不太起作用,大家注意一下防火墙)
6、vm做快照(略)
五、安装主freeipa server
[root@freeipa101 ~]# yum install freeipa-server
[root@freeipa101 ~]# ipa-server-install
安装报错,需要安装freeipa-server-dns包
ipa.ipapython.install.cli.install_tool(Server): ERROR Integrated DNS requires ‘freeipa-server-dns’ package
[root@freeipa101 ~]# yum install freeipa-server-dns -y
安装完ipa-server后注意一下提示:
Be sure to back up the CA certificates stored in /root/cacert.p12
These files are required