Initiële serverconfiguratie met Ubuntu 22.04

Introductie

Wanneer u voor het eerst een nieuwe Ubuntu 22.04-server maakt, moet u enkele belangrijke configuratiestappen uitvoeren als onderdeel van de initiële setup. Deze stappen zullen de beveiliging en bruikbaarheid van uw server vergroten en u een solide basis geven voor volgende acties.

Breng uw applicaties in productie vanaf GitHub met behulp van DigitalOcean App Platform. Laat DigitalOcean zich richten op het schalen van uw app.

Stap 1 — Inloggen als root

Om in te loggen op uw server, moet u het openbare IP-adres van de server weten. U heeft ook het wachtwoord of de privésleutel nodig voor het root-gebruikersaccount als u een SSH-sleutel heeft geïnstalleerd voor authenticatie. Als u nog niet bent ingelogd op uw server, kunt u onze handleiding volgen over hoe u verbinding kunt maken met Droplets via SSH, die dit proces gedetailleerd behandelt.

Als u momenteel niet verbonden bent met uw server, logt u in als de root-gebruiker met het volgende commando. Vervang het gemarkeerde gedeelte uw_server_ip van het commando door het openbare IP-adres van uw server:

  1. ssh root@your_server_ip

Accepteer de waarschuwing over de authenticiteit van de host als deze verschijnt. Als uw server wachtwoordauthenticatie gebruikt, geef dan uw root wachtwoord om in te loggen. Als u een SSH-sleutel gebruikt die is beveiligd met een wachtwoordzin, moet u mogelijk de wachtwoordzin invoeren de eerste keer dat u de sleutel gebruikt bij elke sessie. Als dit de eerste keer is dat u zich aanmeldt op de server met een wachtwoord, moet u mogelijk ook het wachtwoord van root wijzigen. Volg de instructies om het wachtwoord te wijzigen als u een prompt ontvangt.

Over root

De root gebruiker is de beheerdersgebruiker in een Linux-omgeving met verhoogde privileges. Vanwege de verhoogde privileges van het root account wordt u ontmoedigd om het regelmatig te gebruiken. Het root account kan zeer destructieve wijzigingen aanbrengen, zelfs per ongeluk.

Het volgende stap is het instellen van een nieuw gebruikersaccount met verminderde privileges voor dagelijks gebruik. Later laten we u zien hoe u tijdelijk verhoogde privileges kunt krijgen voor de momenten dat u ze nodig heeft.

Stap 2 – Het maken van een nieuw gebruiker

Zodra u bent ingelogd als root, kunt u het nieuwe gebruikersaccount toevoegen. In de toekomst zullen we inloggen met dit nieuwe account in plaats van root.

Dit voorbeeld maakt een nieuwe gebruiker genaamd sammy aan, maar je moet dat vervangen door een gebruikersnaam die je leuk vindt:

  1. adduser sammy

Je wordt een paar vragen gesteld, te beginnen met het accountwachtwoord.

Voer een sterk wachtwoord in en vul optioneel eventuele aanvullende informatie in als je dat wilt. Deze informatie is niet verplicht en je kunt ENTER indrukken in elk veld dat je wilt overslaan.

Stap 3 — Toekennen van beheerdersprivileges

Je hebt nu een nieuw gebruikersaccount met reguliere accountrechten. Je zult echter soms administratieve taken moeten uitvoeren als de root-gebruiker.

Om uit te loggen bij je reguliere gebruiker en weer in te loggen als de root-account te vermijden, kun je wat bekendstaat als superuser– of root-privileges instellen voor het reguliere account van je gebruiker. Deze privileges stellen je normale gebruiker in staat om commando’s met administratieve privileges uit te voeren door het woord sudo voor het commando te plaatsen.

Om deze privileges aan je nieuwe gebruiker toe te voegen, moet je de gebruiker toevoegen aan de sudo-systeemgroep. Standaard op Ubuntu 22.04 mogen gebruikers die lid zijn van de sudo-groep het sudo-commando gebruiken.

Als root, voer deze opdracht uit om je nieuwe gebruiker toe te voegen aan de sudo-groep (vervang de gemarkeerde sammy gebruikersnaam door je nieuwe gebruiker):

  1. usermod -aG sudo sammy

Je kunt nu sudo typen vóór commando’s om ze uit te voeren met supergebruikersrechten wanneer je bent ingelogd als je reguliere gebruiker.

Stap 4 — Instellen van een Firewall

Ubuntu 22.04 servers kunnen de UFW firewall gebruiken om ervoor te zorgen dat alleen verbindingen met bepaalde services zijn toegestaan. Je kunt een basisfirewall opzetten met behulp van deze toepassing.

Opmerking: Als je servers draaien op DigitalOcean, kun je optioneel DigitalOcean Cloud Firewalls gebruiken in plaats van de UFW firewall. We raden aan om slechts één firewall tegelijk te gebruiken om conflicterende regels te vermijden die moeilijk te debuggen kunnen zijn.

Toepassingen kunnen hun profielen registreren bij UFW bij installatie. Deze profielen stellen UFW in staat om deze toepassingen te beheren op naam. OpenSSH, de service die het mogelijk maakt om verbinding te maken met je server, heeft een profiel geregistreerd bij UFW.

Je kunt de lijst met geïnstalleerde UFW-profielen bekijken door te typen:

  1. ufw app list
Output
Available applications: OpenSSH

