nmartin89
Goto Top

Zugriff extern Nextcloud über NPM

Guten Morgen.

ich habe gestern einen LXC Conteiner mit Debian 11 und Nextcloud aufgesetzt. Soweit läuft auch alles super.

Der LXC hat keinen direkten Zugriff auf das böse WWW sondern läuft über NPM zwecks SSL Zertifikat.
Verbinden kann ich mich Lokal zum Nextcloud genauso über die Domain von außen.
Was aktuell nicht klappt ist wenn ich die Nextcloud App in IOS nutze sagt er Keine Verbindung Möglich.

Im heXs habe ich eine Weiterleitung angelegt zum NPM . Alle Verbindungen die ich von außen aufrufe klappen aber eben nicht die Verbindung über die App.

add action=dst-nat chain=dstnat dst-port=8555 in-interface=ether1 protocol=tcp to-addresses=172.16.10.3 \
    to-ports=8555
add action=dst-nat chain=dstnat comment=NPM dst-port=443 in-interface=ether1 protocol=tcp to-addresses=\
    172.16.10.3 to-ports=443

Mache ich eine Weiterleitung direkt zum Nextcloud auf 443 dann klappt es.

add action=dst-nat chain=dstnat comment=Nextcloud disabled=yes dst-port=443 in-interface=ether1 protocol=\
    tcp to-addresses=172.16.10.4 to-ports=443

Was kann hier mein Problem sein? Leitet der NPM die anfrage nicht richtig weiter?

LG Nico

Content-Key: 7090305301

Url: https://administrator.de/contentid/7090305301

Printed on: April 27, 2024 at 09:04 o'clock

Member: aqui
aqui May 10, 2023 at 07:41:27 (UTC)
Goto Top
Leitet der NPM die anfrage nicht richtig weiter?
tcpdump ist dein bester Freund um dir diese Frage zu beantworten!
Member: nmartin89
nmartin89 May 10, 2023 at 07:53:47 (UTC)
Goto Top
Also wenn ich jetzt suche auf eth0 mit dem Port 443 dann kommt die anfrage vom docker01 dort läuft der NPM zum Nextcloud Host. Also klappt das ? wo liegt dann der fehler das er sich nicht über die App Verbinden will?

root@nextcloud:~# tcpdump -i eth0 -c 5 port 443
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
07:51:10.528628 IP docker01.heimnetz.werk.49272 > nextcloud.heimnetz.werk.https: Flags [S], seq 97075521, win 64240, options [mss 1460,sackOK,TS val 1468077630 ecr 0,nop,wscale 7], length 0
07:51:10.528648 IP nextcloud.heimnetz.werk.https > docker01.heimnetz.werk.49272: Flags [S.], seq 1911017607, ack 97075522, win 65160, options [mss 1460,sackOK,TS val 2524662844 ecr 1468077630,nop,wscale 7], length 0
07:51:10.528709 IP docker01.heimnetz.werk.49280 > nextcloud.heimnetz.werk.https: Flags [S], seq 2423644477, win 64240, options [mss 1460,sackOK,TS val 1468077630 ecr 0,nop,wscale 7], length 0
07:51:10.528713 IP nextcloud.heimnetz.werk.https > docker01.heimnetz.werk.49280: Flags [S.], seq 3603569170, ack 2423644478, win 65160, options [mss 1460,sackOK,TS val 2524662844 ecr 1468077630,nop,wscale 7], length 0
07:51:10.528825 IP docker01.heimnetz.werk.49290 > nextcloud.heimnetz.werk.https: Flags [S], seq 586132807, win 64240, options [mss 1460,sackOK,TS val 1468077630 ecr 0,nop,wscale 7], length 0
5 packets captured
39 packets received by filter
0 packets dropped by kernel
Member: Kaffeepause07
Kaffeepause07 May 10, 2023 at 11:27:04 (UTC)
Goto Top
Hallo,

wenn du in deiner Nextloud auf Einstellungen -> "Mobile und Desktop" schaust wirst du unten schon das Problem sehen. Dort ist nochmal aufgeführt welche URL genutzt werden soll:
"Use this link to connect your apps and desktop client to this server: "
Bei mir war dort nur http + Servername eingetragen.

Ändern kannst du es in dem du in der php.config folgende Zeile hinzufügst:
'overwriteprotocol' => 'https',

Nach einem Neustart der Nextcloud sollte dann dort die richtige URL mit HTTPS erscheinen.

Grüße
Member: nmartin89
nmartin89 May 10, 2023 at 12:23:11 (UTC)
Goto Top
Leider nein weil das schon so passend ist. in dem feld steht schon die Domain richtig drin
https://nextcloud.martin-xxx.tld/

Warum geht es wenn ich den NPM ausschalte bzw. die Weiterleitung ändere?

Ich hab die Installation mit der Anleitung hier gemacht Hier Klick

Hier die nextcloud.conf

<VirtualHost *:80>
    ServerName nextcloud.martin-xxx.tld
    ServerAlias www.nextcloud.martin-xxx.tld

    # auto redirect HTTP to HTTPS
    Redirect permanent / https://nextcloud.martin-xxx.tld/
</VirtualHost>

<VirtualHost *:443>
    ServerName nextcloud.martin-xxx.tld
    ServerAlias www.nextcloud.martin-xxx.tld
  
    DocumentRoot /var/www/nextcloud/

    Protocols h2 http/1.1

    # auto redirect www to non-www
    <If "%{HTTP_HOST} == 'www.nextcloud.martin-xxx.tld'">  
        Redirect permanent / https://nextcloud.martin-xxx.tld/
    </If>

    # log files
    ErrorLog /var/log/apache2/nextcloud.martin-xxx.tld-error.log
    CustomLog /var/log/apache2/nextcloud.martin-xxx.tld-access.log combined

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/nextcloud.martin-xxx.tld/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.martin-xxx.tld/privkey.pem

    # HSTS
    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"  
    </IfModule>

    <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>
</VirtualHost>
Member: Dani
Dani May 10, 2023 updated at 19:35:32 (UTC)
Goto Top
Moin,
Der LXC hat keinen direkten Zugriff auf das böse WWW sondern läuft über NPM zwecks SSL Zertifikat.
Wieso hat der LXC keine Zugriff auf das WWW. Zumal es ja um die andere Richtung geht: Internet -> NPM -> Nextcloud. Wobei ich mich frage, wo der Gewinn an Sicherheit ist?

Warum geht es wenn ich den NPM ausschalte bzw. die Weiterleitung ändere?
Zwei Ideen:
  • Stelle das Problem einmal über den NPM nach. Stelle das Problem einmal über den Apache nach. Anschließend die Access/Error Logs beider Server vergleichen.
  • Könnte es beim NPM an deaktivieren HTTP/2 und/oder WebSocket liegen.


Gruß,
Dan