如何将Ubuntu 10.04 LTSPv5服务器设置并集成到Windows 2008 Active Directory域中
介绍
在目前的经济条件下,公司一直在努力通过回收旧硬件和利用开放源码软件来减少收入。 在我工作的时候也是如此。 在我们的呼叫中心,财务,分销,仓库和销售部门之间,超过50%的员工都在RHEL4 LTSP瘦客户机上运行。 最近决定用LTSPv5将我们的LTSP环境从RHEL4更新为Ubuntu 10.04。 使用以下步骤,我可以将Ubuntu 10.04 LTSPv5服务器设置并集成到Windows 2008 Active Directory域中。
假设
假设您具有Windows 2008 Active Directory域设置,并且与DHCP服务器一起正常工作。 您的域控制器可以是您的DHCP服务器,也可以设置不同的框来分发DHCP租约。 如果您的域控制器或DHCP服务器未设置,请先进行设置。 还假定读者有一些基本的Linux经验。 您将需要知道如何在Linux终端中移动,安装应用程序,并使用vi或nano编辑文件。
硬件
Ubuntu LTSP服务器
戴尔PowerEdge 2650
2双核Intel(R)Xeon(TM)CPU 1.80GHz CPU
8 GB RAM
3 73 GB SCSI U320 10K RAID 5配置中的硬盘
双电源
瘦客户端
戴尔Optiplex GX260
1 GB RAM
车载视频
没有高清
网络布局
为了本教程的目的,这是10.0.0.0/24
子网上的domain.internal
网络的布局。
dc.domain.internal
运行Active Directory和DNS的Windows 2008 Server
server.domain.internal
Windows 2003 Server托管用户主目录和文件共享
thinserver.domain.internal
具有LTSPv5的Ubuntu 10.04.2服务器
dhcp.domain.internal
CentOS 5.0服务器运行dhcpd
Ubuntu LTSP安装
要使用LTSP安装Ubuntu,请按照此处的说明进行操作 。
如果您的服务器具有超过4 GB的RAM,请确保安装Linux PAE内核。
sudo apt-get install linux-generic-pae linux-headers-generic-pae
将瘦服务器添加到Windows域
在将thinserver添加到域之前,我们将不得不安装Samba以及其他一些软件包。
sudo apt-get install samba smbclient winbind libpam-cracklib krb5-user
确保精简服务器的名称正确。
hostname
如果hostname命令不返回thinserver.domain.internal
,请将其重命名为thinserver.domain.internal
。
hostname thinserver.domain.internal
编辑/etc/resolv.conf
以使用dc.domain.internal
作为主DNS服务器。
search domain.internal nameserver 10.0.0.10
您的域控制器在您的DNS中为瘦
服务器创建主机(A)记录。
验证thinserver
可以解析domain.internal
:
nslookup domain.internal
结果应该是这样的:
test@thinserver:~$ nslookup domain.internal
Server: 10.0.0.10
Address: 10.0.0.10
Name: domain.internal
Address: 10.0.0.10
确保Samba和Winbind没有运行:
/etc/init.d/smbd stop
/etc/init.d/winbind stop
为了安全起见,可以备份smb.conf
, krb5.conf
和PAM常见文件。 我喜欢在备份文件时追加日期,以便我知道更改的时间。
d=`date "+%m%d%y"`
cp /etc/samba/smb.conf{,.$d}
cp /etc/krb5.conf{,.$d}
mkdir /etc/pam.d/backup
cd /etc/pam.d/
for file in `ls`;do cp $file{,.$d}; done
mv *.$d backup/
编辑/etc/krb5.conf
文件如下所示:
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = DOMAIN.INTERNAL default_keytab_name = FILE:/etc/krb5.keytab default_tgs_entypes = rc4-hmac des-cbc-md5 default_tkt_entypes = rc4-hmac des-cbc-md5 permitted_entypes = rc4-hmac des-cbc-md5 dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h forwardable = yes [realms] DOMAIN.INTERNAL = { kdc = DC.DOMAIN.INTERNAL:88 default_domain = DOMAIN.INTERNAL } [domain_realm] domain.internal = DOMAIN.INTERNAL .domain.internal = DOMAIN.INTERNAL [appdefaults] forwardable = true pam = { minimum_uid = 16777216 debug = false ticket_lifetime = 36000 renew_lifetime = 36000 krb4_convert = false DOMAIN.INTERNAL = { ignore_k5login = true } }
编辑/etc/samba/smb.conf
文件,如下所示:
[global] workgroup = DOMAIN password server = * realm = DOMAIN.INTERNAL local master = no security = ads idmap backend = tdb idmap uid = 16777216-33554431 idmap gid = 16777216-33554431 idmap config DOMAIN : backend = rid idmap config DOMAIN : range = 16777216-33554431 idmap cache time = 60 template homedir = /home/%u template shell = /bin/bash kerberos method = secrets and keytab dedicated keytab file = /etc/krb5.keytab winbind separator = + winbind use default domain = yes winbind refresh tickets = true winbind cache time = 10 winbind offline logon = true winbind enum users = Yes winbind enum groups = Yes passdb backend = tdbsam server string = Samba Server Version %v log file = /var/log/samba/%m.log max log size = 50
继续前进,建议第二个根终端打开,以防万一不能按预期工作。 发生在我们最好的人:o)
我建议在Active Directory中创建一个“linux_admins”组,并将其添加到/ etc / sudoers
文件中。 另一种方法是添加“域管理员”组并使用管理员帐户进行登录。
# Members of the admin group may gain root privileges %admin ALL=(ALL) ALL %linux_admins ALL=(ALL) ALL
编辑PAM公共文件/etc/pam.d/common-account
:
account sufficient pam_winbind.so use_first_pass cached_login account required pam_unix.so broken_shadow
编辑PAM公共文件/etc/pam.d/common-auth
:
auth [success=2 default=ignore] pam_unix.so nullok_secure auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass auth requisite pam_deny.so auth required pam_permit.so
编辑PAM公共文件/etc/pam.d/common-password
:
password requisite pam_cracklib.so retry=3 minlen=8 difok=3 password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 password [success=1 default=ignore] pam_winbind.so use_authtok try_first_pass password requisite pam_deny.so password required pam_permit.so password optional pam_gnome_keyring.so
编辑PAM公共文件/etc/pam.d/common-session
:
session required pam_env.so session required pam_unix.so session required pam_winbind.so use_first_pass session required pam_limits.so session required pam_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
编辑PAM公共文件/etc/pam.d/common-session-noninteractive
:
session [default=1] pam_permit.so session requisite pam_deny.so session required pam_permit.so session optional pam_winbind.so cached_login session required pam_unix.so
确保/etc/nsswitch.conf
具有用于登录的winbind条目。
passwd: compat winbind group: compat winbind shadow: compat
现在我们已经准备好将更改服务器
添加到Windows域。
kinit administrator@DOMAIN.INTERNAL
net ads join -U administrator
net ads keytab create -U administrator
/etc/init.d/smbd start
/etc/init.d/winbind start
验证您在域中,并且您可以查看域中的所有用户和组。
wbinfo -u
wbinfo -g
getent passwd
您现在应该可以使用域名用户名和密码登录服务器。 验证您是否收到Kerberos票证。
klist