本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Winb EC2 ind 手动将亚马逊 Linux 实例加入你的 AWS 托管微软 AD 活动目录
你可以使用 Winbind 服务手动将你的亚马逊 EC2 Linux 实例加入微软 AD Active Directory AWS 托管域。这使您现有的本地 Active Directory 用户能够在访问加入您的 AWS 托管 Microsoft AD 活动目录的 Linux 实例时使用其活动目录凭据。支持以下 Linux 实例分发版和版本:
其他 Linux 分发版和版本可能会正常运行,但未经过测试。
将 Linux 实例加入你的 AWS 托管微软 AD 活动目录
以下某些过程如果未正确执行,可能会使实例无法访问或不可用。因此,我们强烈建议在执行这些过程之前对实例创建备份或拍摄快照。
将 Linux 实例加入目录
使用以下选项卡之一对特定 Linux 实例执行步骤:
- Amazon Linux/CENTOS/REDHAT
-
-
使用任何SSH客户端连接到实例。
-
将 Linux 实例配置为使用 AWS Directory Service提供的DNS服务器的DNS服务器 IP 地址。您可以通过在附加的DHCP选项集中进行设置VPC或在实例上手动设置来实现此目的。如果您想手动设置,请参阅 AWS 知识中心中的如何将静态DNS服务器分配给私有 Amazon EC2 实例,以获取有关为您的特定 Linux 发行版和版本设置永久DNS服务器的指南。
-
确保 Linux 实例为最新状态。
sudo yum -y update
-
在 Linux 实例上安装所需 Samba/Winbind 软件包。
sudo yum -y install authconfig samba samba-client samba-winbind samba-winbind-clients
-
对主 smb.conf
文件进行备份,以便在出现任何故障时可以恢复到该文件:
sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
-
在文本编辑器中打开原始配置文件 [/etc/samba/smb.conf
]。
sudo vim /etc/samba/smb.conf
填写您的 Active Directory 域环境信息,如下例所示:
[global]
workgroup = example
security = ads
realm = example.com
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid
winbind enum users = no
winbind enum groups = no
template homedir = /home/%U@%D
template shell = /bin/bash
winbind use default domain = false
-
在文本编辑器中打开主机文件 [/etc/hosts
]。
sudo vim /etc/hosts
按如下方式添加 Linux 实例私有 IP 地址:
10.x.x.x
Linux_hostname
.example.com
Linux_hostname
如果您未在/etc/hosts
文件中指定 IP 地址,则在将实例加入域时可能会收到以下DNS错误。 :
No DNS domain configured for linux-instance. Unable to perform DNS
Update. DNS update failed: NT_STATUS_INVALID_PARAMETER
此错误表示加入成功,但是 [net ads] 命令无法在中注册DNS记录DNS。
-
使用 net 实用程序将 Linux 实例加入 Active Directory。
sudo net ads join -U join_account@example.com
Enter join_account@example.com
's password:
Using short domain name -- example
Joined 'IP-10-x-x-x
' to dns domain 'example.com
'
-
修改PAM配置文件,使用以下命令添加 winbind 身份验证所需的条目:
sudo authconfig --enablewinbind --enablewinbindauth --enablemkhomedir --update
-
通过编辑/etc/ssh/sshd_config
文件将SSH服务设置为允许密码认证。
-
在文本编辑器中打开 /etc/ssh/sshd_config
文件。
sudo vi /etc/ssh/sshd_config
-
将 PasswordAuthentication
设置为 yes
。
PasswordAuthentication yes
-
重新启动 SSH 服务。
sudo systemctl restart sshd.service
或者:
sudo service sshd restart
-
实例重新启动后,使用任意SSH客户端连接到该实例,然后通过执行以下步骤将域用户或组的根权限添加到 sudoers 列表中:
-
使用以下命令打开 sudoers
文件:
sudo visudo
-
按如下方式从信任或可信域中添加所需的组或用户,然后将其保存。
## Adding Domain Users/Groups.
%domainname
\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
%domainname
\\groupname
ALL=(ALL:ALL) ALL
domainname
\\username
ALL=(ALL:ALL) ALL
%Trusted_DomainName
\\groupname
ALL=(ALL:ALL) ALL
Trusted_DomainName
\\username
ALL=(ALL:ALL) ALL
(以上示例使用“\<space>”形成 Linux 空格字符。)
- SUSE
-
-
使用任何SSH客户端连接到实例。
-
将 Linux 实例配置为使用 AWS Directory Service提供的DNS服务器的DNS服务器 IP 地址。您可以通过在附加的DHCP选项集中进行设置VPC或在实例上手动设置来实现此目的。如果您想手动设置,请参阅 AWS 知识中心中的如何将静态DNS服务器分配给私有 Amazon EC2 实例,以获取有关为您的特定 Linux 发行版和版本设置永久DNS服务器的指南。
-
确保你的 SUSE Linux 15 实例是最新的。
-
连接程序包存储库。
sudo SUSEConnect -p PackageHub/15.1/x86_64
-
更新SUSE。
sudo zypper update -y
-
在 Linux 实例上安装所需 Samba/Winbind 软件包。
sudo zypper in -y samba samba-winbind
-
对主 smb.conf
文件进行备份,以便在出现任何故障时可以恢复到该文件:
sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
-
在文本编辑器中打开原始配置文件 [/etc/samba/smb.conf
]。
sudo vim /etc/samba/smb.conf
填写 Active Directory 域环境信息,如下例所示:
[global]
workgroup = example
security = ads
realm = example.com
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid
winbind enum users = no
winbind enum groups = no
template homedir = /home/%U@%D
template shell = /bin/bash
winbind use default domain = false
-
在文本编辑器中打开主机文件 [/etc/hosts
]。
sudo vim /etc/hosts
按如下方式添加 Linux 实例私有 IP 地址:
10.x.x.x
Linux_hostname
.example.com
Linux_hostname
如果您未在/etc/hosts
文件中指定 IP 地址,则在将实例加入域时可能会收到以下DNS错误。 :
No DNS domain configured for linux-instance. Unable to perform DNS
Update. DNS update failed: NT_STATUS_INVALID_PARAMETER
此错误表示加入成功,但是 [net ads] 命令无法在中注册DNS记录DNS。
-
使用以下命令将 Linux 实例加入目录。
sudo net ads join -U join_account@example.com
Enter join_account@example.com
's password:
Using short domain name -- example
Joined 'IP-10-x-x-x
' to dns domain 'example.com
'
-
修改PAM配置文件,使用以下命令添加 Winbind 身份验证所需的条目:
sudo pam-config --add --winbind --mkhomedir
-
在文本编辑器中打开 Name Service Switch 配置文件 [/etc/nsswitch.conf
]。
vim /etc/nsswitch.conf
添加 Winbind 指令,如下所示。
passwd: files winbind
shadow: files winbind
group: files winbind
-
通过编辑/etc/ssh/sshd_config
文件将SSH服务设置为允许密码认证。
-
在文本编辑器中打开 /etc/ssh/sshd_config
文件。
sudo vim /etc/ssh/sshd_config
-
将 PasswordAuthentication
设置为 yes
。
PasswordAuthentication yes
-
重新启动 SSH 服务。
sudo systemctl restart sshd.service
或者:
sudo service sshd restart
-
实例重新启动后,使用任意SSH客户端连接到该实例,并通过执行以下步骤将域用户或组的 root 权限添加到 sudoers 列表中:
-
使用以下命令打开 sudoers
文件:
sudo visudo
-
按如下方式从信任或可信域中添加所需的组或用户,然后将其保存。
## Adding Domain Users/Groups.
%domainname
\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
%domainname
\\groupname
ALL=(ALL:ALL) ALL
domainname
\\username
ALL=(ALL:ALL) ALL
%Trusted_DomainName
\\groupname
ALL=(ALL:ALL) ALL
Trusted_DomainName
\\username
ALL=(ALL:ALL) ALL
(以上示例使用“\<space>”形成 Linux 空格字符。)
- Ubuntu
-
-
使用任何SSH客户端连接到实例。
-
将 Linux 实例配置为使用 AWS Directory Service提供的DNS服务器的DNS服务器 IP 地址。您可以通过在附加的DHCP选项集中进行设置VPC或在实例上手动设置来实现此目的。如果您想手动设置,请参阅 AWS 知识中心中的如何将静态DNS服务器分配给私有 Amazon EC2 实例,以获取有关为您的特定 Linux 发行版和版本设置永久DNS服务器的指南。
-
确保 Linux 实例为最新状态。
sudo apt-get -y upgrade
-
在 Linux 实例上安装所需 Samba/Winbind 软件包。
sudo apt -y install samba winbind libnss-winbind libpam-winbind
-
对主 smb.conf
文件进行备份,以便在出现任何故障时可以恢复到该文件:
sudo cp /etc/samba/smb.conf /etc/samba/smb.bk
-
在文本编辑器中打开原始配置文件 [/etc/samba/smb.conf
]。
sudo vim /etc/samba/smb.conf
填写 Active Directory 域环境信息,如下例所示:
[global]
workgroup = example
security = ads
realm = example.com
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid
winbind enum users = no
winbind enum groups = no
template homedir = /home/%U@%D
template shell = /bin/bash
winbind use default domain = false
-
在文本编辑器中打开主机文件 [/etc/hosts
]。
sudo vim /etc/hosts
按如下方式添加 Linux 实例私有 IP 地址:
10.x.x.x
Linux_hostname
.example.com
Linux_hostname
如果您未在/etc/hosts
文件中指定 IP 地址,则在将实例加入域时可能会收到以下DNS错误。 :
No DNS domain configured for linux-instance. Unable to perform DNS
Update. DNS update failed: NT_STATUS_INVALID_PARAMETER
此错误表示加入成功,但是 [net ads] 命令无法在中注册DNS记录DNS。
-
使用 net 实用程序将 Linux 实例加入 Active Directory。
sudo net ads join -U join_account@example.com
Enter join_account@example.com
's password:
Using short domain name -- example
Joined 'IP-10-x-x-x
' to dns domain 'example.com
'
-
修改PAM配置文件,使用以下命令添加 Winbind 身份验证所需的条目:
sudo pam-auth-update --add --winbind --enable mkhomedir
-
在文本编辑器中打开 Name Service Switch 配置文件 [/etc/nsswitch.conf
]。
vim /etc/nsswitch.conf
添加 Winbind 指令,如下所示。
passwd: compat winbind
group: compat winbind
shadow: compat winbind
-
通过编辑/etc/ssh/sshd_config
文件将SSH服务设置为允许密码认证。
-
在文本编辑器中打开 /etc/ssh/sshd_config
文件。
sudo vim /etc/ssh/sshd_config
-
将 PasswordAuthentication
设置为 yes
。
PasswordAuthentication yes
-
重新启动 SSH 服务。
sudo systemctl restart sshd.service
或者:
sudo service sshd restart
-
实例重新启动后,使用任意SSH客户端连接到该实例,并通过执行以下步骤将域用户或组的 root 权限添加到 sudoers 列表中:
-
使用以下命令打开 sudoers
文件:
sudo visudo
-
按如下方式从信任或可信域中添加所需的组或用户,然后将其保存。
## Adding Domain Users/Groups.
%domainname
\\AWS\ Delegated\ Administrators ALL=(ALL:ALL) ALL
%domainname
\\groupname
ALL=(ALL:ALL) ALL
domainname
\\username
ALL=(ALL:ALL) ALL
%Trusted_DomainName
\\groupname
ALL=(ALL:ALL) ALL
Trusted_DomainName
\\username
ALL=(ALL:ALL) ALL
(以上示例使用“\<space>”形成 Linux 空格字符。)
连接到 Linux 实例
当用户使用SSH客户端连接到实例时,系统会提示他们输入用户名。用户可以采用 username@example.com
或 EXAMPLE\username
格式输入用户名。根据您使用的 Linux 发行版,响应将如下所示:
Amazon Linux、Red Hat Enterprise Linux 和 CentOS Linux
login as: johndoe@example.com
johndoe@example.com's password:
Last login: Thu Jun 25 16:26:28 2015 from XX.XX.XX.XX
SUSELinu
SUSE Linux Enterprise Server 15 SP1 x86_64 (64-bit)
As "root" (sudo or sudo -i) use the:
- zypper command for package management
- yast command for configuration management
Management and Config: https://www.suse.com/suse-in-the-cloud-basics
Documentation: https://www.suse.com/documentation/sles-15/
Forum: https://forums.suse.com/forumdisplay.php?93-SUSE-Public-Cloud
Have a lot of fun...
Ubuntu Linux
login as: admin@example.com
admin@example.com@10.24.34.0's password:
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-1057-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sat Apr 18 22:03:35 UTC 2020
System load: 0.01 Processes: 102
Usage of /: 18.6% of 7.69GB Users logged in: 2
Memory usage: 16% IP address for eth0: 10.24.34.1
Swap usage: 0%