web-dev-qa-db-ja.com

OpenVPNはTUN / TAP開発を動的に割り当てることができません

OpenVPNクライアントは、/ etc/init.d/openvpnによって初めて起動されたときに正常に動作しますが、マスターサーバーが再起動された場合は再接続できません。

これは私がsyslogで得るエラーです:

ovpn-openvpn[8113]: Note: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
ovpn-openvpn[8113]: Note: Attempting fallback to kernel 2.2 TUN/TAP interface
ovpn-openvpn[8113]: Cannot allocate TUN/TAP dev dynamically
ovpn-openvpn[8113]: Exiting

これは、tunデバイスのファイルパーミッションです。

crw-rw-rw- 1 root root 10, 200 2011-03-24 16:51 /dev/net/tun

その後、「/ etc/init.d/openvpnrestart」を使用してクライアントを再起動すると、正常に接続されます。

また、問題は、openvpnがユーザー「nobody」として実行されている場合にのみ発生します。 'root'として実行するとすべてが解決されますが、実行可能な解決策ではありません。

'persist-tun'オプションも少し役立ちますが、あまり役に立ちません。トンネルはまだ一晩続きません。

助言がありますか?

4
Akarot

サーバーデーモンの再起動間でクライアントの<-> IPアドレスマッピングを維持するには、サーバーで--ifconfig-pool-persistオプションを使用する必要があると思います。それ以外の場合、クライアントは、-persist-tunがアクティブな場合でも、ifconfigを呼び出してtunデバイスを再構成する必要があります。ルート特権がない場合、これは必ず失敗します。

1
the-wabbit