Pradeep Kumar 发布的文章

FreeIPA 是一个强大的开源身份管理系统,提供集中的身份验证、授权和计费服务。在本文中,我们将逐步介绍在 Ubuntu 22.04 / 20.04 上配置 FreeIPA 客户端的步骤。配置 FreeIPA 客户端后,我们将尝试使用在 FreeIPA 服务器上创建的用户登录。

在我们之前的帖子中,我们已经讨论了 FreeIPA 服务器在 RHEL8/Rokcy Linux 8/ AlmaLinux 8 上的安装步骤。

在 FreeIPA 服务器上创建用户进行集中认证

登录到你的 FreeIPA 服务器并创建一个名为 sysadm 的用户,运行以下命令:

$ sudo kinit admin
Password for [email protected]:
$
$ sudo ipa config-mod --defaultshell=/bin/bash
$ sudo ipa user-add sysadm --first=System --last=Admin --password
Password:
Enter Password again to verify:
-------------------
Added user "sysadm"
-------------------
User login: sysadm
First name: System
Last name: Admin
Full name: System Admin
Display name: System Admin
Initials: SA
Home directory: /home/sysadm
GECOS: System Admin
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
User password expiration: 20230415073041Z
Email address: [email protected]
UID: 464600003
GID: 464600003
Password: True
Member of groups: ipausers
Kerberos keys available: True
$

第一个命令是获取 Kerberos 凭证,第二个命令将所有用户的默认登录 shell 设置为 /bin/bash,第三个命令用于创建名为 sysadm 的用户。

在 Ubuntu 22.04 /20.04 上配置 FreeIPA 客户端的步骤

执行以下步骤来配置 FreeIPA 客户端以进行集中身份验证。

1、在 FreeIPA 服务器上添加 Ubuntu 系统的 DNS 记录

登录到你的 FreeIPA 服务器并运行以下命令为 FreeIPA 客户端(即 Ubuntu 22.04/20.04)添加 DNS 记录:

$ sudo ipa dnsrecord-add linuxtechi.lan app01.linuxtechi.lan --a-rec 192.168.1.106
  Record name: app01.linuxtechi.lan
  A record: 192.168.1.106
$

在上面的命令中,app01.linuxtechi.lan 是我的 Ubuntu 系统,IP 地址为 192.168.1.106

注意:确保你的 FreeIPA 服务器和客户端处于同一时区并从 NTP 服务器获取时间。

2、安装 FreeIPA 客户端包

从你的 Ubuntu 系统运行以下命令以安装 freeipa-client 以及依赖项:

$ sudo apt install freeipa-client oddjob-mkhomedir -y

在安装 freeipa-client 时,我们将看到以下页面,选择确定并回车。

在下一个屏幕中,按回车键跳过。

3、在主机文件中添加 FreeIPA 服务器 IP 和主机名

/etc/hosts 文件中添加以下 FreeIPA 服务器条目:

$ echo "192.168.1.102 ipa.linuxtechi.lan ipa" | sudo tee -a /etc/hosts
$ echo "192.168.1.106 app01.linuxtechi.lan app01" | sudo tee -a /etc/hosts

更改适合你的设置的 IP 地址和主机名。

4、使用 ipa-client-install 配置 FreeIPA 客户端

现在运行以下 ipa-client-install 命令在你的 Ubuntu 系统上配置 FreeIPA 客户端:

$ sudo ipa-client-install --hostname=`hostname -f` --mkhomedir --server=ipa.linuxtechi.lan --domain linuxtechi.lan --realm LINUXTECHI.LAN

更改适合你设置的 FreeIPA 服务器地址、域名和领域。

上述命令的输出如下所示:

完美,上面的输出确认 FreeIPA 客户端安装成功。

现在允许在用户首次使用 FreeIPA 服务器进行身份验证时自动创建用户的主目录。

在文件 /usr/share/pam-configs/mkhomedir 中添加以下行:

required pam_mkhomedir.so umask=0022 skel=/etc/skel
$ echo "required pam_mkhomedir.so umask=0022 skel=/etc/skel" | sudo tee -a /usr/share/pam-configs/mkhomedir

