Inloggen
Inloggen

Een BIND DNS-server opzetten

Een BIND DNS-server opzetten
Hostman Team
Technisch schrijver
Ubuntu-systeem
17.02.2026
Reading time: 16 min

Een BIND DNS-server opzetten

DNS (Domain Name System) is een systeem waarin alle domeinnamen van servers in een specifieke hiërarchie zijn georganiseerd. Waarom hebben we dit nodig? Stel je voor dat je verbinding moet maken met een apparaat met het IP-adres 91.206.179.207. Je kunt dit adres in de opdrachtregel invoeren om de benodigde informatie te krijgen, maar veel van zulke numerieke combinaties onthouden is erg lastig. Daarom zijn er speciale servers gemaakt die domeinnamen omzetten naar IP-adressen. Wanneer je bijvoorbeeld hostman.com in de zoekbalk van je browser invoert, worden de aanvraaggegevens naar een DNS-server gestuurd. Die zoekt in zijn database naar overeenkomsten, stuurt het juiste IP-adres terug naar je apparaat en pas daarna kan de browser de resource rechtstreeks benaderen.

Je eigen DNS configureren maakt een flexibelere en nauwkeurigere systeemconfiguratie mogelijk en voorkomt afhankelijkheid van derden. In dit artikel bekijken we hoe je DNS opzet met de BIND-nameserver op Ubuntu.

Begrippen

Zone: Een deel van de DNS-hiërarchie dat op een DNS-server wordt gehost. Het bepaalt de grenzen waarbinnen een specifieke server of groep servers verantwoordelijk is.

Rootservers: DNS-servers met informatie over top-level domains (.ru, .com, enz.).

Domein: Een benoemd deel van de DNS-hiërarchie, een specifieke node die andere nodes kan bevatten. DNS-adressen worden van rechts naar links gelezen en beginnen met een punt, waarbij domeinen ook door punten gescheiden zijn. Bijvoorbeeld: het domein poddomen.domen.ru moet worden gelezen als .ru.domen.poddomen. Meestal weerspiegelt de domeinnaam de DNS-hiërarchie, maar de laatste punt wordt weggelaten.

FQDN (Fully Qualified Domain Name): Een volledige domeinnaam inclusief alle bovenliggende domeinen.

Resource record: Een opslageenheid van informatie, in feite een record dat een naam koppelt aan service-informatie. Het bestaat uit:

  • Naam (NAME): De naam of het IP-adres dat eigenaar is van de zone

  • Time to Live (TTL): Hoelang een record in de DNS-cache blijft voordat het wordt verwijderd

  • Class (CLASS): Netwerktype, meestal IN (Internet)

  • Type (TYPE): Het doel van het record

  • Data (DATA): Aanvullende details

Veelvoorkomende resource records

A-record: Koppelt een hostnaam aan een IPv4-adres. Elke netwerkinterface kan maar één A-record hebben.

website.com.              520    IN     A      91.206.179.207

AAAA-record: Hetzelfde als een A-record, maar voor IPv6.

CNAME: Canonical name record, een alias voor een echte naam (doorverwijzing).

MX: Specificeert mailhosts voor het domein. Het NAME-veld bevat het bestemmingsdomein, het DATA-veld de prioriteit en host voor het ontvangen van mail.

website.com.             17790   IN      MX      10 mx.website.com.

website.com.             17790   IN      MX      20 mx2.website.com.

NS: Verwijst naar de DNS-server die het domein bedient.

PTR: Koppelt een IP-adres aan een domeinnaam (reverse lookup).

SOA: Beschrijft de belangrijkste zone-instellingen.

SRV: Bevat adressen van servers die interne domeindiensten leveren, zoals Jabber.

Vereisten

Om de instructies in dit artikel te volgen, heb je minstens twee Ubuntu-servers nodig in hetzelfde datacenter. Je kunt deze servers bij Hostman bestellen.

We hebben twee Ubuntu 20.04-servers nodig: een primaire en een secundaire DNS-server, respectievelijk ns1 en ns2. Daarnaast zijn er extra servers die onze geconfigureerde DNS-servers gebruiken.

Je moet op elke server superuserrechten hebben.

BIND installeren op DNS-servers

We gebruiken bind9 als DNS-server. Installeer het bind9-pakket uit de Linux-repository:

sudo apt update && sudo apt upgrade -y

sudo apt install bind9

Daarnaast is het aan te raden netwerktools te installeren:

sudo apt install dnsutils

Start daarna de bind9-service:

sudo service bind9 start

