
Hier ist mein Setup. Ich habe ein Cisco ASA 5505 (aktuellstes iOS). Dahinter läuft ein (Ubuntu 12.04) Server, auf dem nginx, php-fpm und OwnCloud (alles aktuelle Versionen) laufen. Mein Desktop steht auch hinter dem ASA und kann problemlos auf OwnCloud zugreifen. Wenn ich mein Android-Tablet an unseren WLAN-Zugangspunkt anschließe und dann auf die OwnCloud-Weboberfläche zugreife, funktioniert alles einwandfrei.
Ich habe L2TP/IPSEC VPN auf der ASA eingerichtet. Ich kann mein Ethernet auf meinem Desktop trennen, eine Verbindung zu meinem Telefon herstellen und eine Verbindung zum VPN herstellen. Von dort aus kann ich per SSH auf den Nginx-Server zugreifen, per VNC auf andere Desktop-Rechner zugreifen und auf die OwnCloud-Weboberfläche zugreifen. Alles funktioniert perfekt.
Ich kann das Android-Tablet mit dem VPN verbinden (über Hotspot-Tethering). Von dort aus kann ich per SSH auf den Nginx-Server zugreifen und per VNC auf Desktop-Rechner. Das Problem tritt auf, wenn ich versuche, auf die OwnCloud-Weboberfläche zuzugreifen. Es funktioniert nicht. Es dreht sich einfach weiter. Das Seltsame ist, dass ich eine test.php-Datei im OwnCloud-Verzeichnis erstelle (mit einem einfachen echo('hello world');
) und diese Seite problemlos geladen wird.
Ich habe den Datenverkehr auf dem Server mit tcpdump erfasst und kann sehen, wie die GET-Anforderung eingeht. Der Server antwortet. Dann sehe ich ein paar doppelte ACKS vom Tablet und ein paar erneute Übertragungen vom Server.
Ich sollte beachten, dass VPN-Clients IP-Adressen in einem anderen Subnetz zugewiesen bekommen.
Hier ist meine Nginx-Konfiguration:
upstream php-handler {
server 127.0.0.1:9000;
}
# redirect http to https
server {
listen 80;
server_name 10.3.3.3;
#return 301 https://$server_name$request_uri; # enforce https
root /var/www/owncloud/;
client_max_body_size 10G;
client_body_timeout 600s;
client_header_timeout 600s;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS off;
fastcgi_pass php-handler;
}
# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
Zusammenfassend lässt sich sagen, dass alle Geräte im lokalen LAN einwandfrei funktionieren. Desktop-Clients (OS X) funktionieren einwandfrei, wenn sie über VPN verbunden sind. VPN-Mobilclients (Android-Tablet) können sich per SSH und VNC mit lokalen Rechnern verbinden. HTTP-Anfragen funktionieren auf meiner einfachen Testseite auch für VPN einwandfrei, können aber nicht auf OwnCloud zugreifen. Was kann ich tun, um das Problem weiter zu diagnostizieren? Was ist das Problem?
Antwort1
Sie benötigen eine NAT-Box mit DNS-Einträgen für Ihr lokales Netzwerk. Dadurch wird die Arbeit mit Ihren virtuellen Hosts wesentlich einfacher, ausführlicher und konsistenter zwischen lokalen und Remote-Netzwerken ...
Es ist wirklich schön, einen Domänennamen zu haben, der Owncloud gewidmet ist. Es ist wirklich schön, denselben Domänennamen für Ihre versteckte Owncloud zu haben. Und wenn Sie in ein VPN wechseln, sollte es einfach funktionieren, solange Ihre Routen den Zugriff auf Ihr lokales Subnetz ermöglichen.
Alle meine Maschinen oder VM-Sites haben ihren eigenen eindeutigen DNS-Eintrag und eine statische IP. Das ist ein zusätzlicher Schritt, aber viel professioneller zu organisieren.