Sir*_*rex 11 linux windows active-directory 802.1
我想在我们公司的网络上使用我的 linux 工作站,但我遇到了一些问题,特别是 802.1xi。
我是我的机器上的 root 用户和 Windows 域管理员,所以我应该能够访问我需要的任何东西才能工作。目前我的 linux 机器连接受限,这让我相信它已被放入非 802.1x 客户端的默认 vlan。
我想我的总体问题是:如何让我的 linux 机器在有线 Windows 网络上使用 802.1x?网络是典型的 Windows 域,使用机器帐户和用户帐户。
这是我所知道的并且到目前为止已经尝试过:
我相信我将需要为机器获取有效的客户端机器证书、域的 CA 证书以及客户端的私钥
想法 1,从 Windows 机器/域 ca 机器上获取一个有效密钥我在 linux 机器上运行了一个 Windows VM,并将其加入域,认为这会产生一个我可以为 linux 机器获取的有效客户端证书。- 为此,我然后从 windows ca 服务器导出客户端证书和 ca 证书,然后将它们转换为 PEM 格式,为 linux 上的网络管理器做好准备(假设需要 PEM 而不是 DER)。- 然后我尝试使用 certmgr 在 Windows VM 本身上导出私钥,但它被标记为不可导出:-(
想法 2 是 powerbroker... - 我使用 powerbroker open(正式同样)将 linux 机器加入域,getent passwd 现在显示所有域用户。- 我的想法是这会将客户端证书和私钥放在系统上的某个地方(/etc/ssl/certs ?),但我什么也找不到
想法 3,问一个知道他们实际在做什么的人。
我应该指出,最初这台 linux 机器上有 Windows(我在 linux 安装时对其进行了 p2v),所以我知道网络交换机设置正确,并且网络上接受了 MAC 等;我很确定它只是一个 802.1x 问题
编辑:完全忘了提及它的 Fedora 21 xfce spin, 64bit。
bea*_*ker 10
坏消息,大家!Fedora 21 中似乎有一个未修复的错误:Wired connection with 802.1x PEAP/MSCHAPv2 not working。因此,虽然下面的答案可能适用于其他发行版,但 Fedora 21 用户目前运气不佳。
我自己从未尝试过,但这篇文章似乎包含了在 Linux 客户端和 Windows 域之间设置 802.1x 的非常详细的演练。请注意证书请求部分:它应该可以解决您的证书不可导出的问题。该软件版本是很老的(Ubuntu的是8.04和超越信托的掮客仍然是同样),但基本的想法似乎固体给我。
我已经格式化了上述帖子,以便于阅读。引用使代码框在灰色上变灰,所以我放弃了,抱歉:
免责声明:本指南是从 Linux Ubuntu 8.04 发行版的角度编写的。要使其与其他 Linux 或 Unix 发行版一起使用,可能需要进行一些更改。
Linux 机器通过 802.1x 进行身份验证所需的两个主要内容是客户端证书和 Windows 域中的帐户。在身份验证过程中,Linux 客户端将其计算机证书提交给交换机,交换机再将其提交给验证证书的 RADIUS 服务器,并验证该证书在 Active Directory 中分配给的计算机帐户。如果证书和计算机帐户有效,则 RADIUS 服务器批准身份验证请求,将其发送回交换机,交换机进而验证 Linux 机器连接到的端口。
需要做的第一件事是将您的 Linux 计算机加入 Windows 域。由于 Linux 本身无法加入 Windows 域,因此我们必须下载必要的软件才能这样做。同样制作软件以允许我们做到这一点。要在 Ubuntu 上安装它非常简单,只需按照以下步骤操作:
enter the FQDN of your domain here enter your admin account here,您可以使用格式user@domain.com. 您还应该能够通过转到使用 GUI 版本System ? Administration ? Likewise.如果您没有运行 Ubuntu,您可以在http://www.likewisesoftware.com/products/likewise_open下载该软件。您现在可以注销并使用您的域帐户重新登录。我相信user@domain.com和 domain\user 的任何一种格式都可以工作。稍后我将对此进行测试。
必须正确配置 Linux 机器上的三个文件才能进行此身份验证。这三个文件是:
首先,我们将配置软件以允许我们的 Linux 机器使用客户端证书对启用 802.1x 的网络进行身份验证;wpa_supplicant将用于此。
按照以下步骤配置您的 wpa_supplicant.conf 文件:
须藤 gedit /etc/wpa_supplicant.conf
将以下内容粘贴到文件中并保存:
# Where is the control interface located? This is the default path:
ctrl_interface=/var/run/wpa_supplicant
# Who can use the WPA frontend? Replace "0" with a group name if you
# want other users besides root to control it.
# There should be no need to chance this value for a basic configuration:
ctrl_interface_group=0
# IEEE 802.1X works with EAPOL version 2, but the version is defaults
# to 1 because of compatibility problems with a number of wireless
# access points. So we explicitly set it to version 2:
eapol_version=1
# When configuring WPA-Supplicant for use on a wired network, we don't need to
# scan for wireless access points. See the wpa-supplicant documentation if you
# are authenticating through 802.1x on a wireless network:
ap_scan=0
network={
ssid="<enter any name here, it doesn't matter>"
key_mgmt=IEEE8021X
eap=TLS
identity="<FQDN>/computers/<Linux computer name>"
client_cert="/etc/ssl/certs/<your authentication certificate name>.pem"
private_key="/etc/ssl/private/<your private key name>.pem"
}
Run Code Online (Sandbox Code Playgroud)
现在我们必须编辑您的接口文件。请按照以下步骤配置您的接口文件:
须藤 gedit /etc/network/interfaces
将以下内容粘贴到eth0界面下的文件中并保存:
# Configure the system to authenticate with WPA-Supplicant on interface eth0
wpa-iface eth0
# In this case we have a wired network:
wpa-driver wired
# Tell the system we want to use WPA-Supplicant with our configuration file:
wpa-conf /etc/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)
下一步是生成并安装您的证书。我们必须生成自签名证书,然后根据我们创建的自签名证书生成证书请求,然后安装证书。
注意:创建证书时,无论何时要求您提供姓名,您都必须提供将进行身份验证的计算机的名称。为安全起见,我建议使名称与其分配给计算机的方式相匹配,包括区分大小写。如果您不确定它是如何分配给您的计算机的,请打开一个终端并输入主机名。
按着这些次序:
须藤 openssl req -x509 -nodes -days enter in days how long you want the cert valid for-newkey rsa:1024 -keyout enter a name for your private key/certificate here.pem -out enter a name for your private key/certificate here.pem
示例:sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout privcert.pem -out privcert.pem
openssl req -new -newkey rsa:1024 -nodes -keyout enter a name for your private key here.pem - out enter a name for your certificate request here.pem
示例:sudo openssl req -new -newkey rsa:1024 -nodes -keyout privkey.pem -out certreq.pem
创建的所有证书都放在您的主目录 ( /home/<username>) 中。下一部分是使用在上一步中创建的证书请求从您的 CA 请求证书。这需要在 Windows 机器上完成,因为出于某种原因,Linux 和 Windows 在请求和下载证书时不能很好地相处;我只是发现将证书请求通过电子邮件发送给自己并在 Windows 机器上执行它更容易。
请按照以下步骤完成证书申请:
http://caname/certsrv)。your Linux machine name.pem。系统会自动将 附加.cer到它的末尾,因此只需将其删除即可。Linux 使用 .pem 进行证书扩展。/etc/ssl/certs文件夹中,我们需要复制您之前在/etc/ssl/private文件夹中创建的私钥/证书和私钥 。现在,只有 root 有权执行此操作,因此您可以通过命令行键入sudo cp /home/<username>/<certificate>.pem /etc/ssl/private或来执行此操作/etc/ssl/certs。这也可以通过使用命令 gksudo 复制和粘贴并输入 nautilus 从 GUI 完成。Nautilus 是 Ubuntu 使用的 GUI 文件浏览器,它将以 root 身份运行它,允许您复制和粘贴到只有 root 有权访问的目录。现在我们的证书已经到位,我们需要告诉 openssl 我们想要如何使用证书。为此,我们必须编辑 openssl.cnf 文件并告诉它以客户端而不是用户身份验证我们的 Linux 机器。
为此,请执行以下步骤:
[usr_cert]. 在本节中,我们需要将nsCertType定义为“对于普通客户端使用这是典型的”,它应该具有nsCertType = client, email并且将被注释掉。取消注释此行并删除电子邮件,使其显示nsCertType = client。现在保存文件。现在,您应该已正确配置了所需的一切,以使 Linux 机器在 Windows 域环境中运行并使用 802.1x 进行身份验证。
现在剩下的就是重新启动您的网络服务,以便 Linux 将使用wpa_supplicant.conf现在绑定到您的eth0接口的文件并进行身份验证。所以就跑吧sudo service networking restart。如果在您的接口恢复后没有获得 IP 地址,您可以通过键入手动从您的 DHCP 服务器请求 IP 地址sudo dhclient。