要使上述更改生效,请运行以下命令:

$ sudo pam-auth-update

选择确定,然后按回车键。

5、尝试使用 sysadm 用户登录到你的 Ubuntu 系统

尝试使用 sysadm 用户通过 SSH 登录到你的 Ubuntu 系统,

$ ssh [email protected]

正如你在上面看到的,当我们第一次登录时,它说密码已过期。它将提示我们设置新密码并断开会话。

更新密码后,尝试 SSH 登录 Ubuntu 系统,这次我们应该可以登录了。

$ ssh [email protected]

输出:

太好了,上面的输出确认我们已经使用集中用户成功登录到我们的 Ubuntu 系统。这也说明我们已经成功配置了 FreeIPA 客户端。

如果你想从 ubuntu 系统中卸载 FreeIPA,然后运行以下命令集:

$ sudo ipa-client-install --uninstall
$ sudo  rm -rf /var/lib/sss/db/*
$ sudo systemctl restart sssd.service

以上就是这篇文章的全部内容,我相信你已经发现它提供了很多信息。请在下面发表你的疑问和反馈。

(题图:MJ/bd5b7777-f70a-4367-ac78-d026792b855a)


via: https://www.linuxtechi.com/configure-freeipa-client-on-ubuntu/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在本指南中,我们演示了如何在 Rocky Linux 9 / Alma Linux 9 上安装 KVM。

KVM 是 内核虚拟机 Kernel Virtualization Machine 的简称,是一个为 Linux 内核设计的开源虚拟化平台。它是一种 1 类管理程序,或通常称为裸机管理程序。它允许用户创建和管理多台客户机,这些可以在 Linux 或 Windows 操作系统中创建。

与大多数虚拟化平台一样,它将硬件资源(如 CPU、内存、存储、网络、图形等)抽象化,并将它们分配给独立于宿主机运行的客户机。

先决条件

  • 预装 Rocky Linux 9 / AlmaLinux 9
  • 具有管理员权限的 sudo 用户
  • 互联网连接

1、验证是否启用了硬件虚拟化

首先,你需要验证你的系统是否启用了虚拟化功能。在大多数现代系统上,此功能已在 BIOS 中启用。但可以肯定的是,你可以验证是否如图所示启用了虚拟化。

该命令探测是否存在 VMX( 虚拟机扩展 Virtual Machine Extension ),它是英特尔硬件虚拟化的 CPU 标志,或 SVM,它是 AMD 硬件虚拟化的标志。

$ cat /proc/cpuinfo | egrep "vmx|svm"

从以下输出中,你可以看到我们的系统启用了英特尔硬件虚拟化:

2、在 Rocky Linux 9 / AlmaLinux 9 上安装 KVM

确保启用虚拟化后,下一步就是安装 KVM 和管理工具。为此,请运行以下 dnf 命令。

$ sudo dnf install qemu-kvm virt-manager libvirt virt-install virt-viewer virt-top bridge-utils  bridge-utils virt-top libguestfs-tools -y

安装完成后,运行以下命令检查是否已加载所需的 KVM 模块。

$ lsmod | grep kvm

你应该得到以下输出以确认已加载必要的模块:

3、启动并启用 libvirtd 守护进程

在下一步中,一定要启动 libvirtd 守护进程。这是一个服务器端守护程序组件,可在虚拟化的客户机上运行和管理任务。它用于管理虚拟化技术,例如 Xen、KVM 和 ESXi 等等。

要启动 libvirtd 守护进程,请运行以下命令:

$ sudo systemctl start libvirtd

请务必启用该服务以在引导时启动:

$ sudo systemctl enable --now libvirtd

验证 libvirtd 守护进程是否正在运行,如下所示:

$ sudo systemctl status libvirtd

4、设置桥接接口

到目前为止,我们已经安装了 KVM 和所有管理工具,事实上,我们可以继续启动虚拟机。但是,如果我们可以从管理程序网络外部访问虚拟机,那就太好了。为此,我们需要创建一个桥接接口。

首先,确定系统上的网络接口。

$ sudo nmcli connection show

从输出来看,ens160 是活动的网络接口,请务必注意你的情况下的接口,因为你将一路使用它。

要开始创建网桥,首先,使用以下语法用其 UUID 删除连接:

$ sudo nmcli connection delete UUID

在我们的例子中,命令将是:

$ sudo nmcli connection delete 19e98123-9a84-30a6-bc59-a7134446bb26

你将收到连接已成功删除的确认信息。

在继续进行之前,最好准备好以下详细信息:

  • 网桥名称 – 新网桥的首选名称(例如 br1
  • 设备名称 – 这是你的网络接口的名称。它将作为网桥的从属设备(例如,ens160
  • IP 地址/子网 – 桥接网络的 IP 地址和子网(例如 192.168.2.50/24)。请注意,这应该与你的网络子网和 IP 地址相对应。
  • 网关 – 你网络的默认网关地址(例如 192.168.2.1
  • DNS1 和 DNS2 – 首选 DNS 地址(例如 8.8.8.88.8.4.4

继续,使用以下语法创建一个新的桥接接口。

$ sudo nmcli connection add type bridge autoconnect yes con-name BRIDGE NAME ifname BRIDGE NAME

在我们的例子中,br1 是首选的网桥接口名称。因此,命令将如图所示:

$ sudo nmcli connection add type bridge autoconnect yes con-name br1 ifname br1

在接下来的步骤中,你将通过指定 IP 子网、网关和 DNS 值来修改网桥。

首先使用以下语法指定 IP 子网:

$ sudo nmcli connection modify BRIDGE NAME ipv4.addresses IP ADDRESS/SUBNET ipv4.method manual

根据我们的设置,命令将是:

$ sudo nmcli connection modify br1 ipv4.addresses 192.168.2.150/24 ipv4.method manual

接下来,使用以下语法指定网关地址:

$ sudo nmcli connection modify BRIDGE NAME ipv4.gateway GATEWAY

根据我们的网络,该命令采用以下格式:

$ sudo nmcli connection modify br1 ipv4.gateway 192.168.2.1

DNS 地址的语法如下:

$ sudo nmcli connection modify BRIDGE NAME ipv4.dns DNS1 +ipv4.dns DNS2

该命令采用以下格式:

$ sudo nmcli connection modify br1 ipv4.dns 8.8.8.8 +ipv4.dns 8.8.4.4

此后,使用以下命令添加网桥从属设备:

$ sudo nmcli connection add type bridge-slave autoconnect yes con-name DEVICE NAME ifname DEVICE NAME master BRIDGE NAME

使用我们的值,命令如图所示:

$ sudo nmcli connection add type bridge-slave autoconnect yes con-name ens160 ifname ens160 master br1

你将收到以下确认信息,表明已成功添加网桥从属设备。请记住,桥接从属设备是你的网络接口或适配器。

要确认网桥已创建,请运行以下命令:

$ sudo nmcli connection show

从输出中,你可以看到列出了网桥接口。

激要活它,请运行以下命令:

$ sudo nmcli connection up br1

此外,你可以使用 ip addr 命令验证:

$ ip addr | grep br1

最后,编辑网桥配置文件。

$ sudo vi /etc/qemu-kvm/bridge.conf

添加以下行:

allow all

然后重新启动虚拟化守护进程以应用更改

$ sudo systemctl restart libvirtd

5、创建虚拟机

安装 KVM 并配置桥接连接后,现在让我们创建一个虚拟机。在执行之前,为登录用户分配必要的所有权,以便在不切换到 root 的情况下运行命令。

$ sudo chown -R $USER:libvirt /var/lib/libvirt/

在命令行上,我们将使用以下语法使用 Ubuntu 20.04 ISO 镜像创建虚拟机。

$ virt-install \
    --name Ubuntu \
    --ram 2048 \
    --vcpus 2 \
    --disk path=/var/lib/libvirt/images/ubuntu-20.04.img,size=15 \
    --os-variant ubuntu20.04 \
    --network bridge=br1,model=virtio \
    --graphics vnc,listen=0.0.0.0 \
    --console pty,target_type=serial \
    --cdrom /home/linuxtechi/Downloads/ubuntu-20.04.4-desktop-amd64.iso

执行该命令后,将启动图形屏幕会话,并开始安装客户操作系统。

总结

我们关于如何在 Rocky Linux 9 / AlmaLinux 9 上安装 KVM 的文章到此结束,非常欢迎你提供反馈。

(题图:MJ/a364d6e3-0c59-4be8-bf02-5df078359429)


via: https://www.linuxtechi.com/install-kvm-on-rocky-linux-almalinux/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

DHCP 是 “ 动态主机配置协议 Dynamic Host Configuration Protocol ” 的首字母缩写词,它是一种网络协议,可自动为计算机网络中的客户端系统分配 IP 地址。它从 DHCP 池或在其配置中指定的 IP 地址范围分配客户端。虽然你可以手动为客户端系统分配静态 IP,但 DHCP 服务器简化了这一过程,并为网络上的客户端系统动态分配 IP 地址。

在本文中,我们将演示如何在 RHEL 9 / Rocky Linux 9 上安装和配置 DHCP 服务器。

先决条件

  • 预装 RHEL 9 或 Rocky Linux 9
  • 具有 sudo 管理权限的普通用户
  • 本地配置的 YUM/DNF 仓库或 RHEL 9 的 Red Hat 订阅
  • 互联网连接

事不宜迟,让我们进入 DHCP 服务器安装步骤。

1、在 RHEL 9 / Rocky Linux 9 上配置静态 IP 地址

开始时,必须在 RHEL 或 Rocky Linux 系统上设置静态 IP 地址。有多种方法可以执行此操作,但最简单和最直观的方法是使用 nmtuinmcli 实用程序。

要确认你的 Linux 系统的 IP 地址,请运行以下 ip 命令:

$ ip a

2、安装和配置 DHCP 服务器

配置静态 IP 后,下一步就是安装 DHCP 服务器。RHEL 9 或 Rocky Linux 9 仓库 (BaseOS) 默认提供 dhcp-server 包,你可以如图所示安装它:

$ sudo dnf install dhcp-server -y

安装 dhcp 服务器后,我们需要进一步并配置设置。因此,打开 DHCP 配置文件:

$ sudo vi /etc/dhcp/dhcpd.conf

将以下代码行粘贴到配置文件中。请务必将子网配置为你的首选值:

default-lease-time 3600;
max-lease-time 86400;
authoritative;
subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.100 192.168.10.200;
    option routers 192.168.10.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.10.1;
}

保存并关闭文件。

让我们看一下其中的一些值:

  • default-lease-time 值指定 DHCP 服务器将地址租给客户端的时间。在这种情况下,默认租用时间值为 3600 秒或 1 小时。
  • max-lease-time 是将 IP 租给客户端的最长持续时间。在我们的例子中,这被设置为 86400 秒或 24 小时。
  • 下一部分是子网配置。在此设置中,192.168.10.0 是子网,255.255.255.0 是子网掩码。IP 地址范围从 192.168.10.100 一直到 192.168.10.200
  • router 选项定义默认网关。在本例中为 192.168.10.1
  • subnet-mask 选项确定分配给每个客户端或主机的子网掩码。在本例中为 255.255.255.0
  • 最后,domain-name-servers 选项指定 DNS 服务器。在本例中为 192.168.10.1

完成后,保存更改并退出。然后启用并启动 DHCP 服务。

$ sudo systemctl enable --now dhcpd
$ sudo systemctl status dhcpd

请注意:

此时,DHCP 服务应该分发 IP 地址。如果你的 LAN 中有另一个 DHCP 服务器或路由器,关闭它以防止 IP 地址分配冲突是明智的。这将导致一些客户端从 RHEL 或 Rocky Linux 服务器上的 DHCP 服务器获得 IP 分配,而其余的则从路由器获得 IP 分配,这当然不是你想要发生的事情。因此,请记住关闭 LAN 设置中的任何其他 DHCP 服务器。

3、测试 DHCP 服务器安装

在我们模拟的 LAN 设置中,你可以看到 Ubuntu 系统已经从 RHEL 或 Rocky Linux DHCP 服务器中选择了一个 IP。

回到我们的 DHCP 服务器并在 /var/log/message 文件中搜索 Ubuntu 机器的 IP 地址:

$ sudo tail -50 /var/log/messages | grep -i 192.168.10.100

完美,上面的输出确认 Ubuntu 机器从我们的 DHCP 服务器获得了 IP 服务器。

结论

这篇文章到此结束。在本指南中,你学习了如何在 RHEL 9 / Rocky Linux 9 上安装和配置 DHCP 服务器。请在下面的评论部分发表你的疑问和反馈。

(题图:MJ/d396485d-963c-4d17-8c4b-f3c8e11dcc5d)


via: https://www.linuxtechi.com/configure-dhcp-server-on-rhel-rockylinux/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

各位读者,我们将在本文中介绍如何在 Linux 或 UNIX 系统中入门 Shell 脚本编写。

什么是 Shell 呢?

Shell(交互界面)是类 UNIX/Linux 操作系统中的一个解释器。它将用户输入的命令解释成操作系统的系统调用来执行这些命令。简单来说,Shell 形式上是操作系统的包装。比如,你可能使用 Shell 命令来列出目录中的文件,如 ls 命令,或使用命令复制,如 cp 命令。

$ ls
Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos

在上方的例子中,当你输入 ls 并按下回车键。$ 符号是 Shell 的提示符,意味着 Shell 等着命令的输入。下面的一行就是当前目录下的文件名。

什么是 Shell 提示符?

提示符,即 $,被称作命令提示符,是由 Shell 发出的(LCTT 译注:这个概念,可能有误。请参看:https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt )。当提示符出现后(LCTT 译注:此处提示符并不特指 $ 符号),你就可以输入命令了。Shell 将会在你按下回车键后读取你的输入。它会通过查看你输入的第一个单词来确定你希望执行的命令。“单词”指的是一组连续的字符。空格和制表符作为分割单词的标志。

不同类型的 Shell

由于没有限制只能有一个 Shell,你可以按照自己的意愿来自由选择运行任何一种 Shell。这当然挺好的,但是在不清楚其它替代方案的情况下选择一种 Shell 没有多大益处。下面列出了一些 UNIx/Linux 下常见的 Shell。

Sh(Bourne Shell)

最初的 Unix Shell 通常被称作 Sh,是 Shell(或 Bourne Shell)的简写,以其作者 Steven Bourne 命名。它在几乎所有的类 UNIX 操作系统下都可以找到。基本的 Bourne Shell 仅支持相当有限的命令行编辑。你可以输入字符,使用退格键删除字符,还有就是按下回车键来执行命令。当命令行出现异常了,你可以按下 Ctrl-C 组合键来终止整个命令。

Csh(C Shell)

它是由加利福尼亚大学伯克利分校的 Bill Joy 设计的,由于它的语法和 C 语言相似,所以被命名为 C Shell。这种 Shell 在 Bourne shell 的基础上增加了一些实用功能,尤其是可以重用之前的命令来帮助创建之后要执行的命令。当你去完成一项专门任务的时候,大多数的情况下需要执行不止一条命令,这样 C shell 的能力就相当有用了。

Ksh(Korn Shell)

它是由贝尔实验室的 David Korn 创造的,Korn Shell 提供了和 C Shell 相同的增强,其中有一项重要的不同:Korn Shell 提供了对旧的 Bourne Shell 语法的向后兼容。在 Unix 下,如 AIX & HP-UX 上,Korn Shell 是默认 Shell。

Bash(Bourne Again Shell)

Bash 提供了像 Korn Shell 一样的命令行编辑,像 C Shell 一样的文件名补全和许多其它的高级功能。许多用户认为 Bash 集 Korn Shell 和 C Shell 的优点于一身。在 Linux 和 Mac OS X 系统下,Bash 是默认的 Shell。

Tcsh(T C Shell)

Linux 系统推广了 Tcsh。Tcsh 扩展了传统的 csh,增加了命令行编辑、文件名补全和其它功能。例如,当你按下 Tab 键后,Tcsh 会补全文件和目录名(与 Bash 中的按键相同)。旧的 C Shell 不支持这项功能。

什么是 Shell 脚本呢?

Shell 脚本是包含一条或多条命令的文本文件。在 Shell 脚本中,Shell 程序假定文本文件的每一行是一条不同的命令。这些命令的大部分就和你在 Shell 窗口手动输入的一样。

为什么要使用 Shell 脚本呢?

Shell 脚本被用来自动化管理任务、简化复杂的配置细节,并且充分运用操作系统的性能。有了组合不同命令的能力就可以创造新命令了,从而增加操作系统的价值。此外,结合使用 Shell 与图形化桌面环境,可以兼得二者之长。

从系统管理员的角度看,日复一日的重复工作可以使用 Shell 脚本来实现自动处理,那就可以节约时间从事其它高质量的工作。

创建第一个 Shell 脚本

在当前工作目录下创建一个名为 myscript.sh 的文本文件,所有的 Shell 脚本都有 .sh 的扩展名(LCTT 译注:Linux 下根本没有扩展名一说,没有这个扩展一样是可以执行的)。脚本的第一行是 #!/bin/sh#!/bin/bash,因为 # 符号被称作 “hash” 并且 ! 符号被称作 “bang” 故被称为 shebang(释伴)。至于 /bin/sh/bin/bash 则指出了命令将被 Sh 还是 Bash shell 执行。

以下就是 myscript.sh 的内容:

#!/bin/bash
# Written by LinuxTechi
echo
echo "Current Working Directory: $(pwd)"
echo
echo "Today' Date & Time: $(date)"
DISK=$(df -Th)
echo
echo "Disk Space on System:"
echo "$DISK"

上方的脚本将会展示当前工作目录、今天的日期与时间,还有磁盘空间。我们需要用到 echo 命令 和其它 Linux 命令 来实现这个脚本。

使用如下的 chmod 命令 来给文件增加执行权限:

$ chmod a+x myscript.sh

现在来执行脚本:

$ sh myscript.sh
或
$ ./myscript.sh

注意:在当前目录下执行当前目录下的 Shell 脚本,须使用 ./<脚本名> 方式,如下所示:

在 Shell 脚本中获取用户输入

read 命令用来获取用户的键盘输入,并且将之赋值给一个变量。echo 命令用来展示内容。

让我们更改上方的脚本以使之获取输入:

#!/bin/bash
# Written by LinuxTechi
read -p "Your Name: " NAME
echo
echo "Today' Date & Time: $(date)"
echo
read -p "Enter the file system:" DISK
echo "$(df -Th $DISK)""

现在,再执行脚本试试,这回应该会有输入信息的提醒:

$ ./myscript.sh
Your Name: Pradeep Kumar

Today' Date & Time: Sat 15 Oct 05:32:38 BST 2022

Enter the file system:/mnt/data
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data

完美,上方的输出表明脚本有输入提醒,并加工处理了相应的数据。

本文结束。希望对你是有用的。非常欢迎任何的疑问、反馈。

(题图:MJ/f83b771e-a70d-4c62-a169-ec42e9004a14)


via: https://www.linuxtechi.com/get-started-shell-scripting-linux/

作者:Pradeep Kumar 选题:lkxed 译者:cyberwaddle 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在本文中,我们将向你展示如何在 RHEL、Rocky Linux 或 AlmaLinux 上安装和配置 FreeIPA 客户端。

为了演示,我们在 RHEL 系统上集成了 FreeIPA 服务器,使用 FreeIPA 进行集中认证。

FreeIPA 服务器是一个开源的身份管理解决方案,为 Linux 系统提供集中的身份验证、授权和帐户信息。

先决条件

  • 已预装 RHEL 9/8 或 Rocky Linux 9/8 或 AlmaLinux 9/8
  • 具有 sudo 权限的普通用户
  • RHEL 系统的有效订阅。
  • 互联网连接

事不宜迟,让我们深入了解 FreeIPA 客户端安装和配置步骤,

1、在 FreeIPA 服务器上创建一个用户

登录到 FreeIPA 服务器并创建一个用户以进行集中身份验证,这里我使用以下命令使用创建了一个用户 opsadm

$ sudo kinit admin
$ sudo ipa user-add opsadm --first=Ops --last=Admin --password
Password:
Enter Password again to verify:
-------------------
Added user "opsadm"
-------------------
  User login: opsadm
  First name: Ops
  Last name: Admin
  Full name: Ops Admin
  Display name: Ops Admin
  Initials: OA
  Home directory: /home/opsadm
  GECOS: Ops Admin
  Login shell: /bin/bash
  Principal name: [email protected]
  Principal alias: [email protected]
  User password expiration: 20230502010113Z
  Email address: [email protected]
  UID: 464600004
  GID: 464600004
  Password: True
  Member of groups: ipausers
  Kerberos keys available: True
$

2、为 RHEL、Rocky Linux 或 AlmaLinux 添加 DNS 记录

下一步是为我们想要与 FreeIPA 服务器集成以集中身份验证的机器添加 DNS 记录。在 FreeIPA 服务器上,运行以下命令:

$ sudo ipa dnsrecord-add linuxtechi.lan rhel.linuxtechi.lan --a-rec 192.168.1.2

注意:在上述命令中替换为你自己的 IP 地址和主机名。

现在登录到 RHEL 客户端并在 /etc/hosts 文件中添加以下条目:

192.168.1.102 ipa.linuxtechi.lan ipa
192.168.1.2   rhel.linuxtechi.lan rhel

保存并退出文件。

3、在 RHEL、RockyLinux 和 AlmaLinux 上安装和配置 FreeIPA 客户端

FreeIPA 客户端及其依赖项在默认软件包仓库(AppStream 和 BaseOS)中可用,因此要安装 FreeIPA 客户端,请运行:

$ sudo dnf install freeipa-client -y

安装完成后,配置 FreeIPA 客户端,运行以下命令:

$ sudo ipa-client-install --hostname=`hostname -f` --mkhomedir --server=ipa.linuxtechi.lan --domain linuxtechi.lan  --realm LINUXTECHI.LAN

根据你的设置替换 FreeIPA 服务器的主机名、域名和领域。

输出:

完美,上面的输出确认 freeipa-client 命令已成功执行。要测试 FreeIPA 客户端集成,请从当前用户注销并尝试以我们在 IPA 服务器上创建的 opsadm 用户身份登录。

4、测试 FreeIPA 客户端

试着在你刚刚配置了 FreeIPA 客户端的 RHEL 系统上使用 opsadm 用户通过 SSH 登录。

$ ssh opsadm@<IPAddress-RHEL>

当我们第一次登录系统时,由于密码过期政策,它会提示你设置新密码。

修改密码后,再次尝试登录。这次你应该可以登录了。

很好,上面的输出确认我们可以使用 opsadm 用户登录。这确认 FreeIPA 客户端安装和配置成功。

以上就是这篇文章的全部内容,希望你发现它提供了丰富的信息,请在下面的评论部分中发表你的疑问和反馈。

(题图:MJ/583ee400-3bad-4036-a725-f9d2078d69ab)


via: https://www.linuxtechi.com/install-freeipa-client-on-rhel-rockylinux-almalinux/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你是否正在寻找有关如何在 Linux 上安装 FreeIPA 服务器的简单指南?

此页面上的分步指南将展示如何在 RHEL 8、Rocky Linux 8 和 AlmaLinux 8 上安装 FreeIPA 服务器。

FreeIPA 是一个自由开源的基于 Linux 系统的集中式身份和访问管理工具,它是 Red Hat 身份管理器的上游项目。使用 FreeIPA,我们可以轻松地管理集中式身份验证以及帐户管理、策略(基于主机的访问控制)和审计。

FreeIPA 基于以下开源项目:

  • LDAP 服务器 – 基于 389 项目
  • KDC – 基于 MIT Kerberos 实现
  • 基于 Dogtag 项目的 PKI
  • 用于活动目录集成的 Samba 库
  • 基于 BIND 和 Bind-DynDB-LDAP 插件的 DNS 服务器
  • NTP

先决条件

  • 预装 RHEL 8 或 Rocky Linux 8 或 AlmaLinux 8
  • 具有管理员权限的 Sudo 用户
  • 内存 = 2 GB
  • CPU = 2 个 vCPU
  • 磁盘 = 根目录有 12GB 可用空间
  • 互联网连接

FreeIPA 的实验室详细信息

  • IP 地址 = 192.168.1.102
  • Hostanme = ipa.linuxtechi.lan
  • 操作系统:RHEL 8 或 Rocky Linux 8 或 AlmaLinux 8

事不宜迟,让我们深入了解 FreeIPA 安装步骤。

1、设置主机名并安装更新

打开服务器的终端并使用 hostnamectl 命令设置主机名:

$ sudo hostnamectl set-hostname "ipa.linuxtechi.lan"
$ exec bash

使用 yum/dnf 命令安装更新,然后重新启动:

$ sudo dnf update -y
$ sudo reboot

2、更新主机文件并将 SELinux 设置为许可

运行以下 tee 命令更新 /etc/hosts 文件,根据你的设置替换 IP 地址和主机名。

$ echo -e "192.168.1.102\tipa.linuxtechi.lan\t ipa" | sudo tee -a /etc/hosts

将 SELinux 设置为许可,运行以下命令:

$ sudo setenforce 0
$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
$ getenforce
Permissive

3、安装 FreeIPA 及其组件

Appstream 包仓库中提供了 FreeIPA 包及其依赖项。由于我们计划安装集成 DNS 的 FreeIPA,因此我们还将安装 ipa-server-dnsbind-dyndb-ldap

运行以下命令安装 FreeIPA 及其依赖项:

$ sudo dnf -y install @idm:DL1
$ sudo dnf install freeipa-server ipa-server-dns bind-dyndb-ldap -y

4、开始安装 FreeIPA

成功安装 FreeIPA 包及其依赖项后,使用以下命令启动 FreeIPA 安装设置。

它将提示几件事,例如配置集成 DNS、主机名、域名和领域名。

$ sudo ipa-server-install

上述命令的输出如下所示:

在上面的窗口中输入 “yes” 后,需要一些时间来配置你的 FreeIPA 服务器,设置成功后,我们将得到下面的输出:

以上输出确认 FreeIPA 已成功安装。

5、在防火墙中允许 FreeIPA 端口

如果正在你的服务器上运行系统防火墙,那么运行如下 firewall-cmd 命令以允许 FreeIPA 端口:

$ sudo firewall-cmd --add-service={http,https,dns,ntp,freeipa-ldap,freeipa-ldaps} --permanent
$ sudo firewall-cmd --reload

6、访问 FreeIPA 管理门户

执行下面的 ipactl 命令查看 FreeIPA 的所有服务是否都在运行:

$ ipactl status
You must be root to run ipactl.
$ sudo ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
$

让我们使用 kinit 命令验证管理员用户是否会通过 Kerberos 获取令牌,使用我们在 FreeIPA 安装期间提供的相同管理员用户密码。

$ kinit admin
$ klist

以上命令的输出:

完美,上面的输出确认管理员获得了令牌。现在,尝试访问 FreeIPA Web 控制台,在网络浏览器上输入以下 URL:

https://ipa.linuxtechi.lan/ipa/ui

或者

https://<Server-IPAddress>/ipa/ui

使用我们在安装过程中指定的用户名 admin 和密码。

对于 FreeIPA Web 控制台,使用自签名 SSL 证书,这就是我们看到此窗口的原因,因此单击“ 接受风险并继续 Accept the Risk and Continue ”。

输入凭据后,单击“ 登录 Log in ”。

这证实我们已在 RHEL 8/Rocky Linux 8 / AlmaLinux8 上成功设置 FreeIPA。

这就是全部,我希望你觉得它提供了很多信息。请在下面的评论部分中发表你的疑问和反馈。

(题图:MJ/9df57ea0-b5a0-48f9-a323-853a28ca6162)


via: https://www.linuxtechi.com/install-freeipa-rhel-rocky-almalinux/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出