Het hoofdconfiguratiebestand van de server is /etc/bind/named.conf. Het beschrijft algemene instellingen en wordt meestal opgesplitst in meerdere bestanden.

named.conf.options

Dit bestand bevat de algemene serverparameters:

options {

        dnssec-validation auto;

        auth-nxdomain no;

        directory "/var/cache/bind";

        recursion no; # recursieve queries naar de nameserver uitschakelen

        listen-on {

                     172.16.0.0/16; 

                     127.0.0.0/8;    

        };

        forwarders { 

            172.16.0.1;

            8.8.8.8;  

        };

};

Controleer of alles correct is ingevoerd met named-checkconf:

sudo named-checkconf

Als alles klopt, kan de bind-server starten.

Primaire DNS-server

De primaire DNS-server bewaart de hoofdkopie van het zonebestand. Alle zones komen in de map /etc/bind/master-zones. Maak die aan:

sudo mkdir /etc/bind/master-zones

Maak een bestand aan voor de zone:

sudo touch /etc/bind/master-zones/test.example.com.local.zone

Voeg SOA-, NS- en A-records toe:

$ttl 3600 

$ORIGIN test.example.com. 

test.example.com.               IN              SOA  (      

ns.test.example.com.    

abuse.test.example.com.  

                                2022041201 

                                10800 

                                1200 

                                604800 

                                3600   ) 

@                               IN              NS              ns.test.example.com. 

@                               IN              NS              ns2.test.example.com.

 

@                               IN              A                172.16.101.3 

ns                              IN               A                172.16.0.5 

ns2                             IN              A                172.16.0.6

Controleer met named-checkzone:

sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.local.zone

named.conf.local

Dit is een extra bestand dat in de hoofdconfiguratie wordt ingeladen. Hier definiëren we lokale zones:

zone "test.example.com." {

                type master;

                file "/etc/bind/master-zones/test.example.com.local.zone";

};

Controleer de configuratie en herstart bind9 (de -z vlag controleert zonebestanden):

sudo named-checkconf

sudo named-checkconf -z

sudo service bind9 restart

sudo service bind9 status

Views instellen

Views maken het mogelijk om naamresolutie flexibel te beheren voor verschillende subnets. Zet dit in /etc/bind/named.conf:

include "/etc/bind/named.conf.options";

acl "local" { 172.16.0.0/16; };

view "local" {

                include "/etc/bind/named.conf.local";

                match-clients { local; };

};

Herstart daarna bind9:

sudo service bind9 restart

Na de herstart kun je vanaf een andere computer in het lokale netwerk de SOA-record opvragen van server 172.16.0.5:

dig @172.16.0.5 -t SOA test.example.com

De primaire DNS-server is nu klaar. De volgende secties behandelen de secundaire server, mailserver-instellingen en reverse zones.

Secundaire server

De eerste stappen zijn hetzelfde: bind9 en dnsutils installeren en starten.

Maak vervolgens de map /etc/bind/slave voor zonebestanden en geef de juiste permissies:

sudo mkdir /etc/bind/slave

sudo chmod g+w /etc/bind/slave

Voeg de zone toe in /etc/bind/named.conf.local:

zone "test.example.com." {

        type slave;

        file "/etc/bind/slave/test.example.com.local.zone";

        masters { 172.16.0.5; };

};

Views in named.conf:

include "/etc/bind/named.conf.options";

acl "local" { 172.16.0.0/16; };

view "local" {

        match-clients { local; };

        include "/etc/bind/named.conf.local";

};

Controleer en herstart:

sudo named-checkconf

sudo named-checkconf -z

sudo service bind9 restart

Zone transfer uitvoeren:

sudo rndc retransfer test.example.com

rndc retransfer forceert een zone transfer zonder serial-check. Belangrijk: verhoog de serial number altijd wanneer je het zonebestand wijzigt (bij voorkeur datum + increment).

Beperk daarna zone transfers op de primaire server met allow-transfer in de zoneconfig (named.conf):

zone "test.example.com." {

    type master;

    allow-transfer { 172.168.0.6; };

    file "/etc/bind/master-zones/test.example.com.local.zone";

};

Herstart:

sudo service bind9 restart

Vanaf hier voer je verdere wijzigingen uit op de primaire server.

Een MX-record toevoegen

We gebruiken in dit voorbeeld mx als hostnaam. De FQDN wordt mx.test.example.com.

  1. Voeg MX-records toe aan /etc/bind/master-zones/test.example.com.local.zone:

