web-dev-qa-db-ja.com

802.1x資格情報を安全に格納するためにUbuntuでNetplanをどのように構成しますか?

802.1xエンタープライズネットワークでは、NetworkManagerを使用して、パスワードを含む802.1xパラメーターを構成できます。これはすべて機能しますが、パスワードをクリアテキストで保存する必要があります。

資格情報を(ハッシュされたパスワードとして)より安全に格納するためにNetplanを使用しようとしていますが、802.1x接続を認証できません。

802.1x資格情報を含むNetplan構成を構築するための適切なガイドを見つけることができませんでした。

(更新:ネットパスワードにハッシュされたパスワードに関するバグがあります https://github.com/CanonicalLtd/netplan/pull/78 )これが主な問題のようです)


これは動作しないファイルです

network: 
  version: 2
  renderer: networkd
  ethernets: 
    enp0s31f6:
      auth:
        key-management: 802.1x
        password: hash:some-stuff-here
        method: peap
        identity: ghewett
      dhcp4: false
      addresses:
        - 1.2.3.4
      gateway4: 5.6.7.8
      nameservers:
        search: [Cisco.com, otherdomain]
        addresses:
          - 1.1.1.1
          - 2.2.2.2

(IPと認証情報が変更されました)

これは私たちに与えます

DEBUG:command generate: running ['/lib/netplan/generate']
** (generate:19354): DEBUG: 09:23:41.614: Processing input file /etc/netplan/01-netcfg.yaml..
** (generate:19354): DEBUG: 09:23:41.614: starting new processing pass
Error in network definition /etc/netplan/01-netcfg.yaml line 7 column 6: unknown key auth
5
Phillip Remaker

https://netplan.io/examples を参照してください。一般に https://netplan.io サイトには良い情報があります。 Sudo netplan --debug generate .yamlファイルを確認し、構成ファイルを生成してから、Sudo netplan applyをアクティブにします。


Authentication

Netplan supports advanced authentication settings for ethernet and wifi interfaces, as well as individual wifi networks, by means of the auth block.

auth (mapping)

    Specifies authentication settings for a device of type ethernets:, or an access-points: entry on a wifis: device.

    The auth block supports the following properties:

    key-management (scalar)
        The supported key management modes are none (no key management); psk (WPA with pre-shared key, common for home wifi); eap (WPA with EAP, common for enterprise wifi); and 802.1x (used primarily for wired Ethernet connections).
    password (scalar)
        The password string for EAP, or the pre-shared key for WPA-PSK.

    The following properties can be used if key-management is eap or 802.1x:

    method (scalar)
        The EAP method to use. The supported EAP methods are tls (TLS), peap (Protected EAP), and ttls (Tunneled TLS).
    identity (scalar)
        The identity to use for EAP.
    anonymous-identity (scalar)
        The identity to pass over the unencrypted channel if the chosen EAP method supports passing a different tunnelled identity.
    ca-certificate (scalar)
        Path to a file with one or more trusted certificate authority (CA) certificates.
    client-certificate (scalar)
        Path to a file containing the certificate to be used by the client during authentication.
    client-key (scalar)
        Path to a file containing the private key corresponding to client-certificate.
    client-key-password (scalar)
        Password to use to decrypt the private key specified in client-key if it is encrypted.

ソース: https://netplan.io/reference#authentication

更新#1:

注:.yamlファイルにTABSがないことを確認してください...

証明書を追加し、IPを復元して、これを試してください...

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      auth:
        key-management: 802.1x
        method: peap
        identity: "[email protected]"
        ca-certificate: my_ca.pem
        client-certificate: my_cert.pem
        client-key: my_key.pem
      addresses:
        - 1.2.3.4
      gateway4: 5.6.7.8
      nameservers:
        search: [Cisco.com, otherdomain]
        addresses:
          - 1.1.1.1
          - 2.2.2.2
2
heynnema

Ubuntu 18.04.02に同梱されているデフォルトのネットプランは有線認証をサポートしていないため、機能する可能性はありません。 2019年3月上旬のgithubの最新バージョンは認証をサポートしていますが、必要な他のものが不足しています。 WPAサプリカントが動作するために有線ドライバーを使用するにはCLIフラグが必要です。これをネットプランに追加するためにPRを作成しました。ネットプランはハッシュされたパスワードを破壊する方法でハッシュされたパスワードも処理するため、それを修正する別のPRです。

これら、PRを試してみたい場合は、次の手順に従ってください。

  1. Ubuntu 18.04.02のサーバーインストールがある

  2. サプリカントをインストール

    • Sudo apt install wpasupplicant "
  3. 必要なビルドツールをインストールする

    • Sudo apt install make cpp pkg-config libyaml-dev uuid-dev libgio2.0-cil-dev libglib2.0-dev pandoc
  4. パッチが適用されたネットプランソフトウェアを入手する

  5. ビルドしてインストールする

    • make
    • Sudo make install
  6. パスワードのハッシュバージョンを生成する

    • echo -n 'MyPassword' | iconv -t UTF-16LE | openssl md4 -binary | xxd -p
    • 履歴-c
  7. Netplan構成ファイルを編集します

    • cd/etc/netplan
    • Sudo mv 50-cloud-init.yaml config.yaml
    • Sudo emacs /etc/netplan/config.yaml
  8. 次のように表示されます。

network:
    version: 2
    ethernets:
        enp0s31f6:
            dhcp4: true
            optional: true
            auth:
                key-management: 802.1x
                wired: true
                method: ttls
                identity: [email protected]
                password: hash:83...11

  1. それを適用する

    • Sudoネットプランが適用されます
  2. この時点でリブートすると動作するはずですが、デバッグに役立つチェック事項がいくつかあります

  3. WPAサプリカント設定ファイルを確認してください

    • Sudo cat /run/netplan/wpa-enp0s31f6.conf

そしてそれは次のようになります

 ctrl_interface=/run/wpa_supplicant
 network={
   key_mgmt=IEEE8021X
   eap=TTLS
  identity="[email protected]"
  password=hash:83..11
}

ハッシュされたパスワードを使用する場合は、パスワードを引用符で囲まないようにしてください。

  1. Systemdテンプレートを確認する

    • ls /run/systemd/system/systemd-networkd.service.wants/netplan*enp0s31f6.service

それは次のようなものを返すはずです

/run/systemd/system/systemd-networkd.service.wants/[email protected]

重要なことは、それがwpaで配線されていることを確認することです

  1. 認証がパスワードとすべてで動作することをテストする

    • 実行中のバージョンのwpa_supplicantを強制終了します。

    • Sudo wpa_supplicant -c /run/netplan/wpa-enp0s31f6.conf -i enp0s31f6 -D有線

802.1xメッセージに関する情報のフローが表示され、最後の方に「認証に成功しました」と表示されます。

Ctrl ^ Cでこれを強制終了する必要があります。

  1. 再起動してお楽しみください...