1
Vraag
2
Reacties
Marinus
Expert
Expert
  • 499Posts
  • 22Oplossingen
  • 194Likes

Eigen website met IPv6 en SSL (werkt niet)

Sinds enige tijd heb ik een Connectbox Giga/SmartWifi modem Giga en Full Dual Stack IPv4/IPv6. Ik ben hier redelijk tevreden over. 

 

Op mijn Raspberry Pi draai ik ook al enige tijd een IPv4 webservertje. Even wat poorten (80 en 443 voor SSL) forwarden en gaan! Alles werkt!

 

Nu ik ook IPv6 heb leek het mij leuk om mijn website ook bereikbaar te maken voor IPv6.

In het modem/router heb ik onder menuoptie IP- en Poortfiltering 2 regels toegevoegd:

 - één voor poort 80 (http) van alle naar mijn interne IPv6 adres van de Pi

 - en één voor poort 443 (https) van alle naar mijn interne IPv6 adres van de Pi.

 

Nu mijn probleem:

 - ik kan mijn server prima bereiken via poort 80 (via een domeinnaam en via het IPv6 adres zelf.

 - als ik mijn server wil bereiken via poort 443 (SSL / Let’s Encrypt) voor de veiligheid lukt dit niet. Het lijkt erop alsof poort 443 wordt geblokkeerd.

 

Vragen:

 - kan iemand bevestigen dat poort 443 voor IPv6 niet werkt? En zo ja waarom dan?

 - hoe kan ik wel toegang tot mijn wedpagina’s krijgen met IPv6 en SSL? Iemand de gouden tip 😉 .

 

NB: Ja, ik weet dat er al wat topics hierover zijn op de community, echter deze dateren van enige jaren geleden en gaan over de originele Connectbox. Met enige jaren voortgang in kennis  over IPv6 en modernere hardware van Ziggo moet dit toch opgelost zijn?

 

Oplossing

Geaccepteerde oplossingen
efok
Expert
Expert
  • 3637Posts
  • 199Oplossingen
  • 1326Likes

@MarinusIk heb mijn apache toch iets anders geconfigureerd. En dat werkt voor IPv4 en IPv6. Ports.conf:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80

<IfModule ssl_module>
	Listen 443
</IfModule>

<IfModule mod_gnutls.c>
	Listen 443
</IfModule>

site.nl-le-ssl.conf in sites-enabled

<IfModule mod_ssl.c>
<VirtualHost *:443>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	ServerName www.site.nl
	
        <Directory /data/www/>
            Options FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

	<Directory /data/www/site/hidden>
	    Options Indexes
	</Directory>


	ServerAdmin webmaster@localhost
	DocumentRoot /data/www/site

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf


Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/site.nl/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/site.nl/privkey.pem

#Set HSTS
Header always set Strict-Transport-Security "max-age=31536000;includeSubDomains"


#Security options
Header always set X-Content-Type-Options nosniff
#Header always set X-Frame-options SAMEORIGIN
Header always set Referrer-Policy "same-origin"

</VirtualHost>
</IfModule>

  Misschien heb je er iets aan. Stuur me anders even privé je domeinnaan, dan kijk ik eens wat ik zie over IPv6.

Bekijk in context

48 Reacties 48
tobiastheebe
Super Expert
Super Expert
  • 14233Posts
  • 878Oplossingen
  • 5797Likes

Kun je binnen het LAN de site bereiken op [IPv6]:443? Dit levert uiteraard een foutmelding op m.b.t. het certificaat, maar de site zou wel bereikbaar moeten zijn. Als dit niet lukt, dan ligt het probleem niet bij de firewall van de Connectbox.

 

Welke webserver gebruik je?

Marinus
Expert topicstarter
Expert
  • 499Posts
  • 22Oplossingen
  • 194Likes

@tobiastheebe 

1 - ik gebruik de apache webserver

2 - http://<domeinnaam>:80 werkt

3 - https://<domeinnaam>:443 werkt niet

4 - een andere poort (dus niet 443) werkt wel, ook met SSL. Listen [::]:"andere poort" in /etc/apache2/ports.conf

 

De test met [IPv6]:443 werkt binnen het LAN omdat apache dan automatisch naar http;//[IPv6]:80 lijkt te gaan, maar dat is een heel ander "probleem". Als ik het in virtualhosts afvang is het geen probleem.

3 - 

tobiastheebe
Super Expert
Super Expert
  • 14233Posts
  • 878Oplossingen
  • 5797Likes

Ik gebruik zelf NGINX en (vooralsnog) alleen IPv4 op mijn server, dus ik tast min of meer in het duister.

 

Je noemt een redirect (?) van poort 443 naar 80. Dat is wat vreemd, gebruikelijk is dat andersom. Verder kun je het beste wat tests doen met curl, zowel binnen het LAN als via 4G/5G, met alleen werkt wel/niet kan ik zelf niet zoveel voor troubleshooting.

Marinus
Expert topicstarter
Expert
  • 499Posts
  • 22Oplossingen
  • 194Likes

@tobiastheebe 


@tobiastheebe 

Je noemt een redirect (?) van poort 443 naar 80. Dat is wat vreemd, gebruikelijk is dat andersom.

 Hierbij begrijpen we elkaar niet, maar dit is niet het probleem. 

 

Alle curl acties heb ik al gehad, geloof me.

 

Nogmaals: (domeinnaam heeft A en AAAA records, IPv4 poort 80 en 443 zijn niet geforward, doe ik dit wel, dan werkt alles naar behoren via IPv4.)

1 - http://<domeinnaam> werkt

2 - https://<domeinnaam> werkt niet (errors mbt SSL in browsers)

3 - https://<domeinnaam>:<andere-poort> werkt met SSL als ik apache voor deze andere poort inricht.

 

Mijn conclusie: IPv6 poort 443 staat dicht in de IPv6 firewall van de Connectbox Giga en is ook niet open te zetten. Dit is des te vreemder daar poort 443 de SSL poort is voor veiliger internet. 

 

Als je zelf poort 443 op IPv6 openzet werkt dan alles zoals je verwacht en zo ja/nee met welke router? Hoef je niet te doen van mij, maar als het even rustig is in de community? 😉

 

Ik merk wel dat er nog vrij weinig mensen met IPv6 bezig lijken te zijn, er zijn ook weinig topics hierover op de diverse nationale en internationale fora te vinden. Met een professionele router zal alles vast wel goed gaan (geloven we dit zelf?).

 

PS: Vodafone 4G/5G is IPv4. Ik kan dus niet troubleshooten via mobiel.

tobiastheebe
Super Expert
Super Expert
  • 14233Posts
  • 878Oplossingen
  • 5797Likes

Ik gebruik een UBC1318ZG in bridge mode en een EdgeRouter 4. IPv6 gebruik ik in het geheel nog niet, ik heb de laatste tijd wel wat configuratie hiervoor verzameld, maar ben nog niet klaar om dit toe te passen in productie. Helaas staat docsDevMaxCpe niet toe dat ik nog een router aansluit op het modem, anders zou ik mijn oude EdgeRouter PoE mooi als staging-omgeving kunnen gebruiken. Helaas kan ik dit zelf dus niet testen.

 

Als het probleem bij de (firewall van de) Connectbox zou liggen, dan zie je een timeout/reject. Welke foutmelding zie je precies bij punt 2?

robinjoo19
Expert
Expert
  • 5127Posts
  • 76Oplossingen
  • 1753Likes

er waren toch standaard poorten geblokkeerd geen idee of ziggo een up2date lijstje

tobiastheebe
Super Expert
Super Expert
  • 14233Posts
  • 878Oplossingen
  • 5797Likes

Klopt, maar niet 443. Op IPv4 werkt het naar behoren maar op IPv6 (nog) niet. Mijn webserver is ook bereikbaar op IPv4 80 en 443.

 


25: Geblokkeerd voor verkeer met een andere destination dan de Ziggo SMTP server
135: Geblokkeerd voor TCP en UDP verkeer
136: Geblokkeerd voor TCP en UDP verkeer
137: Geblokkeerd voor TCP en UDP verkeer
138: Geblokkeerd voor TCP en UDP verkeer
139: Geblokkeerd voor TCP en UDP verkeer
445: Geblokkeerd voor TCP verkeer
520: Geblokkeerd voor UDP verkeer
robinjoo19
Expert
Expert
  • 5127Posts
  • 76Oplossingen
  • 1753Likes

ah ik was in de war met 445 dan 

ik zal als ik thuis ben effe een virtual machine aanmaken en proberen na te bootsen

Marinus
Expert topicstarter
Expert
  • 499Posts
  • 22Oplossingen
  • 194Likes

@tobiastheebe 

Schermprintjes volgen later vandaag, zit niet achter de juiste PC.

 

@robinjoo19 

zal later vandaag ook eens een of twee van deze poorten testen.

Marinus
Expert topicstarter
Expert
  • 499Posts
  • 22Oplossingen
  • 194Likes

@tobiastheebe 

Brave geeft als error: ERR_SSL_PROTOCOL_ERROR

Firefox geeft als error: SSL_ERROR_RX_RECORD_TOO_LONG

 

Dit lijkt te verwijzen naar een SSL error, echter als ik:

 - in de router de gegevens voor port 443 delete

 - in de router een andere poort aangeef >1024

 - apache laat "luisteren" op deze poort

 - de virtualhost voor de domeinnaam aanpas naar deze poort

dan werkt het wel.

Het lijkt er dus op dat er iets niet goed gaat met poort 443, maar wat?

Wat er ook aan de hand is.....  voor nu stop ik er even mee. Ben er al te veel tijd mee bezig. Misschien geeft wat rust ook nieuwe inzichten.

 

Maar als een van jullie DE oplossing heeft, ik houd me aanbevolen.

 

tobiastheebe
Super Expert
Super Expert
  • 14233Posts
  • 878Oplossingen
  • 5797Likes

Ik vermoed dat het probleem in de configuratie van de webserver ligt. Misschien kom je verder met de tips uit dit topic.

Jaapje

Raadgever
  • 42Posts
  • 1Oplossingen
  • 16Likes

Ik kan je in iedergeval vertellen dat de connectbox geen blokkering heeft op 443 op ipv6, draait hier ook al tijden naar behoren.

al eens lomp een catch all op je Apache gedaan ipv op een specifiek adres luisteren?

Heb je er ook een domein voor staan (begrijp ik wel uit je verhaal) Dan zou je hem extern kunnen testen via www.ip6.nl. Klinkt haast alsof je in Apache alleen een 80 listener hebt staan en geen ssl 443 listener.

 

tobiastheebe
Super Expert
Super Expert
  • 14233Posts
  • 878Oplossingen
  • 5797Likes

Dat wordt inderdaad ook aangedragen in het topic waar ik naar linkte:

 


It suggested changing the virtual host tag, ie, from <VirtualHost myserver.example.com:443> to <VirtualHost _default_:443>
Marinus
Expert topicstarter
Expert
  • 499Posts
  • 22Oplossingen
  • 194Likes

@Jaapje 

Het zou dus kunnen werken. Dat is goed nieuws.

 

Ik heb in /etc/apache2/ports.conf

Listen [::]:80

Listen [::]:443

 

de domeinnaam werkt met IPv4 en IPv6 (getest).

 

de andere zaken testen wordt laat vanavond of morgen.

robinjoo19
Expert
Expert
  • 5127Posts
  • 76Oplossingen
  • 1753Likes

mijn kennis reikt niet ver genoeg voor linux en ipv6 helaas 

Richard G.
Expert
Expert
  • 917Posts
  • 58Oplossingen
  • 398Likes

Kijk eens of ie goed luistert, in Linux:

netstat -lpan | grep :443

Dan zou je moeten kunnen zien of ie ook daadwerkelijk op zowel ipv4 alsook ipv6 luistert. Ik neem aan van wel, maar ja, better safe than sorry.

 

Marinus
Expert topicstarter
Expert
  • 499Posts
  • 22Oplossingen
  • 194Likes

@Richard G. 

 

netstat -lpan | grep :443
tcp6      0        0         :::443.         :::*          LISTEN        31879/apache2

Richard G.
Expert
Expert
  • 917Posts
  • 58Oplossingen
  • 398Likes

Nou dan luistert ie in elk geval op ipv6, dat is zeker. Ik zie hier de ipv4 niet bij staan maar ga er van uit dat dit ook klopt.

Blijft de vraag waarom ie dan niet connect.

Heb je ook apache geconfigureerd om minimaal TLS 1.1 (liefst 1.2) te gebruiken en openssl 3.0 uit te schakelen? Dat soort tips wat ook op website staat?

Ik weet niet of je hier nog iets aan verschil of tip uit kan halen maar dat heb je vermoedelijk ook al gevonden.

https://anweshadas.in/different-virtualhost-entry-for-ipv4-and-ipv6-in-apache/

Poort zou niet geblokkeerd mogen zijn maar dat is te testen via test sites of een telnet naar poort 443 van bij vriend/kennis of zo.

Guido64
Expert
Expert
  • 498Posts
  • 12Oplossingen
  • 124Likes

Ik gebruik pfsense als router.

Misschien heeft er iemand hier iets aan.

 

Ik heb een apache server thuis

Ik heb ipv4 en ipv6

Met ipv4 werkt alles zoals gewoonlijk via nat.

 

De wan van mijn pfsense router krijgt een eigen ipv6 adres.

Ik wil nog niet met ipv6 gaan werken in mijn dmz netwerk daarom heb ik een haproxy server gebruikt om van ipv6 op de wan met de poorten 80 en 443 naar de lokale ipv4 webserver te gaan.

dit werkt prima ook met lets encrypt (wildcard) certificaat.

 

Bovenstaande werkt bij mij onderstaande zou ook moeten werken maar heb ik nog niet getest.

 

Ik denk als ik haproxy niet zou gebruiken maar ipv6 in mijn dmz netwerk gebruik dan zet ik op de dmz interface inkomende verkeer naar het ipv6 adres van de lokale apache server open voor de poorten 80 en 443 vervolgens bij de DDNS domein provider kan je dan het ipv6 adres van je lokale server daar aan je (sub)domein koppelen.

 

E-mail notificaties
Aan Uit

Ontvang een update bij nieuwe reacties in dit topic.

Uitgelicht topic