@   IN  MX  10 mx.test.example.com.

@   IN  MX  20 mx2.test.example.com.

  1. Werk de serial number in het SOA-record bij:

$TTL 3600

@   IN  SOA ns.test.example.com. admin.test.example.com. (

        2024071101  ; Serial number

        10800       ; Refresh

        1200        ; Retry

        604800      ; Expire

        3600        ; Minimum TTL

)

  1. Controleer de zonefile:

sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.local.zone

  1. Herlaad BIND:

sudo service bind9 reload

Reverse DNS instellen

Reverse DNS zet IP-adressen om naar domeinnamen.

Voorbeeld: 192.168.1.10 wordt 10.1.168.192.in-addr.arpa.

Maak een reverse zonefile:

sudo nano /etc/bind/master-zones/16.172.in-addr.arpa.zone

Voeg data toe:

$TTL    3600 

16.172.in-addr.arpa.            IN      SOA  ( 

ns.test.example.com. 

admin.test.example.com. 

                                2022041202 

                                10800 

                                1200 

                                604800 

                                3600  )

                                IN      NS            ns.test.example.com. 

                                IN      NS           ns2.test.example.com. 

 

3.101.16.172.in-addr.arpa.      IN      PTR              test.example.com. 

5.0.16.172.in-addr.arpa.        IN      PTR           ns.test.example.com. 

6.0.16.172.in-addr.arpa.        IN      PTR          ns2.test.example.com. 

2.101.16.172.in-addr.arpa.      IN      PTR         mail.test.example.com.

Controleer:

sudo named-checkzone 16.172.in-addr.arpa /etc/bind/master-zones/16.172.in-addr.arpa.zone

Voeg in named.conf.local toe:

zone "16.172.in-addr.arpa." {

                type master;

                file "/etc/bind/master-zones/16.172.in-addr.arpa.zone";

                allow-transfer { 172.16.0.6; };

        };

Herstart:

sudo named-checkconf

sudo named-checkconf -z

sudo service bind9 restart

Test met dig:

dig @172.16.0.5 -x 172.16.0.5

Op de secundaire server voeg je in named.conf.local toe:

zone "16.172.in-addr.arpa." { 

    type slave; 

    file "/etc/bind/slave/16.172.in-addr.arpa.zone"; 

    masters { 172.16.0.5; }; 

};

Externe domeinzone

Om queries van buitenaf te verwerken, voeg je het externe IP toe aan listen-on in named.conf.options:

listen-on {

    aaa.bbb.ccc.ddd/32; # ons externe IP

    172.16.0.0;

    127.0.0.0/8

}

Maak de zonefile aan (serial number aanpassen!):

sudo nano /etc/bind/master-zones/test.example.com.zone

Inhoud:

$TTL 3600

$ORIGIN test.example.com.

test.example.com. IN SOA  (     

    ns.test.example.com.

    admin.test.example.com.

                                2022041205

                                10800

                                1200

                                604800

                                3600   )

@ IN NS ns.test.example.com.

@ IN NS ns2.test.example.com.

@ IN A aaa.bbb.ccc.ddd

ns IN A aaa.bbb.ccc.ddd

ns2  IN A eee.fff.ggg.hhh

Maak een apart bestand voor externe view zones:

sudo nano /etc/bind/named.conf.external

zone "test.example.com." { 

    type master; 

    file "/etc/bind/master-zones/test.example.com.zone";

    allow-transfer { 172.16.0.6; };

};

Voeg in named.conf toe:

acl "external-view" { aaa.bbb.ccc.ddd; };

view "external-view" {

    recursion no;

    match-clients { external-view; };

    include "/etc/bind/named.conf.external";

};

Controleer en herstart:

sudo named-checkconf -z

sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.zone

sudo service bind9 restart

sudo service bind9 status

Op de secundaire server zet je in named.conf.options het externe adres bij listen-on, maak je een named.conf.external aan met slave-zone en voer je transfer uit:

sudo rndc retransfer test.example.com IN external-view

Debugging

Bij DNS-setup is logging erg belangrijk. BIND9 kan uitgebreide logging-configuraties aan.

Maak log.conf:

sudo nano /etc/bind/log.conf

Inhoud:

logging {

    channel bind.log {

        file "/var/lib/bind/bind.log" versions 10 size 20m;

        severity debug;

        print-category yes;

        print-severity yes;

        print-time yes;

    };

    category queries { bind.log; };

    category default { bind.log; };

    category config { bind.log; };

};

Include in hoofdconfig:

include "/etc/bind/log.conf";

Herstart:

sudo service bind9 restart

Conclusie

In deze gids hebben we DNS geconfigureerd op een Ubuntu-server met het bind9-pakket. Na het volgen van de stappen kunnen de twee DNS-servers worden gebruikt voor naamresolutie in het netwerk. Om de custom DNS-servers te gebruiken, configureer je je andere servers om 172.16.0.5 en 172.16.0.6 als DNS-servers te gebruiken.

Deze setup kan dienen als basis voor verdere uitbreidingen, zoals het opzetten van een mailserver.

Ubuntu-systeem
17.02.2026
Reading time: 16 min

Vergelijkbaar

Docker-platform

Docker Compose installeren op Ubuntu: complete handleiding

Docker Compose heeft de manier waarop ontwikkelaars containerized applicaties benaderen fundamenteel veranderd, vooral wanneer meerdere onderling afhankelijke services moeten worden gecoördineerd. Deze tool vervangt handmatig containerbeheer door een gestructureerde, YAML-gestuurde workflow, waarmee teams volledige applicatie-architecturen in één configuratiebestand kunnen definiëren. Voor Ubuntu-omgevingen betekent dit reproduceerbare deployments, eenvoudiger schalen en minder operationele overhead. Deze handleiding biedt een frisse kijk op de installatie en het gebruik van Docker Compose en geeft diepere inzichten in de praktische implementatie. Vereisten Voordat je met deze tutorial begint, moet het volgende zijn geregeld: Implementeer een Ubuntu cloud server-instance bij Hostman. Zorg dat je een gebruikersaccount hebt met sudo-rechten of root-toegang, zodat je pakketten kunt installeren en Docker kunt beheren. Docker moet geïnstalleerd zijn en actief draaien op de server, aangezien Docker Compose bovenop de Docker Engine werkt. Waarom Docker Compose belangrijk is Moderne applicaties bestaan vaak uit meerdere onderling verbonden componenten, zoals API’s, databases en caching-lagen. Het afzonderlijk beheren van deze onderdelen met Docker-commando’s wordt al snel omslachtig naarmate de complexiteit toeneemt. Docker Compose lost dit op door alle services, netwerken en opslagvereisten te declareren in één docker-compose.yml-bestand. Deze aanpak zorgt voor consistentie tussen omgevingen—of je nu lokaal op een Ubuntu-machine werkt of op een cloudserver. Neem bijvoorbeeld een webapplicatie met een Node.js-backend, een PostgreSQL-database en een Redis-cache. Zonder Docker Compose vereist elk onderdeel een aparte docker run-opdracht met nauwkeurige netwerkparameters. Met Compose worden deze relaties één keer vastgelegd, waardoor je de applicatie met één enkele opdracht kunt starten en stoppen. Docker Compose installeren Volg deze stappen om Docker Compose op je Ubuntu-systeem te installeren. Stap 1: Controleren of Docker is geïnstalleerd en actief is Docker Compose functioneert als een uitbreiding van Docker, dus controleer eerst de status: sudo systemctl status docker Als de service niet actief is, start deze met: sudo systemctl start docker Stap 2: Systeempakketten bijwerken Werk de pakketlijsten bij om toegang te krijgen tot de nieuwste softwareversies: sudo apt-get update Stap 3: Basis-hulpprogramma’s installeren Voor veilige communicatie met de Docker-repositories zijn deze pakketten vereist: sudo apt-get install ca-certificates curl Stap 4: Docker GPG-sleutel configureren Authenticeer Docker-pakketten door de cryptografische sleutel toe te voegen: sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc Deze stap zorgt ervoor dat pakketten tijdens het transport niet zijn gewijzigd. Stap 5: Docker-repository toevoegen Voeg het Docker-repository toe dat past bij jouw Ubuntu-versie: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Het commando detecteert automatisch de juiste Ubuntu-versie via VERSION_CODENAME. Stap 6: Docker Compose-plugin installeren Werk de repositories bij en installeer de Compose-extensie: sudo apt update sudo apt-get install docker-compose-plugin Stap 7: Installatie verifiëren Controleer of Docker Compose correct is geïnstalleerd: docker compose version Voorbeeldoutput: Docker Compose version v2.33.0 Een praktisch Docker Compose-project opzetten We implementeren een eenvoudige webserver met Nginx om de mogelijkheden van Docker Compose te demonstreren. 1. Projectmap initialiseren Maak een aparte werkmap aan: mkdir ~/compose-demo && cd ~/compose-demo 2. Services definiëren in docker-compose.yml Maak het configuratiebestand aan: nano docker-compose.yml Voeg de volgende inhoud toe: services:   web:     image: nginx:alpine     ports:       - "8080:80"     volumes:       - ./app:/usr/share/nginx/html Uitleg: services: Hoofdelement waarin containers worden gedefinieerd web: Aangepaste servicenaam image: Alpine-gebaseerde Nginx-image met een kleine footprint ports: Koppelt hostpoort 8080 aan containerpoort 80 volumes: Synchroniseert de lokale app-map met de webroot van de container 3. Webinhoud aanmaken Maak de HTML-structuur: mkdir app nano app/index.html Voeg deze HTML toe: <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <title>Docker Compose Test</title> </head> <body>   <h1>Hello from Docker Compose!</h1> </body> </html> Containers orkestreren: van start tot afsluiten 1. Services starten in de achtergrond docker compose up -d Docker Compose downloadt automatisch de Nginx-image indien nodig en configureert het netwerk. 2. Containerstatus controleren docker compose ps -a 3. Webapplicatie openen Ga lokaal naar http://localhost:8080 of op een externe server naar http://<SERVER_IP>:8080. De testpagina zou zichtbaar moeten zijn. 4. Problemen analyseren via logs Bij problemen kun je de logs bekijken: docker compose logs web 5. Netjes stoppen en opruimen Containers tijdelijk stoppen: docker compose stop Alle projectresources verwijderen: docker compose down Commandoreferentie: meer dan de basis Deze commando’s breiden het containerbeheer verder uit: docker compose up --build – Images opnieuw bouwen vóór het starten docker compose pause – Containers pauzeren zonder ze te beëindigen docker compose top – Actieve processen in containers tonen docker compose config – De samengestelde configuratie valideren en bekijken docker compose exec – Commando’s uitvoeren in actieve containers(bijv. docker compose exec web nginx -t om de Nginx-configuratie te testen) Conclusie Docker Compose maakt van multi-container-orkestratie een gestroomlijnd en herhaalbaar proces in plaats van een handmatige en foutgevoelige taak. Door Docker Compose te installeren, services in YAML te definiëren en de essentiële commando’s te gebruiken, kun je complexe applicaties met vertrouwen beheren.
14 January 2026 · 6 min to read
PHP-scripttaal

Hoe PHP en PHP-FPM te installeren op Ubuntu 24.04

In deze handleiding leggen we uit hoe je PHP en PHP-FPM installeert op Ubuntu 24.04. PHP, wat staat voor Hypertext Preprocessor, is een veelgebruikte open-source programmeertaal die vooral wordt ingezet voor webontwikkeling. PHP-FPM is de aanbevolen FastCGI-implementatie voor PHP, bijzonder geschikt voor websites met veel verkeer. Aan het einde van deze gids draait PHP correct op je server. Bekijk eerst onze instructies over het opzetten van een server met Ubuntu. Vereisten Zorg ervoor dat je beschikt over: Ubuntu 24.04 LTS geïnstalleerd op de server Een gebruikersaccount met sudo-rechten Basiskennis van het werken met de command-line Een stabiele internetverbinding om pakketten te downloaden Werk het systeem bij met de volgende commando's: sudo apt updatesudo apt upgrade Apache installeren Installeer de Apache-webserver: sudo apt install apache2 PHP installeren Begin met het installeren van PHP op Ubuntu 24.04. Open een terminal en voer uit: sudo apt install php Dit installeert de basis PHP-pakketten, inclusief de command-line interface en standaardbibliotheken. Controleer de installatie: php -v PHP-extensies installeren Extensies breiden PHP uit met extra functionaliteit. Installeer populaire extensies met: sudo apt install php-curl php-mbstring php-xml Korte uitleg: php-mysql: verbinding met MySQL-databases php-gd: afbeeldingsmanipulatie php-curl: communicatie met andere servers php-mbstring: ondersteuning voor multibyte strings php-xml: ondersteuning voor XML php-zip: ondersteuning voor ZIP-bestanden Voor extra extensies zoek je met: apt-cache search php- PHP-FPM installeren en configureren PHP-FPM is essentieel voor websites met veel verkeer. Volg deze stappen om het te installeren en configureren: Installeer het pakket: sudo apt install php-fpm Start de PHP-FPM-service. De versienummers kunnen variëren afhankelijk van je installatie: sudo systemctl start php8.3-fpm Zorg dat PHP-FPM automatisch start bij het opstarten: sudo systemctl enable php8.3-fpm Controleer of PHP-FPM actief is: systemctl status php8.3-fpm Als alles goed werkt, zie je in de uitvoer de status "Active (running)". PHP en PHP-FPM testen Om zeker te zijn dat PHP en PHP-FPM correct werken, maak je een testbestand aan en laat je dit serveren via de webserver. In dit voorbeeld gebruiken we Apache: Genereer een PHP-info bestand. Om PHP-instellingen weer te geven via de functie phpinfo(), voer je het volgende uit: mkdir -p /var/www/htmlecho "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php Stel Apache in voor PHP-FPM. Zorg dat Apache compatibel is met PHP-FPM door het configuratiebestand aan te passen (meestal: /etc/apache2/sites-available/000-default.conf) en voeg het volgende toe: <FilesMatch \.php$>   SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/"</FilesMatch> Let op: pas de PHP-versie en het socketpad aan volgens je installatie. Activeer PHP en PHP-FPM met deze instructies: sudo apt install libapache2-mod-phpsudo a2enmod proxy_fcgi setenvif Herstart Apache om de wijzigingen toe te passen: sudo systemctl restart apache2 Open vervolgens je browser en ga naar: http://[server_ip]/info.php Vervang [server_ip] door het IP-adres of domein van je server. Je ziet dan de details van je PHP-installatie. Meerdere PHP-versies installeren Voor bepaalde projecten moet je mogelijk verschillende applicaties draaien, die elk andere functionaliteiten vereisen. Zo beheer en gebruik je meerdere PHP-versies op Ubuntu 24.04: Voeg eerst de PHP-repository toe: sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/php && sudo apt update Installeer de PHP-versies die je nodig hebt: sudo apt install php8.1 php8.1-fpm Kies welke PHP-versie actief moet zijn: sudo update-alternatives --set php /usr/bin/php8.1 Als je meerdere PHP-versies gebruikt, zorg er dan voor dat je webserver verwijst naar de juiste PHP-FPM-socket. PHP en PHP-FPM beveiligen: Best practices 1. Houd PHP en PHP-FPM up-to-date Zorg ervoor dat je regelmatig controleert op updates en deze toepast zodra ze beschikbaar zijn. Zo voorkom je bekende beveiligingslekken en houd je je systeem veilig. 2. Configureer PHP veilig Schakel onnodige en mogelijk gevaarlijke functies uit in het php.ini-bestand, zoals exec, shell_exec en eval. Gebruik de open_basedir-richtlijn om toegang van PHP tot bepaalde directories te beperken. Zet display_errors uit in productieomgevingen om foutmeldingen niet aan gebruikers te tonen. Beperk de maximale bestandsgrootte voor uploads en stel grenzen aan de uitvoeringstijd van scripts. Laat PHP draaien onder een apart, beperkt gebruikersaccount om escalatie van rechten te voorkomen. Werk PHP regelmatig bij naar de nieuwste stabiele versie. 3. Gebruik veilige foutafhandeling In ontwikkelomgevingen is het nuttig om fouten te tonen, maar in productie moeten foutmeldingen worden verborgen. Zet display_errors uit en log_errors aan zodat fouten veilig worden gelogd zonder informatie aan gebruikers prijs te geven. 4. Valideer invoer correct Controleer alle gebruikersinvoer zorgvuldig. Gebruik prepared statements bij databasequeries om SQL-injecties te voorkomen en zorg ervoor dat alleen verwachte invoer wordt geaccepteerd. 5. Beveilig de PHP-FPM-configuratie Laat PHP-FPM draaien onder een speciaal, beperkt gebruikersaccount. Beperk toegang tot de socket of poort van PHP-FPM zodat alleen je webapplicatie verbinding kan maken. 6. Schakel open_basedir in Gebruik de open_basedir-instelling om te voorkomen dat PHP toegang krijgt tot directories buiten de opgegeven paden. Hiermee voorkom je dat gevoelige gegevens worden blootgesteld via verkeerde requests. 7. Gebruik HTTPS Beveilig alle communicatie via HTTPS om man-in-the-middle-aanvallen en andere bedreigingen te voorkomen. Dwing HTTPS af op alle pagina’s van je applicatie. Conclusie Met deze handleiding heb je PHP en PHP-FPM succesvol geïnstalleerd op Ubuntu 24.04. Je server is nu gereed om dynamische webapplicaties te draaien. Vergeet niet om je systeem en pakketten regelmatig bij te werken om de prestaties en veiligheid te waarborgen. Als je deze instructie nuttig vond, bekijk dan zeker ook onze Cloud Servers om je cloudworkflow te versnellen!
10 July 2025 · 5 min to read
Ubuntu-systeem

VNC installeren op Ubuntu

Als je grafisch met een externe server wilt werken, kun je VNC-technologie gebruiken. VNC (Virtual Network Computing) stelt gebruikers in staat om op afstand verbinding te maken met een server via het netwerk. Het werkt met een client-server-architectuur en gebruikt het RFB-protocol om schermbeelden en invoergegevens (toetsenbord en muis) over te dragen. VNC ondersteunt verschillende besturingssystemen, waaronder Ubuntu, Windows, macOS en anderen. Een bijkomend voordeel is dat meerdere gebruikers tegelijkertijd verbinding kunnen maken, wat handig is voor samenwerking of training. In deze gids leggen we uit hoe je VNC installeert op Ubuntu met als voorbeeld een Hostman-cloudserver met Ubuntu 22.04. Stap 1: Voorbereiding op installatie Voordat je begint met de installatie op zowel de server als de lokale machine, zijn er een paar vereisten die je moet doornemen. Hier is een overzicht van wat je nodig hebt om de installatie te voltooien: Een server met Ubuntu 22.04. In deze gids gebruiken we een Hostman-cloudserver met een minimale hardwareconfiguratie. Een gebruiker met sudo-rechten. De installatie moet worden uitgevoerd door een gewone gebruiker met beheerdersrechten. Een grafische desktopomgeving naar keuze. Je moet een desktopomgeving kiezen waarmee je na de installatie met de server op afstand kunt werken. Een computer met een VNC-client geïnstalleerd. Momenteel kun je alleen via de console met een Ubuntu 22.04-server werken. Voor een grafische interface op afstand moet je zowel een desktopomgeving als een VNC-server installeren. Hier zijn enkele opties. VNC-servers: TightVNC Server. Een van de populairste keuzes voor Ubuntu. Eenvoudig te configureren en snel. RealVNC Server. Een commerciële oplossing voor toegang tot Linux-servers, waaronder Ubuntu, Debian, Fedora, Arch Linux en meer. Desktopomgevingen: Xfce. Lichtgewicht en snel. Ideaal voor VNC-sessies. Verbruikt minder bronnen dan zwaardere omgevingen. Perfect voor servers en virtuele machines. GNOME. De standaard desktopomgeving van Ubuntu, met een moderne en gebruiksvriendelijke interface. Werkt met VNC, maar verbruikt meer bronnen dan Xfce. KDE Plasma. Een populaire omgeving met veel functies en een mooie interface. De keuze hangt af van je behoeften en beschikbare bronnen. TightVNC en Xfce zijn uitstekende opties voor stabiele sessies met een laag verbruik. In de volgende stap leggen we uit hoe je deze installeert. Stap 2: Desktopomgeving en VNC-server installeren Log in op je server met een gebruiker die sudo-rechten heeft. Werk de pakketlijst bij Na het inloggen voer je dit commando uit om de lijst met pakketten uit de verbonden repositories bij te werken. sudo apt update Installeer de desktopomgeving sudo apt install xfce4 xfce4-goodies Het eerste pakket bevat de basisomgeving van Xfce. Het tweede voegt optionele toepassingen en plugins toe. Installeer TightVNC Server sudo apt install tightvncserver Start de VNC-server vncserver Dit commando start een nieuwe VNC-sessie met een specifiek sessienummer zoals :1 (voor poort 5901), :2 (voor poort 5902), enzovoort. Elk sessienummer komt overeen met een displaypoort. Hierdoor kunnen meerdere VNC-sessies tegelijkertijd draaien op dezelfde machine. Tijdens de eerste keer opstarten zal het systeem je vragen om een wachtwoord in te stellen. Dit wachtwoord is nodig om verbinding te maken met de grafische gebruikersinterface van de server. View-only wachtwoord instellen (optioneel) Na het instellen van het hoofdwachtwoord kun je ervoor kiezen een view-only wachtwoord in te stellen. Dit is handig voor demonstraties of situaties waarin je anderen alleen leesrechten wilt geven zonder controle over de sessie. Wachtwoorden aanpassen kan later met: vncpasswd Je hebt nu een actieve VNC-sessie.  In de volgende stap configureren we VNC om automatisch de juiste desktopomgeving te starten. Stap 3: VNC configureren Stop actieve sessies vncserver -kill :1 In dit voorbeeld stoppen we sessie :1, die overeenkomt met poort 5901. Maak een back-up van het configuratiebestand Het is goed om een back-up te maken voordat je wijzigingen aanbrengt. mv ~/.vnc/xstartup ~/.vnc/xstartup.bak Bewerk het configuratiebestand nano ~/.vnc/xstartup Vervang de inhoud met het volgende: #!/bin/bashxrdb $HOME/.Xresourcesstartxfce4 & #!/bin/bash: deze regel (de "shebang") geeft aan dat het script wordt uitgevoerd met de Bash-shell. xrdb $HOME/.Xresources: laadt gebruikersinstellingen zoals kleuren, lettertypen en muiscursorinstellingen. startxfce4 &: start de Xfce-desktopomgeving op de server. Maak het configuratiebestand uitvoerbaar chmod +x ~/.vnc/xstartup Start VNC met localhost-beperking vncserver -localhost De optie -localhost beperkt de toegang tot de server zelf. Je kunt nog steeds verbinden vanaf je lokale computer via een SSH-tunnel. Deze verbindingen worden als lokaal beschouwd door de VNC-server. De VNC-configuratie is nu voltooid. Stap 4: VNC-client installeren en verbinden We installeren een VNC-client op Windows 11. Populaire VNC-clients: RealVNC Viewer. De officiële client van RealVNC, compatibel met Windows, macOS en Linux. TightVNC Viewer. Een gratis en eenvoudige VNC-client voor Windows en Linux. UltraVNC. Nog een gratis VNC-client voor Windows met geavanceerde functies voor beheer op afstand. Voor deze handleiding gebruiken we de gratis TightVNC Viewer. TightVNC Viewer downloaden en installeren Bezoek de officiële TightVNC-website, download het installatieprogramma en voer het uit. Klik op "Next" en accepteer de licentieovereenkomst. Kies de aangepaste installatiemodus en schakel de installatie van de VNC-servercomponent uit. Klik tweemaal op "Next" en voltooi de installatie van de VNC-client op je lokale computer. Een SSH-tunnel instellen voor een beveiligde verbinding Om je verbinding met de VNC-server te versleutelen, gebruik je SSH om een beveiligde tunnel op te zetten. Open PowerShell op je Windows 11-computer en voer het volgende commando uit: ssh -L 56789:localhost:5901 -C -N -l gebruikersnaam server_ip_adres Zorg ervoor dat OpenSSH op je lokale machine is geïnstalleerd. Raadpleeg zo nodig de documentatie van Microsoft om dit te installeren. Dit commando stelt een SSH-tunnel in die je verbinding van je lokale computer naar de externe server omleidt via een beveiligd kanaal. Hierdoor denkt de VNC-server dat de verbinding van de server zelf komt. Toelichting op de gebruikte opties: -L configureert SSH-port forwarding door poort 56789 van de lokale computer door te sturen naar poort 5901 op de server. Deze poort is gekozen omdat ze niet bezet is door andere diensten. -C schakelt compressie in, waardoor gegevens sneller over SSH worden verzonden. -N geeft aan dat er na het tot stand brengen van de verbinding geen verdere commando’s worden uitgevoerd. -l geeft de gebruikersnaam op waarmee je verbinding maakt met de server. Verbinding maken met TightVNC Viewer Na het maken van de SSH-tunnel open je TightVNC Viewer en voer je in het veld voor de verbinding het volgende in: localhost:56789 Je wordt gevraagd het wachtwoord in te voeren dat je tijdens de initiële configuratie van de VNC-server hebt ingesteld. Na het invoeren van het wachtwoord wordt je verbonden met de VNC-server en verschijnt de Xfce-desktopomgeving. De SSH-tunnel sluiten Ga terug naar PowerShell of de opdrachtregel op je lokale machine en druk op CTRL+C om de tunnel te sluiten. Conclusie In deze gids heb je stap voor stap geleerd hoe je VNC installeert op Ubuntu 22.04. We gebruikten TightVNC Server als de VNC-server, TightVNC Viewer als client en Xfce als desktopomgeving voor de interactie met de server. We hopen dat VNC-technologie het beheer van je server eenvoudiger en efficiënter maakt. Heb je problemen met het opzetten van een Ubuntu-server? Bekijk dan onze gedetailleerde instructie op Hostman.
10 July 2025 · 7 min to read

Heb je vragen,
opmerkingen of zorgen?

Onze professionals staan altijd klaar om je te helpen,
of je nu hulp nodig hebt of gewoon niet weet waar te beginnen
E-mail ons
Hostman's Support