Hallo Leute,
ich schlage gleich auf den Monitor ein:
Mein openVPN-Server weigert sich scheinbar beharrlich, die Variablen "username" und "password" an das unter auth-user-pass-verify genannte Script weiterzugeben.
Die Script-Security habe ich bereits auf 3 gesetzt.
Und ich kann machen, was ich will: Es wird schlicht nichts übergeben. Das habe ich per bash-Script und PHP überprüft.
Meine server.conf:
mode server
tls-server
local <meine IP eben>
user openvpn
group openvpn
port 50000
proto udp
dev tap10
ifconfig 10.0.0.1 255.255.255.0
persist-key
persist-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh4096.pem
[B]auth-user-pass-verify /etc/openvpn/10.0.0.x.auth via-env[/B]
client-cert-not-required
comp-lzo
cipher AES-256-CBC
keepalive 10 120
client-to-client
[B]script-security 3[/B]
up ipv6-10.0.0.x.sh
Alles anzeigen
Mit der 10.0.0.x.auth möchte ich gerne bei PHP bleiben und mySQL-Abfragen nutzen. Ich fragte dort nach $_ENV['username'] und $_ENV['password'] und versuchsweise auch nach $argv:
Die Ausgabe ist:
Es wird scheinbar exakt nichts übergeben.
Auch mit bash-Scripts wurde ich nicht glücklich. So liefert folgendes Script, welches direkt von der Quelle stammt, ebenfalls grundsätzlich einen Exitstatus 1 aus:
#!/bin/sh
ALLOWED_USER="alice"
ALLOWED_PASS="ecila"
if [ '$username' == '$ALLOWED_USER' ] && [ '$password' == '$ALLOWED_PASS' ]
then exit 0
fi
exit 1
Alles anzeigen
Kann mir wer da einen Tipp geben?
Vielen Dank!
Artimis
EDIT:
Hm, anscheinend wird da doch etwas übergeben.
Das neue PHP-Script ist schlicht
Und das liefert:
phpinfo()
Environment
Variable => Value
untrusted_port => 34142
untrusted_ip => <meine Home-IP>
[B]password => mein-passwort
username => mein-benutzername[/B]
script_type => user-pass-verify
remote_port_1 => 50000
local_port_1 => 50000
local_1 => <meine IP>
proto_1 => udp
daemon_pid => 7305
daemon_start_time => 1283182490
daemon_log_redirect => 0
daemon => 0
verb => 3
config => 10.0.0.x.conf
ifconfig_local => 10.0.0.1
ifconfig_netmask => 255.255.255.0
ifconfig_broadcast => 10.0.0.255
script_context => init
tun_mtu => 1500
link_mtu => 1590
dev => tap10
Alles anzeigen
So, und jetzt eine DAU-Frage:
Wie komme ich da ran?
EDIT 2:
Ich check es nicht. Die Variablen sind in der Environment. Die Environment-Variablen lassen sich durch das Array $_ENV aufrufen oder durch getenv().
Also frage ich an:
#!/bin/php
<?php
echo $_ENV[username];
echo $_ENV['username'];
echo $_ENV['username'];
exit(1);
?>
Alles anzeigen
.
Das liefert mir:
PHP Notice: Undefined index: username in /etc/openvpn/10.0.1.x.auth on line 3
PHP Notice: Undefined index: username in /etc/openvpn/10.0.1.x.auth on line 4
PHP Notice: Undefined index: username in /etc/openvpn/10.0.1.x.auth on line 5
Frage ich hingegen so, klappts:
Ich will lieber nicht wissen, wieso das so ist... -.-