Je moet ervoor zorgen dat de firewall SSH-verbindingen toestaat, zodat je de volgende keer kunt inloggen op je server. Sta deze verbindingen toe door te typen:

  1. ufw allow OpenSSH

Activeer nu de firewall door te typen:

  1. ufw enable

Typ y in en druk op ENTER om door te gaan. U kunt zien dat SSH-verbindingen nog steeds zijn toegestaan door het volgende te typen:

  1. ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

De firewall blokkeert momenteel alle verbindingen behalve SSH. Als u extra services installeert en configureert, moet u de firewall-instellingen aanpassen om het nieuwe verkeer naar uw server toe te staan. U kunt enkele veelvoorkomende UFW-operaties leren in onze UFW Essentials gids.

Stap 5 — Externe toegang inschakelen voor uw reguliere gebruiker

Nu u een reguliere gebruiker heeft voor dagelijks gebruik, moet u ervoor zorgen dat u rechtstreeks kunt SSH’en naar het account.

Opmerking: Totdat u heeft geverifieerd dat u kunt inloggen en sudo kunt gebruiken met uw nieuwe gebruiker, raden we aan ingelogd te blijven als root. Als u problemen ondervindt met verbinden, kunt u fouten oplossen en eventuele benodigde wijzigingen aanbrengen als root. Als u een DigitalOcean Droplet gebruikt en problemen ondervindt met uw root SSH-verbinding, kunt u toegang tot Droplets herstellen met behulp van de herstelconsole.

Het configureren van SSH-toegang voor uw nieuwe gebruiker is afhankelijk van of het root-account van uw server een wachtwoord of SSH-sleutels gebruikt voor authenticatie.

Als het rootaccount wachtwoordverificatie gebruikt

Als u bent ingelogd op uw root-account met een wachtwoord, dan is wachtwoordverificatie ingeschakeld voor SSH. U kunt SSH gebruiken naar uw nieuwe gebruikersaccount door een nieuwe terminalsessie te openen en SSH te gebruiken met uw nieuwe gebruikersnaam:

  1. ssh sammy@your_server_ip

Nadat u het wachtwoord van uw normale gebruiker hebt ingevoerd, bent u ingelogd. Onthoud dat als u een opdracht met beheerdersrechten moet uitvoeren, u sudo ervoor moet typen, zoals dit:

  1. sudo command_to_run

U krijgt een prompt voor het wachtwoord van uw normale gebruiker bij het gebruik van sudo voor de eerste keer elke sessie (en periodiek daarna).

Om de beveiliging van uw server te verbeteren, raden we sterk aan om SSH-sleutels in te stellen in plaats van wachtwoordverificatie te gebruiken. Volg onze handleiding voor het instellen van SSH-sleutels op Ubuntu 22.04 om te leren hoe u op sleutels gebaseerde verificatie kunt configureren.

Als het rootaccount SSH-sleutelverificatie gebruikt

Als je bent ingelogd op je root-account met behulp van SSH-sleutels, dan is wachtwoordauthenticatie uitgeschakeld voor SSH. Om in te loggen als je reguliere gebruiker met een SSH-sleutel, moet je een kopie van je lokale openbare sleutel toevoegen aan het bestand ~/.ssh/authorized_keys van je nieuwe gebruiker.

Aangezien je openbare sleutel al in het bestand ~/.ssh/authorized_keys van het root-account op de server staat, kun je dat bestand en de directorystructuur kopiëren naar je nieuwe gebruikersaccount met je huidige sessie.

De eenvoudigste manier om de bestanden te kopiëren met de juiste eigenaarschap en machtigingen is met het rsync-commando. Dit commando zal de root-gebruikers .ssh-directory kopiëren, de machtigingen behouden en de bestandseigenaars wijzigen, allemaal in één commando. Zorg ervoor dat je de gemarkeerde delen van het onderstaande commando wijzigt om overeen te komen met de naam van je reguliere gebruiker:

Let op: Het rsync-commando behandelt bronnen en bestemmingen die eindigen met een schuine streep anders dan die zonder een schuine streep. Bij het gebruik van rsync hieronder, zorg ervoor dat de bronmap (~/.ssh) geen schuine streep bevat (controleer om er zeker van te zijn dat je niet ~/.ssh/ gebruikt).

Als je per ongeluk een schuine streep toevoegt aan het commando, zal rsync de inhoud van de root-account’s ~/.ssh-directory kopiëren naar de home-directory van de sudo-gebruiker in plaats van de volledige ~/.ssh-directorystructuur te kopiëren. De bestanden zullen zich op de verkeerde locatie bevinden en SSH zal ze niet kunnen vinden en gebruiken.

  1. rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Open nu een nieuwe terminalsessie op je lokale machine en gebruik SSH met je nieuwe gebruikersnaam:

  1. ssh sammy@your_server_ip

Je zou verbonden moeten zijn met je server met het nieuwe gebruikersaccount zonder een wachtwoord te gebruiken. Onthoud, als je een opdracht met administratieve privileges wilt uitvoeren, typ sudo voor de opdracht zoals dit:

  1. sudo command_to_run

Je wordt gevraagd om het wachtwoord van je reguliere gebruiker in te voeren wanneer je sudo voor het eerst in elke sessie gebruikt (en periodiek daarna).

Waar ga je nu naartoe?

Op dit punt heb je een solide basis voor je server. Je kunt nu alle software installeren die je nodig hebt op je server.

Als je meer vertrouwd wilt raken met Linux-opdrachten, kun je onze Linux Command Line Primer bekijken.

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04