社内インフラのAzure移行

この記事は ウィルゲート Advent Calendar 2022 12 日目の記事です。

こんにちは、ウィルゲートで開発インフラと情報システムを兼務している榊原です。

ウィルゲートでは南青山オフィスへの移転に伴い社内インフラのクラウド移行を行いました。

クラウド移行を行った背景は以下になります。

  • 社内インフラをリモート中心となった業務体系に適応させていきたい

  • オフィス縮小に伴いオンプレ機器をクラウドに移していきたい

今回は移行に伴い利用を開始した便利な機能・設定方法についていくつかご紹介させていただきます。

概要

実施した内容と大まかな構成図は以下になります。

  • オンプレ稼働のActiveDirectoryと各種業務用サーバーをAzure上に移行

  • 社内ネットワークとAzure環境をサイト間VPN接続

  • VPNクライアントアプリをAzureVPNクライアントに切り替え

AzureVPNクライアントの利用

在宅勤務中心の業務体系となり社内へのVPN接続の需要が高まった中で安定した接続とセキュリティを確保するためにAzureVPNクライアントへの切り替えを行いました。

AzureVPNクライアントの導入メリットは以下になります。

  • セキュリティ

認証方式としてAzureAD認証を用いることができるためoffice365を利用していればユーザー情報をそのまま活用することができます。

AzureADにて端末制限(ドメイン参加している端末のみ)やアクセス元IP制限など条件付きアクセスのポリシー設定をすることができます。

  • 導入展開

AzureVPNGatewayを(¥19,250~/月※2022年12月現在)利用していれば導入可能でハード機器・ライセンスなどの初期コストがかからず、クライアント接続も128接続まで無償となっています。

(※Azure上からのダウンロード通信に対するコストは発生します)

クライアント側の設定もアプリケーションのダウンロードと接続ファイルのインポートのみなのでユーザー展開がしやすいです。

参考 learn.microsoft.com

SecureLDAPの利用

オンプレ(Linux)で運用していたLDAPサーバーはAzure Active Directory Domain Serviceで提供されているSecureLDAPにサービス移行を行いました。 下図のように認証処理が動作しています。

SecureLDAP構築はMicrosoftから展開されている下記の資料を参考にすれば構築できます

learn.microsoft.com

learn.microsoft.com

認証設定を行いたいWEBブラウザ(サーバー)側の設定は以下を参考にしてください

①OpenLDAP(ldap.conf)に以下を追記します。

TLS_REQCERT     never

※上記記述はLDAPサーバの証明書を確認しないため、本番運用時には十分気をつけてください。

②SecureLDAPへの疎通確認を行います。

ldapsearch -H "ldaps://ldaps.test.ldaptemp.co.jp" -x -b "dc=test,dc=ldaptemp,dc=co,dc=jp" "sAMAccountName=*" -D {user-id}@test.ldaptemp.co.jp -w {Password}

③WEBサーバーのconfファイルに以下の設定を追記します。

  • apacheの場合(httpd.conf)
AuthLDAPBindDN "{user-id}@test.ldaptemp.co.jp"
AuthLDAPBindPassword "{Password}"
AuthLDAPURL ldaps://ldaps.test.ldaptemp.co.jp/dc=test,dc=ldaptemp,dc=co,dc=jp?sAMAccountName?sub?(objectClass=*)
  • nginxの場合(nginx.conf)
url ldaps://ldaps.test.ldaptemp.co.jp/dc=test,dc=ldaptemp,dc=co,dc=jp?sAMAccountName?sub?(objectClass=*);
binddn "{user-id}@test.ldaptemp.co.jp";
binddn_passwd {Password};

(※ドメイン名test.ldaptemp.co.jpを例として記述)

アクセス制限された環境への接続

業務の中でアクセス元が制限された環境に接続する場合、これまではオフィスの固定IPアドレスを利用していましたが、現在の業務体系だと以下のどちらかの環境で整備する必要がありました。

  • VPN接続中は全通信をVPNGateway抜け、もしくはProxy経由のアクセスにする

  • 必要な場面のみProxy経由でアクセスする

前者は通信量&通信料(VPNGatewayの帯域コストを含め)がネックのため今回は後者で構築しました。

まずはProxyサーバーは一般的なSquidによる構築を行いました。

Linux (CentOS) に Squid を構築する最もシンプルな手順 | TURNING POINT

AzureADを構築しているので追加で認証設定を以下のように行いました。

auth_param basic program /usr/lib64/squid/basic_ldap_auth -R -b "dc=test,dc=ldaptemp,dc=co,dc=jp" -D "{user-id}@test.ldaptemp.co.jp" -w "{Password}" -f "sAMAccountName=%s" 172.16.1.1
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl password proxy_auth REQUIRED
http_access allow password

※172.16.1.1はAzure環境のDNSサーバー

利用者側の設定はGoogleChromeの拡張機能「Proxy SwitchyOmega」を使用しました。

Proxy SwitchyOmega - Chrome ウェブストア

Proxyサーバーの指定と認証設定

Proxyの設定で構築したProxyサーバーのローカルIPアドレスを指定します。

次に鍵マークを選択し認証ユーザー(利用者のドメインユーザー)の登録を行います。

AutoSwitchの利用

AutoSwitchでは指定した宛先のみProxy経由の通信に設定することが可能です。

以下では自身のアクセス元IPを確認するサイトをProxy経由に設定し確認しています。

www.cman.jp

まとめ

クライアントVPNやLDAP認証について旧環境では物理サーバー上で運用していましたが、今回の移行でサーバーレスとなり運用コストが低減されました。

また社内インフラをクラウド環境へ移行したことで今後オフィス移転や事業形態が変化した場合などにも柔軟に対応できる環境となりました。

ウィルゲート Advent Calendar 2022」、翌日は「テレワーク導入以降初、1年半ぶりに輪読会を開催しました」です!