Initiële serverconfiguratie met Ubuntu 18.04

Geschatte leestijd: 5 min

Introductie

In deze tutorial leer je hoe je een Ubuntu 18.04 gebaseerde server kunt instellen en de beveiliging kunt verbeteren. Het is raadzaam om de instructies van dit artikel te volgen om de veiligheid en bruikbaarheid van jouw server te verbeteren.

Vereisten

Stap 1: Log in via SSH

Wanneer je een server hebt besteld ontvang je een e-mail met een gebruikersnaam, wachtwoord en IP-adres. Je logt de eerste keer in met deze gegevens van jouw server.

Als je niet weet hoe je verbinding moet maken met je server dan kun je het artikel Leer hoe je via SSH verbinding kunt maken met je server volgen.

Stap 2: Verander het gebruikerswachtwoord

Bij de eerste aanmelding is het belangrijk om het wachtwoord van de huidige gebruiker te wijzigen. Voer hiervoor het volgende commando uit.

$ passwd

Je wordt gevraagd om een bestaande wachtwoord op te geven.

Stap 3: Maak een nieuwe Sudo gebruiker aan

Of je nou bent aangemeld als rootgebruiker of met de gegevens die je hebt ontvangen van Snel.com, het is altijd verstandig om een nieuwe gebruiker aan te maken met sudo-rechten. Jouw gebruikers-id van Snel.com heeft ook sudo-rechten.

Aandachtspunt: Rootgebruiker heeft veel rechten. Gebruik dit alleen wanneer het noodzakelijk is. Voor alle andere doeleinden gerbuiken we een reguliere account met superuser-rechten.  Op deze manier kun je beheertaken uitvoeren met een gewoon gebruikersaccount door sudo toe te voegen voor een commando.

Voer het volgende commando uit om een nieuwe gebruiker aan te maken. Je kunt sneluser vervangen met je eigen gebruikersnaam. 

$ sudo adduser sneluser

Je kunt het sudocommando weglaten als je betn ingelogf als rootgebruiker. 

Je krijgt een aantal vragen die je moet beantwoorden. Zo wordt je bijvoorbeeld gevraagd het wachtwoord (tweemaal) voor de nieuwe gebruiker op te geven. Beantwoord alle vragen en druk op “ENTER” nadat je elke vraag hebt beantwoord.

client_xxxxx_x@vps:~$ sudo adduser sneluser
Adding user `sneluser' ...
Adding new group `sneluser' (1001) ...
Adding new user `sneluser' (1001) with group `sneluser' ...
Creating home directory `/home/sneluser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for sneluser
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

Gebruik het volgende commando om het nieuwe account sudo-rechten te geven.o give your newly created account sudo privileges.

$ sudo usermod -aG sudo sneluser

Stap 4: Server updaten

Het is belangrijk dat je jouw server altijd up-to-date houdt. Voer het volgende commando uit om de pakketlijsten op jouw server bij te werken waarin de informatie wordt opgeslagen over hoe en waar je de softwarepakketten kunt downloaden.

$ sudo apt update

Installer nu de pakketupgrades.

$ sudo apt upgrade

Let op: Als je een opdrachtprompt ziet die aangeeft dat er een bijgewerkt pakket of bestand beschikbaar is terwijl de geinstalleerde versie al is gewijzigd, dan kies je keep the local version currently installed.

Stap 5: Tijdzone instellen

Het is handig als jouw server in dezelfde tijdzone opereert als jij. Voer het volgende commando uit om een lijst te krijgen met verschillende tijdzones. 

$ timedatectl list-timezones

De lijst met verschillende tijdzonde is ook hier te bekijken.

Nadat je de tijdzone hebt geïdentificeerd, kun je deze instellen door het volgende commando uit te voeren.

$ sudo timedatectl set-timezone Europe/Amsterdam

Je kunt de tijdzone bevestigen door het onderstaande commando uit te voeren.

$ date
Tue Mar  3 08:55:31 CET 2020

Stap 6: Firewall instellen

Ubuntu 18.04 wordt standaard geleverd met de UFW-firewall (ongecompliceerde firewall).

Voordat we de firewall inschakelen, moeten we de juiste regels instellen. Als je de firewall inschakelt voordat je de regels instelt, wordt de server geblokkeerd.

De eerste stap is het instellen van een standaardbeleid. Deze regels bepalen hoe je moet omgaan met het verkeer dat niet overeenkomt met andere regels. UFW is standaard ingesteld om alle inkomende verbindingen te weigeren en alle uitgaande verbindingen toe te staan. Dit betekent dat iedereen die jouw server probeert te bereiken geen verbinding krijgt met de server, terwijl de applicaties op jouw server wel de buitenwereld kan bereiken. 

Gebruik het volgende commando om het standaardbeleid van UFW in te stellen.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Nu ons standaardbeleid is ingesteld, kunnen we de standaard SSH-poorten toestaan. Voer het volgende commando uit:

$ sudo ufw allow ssh

Verschillende applicaties worden met hun eigen naam geregisteerd door UFW. Daarom ziet hij dat SSH hier naar poort 22 verwijst. Je kunt ook het volgende commando gebruiken om hetzelfde effect te bereiken.

$ sudo ufw allow 22

Het is tijd om de firewall in te schakelen.

$ sudo ufw enable

Je wordt om bevestiging gevraagd. Voer y in, omdat we SSH al hebben ingeschakeld.

Je kunt de status van de firewall bekijken door het onderstaande commando uit te voeren: 

$ sudo ufw status verbose

Je zou een soortgelijke output moeten zien:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)

Je kunt de verbose tag weglaten uit het commando. Wanneer je dit doet krijgt je alleen de open poorten en protocollen te zien. 

Stap 7: Hostnaam instellen

Controleer eerste de bestaande hostnaam met het volgende commando:

$ hostnamectl

Je zou een soortgelijke output moeten zien:

   Static hostname: vps.snelexample.site
         Icon name: computer-vm
           Chassis: vm
        Machine ID: f0824f3916f24a298d6b2c10dc8c68fb
           Boot ID: 5c4ef23bc3dd4d39943e89d4563674c7
    Virtualization: kvm
  Operating System: Ubuntu 18.04.4 LTS
            Kernel: Linux 4.15.0-88-generic
      Architecture: x86-64

Voer het onderstaande commando uit om de hostnaam in te stellen. 

$ sudo hostnamectl set-hostname host.snelexample.site

Vervang host.snelexample.site met de daadwerkelijke hostnaam. Gebruik een  FQDN(Fully Qualified Domain Name). Je kunt ook een label toevoegen om jouw server te identificeren, deze optie werkt ook prima.

Zet de hostnaam in jouw lokale server om door het toe te voegen aan dit bestand  /etc/hosts Bewerk dit bestand  hosts, voer hiervoor het onderstaande commando uit.

$ sudo nano /etc/hosts

Voeg de hostnaam toe aan het einde van de regel die begint met 127.0.0.1. Bijvoorbeeld:

127.0.0.1 	localhost host.snelexample.site

Sluit de editor door op Ctrl + X te drukken en y in te voeren wanneer er wordt gevraagd om het bijgewerkte bestand op te slaan.

Stap 8: Log in als nieuwe gebruiker

Sluit je huidige sessie af met het commando logout en log opnieuw in via SSH met de gebruiker die je zojuist hebt aangemaakt. 

$ ssh [email protected]

Vervang 192.168.0.1 met het daadwerkelijke IP-adres van je server. 

Stap 9: Schakel root-login via SSH uit

Dit is een zeer belangrijke stap bij het beveiligen van jous server tegen brute force-aanvallen. Laten we de huidige status van SSH root-login controleren met behulp van het volgende commando:

$ sudo cat /etc/ssh/sshd_config | grep PermitRootLogin

Dit is een set van twee commando’s. grepcommando zoekt naar de tekenreeks PermitRootLogin in het bestand /etc/ssh/sshd_config en het catcommando voert deze uit naar de terminal.

Je zou een soortgelijke output moeten zien:

PermitRootLogin without-password
# the setting of "PermitRootLogin without-password".

Het wordt hier ingesteld zonder wachtwoord. Dit betekent public-key authentication is ingeschakeld. Zorg ervoor dat de instelling niet op “Ja” staat. 

Om de root-login via SSH volledig uit te schakelen, kun je het configuratiebestand met het volgende commando bewerken. 

$ sudo nano /etc/ssh/sshd_config

Wijzig de lijn PermitRootLogin zoals hieronder.

PermitRootLogin no

Sla het bestand op door op Ctrl + W te drukken en Y in te voeren wanneer dat wordt gevraagd.

Start de SSH-server opnieuw op om de wijzigingen toe te passen.

$ sudo systemctl restart sshd

Je kunt dit controleren door uit te loggen en opnieuw in te loggen als root gebruiker. De server zal toegang weigeren. 

Stap 10: Wijzig SSH Poort (Optioneel)

Deze stap is volledig optioneel, maar wordt als een goed beveiligingsaspect beschouwd. Het wijzigen van de standaard SSH-poort(22)voorkomt dat kwaadwillende bots proberen in te loggen op jouw server.

Om de poort te wijzigen, open je opnieuw SSH-configuratiebestand met het volgende commando.

$ sudo nano /etc/ssh/sshd_config

Zoek de volgende regel. 

#Port 22

Los de regel op door de hash te verwijderen en de waarde te wijzigen in een willekeurige poort tussen 1024 en 65535. Hier gebruiken we poort 2254

Port 2254

Sla het bestand op door op Ctrl + W te drukken en y in te voeren wanneer dat wordt gevraagd.

We zullen deze nieuwe poort ook in onze firewall moeten toestaan. Open poort 2254 met UFW.

$ sudo ufw allow 2254

We kunnen de standaardpoort verwijderen van onze firewall lijst. 

$ sudo ufw delete allow ssh

Start de SSH-server opnieuw om de wijzigingen toe te passen.

$ sudo systemctl restart sshd

Laad de firewall opnieuw om de nieuwe instellingen toe te passen.

$ sudo ufw reload

Nu kun je je niet aanmelden via SSH zonder een poort op te geven. Wijzig het SSH-commando als volgt om in te loggen via de gewijzigde poort.

$ ssh -p 2254 [email protected]

Stap 11: Reboot de server

Dit is de laatste stap. Nu we de pakketten hebben bijgewerkt en de server hebben geconfigureerd, kun je nu de server rebooten zodat de wijzigingen worden doorgevoerd.

$ sudo reboot

Conclusie

In deze tutorial heb je geleerd hoe je een sudo-gebruiker kunt aanmaken op een nieuwe Ubuntu 18.04 server. Je hebt ook geleerd hoe je een hostnaam en tijdzonde moet instellen. Daarnaast heb je ook geleerd hoe je jouw SSH server moet beveiligen tegen kwaadaardige aanvalpogingen.

Was dit artikel nuttig?
Niet leuk 0
Weergaven: 143

Reader Interactions

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *