ipa-server是红帽身份验证的一个完整解决方案,上游的开源项目是freeIPA,它本身不提供具体功能,而是整合了389-ds、bind、kerberos等核心软件包,形成一个以389-ds(ldap)为数据存储后端,kerberos为验证前端,bind为主机识别,apache+tomcat提供的一个web管理界面,统一的命令行管理界面的身份识别系统。是rhel6重要的新特性之一。
存储的是主机名(域名)、IP地址、用户名、密码等,以读为主,因此非常适合ldap的特性。
-----------------------------------------------------------------------------------------------------------------------
安装准备
yum install ntp
yum install krb5-server krb5-server-ldap
yum install 389-ds-base
yum install bind bind-dyndb-ladp
yum install httpd tomcat6
(除了bind是可选的,其他软件包会在安装ipa-server作为依赖包一并安装,但是单独安装会更能体现对ipa原理的理解)
安装ipa
yum install ipa-server
-----------------------------------------------------------------------------------------------------------------------
配置
配置前的准备
1、配置主机名,需要FQDN,我这里是ipa.test.org
2、在/etc/hosts中解析主机名为本地地址,不要填回环,这里是
192.168.1.70 ipa.test.org
3、防火墙开启如下端口
80、443、389、636 tcp
123 udp
53、88、464 tcp/udp
先架设dns,权威dns,不属于自己管理的域名则转发请求给外部DNS
ipa-server-install --setup-dns --forwarder=202.96.134.133
回答几个问题就好了,设置两个密码,分别是389-ds的管理员密码和kerberos的管理员密码。几乎是一路回车,就算是基本配置完了。
接下来,获得一个kerberos的登录票据(具有时效性,默认10小时),用于登录web界面和其他管理命令
运行命令 kinit admin 输入密码
查看票据,klist
修改默认shell,默认为/binsh
ipa config-mod --defaultshell=/bin/bash
修改用户的shell
ipa user-mod test --shell=/bin/bash
修改家目录fangfa
ipa config-mod --homedirectory=/tmp
服务重启
ipactl restart
(ipa是多个软件的集成方案,不能单独去管理bind、389-ds或者kerberos)
系统优化
fs.file-max = 64000
vm.min_free_kbytes=1024
vm.swappiness=10
net.ipv4.tcp_keepalive_time =600
-----------------------------------------------------------------------------------------------------
客户端设置
1、设置唯一的DNS为ipa服务器地址 即,nameserver 192.168.1.70
由于设置了DNS转发,可以尝试ping外网,应该是可以ping通的。
2、设置主机名,这里是ipa-client
安装ipa客户端
yum install ipa-client
配置ipa客户端
ipa-client-install --mkhomedir --enable-dns-updates --no-ntp -p admin
服务端会默认将客户端主机名(FQDN)解析成当前的IP地址
手动在服务器端加入客户端解析方法
kinit admin
添加域
ipa dnszone-add test.org --dynamic-update=TRUE
添加域名
ipa dnsrecord-add test.org apache01.test.org --a-rec 192.168.1.25
客户端会根据DNS找到ipa服务器,输入管理员密码即可。
卸载ipa客户端
ipa-client --uninstall
-----------------------------------------------------------------------------------------------------------
windows客户端设置
Kerberos协议是成熟的、广泛应用的、开放的标准,微软Kerberos V5协议的实现遵循RFC的标准,因此能提供跟其他实现的互操作。
设置IPA server 为DNS server,
下载krb3 http://web.mit.edu/kerberos/dist/kfw/3.2/kfw-3.2.2/kfw-3-2-2.exe
下一步直至一个选项,从网络下载路径,download from web path ,填上http://<FQDN>/ipa/config/
下一步,选中Autostart the Network Identity Manager each time you login to Windows
--------------------------------------------------------------------
通过ks脚本集成ipa-client 的做法
%post --log=/root/ks-post.log
# Get the hostname to set as the host principal
/bin/hostname > /tmp/hostname.txt
# Run the client install script
/usr/sbin/ipa-client-install --domain=EXAMPLEDOMAIN --enable-dns-updates --mkhomedir -w secret --realm=EXAMPLEREALM --server=ipaserver.example.com --unattended
--------------------------------------------------------------------------------------------------------------
基本操作
添加新用户
ipa user-add user01 --first=user01 --last=user01 --passwd
重置密码(重置后需要在客户端立即修改)
kinit admin
ipa user-mod user01 --password
用户密码失败后解锁
kinit admin
ipa user-unlock user01
删除用户
ipa user-del user01
禁用账户
ipa user-disable user01
启用账户
ipa user-enable user01
添加组
ipa group-add sale --desc="sales team'
添加成员
ipa group-add-member group01 --users=user01,user02,user03
删除成员
ipa group-remove-member group01 --users=user01
删除组
ipa group-del sale
查看
ipa user-show -all
ipa group-show --all
需要注意的地方
1、时间一定要保持同步,排错前务必检查时间是否一致
2、ipa自己必须使用外部DNS,否则bind会陷入逻辑循环而死掉。
常见错误
ipa error no credentials cache found
没有打开ticket,解决办法kinit admin