Vraag

Nextcloud Experiabox v9 NAT loopback

  • 2 maart 2018
  • 17 reacties
  • 347 keer bekeken

Hallo,

Onlangs heb ik thuis een server met een Nextcloud installatie opgezet, echter loop ik tegen een vervelend probleem aan.

De server is direct aan de Experiabox gekoppeld en te benaderen via cloud.domein.nl i.v.m. SSL. Als je van buitenaf verbinding maakt werkt alles prima. Als je op het lokale netwerk verbinding maakt met het lokale ip-adres (192.168.2.222) dan werkt alles ook. Maar als je op het lokale netwerk verbinding wil maken via cloud.domein.nl of het publieke ip-adres (77.111.111.111), dan verbreekt de Experiabox de verbinding na ~500kB. Nu zou ik graag willen dat dit laatste gewoon zou werken.

Na contact met de klantenservice de portforwarding nog eens gecheckt, Nextcloud instellingen gecheckt en ook de server nog in de DMZ geplaatst, echter zonder resultaat.

Het bovenstaande duidt volgens mij op een probleem met de Experiabox, en wel met de NAT loopback. Nu lees ik meer meldingen hierover op het forum.

Hoe is dit op te lossen?

17 reacties

Reputatie 7
De NAT loopback functioneert dus blijkbaar wel immers ik begrijp dat je wel iets aan data terugkrijgt.
Is er op jouw server wellicht een IP blokkade actief die per ongelijk jouw eigen publieke IP adres blokkeert?
Klopt dat de loopback werkt, maar hij wordt niet in stand gehouden. Ik heb het idee dat het volgende aan de hand is (middelste situatie):



Binnen lokale netwerk 192.168.2.11 (cliënt) -> 192.168.2.222 (server) werkt gewoon, dus denk niet dat ip geblokkeerd is.
Reputatie 7
Het gaat niet om het geblokkeerd zijn van het IP adres van de cliënt, maar om een blokkade van het IP adres van jouw Experia Box immers dat is het IP adres dat gebruikt wordt bij de communicatie naar de server. (Proper hairpin NAT)
Welke poort wordt gebruikt voor de gegevensuitwisseling?
Sorry, ja natuurlijk.
Kan in de logs zien dat er verbinding gemaakt wordt met ip van experia box (192.168.2.254) als ik vanaf lokaal netwerk verbinding maak via domeinnaam, dus hij zou niet geblokkeerd moeten zijn op server.

Staat nu gewoon op poorten 80 en 443.
Reputatie 7
Hmmm, heb je toevallig nog een andere service op jouw thuisnetwerk draaien die je geforward hebt?
Zo ja, ervaar je daar hetzelfde probleem?
Zo nee, is het mogelijk zo'n service te configureren?
Er draaien geen andere services op het netwerk. Enige wat geforward wordt is http/https voor nextcloud en er staan nog 3 forwards van de kpn tv boxen in de lijst.

Ik heb zowel apache als nginx als webserver geprobeerd, bij beide treedt het probleem op. Zal binnenkort even proberen of het lukt bestanden op een andere manier te uploaden naar de server. Volgens mij knipt nextcloud grote bestanden op in stukken, wellicht gaat daarin ergens iets fout. Nginx access.log geeft bij zo'n upload eerst een goede status code, enige tijd later gevolgd door 400 (bad request). Error.log is leeg.

Zal binnenkort even kijken of ik een andere service oid wel succesvol kan laten draaien. Zal ook kijken of ik een andere router kan vinden om te proberen of het daarmee wel werkt.
Reputatie 7
Badge +20
Hoi, jTek. Welkom op het fourm.

Ik heb je een privébericht gestuurd. Kun je daar op reageren?
Hallo,

ik ervaar hetzelfde probleem en hoor graag wat de oplossing is. Ik ben zojuist doorgestuurd vanuit de helpdesk chat functie.
Reputatie 7
Kan jij eens screenshots plaatsen van alle instellingen die je hiervoor op de Experia Box hebt doorgevoerd?

