AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 667234
Accepted
Sirex
Sirex
Asked: 2015-02-13 12:21:03 +0800 CST2015-02-13 12:21:03 +0800 CST 2015-02-13 12:21:03 +0800 CST

windows有线网络上的linux 802.1x

  • 772

我正在寻找在我们公司网络上使用我的 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'd)所以我知道网络交换机设置正确,并且 MAC 等在网络上被接受;我很确定它只是一个 802.1x 问题

编辑:完全忘了提到它的fedora 21 xfce spin,64bit。

linux
  • 1 1 个回答
  • 18730 Views

1 个回答

  • Voted
  1. Best Answer
    beatcracker
    2015-02-16T17:02:26+08:002015-02-16T17:02:26+08:00

    坏消息,大家!Fedora 21 中似乎有一个未修复的错误:Wired connection with 802.1x PEAP/MSCHAPv2 not working。因此,虽然下面的答案可能适用于其他发行版,但 Fedora 21 用户目前不走运。


    我自己从未尝试过,但这篇文章似乎包含了一个非常详细的演练,用于在 Linux 客户端和 Windows 域之间设置 802.1x。请注意证书请求部分:它应该可以解决您无法导出证书的问题。软件版本很旧(Ubuntu是 8.04,Beyond Trust 的 Power Broker仍然是),但基本的想法对我来说似乎很可靠。

    我已经对上述帖子进行了格式化,以使其更易于阅读。引用使代码框变为灰色,因此我将其删除,对不起:


    免责声明:本指南是从 Linux Ubuntu 8.04 发行版的角度编写的。要使其与其他 Linux 或 Unix 发行版一起使用,可能需要进行一些更改。

    Linux 机器通过 802.1x 进行身份验证所需的两个主要内容是客户端证书和 Windows 域中的帐户。在身份验证过程中,Linux 客户端将其计算机证书提供给交换机,然后交换机将其提供给验证证书的 RADIUS 服务器,并验证证书在 Active Directory 中分配给的计算机帐户。如果证书和计算机帐户有效,则 RADIUS 服务器批准身份验证请求,将其发送回交换机,然后交换机对 Linux 机器所连接的端口进行身份验证。

    需要做的第一件事是将您的 Linux 计算机加入 Windows 域。由于 Linux 本身无法加入 Windows 域,因此我们必须下载必要的软件才能执行此操作。同样制作软件让我们能够做到这一点。要在 Ubuntu 上安装它非常简单,只需按照以下步骤操作:

    1. sudo apt-get 更新
    2. sudo apt-get install 同样打开
    3. sudo domainjoin-cli join enter the FQDN of your domain here enter your admin account here,你可以使用[email protected]. 您还应该能够通过访问来使用 GUI 版本System → Administration → Likewise.
    4. sudo update-rc.d 同样打开默认值
    5. sudo /etc/init.d/likewise-open start

    如果你没有运行 Ubuntu,你可以在这里http://www.likewisesoftware.com/products/likewise_open下载软件。您现在可以注销并使用您的域帐户重新登录。我相信任何一种格式[email protected]和域\用户都可以工作。我稍后会对此进行测试。

    位于 Linux 机器上的三个文件必须正确配置才能进行此身份验证。这三个文件是:

    1. /etc/wpa_supplicant.conf
    2. /etc/网络/接口
    3. /etc/openssl/openssl.cnf

    首先,我们将配置软件以允许我们的 Linux 机器使用客户端证书对启用 802.1x 的网络进行身份验证;wpa_supplicant将用于此。

    按照以下步骤配置您的 wpa_supplicant.conf 文件:

    1. 须藤 gedit /etc/wpa_supplicant.conf

    2. 将以下内容粘贴到文件中并保存:

      # 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" 
      }
      

    现在我们必须编辑您的接口文件。按照以下步骤配置您的接口文件:

    1. sudo gedit /etc/network/interfaces

    2. 将以下内容粘贴到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
      

    下一步是生成并安装您的证书。我们必须生成自签名证书,然后根据我们创建的自签名证书生成证书请求,然后安装证书。

    注意:创建证书时,无论何时询问您的姓名,您都必须提供将进行身份验证的计算机的名称。为了安全起见,我建议使名称与分配给计算机的方式相匹配,包括区分大小写。如果您不确定它是如何分配给您的计算机的,请打开终端并输入主机名。

    按着这些次序:

    1. sudo 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

    2. 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 机器上执行它更容易。

    请按照以下步骤完成证书请求:

    1. 转到 Linux 机器上的主目录并找到您的证书请求文件
    2. 通过电子邮件将文件发送给您自己或使用文本编辑器(例如 gedit)打开文件,然后将请求复制并粘贴到电子邮件中,然后发送给您自己。
    3. 在 Windows 客户端上,使用 IE 打开一个网页到您的 CA 的网站(例如http://caname/certsrv)。
    4. 选择申请证书
    5. 高级证书申请
    6. 现在打开您的电子邮件并获取您自己通过电子邮件发送的证书请求。
    7. 如果您通过电子邮件向自己发送了该文件,请使用记事本打开它,然后将内容复制并粘贴到 Base-64 编码的证书请求框中。如果您通过电子邮件向自己发送了证书请求文件的内容而不是文件本身,那么只需将请求从那里复制并粘贴到 Base-64 编码的证书请求框中。
    8. 单击提交并下载 Base-64 格式的证书,而不是 DER。
    9. 将证书保存到您的桌面并将其命名为your Linux machine name.pem。系统会自动将 附加.cer到它的末尾,因此只需将其删除即可。Linux 使用 .pem 进行证书扩展。
    10. 获取此文件并将其通过电子邮件发送给您自己。
    11. 现在,在您的 Linux 机器上,获取您的证书并将其保存在某个地方(最好是您的主文件夹,以使事情井井有条)。
    12. 现在,我们需要将您刚刚收到的证书复制到您的文件夹中,并且我们需要复制您之前在您的文件夹/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 机器。

    为此,请按照下列步骤操作:

    1. 须藤 gedit /etc/ssl/openssl.cnf
    2. 向下滚动大约一半,您应该会看到一个名为[usr_cert]. 在本节中,我们需要将 wherensCertType定义为“对于普通客户使用,这是典型的”,它应该有nsCertType = client, email并且会被注释掉。取消注释此行并删除电子邮件,使其显示nsCertType = client。现在保存文件。

    现在您应该已经正确配置了所有需要的东西,以使 Linux 机器在 Windows 域环境中运行并使用 802.1x 进行身份验证。

    现在剩下的就是重新启动您的网络服务,以便 Linux 将使用wpa_supplicant.conf现在绑定到您的eth0接口的文件并进行身份验证。所以就跑吧sudo service networking restart。如果您在界面恢复后没有获得 IP 地址,您可以通过键入 手动从 DHCP 服务器请求 IP sudo dhclient。


    • 10

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve