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
- Cloud VPS of Dedicated Server met Ubuntu 18.04 installatie
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 sudo
commando 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. grep
commando zoekt naar de tekenreeks PermitRootLogin
in het bestand /etc/ssh/sshd_config
en het cat
commando 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.
Geef een reactie