Om spoilers te kunnen lezen moet je zijn
ingelogd. Je moet je daarvoor eerst gratis
Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Altijd al willen weten hoe je een Linux-server klaar maakt voor gebruik? Nou, dan zit je hier goed! Ik zal je stapsgewijs uitleggen hoe je dat doet, volgens de laatste standaarden en
best-practices.
Wat gaan we precies doen?Je zult leren hoe je een VPS (Virtual Private Server) op klaar kunt maken voor gebruik, waarna je er bijvoorbeeld een VPN-server van kunt maken, een webserver of een mailserver. De mogelijkheden zijn echt eindeloos en je kunt op deze wijze je Linux-vaardigheden enorm verbeteren!
In deze tutorial zullen we gebruik maken van Ubuntu: bij uitstek de meest gebruikte en populairste Linux-distributie die er is. Uiteraard zou je ook kunnen kiezen voor een andere
distro die gelieerd is aan Debian (de oer-distro waar Ubuntu vanaf stamt).
Hoe kom ik aan zo'n VPS-server?Er zijn verscheidene aanbieders op de markt waar je een VPS-server kunt huren. Als goedkope oplossing zou ik een server huren bij OVH of KimSufi. Je hebt er al eentje voor minder dan 3 euro per maand, en ze zijn ideaal om op te stellen als testserver of als machine waar je aan je Linux-skills kunt werken.
Voor beginners is OVH daarnaast ook een wat gemakkelijkere keuze, gezien je server dan al voor je geïnstalleerd is. Je hoeft dan niet zoals bij TransIP zelf de installatieprocedure van Ubuntu te doorlopen.
________________________________________________________________________________________
Stap 0) het eventueel instellen van A en AAA DNS-recordsDeze stap kun je eventueel overslaan indien je niet beschikt over een eigen domainnaam. Het is echter wel handig om te hebben, zodat je bijvoorbeeld een FQDN als hieronder kunt maken:
nl-web-01.vps.example.com
...in plaats van ...
vps191748.vps.ovh.ca, wat natuurlijk niemand onthoud. We gaan echter werken met OpenSSH, dat vanaf je cliënt de mogelijkheid biedt een alias te creëren. Je kunt je server dan benaderen met bijvoorbeeld de volgende toverspreuk:
1 | localhost:~ devfreak$ ssh nl-web-01 |
...wat het al een stuk gemakkelijker maakt allemaal.
Stap 1) remote inloggen op je serverZodra je een VPS-server hebt gekocht en hebt gekozen voor het juiste besturingssysteem, kunnen we dan eindelijk aan de slag met de configuratie van je VPS-server. Je ontvangt een e-mail van OVH met het gebruikersnaam en wachtwoord zodat je in kunt loggen. Dit ziet er zo uit:
De mail bevat het IPv4 en IPv6 adres, het DNS-adres waar je hem op kunt bereiken en je gebruikersnaam met wachtwoord.
Indien je Windows gebruik zul je gebruik moeten maken
van PuTTY, een open-bron SSH-client. Onder Linux en MacOS wordt dit standaard meegeleverd, dus hoef je hiervoor niets te downloaden.
Open je terminal en gebruik de volgende toverspreuk:
Zodra je gevraagd wordt of je de ECDSA key fingerprint vertrouwd, geef dan toestemming. Voer het wachtwoord in, en je bent op afstand ingelogd op je server.
Stap 2) de repository-list updaten en lokale packages upgradenMet andere woorden: het is tijd om je server te updaten. Zodra je bent ingelogd zal Ubuntu tevens zo vriendelijk zijn om aan te geven dat jij als beheerder eventueel kunt updaten.
Gezien je bent ingelogd als root, te herkennen aan de "#", beschik je over alle rechten die er zijn en hoef je niks te bevestigen. Wees hier voorzichtig mee.Voer de volgende toverspreuk uit:
1 | ~# apt update && apt-upgrade -y && reboot now |
Zodra de server klaar is met de installatie en je de melding krijgt dat verbinding gesloten is, log je opnieuw na een paar seconden opnieuw in met SSH. Normaliter is een reboot onder Linux tevens 'niet nodig', maar bij een eerste updateronde kan dit voordeel bieden.
Stap 3) het root-wachtwoord veranderen en een nieuwe gebruiker aanmakenNu is het zaak dat we allereerst het root-wachtwoord wijzigen. Type de volgende spreuk in:
... En volg de instructies. Aangeraden is een wachtwoord te kiezen dat langer is dan 30 tekens. Voorbeeld:
quote:
5WPAUcw-rSEcamq6rk-dHcJoJgU-LLeTrHq
Gebruik een tool als KeePass2 om dit op te slaan.
Zodra je dit gedaan hebt is het tijd om een eigen gebruikersaccount aan te maken en deze toe te voegen aan de sudo-group. Dit houdt kortweg in dat je wel beheerder bent, maar eerst om bevestiging gevraagd zult worden voordat een commando uitgevoerd wordt. Om een dergelijk account te maken, gebruik dit commando:
1 | ~# adduser vornaamachternaam |
Je zult gevraagd worden wat informatie in te vullen. Is niet nodig en je kunt dit overslaan. Het (sterke!) wachtwoord is voldoende.
Het is nu tijd om je nieuwe account toe te voegen aan de sudo-group. Voer de volgende toverspreuk uit:
1 | ~# usermod -aG sudo voornaamachternaam |
...waar -aG staat voor append en group. Dit kun je ook uitdrukken als
usermod -a -G sudo voornaamachternaam.
Log uit als root en log nu in met je eigen account.Disable nu het root-account, uit veiligheidsoverwegingen. Is belangrijk. Gezien je in de sudo-group zit kun je later altijd nog zelf inloggen als root vanuit je eigen omgeving. Toverspreuk:
Gedaan? Mooi! Log nu uit, zodat je je niet langer in de SSH-sessie bevindt.
Stap 4) een public en private SSH-keypair genereren, en kopiëren naar de serverHet is nu tijd om naar je lokale
.ssh-directory te navigeren. Dit doe je met:
We gaan nu een SSH-keypair genereren. Dit doe je als volgt:
Als naam geef je bijvoorbeeld op:
mijnserver_rsa. Eventueel kun je een passphrase instellen voor extra veiligheid. Indien je meer mogelijkheden of opties wilt zien, wel... RTFM:
.ssh $ man ssh-keygen.
Nu is het tijd de
publieke SSH-sleutel te kopiëren naar de server. Onthoud: jij bent de enige die beschikt over de private
sleutel.
Terwijl je nog steeds in de ~/.ssh directory zit, gebruik de volgende toverspreuk:
1 | .ssh $ ssh-copy-id -i mijnserver_rsa.pub [voornaamachternaam]@[server-FQDN] |
Gedaan? Mooi zo! Wat je nu alleen nog hoeft te doen is je server toevoegen aan de
config file. Het kan zijn dat dit bestand nog niet aanwezig is. Om een overzicht te krijgen van de inhoud in deze dir, gebruik je:
Open het bestand genaamd
config, of maak hem aan:
Open het bestand vanuit de terminal met nano of vi:
Voeg nu de volgende configuratie toe en pas hem aan naar jouw smaak:
Als je dit gedaan hebt, zou je in moeten kunnen loggen met bijvoorbeeld de volgende toverspreuk:
Het alias van de server is het enige dat je nu nog nodig hebt, want de rest heb je dus al ingesteld. Mooi, hè?
Stap 5) het configureren van de SSH-daemonIs minder eng dan het klinkt! Wat je wilt voorkomen is dat je in kunt loggen met een wachtwoord, ondanks dat je de jouwe natuurlijk uit meer dan dertig tekens bestaat.
Edit het sshd_config bestand dat leeft in /etc/ssh:
1 | ~$ sudo nano /etc/ssh/sshd_config |
Zorg ervoor dat de volgende regels als volgt staan ingesteld:
1 2 3 4 5 | PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no |
Gedaan?
Herstart de SSH-daemon met:
1 | ~$ sudo service sshd restart |
Stap 6) het configureren van de firewallNu is het nog zaak dat je de UFW-firewall enabled en op de juiste wijze instelt voordat je hem inschakelt, zodat je niet buitengesloten raakt en niet via de KVM je fout hoeft te herstellen.
1 2 3 | ~$ sudo ufw allow OpenSSH ~$ sudo ufw enable ~$ sudo ufw status |
Dit zou je als output moeten krijgen:
Je bent klaar! Hoe nu verder? Een vervolgstap zou kunnen zijn de package
fail2ban te installeren. Deze software biedt een extra beveiligingslaag waarmee je eventuele aanvallers na bijvoorbeeld vijf mislukte inlogpogingen volledig kunt blokkeren. Je kunt zelf instellen hoe lang deze blokkade duurt.
De meningen over de noodzaak zijn verdeeld, maar ik kan je sterk aanbevelen je in deze materie te verdiepen voordat je aan de slag gaat met aanvalsgevoelige zaken als SMTP-servers en dergelijke.
Veel plezier met je server!
[ Bericht 0% gewijzigd door #ANONIEM op 10-07-2018 14:50:43 ]