Het gaat om het HTTP/HTTPS verkeer. Van buitenaf werkt alles perfect. Van binnenuit niet..
Reputatie 7
Het gaat om het HTTP/HTTPS verkeer. Van buitenaf werkt alles perfect. Van binnenuit niet..
Als het van buitenaf werkt, maar vanaf jouw LAN niet, dan ben ik bang dat de NAT loopback roet in het eten gooit. Dat is dan iets wat je niet zelf kunt verhelpen.
Bedankt voor je reactie. Deze conclusie heb ik zelf ook getrokken en daarom contact opgenomen met de servicedesk. Ik kreeg van hun de mededeling om te reageren op deze thread voor de oplossing.

Ik weet niet @Erwin_ heeft gezegd tegen de auteur van deze thread. Ik hoop in ieder geval dat hij een oplossing voor mij heeft. Bij mijn vorige provider heb ik hier overigens nooit problemen mee gehad.
@Jeff83 ik heb mijn hele setup bij iemand anders met een Experiabox 10 getest, alwaar deze dus wel werkte. De Experiabox voor een nieuwere versie vervangen zou dus een oplossing kunnen zijn.

In mijn geval is de NAT loopback na verloop van tijd echter gaan werken icm de Experiabox v9 (wellicht een update gehad?). Ik zal dit weekend mijn huidige nginx configuratie en SW versie van de Experiabox opzoeken en hier posten om je mogelijk verder te helpen.
@jTeK , dat zou echt super fijn zijn. Ik hoop dat het lukt om het werkend te krijgen op de v9. Als dat niet lukt kan ik altijd kijken of ik deze kan omruilen voor een v10
@jTeK Heb je toevallig al tijd gehad om je configs te verzamelen?
@Jeff83 Was er even bij ingeschoten.

nginx config:
code:
upstream php-handler {
#server 127.0.0.1:9000;
server unix:/run/php/php7.0-fpm.sock;
}

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name cloud.domain.nl;
# enforce https
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name cloud.domain.nl;

ssl_certificate /etc/letsencrypt/live/cloud.domain.nl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.domain.nl/privkey.pem;
ssl_session_cache shared:SSL:30m;
ssl_session_timeout 1d;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;

# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
add_header Strict-Transport-Security max-age=15768000;
# includeSubDomains; preload;";
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;

# Path to the root of your installation
root /var/www/html/nextcloud/;

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
# last;

location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}

# set max upload size
client_max_body_size 2G;
fastcgi_buffers 64 4K;
fastcgi_read_timeout 3600s;
fastcgi_send_timeout 3600s;

# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;

location / {
rewrite ^ /index.php$uri;
}

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}

location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
#Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}

location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}

# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
# add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}

location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}
}


Nextcloud config.php:
code:
$CONFIG = array (
'instanceid' => 'xxx',
'passwordsalt' => 'xxx',
'secret' => 'xxx',
'trusted_domains' =>
array (
0 => '192.168.2.202',
1 => '192.168.2.254',
2 => '77.xxx.xxx.xxx',
3 => 'cloud.domain.nl',
),
'datadirectory' => '/media/hdd/nextcloud/data',
'overwrite.cli.url' => 'https://cloud.domain.nl/nextcloud',
'dbtype' => 'mysql',
'version' => '15.0.2.0',
'dbname' => 'nextcloud',
'dbhost' => 'localhost:3306',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'nextcloud',
'dbpassword' => 'xxx',
'installed' => true,
'memcache.local' => '\\OC\\Memcache\\APCu',
'mail_smtpmode' => 'smtp',
'mail_smtpauthtype' => 'LOGIN',
'mail_from_address' => 'noreply',
'mail_domain' => 'domain.nl',
'mail_smtpauth' => 1,
'mail_smtphost' => 'xxx',
'mail_smtpport' => 'xxx',
'mail_smtpname' => 'noreply@domain.nl',
'mail_smtppassword' => 'xxx',
'mail_smtpsecure' => 'ssl',
'maintenance' => false,
'theme' => '',
'loglevel' => 2,
);

Reageer