Kein externer Zugriff auf OwnCloud

  • Liebe Community,

    ich bin seit ein paar Tagen dabei mir OwnCould auf einem Pi einzurichten. Ich kann in meinem Netzwerk über https auf OwnCloud zugreifen. Der Zugriff von außen bleibt mir aber verwehrt. Ich habe bereits diverse Forenbeiträge gelesen, die Lösungen haben bei mir jedoch leider nichts gebracht.

    Hier die wesentlichen Schritte meiner Installation:

    Externe IP:

    • Externe Ip einem hoste zugeordnet -> meinecloud.no-ip.com, DNS Host (A)
    • Software von Link istalliert, welche meine externe IP aktualisiert

    Ich habe über einen Konsolenbefehl (Befehl weiß ich nicht mehr) überprüft, dass mit der domain die korrekte externe IP verknüpft ist.

    Installation Server:

    • Apache2, PHP und SQL nach Link installiert und eingerichtet
    • OwnCloud 8 installiert
    • SSL-Zertifikat erstellt nach Link

    Hier die Einstellungen von /var/www/config/config.php:


    Habe hier schon alle möglichen Varianten, die ich im Internet gefunden habe, ausprobiert. Habe leider keine Erfahrung mit php bzgl. Syntax;)

    Und hier der Inhalt von /etc/apache2/ports.conf:

    Code
    Listen 192.168.178.26:80
    
    
    <IfModule mod_ssl.c>
         Listen 443
    </IfModule>

    Konfiguration Router (Fritzbox 7360):

    • Portweiterleitung für Port 80 und 443 (TCP)
    • MyFritz!-Port geändert (default ist 443)
    • meinecloud.no-ip.com unter Dynamic DNS eingestellt

    Hier die Fehlermeldung, wenn ich versuche auf meinecloud.no-ip.com zuzugreifen:

    Code
    Die Verbindung wurde durch den Server beendet.

    Kann mir jemand einen Tipp geben, wonach ich suchen muss?

    Grüße Windy

    Einmal editiert, zuletzt von Windy (3. März 2015 um 16:44)

  • Code
    Listen 192.168.178.26:80


    Hier die Fehlermeldung, wenn ich versuche auf meinecloud.no-ip.com zuzugreifen:

    Code
    Die Verbindung wurde durch den Server beendet.

    Kann mir jemand einen Tipp geben, wonach ich suchen muss?

    Poste mal von deinem Pi, die Ausgaben von:

    Code
    sudo netstat -tulpen
    route -n
    ifconfig -a

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Sehr gerne:

    Code
    root@pi:~# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.178.1   0.0.0.0         UG    0      0        0 eth0
    192.168.178.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
  • Code
    root@pi:~# netstat -tulpen
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
    tcp        0      0 192.168.178.26:80       0.0.0.0:*               LISTEN      0          8986        1694/apache2

    Versuch mal den apache so zu konfigurieren, dass dieser an:

    Code
    Listen 0.0.0.0:80


    lauscht (... so wie z. B. vsftpd und sshd).

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • habe

    Code
    Listen 0.0.0.0:80

    in /etc/apache2/ports.conf angehängt. Jetzt startet der apache-Server aber nicht mehr. Wenn ich ihn versuche manuell zu starten bekomme ich folgende Rückmeldung:

    Code
    root@pi:~# service apache2 start
    [....] Starting web server: apache2(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs
    Action 'start' failed.
    The Apache error log may have more information.
     failed!

    Vielen Dank schonmal!
    Grüße Windy[/code]

  • Die Ports.conf sollte so aussehen, ohne IP dann hört er auch auf alles:

    Dann enable auch mal SSL sonst wird das nix mit https:
    Dein Apache hört nicht auf 443.

    Code
    a2enmod ssl


    Danach den Apachen neu starten.

    mach mal

    Code
    ls /etc/apache2/sites-enabled/

    und poste die Ausgabe.
    Da sollten zwei Files zu sehen sein
    000-default und 000-default-ssl

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • habe die IPs aus Ports.conf entfernt. Mit den Einträgen, die du vorgeschlagen hast, konnte ich den apache wieder starten.

    ssl scheint schon aktiviert zu sein:

    Code
    root@pi:~# a2enmod ssl
    Module ssl already enabled


    Woran erkennst du, dass es nicht aktiv ist? Der Zugriff in meinem Netzwerk erfolgt bereits über https.

    Code
    root@pi:~# ls /etc/apache2/sites-enabled/
    000-default  ssl


    leider nur ein file:(

  • Habe ein wenig weiter experimentiert, leider ohne Erfolg.

    Zunächst noch eine Korrektur zum vorherigen Post: In /etc/apache2/sites-enabled/ liegen zwei Dateien bzw. zwei Links. In /etc/apache2/sites-available/ gibt es eine default-ssl und eine ssl. Ich weiß nicht, wieso zwei angelegt wurden. Habe den Link gelöscht und auf die andere Datei verlinkt, leider ohne Erfolg.

    Außerdem habe ich in port.conf NameVirtualHost *:443 und NameVirtualHost *:80 eingetragen und in die Dateien in /etc/apache2/sites-available/ den Host Namen meinecloud.no-ip.com eingetragen. Auch das hat mich leider nicht weiter gebracht.

    Wie gesagt, ich bin am experimentieren. Hab leider keine Erfahrung und Überblicke noch nicht so ganz, was ich da eigentlich tue. Bin über jegliche weiteren Hinweise dankbar;)

    Grüße Windy


  • habe die IPs aus Ports.conf entfernt. Mit den Einträgen, die du vorgeschlagen hast, konnte ich den apache wieder starten.

    ssl scheint schon aktiviert zu sein:

    Code
    root@pi:~# a2enmod ssl
    Module ssl already enabled


    Woran erkennst du, dass es nicht aktiv ist? Der Zugriff in meinem Netzwerk erfolgt bereits über https.


    Deinem Netstat nach nur über IPv6, nicht IPv4.

    Code
    root@pi:~# ls /etc/apache2/sites-enabled/
    000-default  ssl


    leider nur ein file:(

    :s


    Zunächst noch eine Korrektur zum vorherigen Post: In /etc/apache2/sites-enabled/ liegen zwei Dateien bzw. zwei Links. In /etc/apache2/sites-available/ gibt es eine default-ssl und eine ssl.

    http port 80 konfigurierst du in der 000-default
    https port 443 konfigurierst du in der ssl, hier sind auch die Zertifikate angegeben.


    Ich weiß nicht, wieso zwei angelegt wurden.


    SSL Enabled ?


    Habe den Link gelöscht und auf die andere Datei verlinkt, leider ohne Erfolg.

    Die Links von sites-available nach sites-enabled werden über das Apache Dienstprogramm gesetzt.

    Code
    a2ensite ssl


    setzt einen Symlink

    Code
    a2dissite ssl


    löscht ihn wieder.

    Poste mal deine beiden Conf.
    die default und die ssl

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.


  • SSL Enabled ?


    Was möchtest du damit sagen;) Ich rede von den beiden ssl-config-Dateien in sites-available. Soweit ich es bis jetzt verstanden habe, werden diese nicht durch a2ensite ssl angelegt. Die Links nach sites-enable habe ich alle durch a2ensite ssl anlegen lassen.

    Hier die beiden conf-dateien:

    Code
    root@raspberrypi:~# more /etc/apache2/sites-enabled/ssl 
    <virtualhost *:443> 
    	SSLEngine On 
    	SSLCertificateFile /etc/apache2/ssl/apache.pem 
    	DocumentRoot /var/www 
    </virtualhost>

    Einmal editiert, zuletzt von Windy (12. März 2015 um 18:16)

  • Das sieht so aus als wenn du schon zu viel Kaputtgefingert hast.
    Ich habe mir mal die Mühe gemacht und einen PI komplett neu installiert.
    Per default sieht das erst mal so aus :

    Code
    pi@raspberrypi ~ $ cd /etc/apache2/sites-available/
    pi@raspberrypi /etc/apache2/sites-available $ ls
    default  default-ssl

    Die default-ssl sieht auch ein wenig anders aus.
    (Die Kommentarzeilen entfernt)

    Spoiler anzeigen

    Ich verstehe jetzt nur nicht warum du keinen Fehler bekommst wenn du den Apachen neu startest weil du den SSL key gar nicht definiert hast.
    Oder hast du noch in anderen Config Dateien was geändert ?

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Um das Kaputtfingern zu vermeiden, habe ich das Pi vor kurzem neu aufgesetzt und folgende Anleitung befolgt: Link. Dabei habe ich folgende Config Dateien geändert:

    • /etc/apache2/apache2.conf - ServerName meinecloud.no-ip.biz eingefügt
    • /etc/hosts - 127.0.1.1 owncloud eingefügt
    • /etc/apache2/sites-enabled/000-default - folgenden Eintrag ändern zu: <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
    • nano /etc/php5/apache2/php.ini - folgenden Eintrag ändern: upload_max_filesize = 2G post_max_size = 2G
    • /etc/apache2/ports.conf - Listen 80 <IfModule mod_ssl.c> Listen 443 </IfModule>
    • /etc/apache2/sites-available/ssl - <virtualhost *:443> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem DocumentRoot /var/www </virtualhost> eingefügt

    Zusätzlich habe ich alle im Thread vorgeschlagenen Änderungen an Config Dateien vorgenommen.

    Meine default-ssl sieht genau so aus, wie deine.

    Ich könnte mir noch vorstellen, dass irgendwas mit der Portweiterleitung nicht funktioniert. Muss mich mal einlesen, wie man das testen kann...

    Vielen Dank für deine Mühe!

    Grüße Windy

  • Ich habe mich mal auf die Suche nach anderen Ursachen für das Problem gemacht und bin auf folgendes gestoßen:

    Portweiterleitungen sind nur nach dem IPv4 möglich. Ich habe jedoch einen IPv6-Zugang mit DS-Lite-Tunnel. In meiner Fritzbox 7360 steht auf der Übersichtsseite unter Verbindungen:

    Code
    Internet, IPv4	FRITZ!Box verwendet einen DS-Lite-Tunnel , M-net DSL, IPv4 über DS-Lite
    Internet, IPv6	verbunden seit 26.03.2015, 16:03 Uhr, M-net DSL, IPv6-Präfix:...

    Wer mehr über IPv6 wissen möchte, muss sich selbst schlau machen. Ich habe ausreichend verstanden um das Problem zu lösen. Es reicht aber leider nicht um hier im Detail den Unterschied zu IPv4 zu erklären;)
    In Kürze: Mit IPv6 sind zum einen Portweiterleitungen nicht mehr möglich wie bei IPv4 und zum anderen kann von außerhalb des lokalen Netzwerks mit einer IPv4 Verbindung oder mobilem Internet (UMTS) nicht auf den Server zugegriffen werden. Eine mögliche Lösung ist der Portmapper von https://forum-raspberrypi.de/www.feste-ip.net. Der Service ist leider kostenpflichtig, aber mit unter 5€ im Jahr bezahlbar. Eine Anleitung zur Einrichtung in Verbindung mit einer Fritzbox findet sich hier.
    Die Einstellungen sind leider nicht identisch mit den Einstellungen in der Fritzbox. Bei der MyFRITZ!-Freigabe habe ich https als Schema gewählt. Auf der Seite von feste-ip.net habe ich dann die url ohne protokoll und port angegeben. In der Fritzbox steht https://nas.abcdefghij.myfirtz.net:443 und in feste-ip.net sollte stehen nas.abcdefghij.myfirtz.net.
    Außerdem habe ich noch eine IPv6 Freigabe eingerichtet. Sie kann unter Internet, Freigabe im Reiter IPv6 eingerichtet werden. Es müssen explizit die Ports angegeben werden, die freigegeben werden sollen. Es ist auch möglich alle Ports frei zu geben, da weiß ich aber nicht, was das für Konsequenzen für die Sicherheit meines Servers hat;)

    Jetzt muss nurnoch das Raspberry so konfiguriert werden, dass es mit dem IPv6-Protokoll umgehen kann. Dazu in /etc/modules

    Code
    ipv6

    einfügen. Nach einen Neustart sollte mittels

    Code
    ping6 -c 2 ipv6.google.com

    getestet werden können, ob eine Verbindung hergestellt werden kann.

    Damit der Server auch auf den IPv6 Ports lauscht muss in /etc/apache2/ports.conf die Ports eingetragen werden wie folgt:

    Ich habe diese Einstellung nicht mehr mit OwnCloud und Apache2 getestet, sondern mit Seafile und Nginx. Während meiner Recherche habe ich mehrfach von Empfehlungen gelesen statt OwnCloud Seafile zu verwenden. Am meisten überzeugt hat mich die Möglichkeit meine Daten zu verschlüsseln. Hier eine Anleitung um Seafile auf dem Raspberry Pi einzurichten.
    Für Nginx und Seafile muss die Datei /etc/nginx/sites-available/seahub angepasst werden. Sie sieht bei mir folgendermaßen aus:

    Ich übernehme keine Garantie für die Richtigkeit der Angaben in diesem Post;) Ich bin noch nicht vollständig durchgestiegen, möchte jedoch meine Lösung anderen Suchenden bereitstellen.

    Vielen Dank für den Support! Und wenn jemand eine Alternative weiß, insbesondere eine kostenlose, wäre ich sehr interessiert!

    Grüße Windy

    Einmal editiert, zuletzt von Windy (26. März 2015 um 16:49)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!