红帽的ipa-server:区块链中端开源测试基础设施

179 阅读4分钟

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   web.mit.edu/kerberos/di…****


下一步直至一个选项,从网络下载路径,download from web path ,填上http:///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****