加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

如何构建一台网络引导服务器(二)

发布时间:2019-01-19 04:19:52 所属栏目:Windows 来源:Gregory Bartholomew
导读:副标题#e# 在 如何构建一台网络引导服务器(一) 的文章中,我们展示了如何创建一个网络引导镜像,在那个镜像中使用了一个名为 liveuser 帐户,它的家目录位于内存中,重启后家目录中的内容将全部消失。然而很多用户都希望机器重启后保存他们的文件和设置。
副标题[/!--empirenews.page--]

如何构建一台网络引导服务器(二)

在 如何构建一台网络引导服务器(一) 的文章中,我们展示了如何创建一个网络引导镜像,在那个镜像中使用了一个名为 liveuser 帐户,它的家目录位于内存中,重启后家目录中的内容将全部消失。然而很多用户都希望机器重启后保存他们的文件和设置。因此,在本系列的第二部分,我们将向你展示如何在第一部分的基础上,重新配置网络引导镜像,以便 活动目录 中的用户帐户可以进行登录,然后从一个 NFS 服务器上自动挂载他们的家目录。

本系列的第三部分,我们将向你展示网络引导客户端如何与中心化配置的 iPXE 引导菜单进行交互。

设置使用 KRB5 认证的 NFS4 Home 目录

按以前的文章 “使用 Kerberos 强化共享的 NFS Home 目录安全性” 的指导来做这个设置。

删除 Liveuser 帐户

删除本系列文章第一部分中创建的 liveuser 帐户:

  1. $ sudo -i
  2. # sed -i '/automaticlogin/Id' /fc28/etc/gdm/custom.conf
  3. # rm -f /fc28/etc/sudoers.d/liveuser
  4. # for i in passwd shadow group gshadow; do sed -i '/^liveuser:/d' /fc28/etc/$i; done

配置 NTP、KRB5 和 SSSD

接下来,我们需要将 NTP、KRB5 和 SSSD 的配置文件复制进客户端使用的镜像中,以便于它们能够使用同一个帐户:

  1. # MY_HOSTNAME=$(</etc/hostname)
  2. # MY_DOMAIN=${MY_HOSTNAME#*.}
  3. # dnf -y --installroot=/fc28 install ntp krb5-workstation sssd
  4. # cp /etc/ntp.conf /fc28/etc
  5. # chroot /fc28 systemctl enable ntpd.service
  6. # cp /etc/krb5.conf.d/${MY_DOMAIN%%.*} /fc28/etc/krb5.conf.d
  7. # cp /etc/sssd/sssd.conf /fc28/etc/sssd

在已配置的识别服务的基础上,重新配置 sssd 提供认证服务:

  1. # sed -i '/services =/s/$/, pam/' /fc28/etc/sssd/sssd.conf

另外,配置成确保客户端不能更改这个帐户密码:

  1. # sed -i '/id_provider/a ad_maximum_machine_account_password_age = 0' /fc28/etc/sssd/sssd.conf

另外,复制 nfsnobody 的定义:

  1. # for i in passwd shadow group gshadow; do grep "^nfsnobody:" /etc/$i >> /fc28/etc/$i; done

加入活动目录

接下来,你将执行一个 chroot 将客户端镜像加入到活动目录。从删除预置在网络引导镜像中同名的计算机帐户开始:

  1. # MY_USERNAME=jsmith
  2. # MY_CLIENT_HOSTNAME=$(</fc28/etc/hostname)
  3. # adcli delete-computer "${MY_CLIENT_HOSTNAME%%.*}" -U "$MY_USERNAME"

在网络引导镜像中如果有 krb5.keytab 文件,也删除它:

  1. # rm -f /fc28/etc/krb5.keytab

chroot 到网络引导镜像中:

  1. # for i in dev dev/pts dev/shm proc sys run; do mount -o bind /$i /fc28/$i; done
  2. # chroot /fc28 /usr/bin/bash --login

执行一个加入操作:

  1. # MY_USERNAME=jsmith
  2. # MY_HOSTNAME=$(</etc/hostname)
  3. # MY_DOMAIN=${MY_HOSTNAME#*.}
  4. # MY_REALM=${MY_DOMAIN^^}
  5. # MY_OU="cn=computers,dc=${MY_DOMAIN//./,dc=}"
  6. # adcli join $MY_DOMAIN --login-user="$MY_USERNAME" --computer-name="${MY_HOSTNAME%%.*}" --host-fqdn="$MY_HOSTNAME" --user-principal="host/$MY_HOSTNAME@$MY_REALM" --domain-ou="$MY_OU"

现在登出 chroot,并清除 root 用户的命令历史:

  1. # logout
  2. # for i in run sys proc dev/shm dev/pts dev; do umount /fc28/$i; done
  3. # > /fc28/root/.bash_history

安装和配置 PAM 挂载

我们希望客户端登入后自动挂载用户家目录。为实现这个目的,我们将要使用 pam_mount 模块。安装和配置 pam_mount

  1. # dnf install -y --installroot=/fc28 pam_mount
  2. # cat << END > /fc28/etc/security/pam_mount.conf.xml
  3. <?xml version="1.0" encoding="utf-8" ?>
  4. <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
  5. <pam_mount>
  6. <debug enable="0" />
  7. <volume uid="1400000000-1499999999" fstype="nfs4" server="$MY_HOSTNAME" path="/home/%(USER)" mountpoint="/home/%(USER)" options="sec=krb5" />
  8. <mkmountpoint enable="1" remove="0" />
  9. <msg-authpw>Password:</msg-authpw>
  10. </pam_mount>
  11. END

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!