/* */

証明書によるLAN認証は育成基盤

いきなりワケの分からないタイトルで恐縮ですが、田中(゜p゜)はこの領域に手を伸ばしたことで、ネットワークエンジニアから大きく枠外に飛び出して行ったという経緯あり、個人的にもインパクトのあった仕組みだったので、記事化してみました。

証明書によるLAN認証とは?

簡単に言うと、「LAN」に接続させる際にコンピュータとかユーザ固有のデバイス証明書を確認する仕組みで、設定項目としてEAP-TLSとかそんな名前で出てきます。たぶんネットワーク視点だとこっちのページ(外部サイト)のほうが詳しい。

Radiusサーバなんかが必要となるので、個人だったり、小規模の企業だと導入していないところもあると思いますが、LANのセキュリティとしては最強だと田中(゜p゜)は考えとります。

また、Radiusサーバー側で、認証されたユーザ、されてないユーザのVLANの指定ができるので、検疫システムにも使われてたりする。

つまり、認証されてないユーザは、検疫LANに振り分けて、検疫LANの中にある検液用のアプライアンスがPCをチェックした上で、本番LANに接続させる仕組み。

あとポイントは、この技術は無線LANで発達したものだけど、有線LANでも使えるということ。有線LAN側でキッチリ認証しておけば、MACアドレスで同セグメント内の端末をはじいたりするような、費用対効果の低い仕組みを入れる必要がない。

デメリット

証明書というのは往々にして運用が面倒です。
そもそも証明機関サーバーが必要だし、その証明機関から発行した証明書を、PC一台一台に入れてかないとだし、その後の運用もしんどい。

往々にして「セキュリティ」と「コスト」と「利便性」は共存できないものなのです。

解決策

実はこの証明書運用問題をスッキリ解決する方法があります。
田中(゜p゜)はネットワークエンジニアだったのですが、なんとかしてこの証明書の配布による運用コストを低減すべく試行錯誤した結果、運用工数を大きく削減できる仕組みにたどり着きました。

というか、我々は既にPCの管理を簡易化でき、設定やセキュリティポリシーを配布できる素晴らしい仕組みを持っていたのです。

ActiveDirectory
※できればドラえもんの道具調で言いたい。ひみつ道具なので。

WindowsによるEAP-TLS基盤構築

証明書によるLAN認証にとっての課題は、証明書の運用負荷ですが、実はWindowsセットでそれを全て揃えてしまうことにより、ほぼ自動化できます。

使うコンポーネントは以下です。

  • Active Directory
  • ドメイン参加してるWindows CA(証明書発行機関)
  • ドメイン参加してるWindows NPS(Radiusサーバ)

仕組みとしては概ね以下です。※なんかカラフルになってしまって恥ずかしい…。

  • ①ADのポリシーで、PCとRadiusサーバに対して証明書取得指示を出す
  • ②PC・Radiusサーバが証明書を取得する。
  • ③PCとRadiusサーバーは、発行された証明書を付きあわせて認証する。

あと、PCにEAP-TLS設定を入れていく必要ありますが、これも①の段階でポリシーで配布してしまえば良いです。

そう、ADならね。

とか言いたくなっちゃう。
田中(゜p゜)は、この仕組みを使って、無線LAN系の提案のコンペで無敗を誇りました。競合他社がNetAttestを出してきた時はニヤニヤしてましたね。ま、10年以上前のことですけど。

それと、この仕組みは有線LANでも使えるので、LANセグメントに無駄なセキュリティ機器とか入れる必要なくなります。

他、細かい話でコンピュータ証明書とユーザ証明書の違いで接続タイミングが変わったりするとか、プリンタとか802.1xに対応してない機器どーすんだ、みたいな話あるのですが、まあそれは割愛。

細かい話聞きたい方は、フォーラムでトピック立てて質問して下さい。

ユーザから見るとどうなるか

ドメインに入ってない端末は、仮のVLANに割り当てられて、ADととしか通信できず、そこでドメインに入り、証明機関から証明書を取得します。このあたりは、情報システム部門で端末をセットアップする際にドメインに入ってユーザに渡す等、運用を変えてもいいと思います。


一度ドメインに入った端末は、本番VLANの有線LANに接続できるようになります。
ユーザから見ると、証明書は一切関わってこないように見えます。

これでほぼシームレスに証明書を配布することができました。

育成基盤としての802.1x

余談ですが、この仕組みは、自分で検証基盤を作ってみることをオススメします。先に書いたように田中(゜p゜)は、この仕組みを学ぶことで、他領域に対しての学習が深まりました。

なぜって、AD、Windowsサーバ、PCの知識がいっぺんに必要で、ユーザが利用に至るまでの流れが理解できるから。ADによるドメイン構築や、ポリシー配布の基礎が学べるし。サーバーエンジニアはネットワークの基本知識が学べるし。

個人でやるとしたら、スイッチはヤフオク、メルカリ等で、802.1x対応のものを購入するとして、サーバーはOSの調達が難しいので、クラウドで立てるのがいい気がします。

ちょっと以下の赤字ような工夫必要かもだけど。
自力のある人は、ルータをVPN対応に置き換えて、クラウドとVPN貼ってもいいかもしれない。

すいません。これやった時に利用したサイト紹介したかったんですが、今なくなってるんで、このあたりをオススメしておきます。

まとめ

  • 802.1xは、証明書を使って端末をLAN認証する
  • 証明書の運用は運用負荷が高いが、ADによって軽減できる
  • 自分で検証環境をつくると、技術領域の幅が広がる。

って、さんざんクラウド関係でLANなんて無い方がいい的なこと言っといて、思い切りLAN技術の話してますね。ま、いきなりなくなってしまうことはないので、ご参考に、ということで。