Duo Authentication Proxyを検証してみた(Linux編)
こんにちは。ネットワークソリューション特集 編集部です。
前回はDuo Authentication Proxy(Windows)を使ったオンプレミス機器との認証連携を検証しました。
今回は Duo Authentication Proxy(Linux) を検証しました。
検証環境の構成図
本検証の構成図です。Meraki MXのリモートVPNをRADIUS認証(ユーザDBはActive Directory)する形になります。
前回のWindowsサーバとは別にUbuntu 20.04のサーバを立てました。

ローカルIPアドレスは下記にしています。
- Merai MX64
192.168.128.1/24 - Active Directory(Windows)
192.168.128.10/24 - Duo Authentication Proxy(Linux(Ubuntu 20.04))
192.168.128.11/24
Duo Authentication Proxy(Linux)構築
詳細な手順についてはメーカマニュアルを参照ください。
Duo Admin Panel設定
前回と同じ手順です。
1.Admin Panelで保護対象のオンプレミス機器の保護を設定します。
https://admin.duosecurity.com/
2.今回はMeraki VPNでのLDAP認証(Active Directory)をします。

3.「Protect an Application」を選択します。

4.「meraki」で検索して、「Meraki RADIUS VPN」を選択します。

5.3つのパラメータをコピーしておきます。

Duo Authentication Proxy(Linux) インストール
メーカドキュメントのURLより、ソースファイルをダウンロードしてビルド後にインストールします。
https://dl.duosecurity.com/duoauthproxy-latest-src.tgz
tar xzf duoauthproxy-latest-src.tgz
cd duoauthproxy-version-src
make
cd duoauthproxy-build
./install
Duo Authentication Proxy(Linux) 設定
環境に合わせて設定ファイル(/opt/duoauthproxy/conf/authproxy.cfg)に入力します。
[ad_client]
- host=192.168.128.10
Active Diretory サーバのIPアドレスを入力します。前回のADサーバにIPアドレスを指定します。 - service_account_username=Administrator
- service_account_password=password
ADサーバのユーザ名とパスワードを入力します。 - search_dn=CN=Users,DC=lab,DC=local
DirectoryサーバのサーチDNを入力します。今回はUsersディレクトの直下にしました。
[radius_server_auto]
- ikey=<Duo Admin Panelでの取得パラメータ>
- skey=<Duo Admin Panelでの取得パラメータ>
- api_host=<Duo Admin Panelでの取得パラメータ>
Duo Admin Panelでの取得パラメータを入力します。 - radius_ip_1=192.168.128.1
RADIUSクライアントのIPアドレスを入力します。今回はMerakiMXのIPアドレスになります。 - radius_secret_1=password
RADIUSのシークレットキーを入力します。 - client=ad_client
AD認証を指定します。 - port=1812
RADIUSポートを入力します。 - failmode=safe
Duoサービスに接続できない場合でもAD認証に成功すれば通過するよう入力します。
[ad_client]
host=192.168.128.10
service_account_username=Administrator
service_account_password=password
search_dn=CN=Users,DC=lab,DC=local
[radius_server_auto]
ikey=<Duo Admin Panelでの取得パラメータ>
skey=<Duo Admin Panelでの取得パラメータ>
api_host=<Duo Admin Panelでの取得パラメータ>
radius_ip_1=192.168.128.1
radius_secret_1=password
client=ad_client
port=1812
failmode=safe
設定変更後は、サービス開始か
/opt/duoauthproxy/bin/authproxyctl start
または、サービス再起動をします。
/opt/duoauthproxy/bin/authproxyctl restart
Meraki MXのVPN設定
Meraki MXのクライアントVPN設定例です。
前回と環境は同じなので、RADIUSサーバのIPアドレスが異なるのみです。

Windows10 リモートVPN設定
Windows10 PCにL2TP/IPSecの設定をします。





接続テスト
接続テストをします。


ユーザ名、パスワードが問題なければスマートフォンにDuoからプッシュ通知されます。
今回はDuo Authentication Proxy(Linux編)を検証してみました。
本構成ではRADIUSを利用していますが、LDAPを利用することも出来ます。
Duo Securityでは既存環境にも簡単にMFAやゼロトラストセキュリティを導入できます。