Introductie
Wanneer je voor het eerst een nieuwe Rocky Linux 8-server aanmaakt, zijn er een paar configuratiestappen die je in een vroeg stadium moet uitvoeren als onderdeel van de basisinstellingen. Dit zal de beveiliging en bruikbaarheid van je server verhogen en je een solide basis geven voor verdere acties.
Stap 1 — Inloggen als Root
Om in te loggen op je server, moet je het publieke IP-adres van de server weten. Je hebt ook het wachtwoord nodig of, als je een SSH-sleutel hebt geïnstalleerd voor authenticatie, de privésleutel voor het root-gebruikersaccount. Als je nog niet bent ingelogd op je server, kun je onze documentatie volgen over hoe je verbinding kunt maken met je Droplet via SSH, waarin dit proces in detail wordt beschreven.
Als je nog niet bent verbonden met je server, log dan nu in als de root-gebruiker met behulp van de volgende opdracht (vervang het gemarkeerde gedeelte van de opdracht door het publieke IP-adres van je server):
Accepteer de waarschuwing over host authenticiteit als deze verschijnt. Als u wachtwoordverificatie gebruikt, geef dan uw root wachtwoord om in te loggen. Als u een SSH-sleutel gebruikt die met een wachtwoord is beveiligd, kan het zijn dat u wordt gevraagd het wachtwoord in te voeren de eerste keer dat u de sleutel gebruikt tijdens elke sessie. Als dit de eerste keer is dat u zich aanmeldt bij de server met een wachtwoord, kan u ook worden gevraagd om het root wachtwoord te wijzigen.
Over Root
De root gebruiker is de administratieve gebruiker in een Linux-omgeving en heeft zeer uitgebreide rechten. Vanwege de verhoogde rechten van het root account wordt u ontmoedigd om het regelmatig te gebruiken. Dit komt omdat een deel van de kracht inherent aan het root account het vermogen is om zeer destructieve wijzigingen aan te brengen, zelfs per ongeluk.
Als zodanig is de volgende stap om een alternatief gebruikersaccount in te stellen met een verminderde invloedssfeer voor dagelijks werk. Dit account zal nog steeds in staat zijn om verhoogde rechten te verkrijgen wanneer dat nodig is.
Stap 2 — Een nieuwe gebruiker aanmaken
Zodra u bent ingelogd als root, kunt u het nieuwe gebruikersaccount aanmaken dat we voortaan zullen gebruiken om in te loggen.
Dit voorbeeld maakt een nieuwe gebruiker genaamd sammy aan, maar je moet het vervangen door een gebruikersnaam naar keuze:
Vervolgens stel je een sterk wachtwoord in voor de gebruiker sammy
:
Je wordt gevraagd om het wachtwoord twee keer in te voeren. Nadat je dit hebt gedaan, is je gebruiker klaar voor gebruik, maar eerst zullen we deze gebruiker extra privileges geven om het sudo
-commando te gebruiken. Hiermee kunnen we commando’s uitvoeren als root wanneer dat nodig is.
Stap 3 — Administratorprivileges toewijzen
We hebben nu een nieuwe gebruikersaccount met standaardaccountprivileges. We moeten echter soms administratieve taken uitvoeren.
Om te voorkomen dat we uitloggen bij onze reguliere gebruiker en weer inloggen als de root-account, kunnen we wat bekend staat als “superuser” of root-privileges instellen voor ons reguliere account. Dit stelt onze reguliere gebruiker in staat om commando’s met administratieve privileges uit te voeren door het woord sudo
voor elk commando te plaatsen.
Om deze privileges toe te voegen aan onze nieuwe gebruiker, moeten we de nieuwe gebruiker toevoegen aan de wiel-groep. Standaard zijn op Rocky Linux 8 gebruikers die behoren tot de wiel-groep toegestaan om het sudo
-commando te gebruiken.
Als root, voer deze opdracht uit om je nieuwe gebruiker toe te voegen aan de wheel-groep (vervang het gemarkeerde woord door je nieuwe gebruikersnaam):
Nu kun je, wanneer je bent ingelogd als je reguliere gebruiker, sudo
typen voor commando’s om acties uit te voeren met supergebruikersrechten.
Stap 4 — Het opzetten van een basisfirewall
Firewalls bieden een basisniveau van beveiliging voor je server. Deze toepassingen zijn verantwoordelijk voor het weigeren van verkeer naar elke poort op je server, behalve naar die poorten/diensten die je expliciet hebt goedgekeurd. Rocky Linux heeft een service genaamd firewalld
om deze functie uit te voeren. Een tool genaamd firewall-cmd
wordt gebruikt om firewalld
-firewallbeleid te configureren.
Opmerking: Als je servers op DigitalOcean draaien, kun je optioneel DigitalOcean Cloud Firewalls gebruiken in plaats van firewalld
. We raden aan om slechts één firewall tegelijk te gebruiken om conflicterende regels te vermijden die moeilijk te debuggen kunnen zijn.
Installeer eerst firewalld
:
De standaardconfiguratie van firewalld
staat ssh
-verbindingen toe, dus we kunnen de firewall onmiddellijk inschakelen:
Controleer de status van de service om er zeker van te zijn dat deze is gestart:
Output● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago
Docs: man:firewalld(1)
Main PID: 13180 (firewalld)
Tasks: 2 (limit: 5059)
Memory: 22.4M
CGroup: /system.slice/firewalld.service
└─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
Let op dat het zowel actief
als ingeschakeld
is, wat betekent dat het standaard zal starten als de server opnieuw wordt opgestart.
Nu de service actief is, kunnen we de firewall-cmd
-tool gebruiken om beleidsinformatie voor de firewall te krijgen en in te stellen.
Laten we eerst bekijken welke services al zijn toegestaan:
Outputpublic (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Om de extra services te zien die je kunt inschakelen op naam, typ:
Om een service toe te voegen die moet worden toegestaan, gebruik de --add-service
-vlag:
Dit zou de http
-service toevoegen en inkomend TCP-verkeer naar poort 80
toestaan. De configuratie wordt bijgewerkt nadat je de firewall opnieuw hebt geladen:
Vergeet niet dat je de firewall expliciet moet openen (met services of poorten) voor eventuele aanvullende services die je later configureert.
Stap 5 — Externe toegang inschakelen voor je normale gebruiker
Nu we een reguliere niet-root-gebruiker hebben voor dagelijks gebruik, moeten we ervoor zorgen dat we deze kunnen gebruiken om via SSH verbinding te maken met onze server.
Let op: Totdat u hebt geverifieerd dat u kunt inloggen en sudo
kunt gebruiken met uw nieuwe gebruiker, raden we aan ingelogd te blijven als root. Op deze manier kunt u, als u problemen ondervindt, foutoplossingen uitvoeren en eventuele wijzigingen aanbrengen als root. Als u een DigitalOcean Droplet gebruikt en problemen ondervindt met uw SSH-verbinding als root, kunt u inloggen op de Droplet via de DigitalOcean Console.
Het proces voor 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 verificatie.
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:
Na het invoeren van het wachtwoord van uw reguliere gebruiker, wordt u ingelogd. Onthoud dat als u een opdracht met beheerdersrechten moet uitvoeren, u sudo
ervoor typt zoals dit:
U wordt gevraagd om het wachtwoord van uw reguliere gebruiker wanneer u sudo
voor de eerste keer gebruikt in elke sessie (en periodiek daarna).
Om de beveiliging van uw server te verbeteren, raden we ten zeerste aan om SSH-sleutels in te stellen in plaats van het gebruik van wachtwoordauthenticatie. Volg onze handleiding voor het instellen van SSH-sleutels op Rocky Linux 8 om te leren hoe u key-based authenticatie configureert.
Als het Root-account SSH Key-authenticatie gebruikt
Als u bent ingelogd op uw root account met behulp van SSH-sleutels, dan is wachtwoordauthenticatie uitgeschakeld voor SSH. U moet een kopie van uw openbare sleutel toevoegen aan het bestand ~/.ssh/authorized_keys
van de nieuwe gebruiker om succesvol in te loggen.
Aangezien uw openbare sleutel al in het bestand ~/.ssh/authorized_keys
van het root account op de server staat, kunnen we dat bestand en de mapstructuur kopiëren naar ons nieuwe gebruikersaccount.
De eenvoudigste manier om de bestanden met de juiste eigenaarschap en rechten te kopiëren is met het rsync
commando. Dit zal de root gebruikers .ssh
map kopiëren, de rechten behouden en de bestandseigenaars wijzigen, allemaal in één commando. Zorg ervoor dat u de gemarkeerde delen van het onderstaande commando aanpast aan de naam van uw reguliere gebruiker:
Opmerking: 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
) niet eindigt met een schuine streep (controleer of 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
map kopiëren naar de home directory van de sudo
gebruiker in plaats van de volledige ~/.ssh
mapstructuur te kopiëren. De bestanden zullen zich op de verkeerde locatie bevinden en SSH zal ze niet kunnen vinden en gebruiken.
Open nu in een nieuwe terminal op je lokale machine een nieuwe SSH-sessie met je niet-root gebruiker:
Je zou nu moeten zijn ingelogd op het nieuwe gebruikersaccount zonder een wachtwoord te gebruiken. Onthoud, als je een commando met administratieve rechten moet uitvoeren, typ dan sudo
ervoor zoals dit:
Je wordt gevraagd om je reguliere gebruikerswachtwoord in te voeren wanneer je sudo
voor de eerste keer in elke sessie gebruikt (en periodiek daarna).
Conclusie
Op dit moment heb je een solide basis voor je server. Je kunt nu alle software installeren die je nodig hebt op je server.
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8