Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门。本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
手动加入 Linux 实例
除 Amazon EC2 Windows 实例外,您还可以将特定 Amazon EC2 Linux 实例加入您的 Simple AD 目录。支持以下 Linux 实例分发版和版本:
-
Amazon Linux AMI 2018.03.0
-
Amazon Linux 2(64 位 x86)
-
Red Hat Enterprise Linux 8 (HVM)(64 位 x86)
-
Ubuntu Server 18.04 LTS 和 Ubuntu Server 16.04 LTS
-
CentOS 7 x86-64
-
SUSE Linux Enterprise Server 15 SP1
其他 Linux 分发版和版本可能会正常运行,但未经过测试。
将实例加入目录
在将 Amazon Linux、CentOS、红帽或 Ubuntu 实例加入您的目录之前,该实例必须按照中指定的方式启动。无缝地联接 Windows EC2 实例.
以下某些过程如果未正确执行,可能会使实例无法访问或不可用。因此,我们强烈建议在执行这些过程之前对实例创建备份或拍摄快照。
将 Linux 实例加入目录
使用以下选项卡之一对特定 Linux 实例执行步骤:
- Amazon Linux
-
-
使用任何 SSH 客户端连接到实例。
-
配置 Linux 实例以使用Amazon Directory Service-提供的 DNS 服务器。可以通过在附加到 VPC 的 DHCP 选项集中进行设置,或是通过在实例上手动设置,来执行此操作。如果您要手动设置,请参阅如何为私有 Amazon EC2 实例分配静态 DNS 服务器?中的Amazon知识中心获取有关为特定 Linux 发行版和版本设置持久 DNS 服务器的指导。
-
确保您的 Amazon Linux-64 位实例为最新状态。
sudo yum -y update
-
在 Linux 实例上安装所需的 Amazon Linux 程序包。
其中一些程序包可能已安装。
安装程序包时,可能会遇到几个弹出配置屏幕。通常可以将这些屏幕中的字段保留为空白。
- Amazon Linux 1
-
sudo yum -y install sssd realmd krb5-workstation
- Amazon Linux 2
-
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
使用以下命令将实例加入目录。
sudo realm join -U join_account@example.com example.com --verbose
...
* Successfully enrolled machine in realm
-
设置 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
-
将以下内容添加到sudoers文件然后保存它。
## Add the "Domain Admins" group from the example.com domain.
%Domain\ Admins@example.com ALL=(ALL:ALL) ALL
(以上示例使用 “\<space>” 形成 Linux 空格字符。)
- CentOS
-
-
使用任何 SSH 客户端连接到实例。
-
配置 Linux 实例以使用Amazon Directory Service-提供的 DNS 服务器。可以通过在附加到 VPC 的 DHCP 选项集中进行设置,或是通过在实例上手动设置,来执行此操作。如果您要手动设置,请参阅如何为私有 Amazon EC2 实例分配静态 DNS 服务器?中的Amazon知识中心获取有关为特定 Linux 发行版和版本设置持久 DNS 服务器的指导。
-
确保您的 CentOS 7 实例为最新状态。
sudo yum -y update
-
在 Linux 实例上安装所需的 CentOS 7 程序包。
其中一些程序包可能已安装。
安装程序包时,可能会遇到几个弹出配置屏幕。通常可以将这些屏幕中的字段保留为空白。
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
使用以下命令将实例加入目录。
sudo realm join -U join_account@example.com example.com --verbose
...
* Successfully enrolled machine in realm
-
设置 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
-
将以下内容添加到sudoers文件然后保存它。
## Add the "Domain Admins" group from the example.com domain.
%Domain\ Admins@example.com ALL=(ALL:ALL) ALL
(以上示例使用 “\<space>” 形成 Linux 空格字符。)
- Red hat
-
-
使用任何 SSH 客户端连接到实例。
-
配置 Linux 实例以使用Amazon Directory Service-提供的 DNS 服务器。可以通过在附加到 VPC 的 DHCP 选项集中进行设置,或是通过在实例上手动设置,来执行此操作。如果您要手动设置,请参阅如何为私有 Amazon EC2 实例分配静态 DNS 服务器?中的Amazon知识中心获取有关为特定 Linux 发行版和版本设置持久 DNS 服务器的指导。
-
确保 Red Hat - 64 位实例为最新状态。
sudo yum -y update
-
在 Linux 实例上安装所需的 Red Hat 程序包。
其中一些程序包可能已安装。
安装程序包时,可能会遇到几个弹出配置屏幕。通常可以将这些屏幕中的字段保留为空白。
sudo yum -y install sssd realmd krb5-workstation samba-common-tools
-
使用以下命令将实例加入目录。
sudo realm join -v -U join_account example.com --install=/
join_account
-
这些区域有:sAMAccountName对于中的账户example.com具有域加入权限的域。在出现提示时输入账户的密码。有关委托这些权限的更多信息,请参阅为委派目录加入权限Amazon管理 Microsoft AD。
example.com
-
目录的完全限定 DNS 名称。
...
* Successfully enrolled machine in realm
-
设置 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
-
将以下内容添加到sudoers文件然后保存它。
## Add the "Domain Admins" group from the example.com domain.
%Domain\ Admins@example.com ALL=(ALL:ALL) ALL
(以上示例使用 “\<space>” 形成 Linux 空格字符。)
- Ubuntu
-
-
使用任何 SSH 客户端连接到实例。
-
配置 Linux 实例以使用Amazon Directory Service-提供的 DNS 服务器。可以通过在附加到 VPC 的 DHCP 选项集中进行设置,或是通过在实例上手动设置,来执行此操作。如果您要手动设置,请参阅如何为私有 Amazon EC2 实例分配静态 DNS 服务器?中的Amazon知识中心获取有关为特定 Linux 发行版和版本设置持久 DNS 服务器的指导。
-
确保您的 Ubuntu - 64 位实例为最新状态。
sudo apt-get update
sudo apt-get -y upgrade
-
在 Linux 实例上安装所需的 Ubuntu 程序包。
其中一些程序包可能已安装。
安装程序包时,可能会遇到几个弹出配置屏幕。通常可以将这些屏幕中的字段保留为空白。
sudo apt-get -y install sssd realmd krb5-user samba-common packagekit adcli
-
禁用反向 DNS 解析,并将默认领域设置为您的域的 FQDN。Ubuntu 实例在 DNS 中必须 可以反向解析,领域才能使用。否则,您必须在 /etc/krb5.conf 中禁用 DNS,如下所示:
sudo vi /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
rdns = false
-
使用以下命令将实例加入目录。
sudo realm join -U join_account example.com --verbose
join_account@example.com
-
这些区域有:sAMAccountName对于中的账户example.com具有域加入权限的域。在出现提示时输入账户的密码。有关委托这些权限的更多信息,请参阅为委派目录加入权限Amazon管理 Microsoft AD。
example.com
-
目录的完全限定 DNS 名称。
...
* Successfully enrolled machine in realm
-
设置 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
-
将以下内容添加到sudoers文件然后保存它。
## Add the "Domain Admins" group from the example.com domain.
%Domain\ Admins@example.com ALL=(ALL:ALL) ALL
(以上示例使用 “\<space>” 形成 Linux 空格字符。)
使用 Simple AD 时,如果在 Linux 实例上创建用户账户时使用了 “强制用户在首次登录时更改密码” 选项,则该用户无法使用首次更改其密码。kpasswd. 要首次更改密码,域管理员必须使用 Active Directory 管理工具更新用户密码。
通过 Linux 实例管理账户
要通过 Linux 实例管理 Simple AD 中的账户,您必须更新您的 Linux 实例上的特定配置文件,如下所示:
Setkrb5_use_kdcinfo到False中的/etc/sssd/sssd.conf文件。例如:
[domain/example.com]
krb5_use_kdcinfo = False
需要重启 sssd 服务配置才能生效:
$ sudo systemctl restart sssd.service
或者,您也可以使用:
$ sudo service sssd start
如果您将通过 CentOS Linux 实例管理用户,还必须编辑文件 /etc/smb.conf 以包括:
[global]
workgroup = EXAMPLE.COM
realm = EXAMPLE.COM
netbios name = EXAMPLE
security = ads
限制账户登录访问
因为所有账户都是在 Active Directory 中定义的,因此默认情况下,目录中的所有用户都可以登录该实例。可以在 sssd.conf 中使用 ad_access_filter 来仅允许特定用户登录到实例。例如:
ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
memberOf
-
指示仅当用户是特定组的成员时,才允许他们访问实例。
cn
-
应具有访问权限的组的通用名称。在此示例中,组名称是 admins。
ou
-
这是上面的组所在的组织单位。在此示例中,OU 是 Testou。
dc
-
这是您的域的域组成部分。在此示例中是 example。
dc
-
这是附加域组成部分。在此示例中是 com。
您必须手动将 ad_access_filter 添加到 /etc/sssd/sssd.conf。
在文本编辑器中打开 /etc/sssd/sssd.conf 文件。
sudo vi /etc/sssd/sssd.conf
执行此操作之后,sssd.conf 可能类似于下面这样:
[sssd]
domains = example.com
config_file_version = 2
services = nss, pam
[domain/example.com]
ad_domain = example.com
krb5_realm = EXAMPLE.COM
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
ad_access_filter = (memberOf=cn=admins,ou=Testou,dc=example,dc=com)
为了使配置生效,您需要重启 sssd 服务:
sudo systemctl restart sssd.service
或者,您也可以使用:
sudo service sssd restart
Connect 到实例
当用户使用 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
SUSE Linux
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%