abonnement bol.com Unibet Coolblue
pi_180375391
Tutorial: hoe configureer je een nieuwe Linux-server

SPOILER
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! :Y)

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-records
Deze 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:

1localhost:~ devfreak$ ssh nl-web-01

...wat het al een stuk gemakkelijker maakt allemaal.

Stap 1) remote inloggen op je server
Zodra 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. ^O^

Stap 2) de repository-list updaten en lokale packages upgraden
Met 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 aanmaken
Nu is het zaak dat we allereerst het root-wachtwoord wijzigen. Type de volgende spreuk in:

1~# passwd
... 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:

1~$ sudo passwd -l root

Gedaan? Mooi! Log nu uit, zodat je je niet langer in de SSH-sessie bevindt. ^O^

Stap 4) een public en private SSH-keypair genereren, en kopiëren naar de server
Het is nu tijd om naar je lokale .ssh-directory te navigeren. Dit doe je met:

1$ cd ~/.ssh

We gaan nu een SSH-keypair genereren. Dit doe je als volgt:

1~# ssh-keygen -b 4096

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:

1$ ls -lath

Open het bestand genaamd config, of maak hem aan:

1.ssh $ touch config

Open het bestand vanuit de terminal met nano of vi:

1.ssh $ nano config

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:

1~$ ssh [jouwservernaam]

Het alias van de server is het enige dat je nu nog nodig hebt, want de rest heb je dus al ingesteld. Mooi, hè? ^O^

Stap 5) het configureren van de SSH-daemon
Is 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 firewall
Nu 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. :7

1
2
3
~$ sudo ufw allow OpenSSH
~$ sudo ufw enable
~$ sudo ufw status

Dit zou je als output moeten krijgen:



*O* Je bent klaar! Hoe nu verder? *O*
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! ^O^

[ Bericht 0% gewijzigd door #ANONIEM op 10-07-2018 14:50:43 ]
  dinsdag 10 juli 2018 @ 15:27:52 #2
273461 AlwaysHappy
You've Been Gilmored!
pi_180376201
Topper ^O^
Nintendo Switch: SW-1156-9327-1516 | Xbox Series X: Alwayshappyz | Photographer: D750, 24mm, 50mm, 85mm | TV Shows: Gilmore Girls, Grey's Anatomy, His Dark Materials, Veronica Mars, Fringe, The Good Wife, The Crown & More.
pi_180379257
quote:
14s.gif Op dinsdag 10 juli 2018 15:27 schreef AlwaysHappy het volgende:
Topper ^O^
Dank u, collega! :P
pi_180831631
Misschien in de TT vermelden dat het om een VPS installatie gaat; zat al te wachten op een diskless pxe installatie optie :P

Dit zal per provider verschillen, maar misschien handig om een (web) console optie te vermelden. Voor je het weet heb je een fout gemaakt met je firewall en kun je niet meer inloggen via ssh ;)
pi_181243756
quote:
14s.gif Op maandag 30 juli 2018 12:02 schreef devzero het volgende:
Misschien in de TT vermelden dat het om een VPS installatie gaat; zat al te wachten op een diskless pxe installatie optie :P

Dit zal per provider verschillen, maar misschien handig om een (web) console optie te vermelden. Voor je het weet heb je een fout gemaakt met je firewall en kun je niet meer inloggen via ssh ;)
:@
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181243897
quote:
1s.gif Op vrijdag 17 augustus 2018 00:48 schreef FlippingCoin het volgende:

[..]

:@
buitengesloten? hihi
pi_181243980
quote:
7s.gif Op vrijdag 17 augustus 2018 00:58 schreef DevFreak het volgende:

[..]

buitengesloten? hihi
Bijna, ik had mijn sudoers file verneukt waardoor ik geen sudo rechte meer kon krijgen. :+
I think that it’s extraordinarily important that we in computer science keep fun in computing
For all who deny the struggle, the triumphant overcome
pi_181244592
quote:
1s.gif Op vrijdag 17 augustus 2018 01:03 schreef FlippingCoin het volgende:

[..]

Bijna, ik had mijn sudoers file verneukt waardoor ik geen sudo rechte meer kon krijgen. :+
Je kunt ook ssh configureren dat je nog wel als root kunt inloggen maar alleen met een ssh key.
pi_181298328
quote:
14s.gif Op vrijdag 17 augustus 2018 01:37 schreef devzero het volgende:

[..]

Je kunt ook ssh configureren dat je nog wel als root kunt inloggen maar alleen met een ssh key.
Dat is niet echt een heel verstandig plan. Het root-account zou je gewoon uit moeten schakelen, uit veiligheidsoverwegingen. Vervolgens een apart beheeraccount configureren, en wanneer nodig kun je altijd volledige rechten aanvragen.

In Windows werkt dit op een soortgelijke manier. Het is niet voor niets zo dat het account 'Administrator' standaard uitgeschakeld is sinds Windows Vista. Op server-edities staat het nog wel ingeschakeld, maar ook hier is het gebruikelijk een apart account aan te maken.

[ Bericht 11% gewijzigd door #ANONIEM op 19-08-2018 14:37:06 ]
pi_181298475
quote:
4s.gif Op zondag 19 augustus 2018 14:32 schreef DevFreak het volgende:

[..]

Dat is niet echt een heel verstandig plan. Het root-account zou je gewoon uit moeten schakelen, uit veiligheidsoverwegingen. Vervolgens een apart beheeraccount configureren, en wanneer nodig kun je altijd volledige rechten aanvragen.
Windows administrator geneuzel. Ja, voor een simpele VPS is het misschien veiliger om toegang tot het root account te beperken tot alleen de console. Alleen heeft Flip niet zo heel veel ervaring met linux en dan is key-only toegang tot root (tijdelijk) een vrij veilige tussen oplossing.

Ik weet niet wat je bedoelt met "root-account uit schakelen"; dan werkt je machine gewoon niet meer, zelfs sshd draait als root ;)

edit: zie net je toevoeging. Linux != windows. Ik neem dus aan dat je met uitschakelen bedoelt dat je er niet op kunt inloggen (ook niet console?). En ja, ik neem aan dat je installatie met accounts komt voor iedere verschillende taak en niet met 1 account met unlimited sudo rechten.
pi_181300281
quote:
14s.gif Op zondag 19 augustus 2018 14:39 schreef devzero het volgende:

[..]

Windows administrator geneuzel. Ja, voor een simpele VPS is het misschien veiliger om toegang tot het root account te beperken tot alleen de console. Alleen heeft Flip niet zo heel veel ervaring met linux en dan is key-only toegang tot root (tijdelijk) een vrij veilige tussen oplossing.

Ik weet niet wat je bedoelt met "root-account uit schakelen"; dan werkt je machine gewoon niet meer, zelfs sshd draait als root ;)

edit: zie net je toevoeging. Linux != windows. Ik neem dus aan dat je met uitschakelen bedoelt dat je er niet op kunt inloggen (ook niet console?). En ja, ik neem aan dat je installatie met accounts komt voor iedere verschillende taak en niet met 1 account met unlimited sudo rechten.
ja, dat is inderdaad wat ik bedoelde :)
abonnement bol.com Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')