2013年9月18日水曜日

OpenVPNにユーザー/パスワードでログイン(LDAP認証)

スズキです。

下記のようにOpenVPNサーバの準備が行われていることが前提です。
VPC上にOpenVPN(CentOS6)をインストール
LDAP認証を行うためには、下記のパッケージをインストールします。
# yum -y install openvpn-auth-ldap
...
今回のOpenVPNの設定ファイルは次の通りです。
# cat /etc/openvpn/server.conf
local     10.0.0.4
port      1194
proto     tcp
dev       tun
dh        dh1024.pem
ca        ca.crt
cert      server.crt
key       server.key
keepalive 10 120
server    192.168.0.0 255.255.255.0
plugin    /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf"
push      "route 10.0.0.0 255.255.0.0"
verb      3
client-cert-not-required
username-as-common-name
  • "plugin"で"openvpn-auth-ldap"のプラグインを指定しています。
  • "client-cert-not-required"でクライアント証明書無しにユーザー/パスワードの認証のみで接続できるようにしています。
  • "username-as-common-name"は認証時のユーザー名を証明書のコモンネームにする設定です。(あまりよくわかってない...)

LDAP(OpenLDAP)は下記のようにユーザーデータが登録されていることを前提とします。
"phpLDAPadmin"でユーザーを作ったユーザーでCentOSにログイン
"openvpn-auth-ldap"の設定ファイルは下記のようにしています。
# cat /etc/openvpn/auth/ldap.conf
<LDAP>
    URL             ldap://10.0.0.5
    BindDN          cn=Manager,dc=suz-lab,dc=com
    Password        secret
    Timeout         15
    TLSEnable       no
    FollowReferrals yes
</LDAP>

<Authorization>
    BaseDN          "ou=user,dc=suz-lab,dc=com"
    SearchFilter    "(&(uid=%u))"
    RequireGroup    false
</Authorization>
この状態でOpenVPNサーバを起動しておきます。

ここまで準備ができたら下記のようにMacから接続してみます。
Mac(10.8)からCentOS(6.3)にOpenVPNでVPN接続
必要なファイルは下記となります。
$ ls -1
ca.crt
config.ovpn
設定ファイルは下記の通りです。
$ cat config.ovpn
client
auth-user-pass
dev    tun
proto  tcp
ca     ca.crt
remote xxx.xxx.xxx.xxx 1194
※"auth-user-pass"でユーザー/パスワードの認証するようになります。

実際にTunnelblickで接続しようとすると、下記のようにユーザー/パスワードの入力が
求められます。


OpenLDAPに登録されているデータを入力することで無事、接続することが確認できる
はずです。

OpenLDAP、OpenVPN、phpLDAPadmin、PAM、...どっかで全部つなげてみるか...
--------
http://www.suz-lab.com

0 コメント: