环境综述:
Windows AD / DNS 服务器: 主机名:GBDOOB11 IP 地址:192.168.118.130 OS: win2003 标准版sp2 r2 Linux 服务器: 主机名:PostgreSQL postgresql.netseek IP 地址: 192.168.118.151 OS: Rhel 5.4 1,首先登录AD, 保证DNS 的工作正常,网络正常。 下面的工作就要登录到linux 服务器进行操作了,建议先tar 一下/etc 目录。 2,修改本机的/etc/hosts 文件,保证有真实IP 和真实主机名对应的那一行: 192.168.118.151 postgresql.netseek postgresql 3 , 修改本机IP 地址, 实际设置效果是本机的IP 是192.168.118.151 , 掩码是 255.255.255.0,GATEWAY=192.168.118.2。(原谅我罗嗦吧,这段内容和某些内容本来 就是写给不懂linux 的人看的) vi /etc/sysconfig/network-scripts/ifcfg-eth0 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=none HWADDR=00:0c:29:fe:28:f8 ONBOOT=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=192.168.118.151 GATEWAY=192.168.118.2 修改后重启网络服务: /etc/init.d/network restart ###实际测试发现将BOOTPROTO 从dhcp 改成none 后,DNS 配置文件会被清空,所以将 重启网络服务的操作放在修改DNS 之前。 4,修改DNS 配置文件 [root@postgresql ~]# vi /etc/resolv.conf ; generated by /sbin/dhclient-script search .local nameserver 192.168.118.130 ####以上的设置是因为我做测试时使用的来自其他vmware 的虚拟机,修改过windows AD 和linux 服务器的网段和IP,导致网络环境发生了变动才需要做的更改。实际工作中并不一定 会遇到这些问题,只要通过下面的验证就可以了#### 验证上面配置的方法是: a)重启nscd 清除缓存: /etc/init.d/nscd restart b)ping 主机名: ping GBDOOB11 主机名能解析和ping 通则是正常。 5,时间同步: 某些版本的vmware workstation linux 客户机存在严重的时间滞后问题,在加入 windows 域之前必须保证两服务器的时间相差不超过5 分钟,否则Kerberos 会报错。 查看时间的方法是“date” : [root@postgresql ~]# date Fri Dec 18 14:31:48 CST 2009 修改时间的方法是“date -s”: [root@postgresql ~]# date -s 2010/1/4 Mon Jan 4 00:00:00 CST 2010 [root@postgresql ~]# date -s 14:32:33 Mon Jan 4 14:32:33 CST 2010 6,Kerberos 配置和测试:
所需軟件: rpm -ivh krb5-server-1.2.5-6.i386.rpm rpm -ivh krb5-workstation-1.2.5-6.i386.rpm rpm -ivh e2fsprogs-devel rpm -ivh keyutils-libs-devel rpm -ivh libsepol-devel rpm -ivh libselinux-devel rpm -ivh krb5-devel 2.kinit(v5): Clock skew too great while getting initial credentials 解决: 3、Error3:kinit(v5): KDC reply did not match expectations while getting initial credentials 4、kinit(v5): Improper format of Kerberos configuration file while initializing Kerberos 5 library 配置文件出錯,檢查配置文件。 7。配置NSS(Name Service Switch )的配置文件,将用户名、组名、密码的来源附加上 来自“winbind” 打开/etc/nsswitch.conf 修改下面内容 passwd: files shadow: files group: files 修改为: passwd: files winbind shadow: files winbind group: files winbind 8,配置winbind,他和samba 共用一个配置文件: vi /etc/samba/smb.conf workgroup = LINUXTONE ###这一行是设置工作组,.local 太长 了,可以用LINUXTONE 来简写 password server = gbdoob11 ###这是AD 服务器 realm = LINUXTONE.ORG.LOCAL ###这个realm 名要和krb5.conf 里设置的相同, 都要是大写的。 security = ads idmap uid = 16777216-33554431 ###不要怀疑,就是要从1677 万开始设置,否则 会报可用的UID 已满的错误。 idmap gid = 16777216-33554431 winbind separator = + ###设定域名和用户名之间的分隔符是“+”,默认的“\” 在linux 的shell 下有时候会引起误会 template shell = /bin/bash winbind use default domain = false winbind offline logon = false 9,配置pam.d 文件(模块化可插拔的认证方式) 之一: auth sufficient /lib/security/pam_winbind.so //增加这一行 auth required /lib/security/$ISA/pam_env.so auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok auth required /lib/security/$ISA/pam_deny.so auth sufficient /lib/security/pam_winbind.so account sufficient /lib/security/pam_winbind.so //增加这一行,注意这两行的位置 password requisite /lib/security/$ISA/pam_cracklib.so retry=3
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow password required /lib/security/$ISA/pam_deny.so session required pam_mkhomedir.so silent skel=/etc/skel umask=0077 //增加這一行,第一次登錄時可創建用戶資料夾(配合smb.conf) session required /lib/security/$ISA/pam_limits.so session required /lib/security/$ISA/pam_unix.so
10,加入windows ad, (如果上述操作的时间过长建议再次同步两服务器的时间)。 |
|