やるきなし

2018/07/17 22:33 / OpenVPN 2.4.4-2~bpo9+1

Debian GNU/Linux の OpenVPN (server) を 2.4.0-6+deb9u2 から 2.4.4-2~bpo9+1 に version up したらユーザー認証ができなくなった./etc/default/openvpn は以下のとおり(抜粋).

AUTOSTART="vpn_server"

/etc/openvpn/vpn_server.conv で以前は以下で password 認証(というかLDAP)ができていた.

plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn
client-cert-not-required

まずclient-cert-not-requiredについては以下のように怒られるので,verify-client-cert optionalぐらいに変更.See https://community.openvpn.net/openvpn/wiki/DeprecatedOptions#a--client-cert-not-required . client-cert-not-required は OpenVPN 2.5 で削除される様子.

DEPRECATED OPTION: --client-cert-not-required, use --verify-client-cert instead

/usr/lib/openvpn/openvpn-plugin-auth-pam.so はまず path が /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so に変更になっている.パスの変更については,full path を書かなければ良いらしく以下で対応.

plugin openvpn-plugin-auth-pam.so openvpn

ただし,これだと,以下のようなエラーで認証できない(client の IP Address が 127.0.0.1 なのは SSH でポートフォワードしているから).

myserver openvpn[XXXXX]: AUTH-PAM: BACKGROUND: user 'myn' failed to authenticate: System error
myserver ovpn-vpn_server[XXXXX]: 127.0.0.1:XXXXX PLUGIN_CALL: POST /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so/PLUGIN_AUTH_USER_PASS_VERIFY status=1
myserver ovpn-vpn_server[XXXXX]: 127.0.0.1:XXXXX PLUGIN_CALL: plugin function PLUGIN_AUTH_USER_PASS_VERIFY failed with status 1: /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so

調べてみたところ,/lib/systemd/system/openvpn@.serviceCapabilityBoundingSetCAP_AUDIT_WRITE を追加する必要があるらしい.

参考: