Nu we alle voorbereidingen getroffen hebben wordt het tijd om de server te gaan opzetten. Dit houd in dat we het Linux Operating Systeem gaan installeren en klaar maken voor ons gebruik. Omdat de server sowieso altijd aan staat installeren we ook de Dynu IP Update Client op de server zodat onze Dynamic DNS registratie up to date blijft.
Om Linux te installeren op de serverlaptop gebruiken we een USB stick om van te starten, maar eerst moeten we uiteraard de benodigde software downloaden. Ik ga er bij de beschrijving vanuit dat je een PC met Windows ter beschikking hebt om dit te doen.
De software downloaden.
Ubuntu Server 20.04 LTS.
Als eerste gaan we het ISO bestand voor de installatie van Ubuntu Server downloaden. We downloaden altijd een LTS versie. LTS staat voor “Long Term Support”. Op het moment van schrijven was dit Ubuntu Server 20.04 LTS. Je kunt het ISO bestand downloaden van https://ubuntu.com/download/server. Kies op deze pagina voor “manual installation” en download Ubuntu Server 20.04 LTS.
Win32Diskimager versie 1.0.0.
De software die we gebruiken om de bootable USB stick te maken is Win32DiskImager. Je kunt een installer downloaden en de software op je PC installeren maar dat is niet echt nodig. Je kunt ook de z.g. binary release downloaden. Dat is een ZIP bestand dat je kan uitpakken waarna je de software kan gebruiken zonder dat je het hoeft te installeren. Je kan de binary release downloaden van:
https://sourceforge.net/projects/win32diskimager/files/Archive/Win32DiskImager-1.0.0-binary.zip/download.
De installer kun je downloaden van:
https://sourceforge.net/projects/win32diskimager/files/Archive/win32diskimager-1.0.0-install.exe/download.
HDD Low Level Format 4.40.
Een andere handige tool om bij de hand te hebben is HDD Low Level Format. Hiermee kan je altijd de USB stick (of iedere andere opslag) terug brengen naar de fabrieks-nieuwe situatie. Ook hier kun je weer, behalve een installer, een zip bestand met de stand-alone executable downloaden.
Je kunt de installer downloaden van:
https://hddguru.com/software/HDD-LLF-Low-Level-Format-Tool/HDDLLFsetup.4.40.exe
De stand-alone executable kun je downloaden van:
https://hddguru.com/software/HDD-LLF-Low-Level-Format-Tool/HDDLLF.4.40.exe.
De bootable USB stick schrijven.
Volg de volgende stappen om de USB stick te beschrijven:
- Plaats een lege USB stick in een vrije USB poort.
Het kan zijn dat je bij het plaatsen van de USB stick een mededeling zoals hieronder krijgt dat hij geformatteerd moet worden. Deze mededeling kun je negeren.
- Pak het ZIP bestand van Win32DiskImager uit, en dubbelklik op Win32DiskImager.exe.
- Selecteer de USB stick als doel apparaat en het eerder gedownloade ISO bestand als image bestand.
Als je het ISO bestand niet kan vinden om het te selecteren moet je in de drop-down box rechts-onder in het selectiescherm *.* selecteren (zie eerste screenshot hieronder) - Selecteer het ISO bestand dat je eerder hebt ge-download, selecteer de USB stick als doel apparaat en klik op “Schrijven”.Er verschijnt nu een waarschuwing zoals in het middelste plaatje hieronder. Klik Ja om door te gaan.
- Als het schrijven gelukt is kan het programma worden gesloten en de USB stick veilig worden verwijderd.
Wat als het schrijven van de USB stick niet lukt
Als je je USB stick al eens gebruikt hebt als opstartschijf om je computer van op te starten wil het nog wel eens voorkomen dat Windows de USB stick niet (goed) meer herkent en je er niet veel meer mee kan doen. In dat soort gevallen kun je het beste de USB stick helemaal leeg maken en ook de partitietabel te wissen. De USB stick is dan weer helemaal "schoon" en als nieuw. Hiervoor kun je de HDD Low Level Format Tool gebruiken. Hieronder staat hoe je dat doet.
- Steek de USB stick in een vrije USB poort van je computer.
- Als je de stand-alone executable hebt ge-download, dubbelklik dan op HDDLLF4.40.exe.
- Klik in het eerste scherm op de "Continue for free" button.
- Selecteer het juiste opslag apparaat, (je USB stick) en klik op de "Continue >>>" button. Zorg dat je je niet vergist, want het apparaat dat je hier selecteert gaat volledig gewist worden.
- Selecteer de middelste tab (LOW-LEVEL FORMAT), zet een vinkje bij de optie "Perform quick wipe" en klik op de "FORMAT THIS DEVICE" button.
- Er verschijnt nu een waarschuwing dat alle data zal worden gewist, en de vraag of je er absoluut zeker van bent dat je door wil gaan. Klik hier op de "Yes" button om door te gaan.
- Binnen een seconde zijn de partitietabel en het Master Boot Record van de USB stick gewist. Hij is nu weer "fabrieksnieuw".
Nadat je deze USB stick hebt gebruikt om het Linux Operating Systeem te installeren kun je hem daarna op deze manier ook weer klaarmaken voor normaal gebruik.
Het Ubuntu Server operating systeem installeren.
Hieronder de stappen om Ubuntu Server 20.04 te installeren.
- Plaats de USB stick in een USB poort van de laptop en start de laptop van de USB stick.
LET OP: Je kunt binnen de Linux machine geen gebruik maken van je muis.
Gebruik de cursor toetsen en de Tab toetsen om velden te selecteren.
Als het een checkbox is, is hij aangevinkt als er een X in staat.
Gebruik de spatiebalk om zo’n veld aan- of uit- te zetten. - Laat in het eerste scherm English geselecteerd staan en geef Enter.
- In het volgende scherm wordt aangegeven dat er een nieuwe installer beschikbaar is.
Selecteer onder in het scherm m.b.v. de cursor toetsen Update to the new installer en geef Enter. De nieuwe installer wordt nu opgehaald en wordt verder gebruikt.
- Vervolgens verschijnt het keyboard configuration scherm. Selecteer English (US) als layout en English (US) – English (US, Intl., with dead keys) als variant. Selecteer vervolgens onder in het scherm Done en geef Enter.
- In het Network connections scherm moet de IP configuratie worden veranderd van DHCP Client naar een fixed IP adres.
- Selecteer ens5 en geef Enter. (Afhankelijk van de hardware kan er een andere naam staan)
- Selecteer Edit IPv4 en geef Enter.
- Verander IPv4 Method naar Manual en geef Enter.
- Vul de adres gegevens in zoals die in jouw thuis netwerk nodig zijn. In mijn geval is dit:
Subnet: 192.168.1.0/24
Address: 192.168.1.10
Gateway: 192.168.1.1
Name servers: 8.8.8.8,8.8.4.4
Search domains: thuis.net (De domeinnaam zoals we die thuis in huis hebben.) - Selecteer Save en geef Enter. Je komt nu weer terug in het Network connections scherm. Onder ens5 eth staat nu static 192.168.1.10/24.
- Selecteer Done en geef Enter.
- Laat in het volgende scherm het Proxy address leeg, selecteer Done en geef Enter.
- Laat in het daaraanvolgende scherm de standaard waarde staan, selecteer Done en geef Enter.
- Je komt nu in het Guided storage configuration scherm.
- Selecteer (X) Use an entire disk.
- Laat alle andere opties ge-deselecteerd staan.
- Selecteer Done en geef Enter.
- Je komt nu in het Storage configuration scherm dat er, als het goed is, uitziet zoals het middelste plaatje hieronder. Selecteer Done en geef Enter.
- Je moet vervolgens de keuzes bevestigen. Selecteer Continue en geef Enter.
- Je komt nu in het Profile setup scherm. Geef de volgende waardes in:
Your name: <volledige naam, b.v. Jan Pietersen, of Beheerder>
Your server’s name: webserver
Pick a username: <login naam, b.v. jan, of beheerder>
Choose a password: <wachtwoord>
Confirm your password: <wachtwoord>
Selecteer Done en geef Enter. - Je komt nu in het SSH Setup scherm.
Selecteer [x] Install OpenSSH server, selecteer vervolgens Done en geef Enter. - Selecteer niets in het Featured Server Snaps scherm, maar tab naar Done en geef Enter.
- De installatie gaat van start. Na de initiële installatie controleert de installer of er nog security updates beschikbaar zijn. Als dit het geval is worden deze ook geïnstalleerd.
- Selecteer, wanneer de installatie gereed is, “Reboot” om de server te herstarten.
Tijdens de herstart wordt gevraagd om het installatie medium te verwijderen. Je kan op dat moment de USB stick verwijderen. Omdat dit de allereerste keer is dat de server opstart worden er eerst nog een aantal zaken gedaan, zoals het genereren van fingerprints voor SSH, enz. Hierdoor loopt er wat warrige output over je scherm waardoor de login prompt verdwijnt. Als je gewoon Enter geeft komt de login prompt weer onderaan het scherm tevoorschijn.
Updates uitvoeren en net-tools installeren.
Nadat de serverlaptop weer is opgestart melden we aan met de gebruikersnaam en wachtwoord die tijdens de installatie zijn aangemaakt. Je kunt dit aan de laptop zelf doen, maar je kunt ook PuTTY gebruiken om m.b.v. SSH te verbinden naar het IP adres van de server laptop. Na het aanmelden gaan we eerst alle updates installeren.
Om ervoor te zorgen dat we deze commando’s als de root gebruiker uitvoeren geven we het commando:
sudo su
Hierbij moet je weer je wachtwoord ingeven.
De eerste stap is om te kijken welke updates beschikbaar zijn. Dat gaat met het commando:
apt update
Dit commando haalt een aantal lijsten met beschikbare updates op en kijkt welke daarvan voor onze server van toepassing zijn.
Vervolgens kunnen we de updates ook installeren met het commando:
apt upgrade
Dit commando toont eerst welke updates geïnstalleerd gaan worden. Je moet bevestigen dat je dat wilt door y in te geven. Eventueel kun je deze bevestiging ook meteen op de commando regel opgeven. Het commando wordt dan:
apt upgrade -y
Ook is het bij Linux mogelijk om meerdere commando’s in één keer op te geven. We zouden ook die twee commando’s voor het installeren van updates als volgt in één keer kunnen geven:
apt update && apt upgrade -y
Alle beschikbare updates worden dan geïnstalleerd, dus: “Sit back and watch the show”.
Nadat de updates zijn geïnstalleerd gaan we ook nog even het net-tools pakket installeren. Dat gaat ook met de apt packet manager met het commando:
apt install net-tools
Overige instellingen in orde maken
Vervolgens zijn er een aantal instellingen die we in orde moeten maken. Dit doen we door een aantal configuratie bestanden aan te passen. De echte Linux die-hards gebruiken hiervoor de tekstverwerker vi. Die is in vrijwel alle Linux distributies aanwezig, maar veel beginnende Linux gebruikers vinden hem intimiderend complex. Gelukkig heeft Ubuntu ook de tekstverwerken nano aan boord, en die is al een heel stuk makkelijker te gebruiken.
De nano tekstverwerker.
We starten deze tekstverwerker door op de opdrachtregel het woord nano in te geven, gevolgd door de naam van het bestand dat we willen bewerken, dus bijvoorbeeld:
nano /etc/hosts
Dit opent het ‘hosts’ bestand in de folder ‘/etc/’. Mocht het bestand niet bestaan, dan opent nano een nieuw leeg bestand. Je navigeert door nano met je cursor toetsen (je hebt immers geen muis ter beschikking). Je beëindigt nano door de Control toets ingedrukt te houden en x in te toetsen. Als je wijzigingen in het bestand hebt gemaakt vraagt nano of je het bestand wil opslaan. Tik een y als je dat wil, of een n als je dan niet wil en de wijziging niet wil opslaan.
Omdat je voor het aanpassen van de configuratiebestanden root rechten nodig hebt geven we vóórdat we gaan beginnen het commando:
sudo su
Nadat je vervolgens je wachtwoord hebt ingegeven heb je root rechten.
Zorgen dat de server z’n eigen hostnaam en domein naam kan vinden.
Eerst gaan we ervoor zorgen dat de server het IP adres van z’n eigen Fully Qualified Domain Name (FQDN) kan vinden, dus als we tijdens de installatie b.v. de hostnaam ‘webserver’ hebben opgegeven, en daarbij het domein ‘multinet.mywire.org’, en ook het IP adres 192.168.1.10 hebben gebruikt, dan moeten we ervoor zorgen dat de server weet dat ‘webserver.multinet.mywire.org’ op IP adres 192.168.1.10 leeft. We gaan hiervoor het bestand ‘/etc/hosts’ bewerken. We geven dus het commando:
nano /etc/hosts
We verwijderen de regel ‘127.0.1.1 webserver’, en we vervangen hem door de regel:
192.168.1.10 webserver.thuis.net webserver
Dit zorgt ervoor dat zowel ‘webserver.multinet.mywire.org’ als ‘webserver’ door de server vertaald worden naar 192.168.1.10.
We beëindigen nu nano door <Ctrl>-x in te geven, we tikken y als gevraagd wordt of we het bestand willen opslaan, en geven <Enter> om dat ook daadwerkelijk te doen.
Het power management aanpassen.
We hebben nu een laptop die we als server willen gebruiken. Helaas hebben de meeste laptops een schakelaar die wordt gesloten zodra de laptop wordt dichtgeklapt, en die ervoor zorgt dat de meeste operating systemen de laptop in slaap modus zetten of afsluiten. En dat is natuurlijk niet wat we willen, want we willen de laptop dichtgeklapt ergens neerzetten. We kunnen hem straks immers van afstand beheren, en dan is het niet nodig om om nog aan de laptop zelf te zitten.
Om ervoor te zorgen dat de server laptop altijd aan blijft staan, ook als we de laptop dicht klappen, moeten we het bestand ‘/etc/systemd/logind.conf’ aanpassen. We geven dus nu het commando:
nano /etc/systemd/logind.conf
- Zoek de regel ‘#HandleLidSwitch=suspend’ en
verander deze in ‘HandleLidSwitch=ignore’. - Zoek de regel ‘#HandleLidSwitchExternalPower=suspend’ en
verander deze in ‘HandleLidSwitchExternalPower=ignore’. - Zoek de regel ‘#HandleLidSwitchDocked=ignore’ en
verander deze in ‘HandleLidSwitchDocked=ignore’. - Sla het bestand weer op.
Zoals je in het bovenstaande screenshot kan zien heb ik zelf de gewoonte om de originele regel te laten staan, hem (als hij dat nog niet is) uit te commentariëren en de gewijzigde regel eronder toe te voegen. Op die manier kan ik later altijd nagaan wat de oorspronkelijke regel is geweest.
Voorkomen dat updates automatisch worden geïnstalleerd.
Omdat we graag zelf in de hand hebben wanneer de updates worden geïnstaleerd willen we niet dat dit automatisch gebeurt. Dit kunnen we regelen in het bestand ‘/etc/apt/apt.conf.d/20auto-upgrades’. We openen dit bestand weer in nano:
nano /etc/apt/apt.conf.d/20auto-upgrades
Het enige dat we in dit bestand moeten doen is de 1 op de tweede regel veranderen in 0.
Sla daarna het bestand weer op.
Zet de tijdzone goed.
Waarschijnlijk staat op dit moment de tijdzone op GMT. We kunnen dit controleren met het commando:
timedatectl
Om de tijdzone goed te zetten geven we het commando:
timedatectl set-timezone "Europe/Amsterdam"
We controleren hierna of de tijdzone goed staat door weer het commando te geven:
timedatectl
Het sudo commando geven zonder dat het wachtwoord nodig is.
Wanneer we het sudo commando geven wordt steeds om het wachtwoord gevraagd. Om straks de hele server via een web interface te beheren is er een gebruiker nodig die geen wachtwoord hoeft in te geven voor het sudo commando. Als we tijdens de installatie b.v. de login naam ‘administrator’ hebben aangemaakt dan gebruiken we dit account natuurlijk ook om de server te beheren. We gaan er nu voor zorgen dat de gebruiker ‘administrator’ niet steeds het password hoeft in te voeren voor het sudo commando. Om dat te doen gevan we het commando:
visudo
Dit commando opent het sudoers bestand in de tekstverwerker.
Net onder de regel ‘%sudo ALL=(ALL:ALL) ALL’ voegen we de volgende regel toe:
administrator ALL=(ALL:ALL) NOPASSWD:ALL
Daarna slaan we het bestand op.
De server herstarten.
We gaan nu eerst de server herstarten met het commando:
shutdown -r now
Als we de server willen uitzetten gebruiken we:
shutdown -h now
De Dynu IP update client installeren, configureren en starten op de server.
Je kunt de instructies voor het installeren van de update client vinden op https://www.dynu.com/DynamicDNS/IPUpdateClient/Linux. In ons geval volgen we de instructies die op deze pagina zijn beschreven voor Ubuntu 16. Eigenlijk is dit voor alle huidige Ubuntu versies gelijk. Hieronder vind je deze instructies ook stap voor stap.
- Open PuTTY meld aan aan je server en neem root rechten met het commando:
sudo su - Geef om de update client te installeren het volgende commando:
URL='https://www.dynu.com/support/downloadfile/31'; FILE='mktemp'; wget "$URL" -qO $FILE && sudo dpkg -i $FILE; rm $FILE
(dit is één regel, dus alles achter elkaar door tikken)
- Nadat de software is geïnstalleerd moeten we eerst het configuratie bestand aanpassen. Geef het commando:
nano /etc/dynuiuc/dynuiuc.conf- Voeg achter "username" je Dynu gebruikersnaam toe.
- Voeg achter "password" je Dynu wachtwoord toe.
- Laat "ipv4" op true staan.
- Laat "ipv6" op true staan.(verander dit naar false wanneer jouw thuisaansluiting geen IPv6 adres heeft.)
- Laat "pollinterval" op 120 staan. (Dit is het aantal seconden tussen twee update controles)
- Laat "debug" en "quiet" op false staan.
- Sla het bestand op.
- We zorgen er nu eerst voor dat dit programma automatisch start wanneer de server start, en het als service in de achtergrond blijft lopen. Geef hiervoor het commando:
systemctl enable dynuiuc.service - We starten nu de service met het commando:
systemctl start dynuiuc.service
- We kunnen de status van de service controleren met het commando:
systemctl status dynuiuc.service - Je kunt het status scherm sluiten met Ctrl-c.
- Tenslotte herstarten we de server met het commando:
shutdown -r now
Wanneer de server is herstart zal nu ook de update client automatisch gestart worden en in de achtergrond blijven draaien.