[linux] Toegang tot websites op het subnet

Paul Slootman paul+nospam op wurtel.net
Wo mei 22 09:56:20 CEST 2019


On Tue 21 May 2019, Daniel C. von Asmuth wrote:
> Aldus schreef paai op Tue, May 21, 2019 at 04:58:59PM +0200:
> > Weer andere apparaatjes, zoals de voederbakken van de katten, kunnen het
> > gemakkelijkst via hun eigen website bediend worden en uiteraard staan die
> > websites op het 192.168.178... subnet, dat niet van buitenshuis toegankelijk
> > is. Nu kan ik dat via de router met portforwarding regelen, maar is daar
> > eigenlijk een elegantere manier voor? En welke veiligheidsrisicos kleven
> > daaraan?
> > 
> Als de toegang beperkt is tot het HTTP protocol, c.q. HTTPS, dan
> kunt u een proxy server gebruiken. Het voordeel voor de gebruikers is
> dat er geen aparte VPN client software benodigd is.

Inderdaad, zoiets heb ik ook.

Ik heb zelf een linux doosje als firewall, maar aan het subnet van Paai
te zien heeft hij een fritzbox als router/firewall.

Zorg ervoor dat je een doosje intern op je netwerk hebt die redelijk
stabiel draait (dwz. eigenlijk altijd aanstaat). Zorg op de fritzbox dat
die inkomende verbindingen naar http en https doorstuurt naar dat doosje.

Op dat doosje raad ik dan aan om haproxy te gebruiken. Die is vrij
veilig (zelf roepen ze dat in 13 jaar nog nooit een security probleem is
geweest: http://www.haproxy.org/#secu ).

Config is vrij simpel: je hebt frontends waar inkomende verbindingen
door afgehandeld worden (http, https, wat je nog meer wilt) en backends 
waar de inkomende verbinding aan doorgestuurd wordt, evt. afhankelijk
van bepaalde condities. Zoiets dus:

frontend http-in
    bind *:80
    redirect scheme https

frontend https-in
    bind ipv4@:443 ssl crt /etc/ssl/private/paai.nl.pem
    default_backend fallthru
    acl kattevoer	path_beg	/kattevoer
    acl koelkast	hdr(host)	koelkast.paai.nl
    use_backend kattevoer if kattevoer
    use_backend koelkast if koelkast

backend kattevoer
    server kattevoer 192.168.178.123:80

backend koelkast
    server koelkast 192.168.178.125:80

backend fallthru
    server default 192.168.178.200:80


Hier heb je dus een http frontend die alleen maar doorstuurt naar https.
De https frontend kijkt of het url begint met /kattevoer, zo ja dan
wordt de kattevoer backend gebruikt.
Anders wordt gekeken of de hostname van het url "koelkast.paai.nl" is,
zo ja dan wordt de koelkast backend gebruikt.
Als niks gematchd is, dan wordt de fallthru backend gebruikt waar
hopelijk een gewone website draait.

Er zijn enorm veel mogelijkheden maar dit is een begin.
In combinatie met letsencrypt voor het certificaat werkt het heel mooi.


Paul


Meer informatie over de Linux maillijst