単体のNICでのネットワーク設定はうまくいくが...
導入したサーバのネットワークを複数のNICポートを使ってBongingにして802.1Xの認証でネットワークに参加してほしい案件がありました。
自分の力だけでは単体のNICによるネットワーク参加しかできませんでしたが、周りの人の協力もありBongingの場合でも802.1X認証で参加することができました。
ネット上で調べても「Bonding設定」での802.1X認証の方法が出てきませんでしたので、この場で記事にして公開しようと思います。(協力してくださった方々ありがとうございます!)
環境・用意するもの
サーバとネットワークスイッチの機器情報はお答えできませんが、サーバはラッキング形式の富士通やHP,IBMのようなサーバで、ネットワークスイッチはNETGEARやCiscoのような製品を使ってやっていると考えていただければと思います。
※あらかじめ、CentOS7内でネットワークのbonding設定を作っておく前提で話を進めます。
OS:CentOS7.8
BondingにするNICポート:Intel製10GNICにあるポート2つで有線による接続
証明書ファイル:ZZZZZZ.pem(またはcrt形式でも良い)
秘密鍵ファイル:ZZZZZZ.p12
① crt形式からpem形式に証明書ファイルを変換
当初はcrtファイル形式の証明書をユーザからいただいていたのですが、原因はわかりませんがcrt形式だとこの後の作業で802.1X認証が失敗してしまいました。
なので、crtからpem形式に以下のコマンドで変換します。
※証明書ファイルがpem形式のままでしたらこの作業は不要です。
openssl x509 -in ZZZZZZ.crt -out ZZZZZZ.pem
② 証明書ファイルと秘密鍵ファイルの保存場所ディレクトリを移行する
/etc/pki/CA/certs/
にZZZZZZ.pemとZZZZZZ.p12を保存します。
③ ifcfgファイルの編集
bondingの設定ファイルは/etc/sysconfig/network-scripts/ifcfg-bond0
にて以下のように設定を行いました。
BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer2+3"
DEVICE=bond0
TYPE=Bond
BOOTPROTO=none
BONDING_MASTER=yes
NAME=bond0
ONBOOT=yes
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
MTU=9000
DNS1=aaa.bbb.ccc.ddd
DNS2=aaa.bbb.ccc.ddd
GATEWAY=aaa.bbb.ccc.ddd
IPADDR=aaa.bbb.ccc.ddd
NETMASK=aaa.bbb.ccc.ddd
PREFIX=yy
# 802.1X認証設定
KEY_MGMT=IEEE8021X
IEEE_8021X_EAP_METHODS=TLS
IEEE_8021X_IDENTITY=XXXXXXXXX
IEEE_8021X_CA_CERT=/etc/pki/CA/certs/ZZZZZZ.pem # ②でpem形式ファイルを保存した先のパスを指定
IEEE_8021X_PRIVATE_KEY=/etc/pki/CA/certs/ZZZZZZ.p12 # ②でp12形式ファイルを保存した先のパスを指定
DOMAIN=zzzz.zzzz.zzzz
④ /etc/sysconfig/wpa_supplicantと/etc/wpa_supplicant/wpa_supplicant.confの編集
/etc/wpa_supplicant/wpa_supplicant.conf
の内容を以下のように編集します。
INTERFACES="-iZZZZZZ"
DRIVERS="-Dwired"
OTHER_ARGS="-u -f /var/log/wpa_supplicant.log -P /var/run/wpa_supplicant.pid -t"
/etc/sysconfig/wpa_supplicant
の内容を以下のように編集します。
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
network={
key_mgmt=IEEE8021X
eap=tls
identity="ZZZZZZ"
ca_cert="/etc/pki/CA/certs/ZZZZZZ.pem"
private_key="/etc/pki/CA/certs/ZZZZZZ.p12"
private_key_passwd="ZZZZZZ"
}
⑤ NetworkManagerをサーバ起動時に立ち上げを無効化
NetworkManagerがあらかじめ起動していると802.1X認証ができませんので、サービスを無効化します。
chkconfig NetworkManager off
⑥ wpa_supplicantを有効化・起動
802.1X認証のためにはwpa_supplicantが起動していないとダメなのでサービスの有効化と起動をします。
chkconfig wpa_supplicant on
systemctl start wpa_supplicant
⑦ wpa_supplicantを起動してConnection成功するか確認する
以下のコマンドでbond0: CTRL-EVENT-CONNECTED - Connection to <MACアドレス> completed
と出れば802.1Xの認証が成功できています。
wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -D wired -i bond0
⑧ ネットワークスイッチ側でSupplicantの認証が成功できているか確認
※ネットワークスイッチのメーカーや機器によってログの出方やコマンドも変わるため省略します。