ssh

Hoe de SSH-server te beveiligen in Ubuntu 20.04 van basis naar geavanceerd

Hoe de SSH-server te beveiligen in Ubuntu 20.04 van basis naar geavanceerd
Net als alle andere servers is ook de SSH-server vatbaar voor ongeautoriseerde toegangspogingen. Daarom, wanneer u een SSH-server wilt gebruiken, moet u hebben overwogen deze eerst te beveiligen om uzelf op de langere termijn te behoeden voor ongewenste situaties. Over het algemeen wordt de term "een server beveiligen" ook wel "een server verharden" genoemd.Dit kan door meerdere maatregelen te nemen. Deze maatregelen zijn afhankelijk van het beveiligingsniveau dat u nodig heeft.

De maatregelen voor het beveiligen van de SSH-server variëren van eenvoudig tot geavanceerd, en zoals we eerder zeiden, kunt u ze oppakken op basis van het beveiligingsniveau dat u nodig hebt. U kunt alle voorgeschreven maatregelen overslaan als u voldoende kennis heeft van de gevolgen en in staat bent deze onder ogen te zien. We kunnen ook nooit zeggen dat een enkele stap voor 100% veiligheid zorgt, of dat een bepaalde stap beter is dan de andere.

Het hangt allemaal af van het type beveiliging dat we echt nodig hebben. Daarom zijn we van plan u vandaag een zeer diep inzicht te geven in de basis- en geavanceerde stappen voor het beveiligen van een SSH-server in Ubuntu 20.04. Afgezien van deze methoden, zullen we als bonus ook enkele aanvullende tips met u delen om uw SSH-server te beveiligen. Dus laten we beginnen met de interessante discussie van vandaag.

Methode voor het beveiligen van de SSH-server in Ubuntu 20.04:

Alle SSH-configuraties worden opgeslagen in het bestand /etc/ssh/sshd_config. Dit bestand wordt als zeer cruciaal beschouwd voor het normaal functioneren van uw SSH-server. Daarom wordt het ten zeerste aanbevolen dat u, voordat u wijzigingen aanbrengt in dit bestand, een back-up van dit bestand maakt door de volgende opdracht in uw terminal uit te voeren:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak


Als deze opdracht met succes wordt uitgevoerd, krijgt u geen uitvoer te zien, zoals weergegeven in de onderstaande afbeelding:

Nadat u een back-up van dit bestand hebt gemaakt, is deze stap optioneel en wordt deze uitgevoerd als u alle opties wilt controleren die momenteel zijn ingeschakeld in dit configuratiebestand. U kunt het bekijken door de volgende opdracht in uw terminal uit te voeren:

sudo sshd -T


De momenteel ingeschakelde opties van het SSH-configuratiebestand worden weergegeven in de onderstaande afbeelding:. U kunt door deze lijst naar beneden scrollen om alle opties te bekijken.

Nu kunt u beginnen met het beveiligen van uw SSH-server terwijl u overgaat van de basisstappen naar de geavanceerde stappen in Ubuntu 20.04.

Basisstappen voor het beveiligen van de SSH-server in Ubuntu 20.04:

De basisstappen voor het beveiligen van een SSH-server in Ubuntu 20.04 zijn als volgt:

Stap # 1: Het SSH-configuratiebestand openen:

U kunt het SSH-configuratiebestand openen door de onderstaande opdracht in uw terminal uit te voeren:

sudo nano /etc/ssh/sshd_config


Het SSH-configuratiebestand wordt weergegeven in de volgende afbeelding:

Stap # 2: Op wachtwoord gebaseerde authenticatie uitschakelen:

In plaats van wachtwoorden te gebruiken voor authenticatie, worden SSH-sleutels als veiliger beschouwd. Daarom, als u de SSH-sleutels voor authenticatie hebt gegenereerd, moet u op wachtwoord gebaseerde authenticatie uitschakelen. Daarvoor moet u de variabele "PasswordAuthentication" zoeken, het commentaar verwijderen en de waarde ervan instellen op "no", zoals gemarkeerd in de onderstaande afbeelding:

Stap # 3: Lege wachtwoorden afwijzen/weigeren:

Soms vinden gebruikers het buitengewoon handig om lege wachtwoorden te maken om zichzelf te behoeden voor het onthouden van complexe wachtwoorden. Deze praktijk kan nadelig blijken te zijn voor de beveiliging van uw SSH-server. Daarom moet u alle verificatiepogingen met lege wachtwoorden afwijzen. Daarvoor moet u de variabele "PermitEmptyPasswords" zoeken en deze gewoon verwijderen, aangezien de waarde ervan standaard al is ingesteld op "nee", zoals gemarkeerd in de volgende afbeelding:

Stap # 4: Root-login verbieden:

U moet root-aanmeldingen strikt verbieden om indringers te beschermen tegen toegang op rootniveau tot uw server. U kunt dit doen door de variabele "PermitRootLogin" te zoeken, het commentaar ongedaan te maken en de waarde in te stellen op "nee", zoals gemarkeerd in de onderstaande afbeelding:

Stap # 5: SSH-protocol gebruiken 2:

SSH-server kan op twee verschillende protocollen werken, i.e., Protocol 1 en Protocol 2. Protocol 2 implementeert meer geavanceerde beveiligingsfuncties, daarom heeft het de voorkeur boven Protocol 1. Protocol 1 is echter het standaardprotocol van SSH en wordt niet expliciet vermeld in het SSH-configuratiebestand. Als u daarom met Protocol 2 in plaats van Protocol 1 wilt werken, moet u expliciet de regel "Protocol 2" toevoegen aan uw SSH-configuratiebestand, zoals gemarkeerd in de volgende afbeelding:

Stap # 6: Een sessietime-out instellen:

Soms laten de gebruikers hun computers heel lang onbeheerd achter. Ondertussen kan elke indringer langskomen en toegang krijgen tot uw systeem terwijl de beveiliging wordt geschonden. Dit is waar het concept van sessietime-out om de hoek komt kijken. Deze functie wordt gebruikt om een ​​gebruiker uit te loggen als hij lange tijd inactief blijft, zodat geen andere gebruiker toegang kan krijgen tot zijn systeem.

Deze time-out kan worden ingesteld door de variabele "ClientAliveInterval" te lokaliseren, het commentaar ongedaan te maken en een waarde (in seconden) naar keuze toe te wijzen. In ons geval hebben we het de waarde van "300 seconden" of "5 minuten" toegekend. Dit betekent dat als de gebruiker "300 seconden" wegblijft van de SSH-server, hij automatisch wordt uitgelogd zoals gemarkeerd in de onderstaande afbeelding:

Stap #7: Specifieke gebruikers toegang geven tot de SSH-server:

De SSH-server is geen server waarvan elke andere gebruiker toegang nodig heeft. Daarom mag de toegang alleen worden beperkt tot die gebruikers die het echt nodig hebben. Om specifieke gebruikers toegang te geven tot de SSH-server, moet u een variabele met de naam "AllowUsers" toevoegen aan het SSH-configuratiebestand en vervolgens de namen schrijven van alle gebruikers die u toegang wilt verlenen tot de SSH-server, gescheiden door een spatie. In ons geval wilden we slechts één gebruiker toegang geven tot de SSH-server. Daarom hebben we alleen zijn naam toegevoegd zoals gemarkeerd in de volgende afbeelding:

Stap #8: Het aantal authenticatiepogingen beperken:

Telkens wanneer een gebruiker toegang probeert te krijgen tot een server en hij zich niet voor de eerste keer kan authenticeren, probeert hij het opnieuw te doen. De gebruiker blijft deze pogingen doen totdat en tenzij hij zichzelf met succes kan authenticeren en zo toegang krijgt tot de SSH-server. Dit wordt als een zeer onveilige praktijk beschouwd, aangezien een hacker een Brute Force Attack kan lanceren (een aanval die herhaaldelijk probeert een wachtwoord te raden totdat de juiste match is gevonden). Als gevolg hiervan kan hij toegang krijgen tot uw SSH-server.

Daarom wordt het ten zeerste aanbevolen om het aantal authenticatiepogingen te beperken om aanvallen door wachtwoorden te voorkomen. De standaardwaarde van de authenticatiepogingen naar de SSH-server is ingesteld op "6". U kunt het echter wijzigen, afhankelijk van het beveiligingsniveau dat u nodig heeft. Daarvoor moet u de variabelen "MaxAuthTries" lokaliseren, het commentaar verwijderen en de waarde instellen op elk gewenst aantal. We wilden de authenticatiepogingen beperken tot "3", zoals gemarkeerd in de onderstaande afbeelding:

Stap #9: De SSH-server in testmodus uitvoeren:

Inmiddels hebben we alle basisstappen genomen om onze SSH-server te beveiligen op Ubuntu 20.04. We moeten er echter nog steeds voor zorgen dat de opties die we zojuist hebben geconfigureerd goed werken. Daarvoor zullen we eerst ons configuratiebestand opslaan en sluiten. Nadat we dat hebben gedaan, zullen we proberen onze SSH-server in de testmodus uit te voeren. Als het met succes in de testmodus wordt uitgevoerd, betekent dit dat er geen fouten in uw configuratiebestand staan. U kunt uw SSH-server in de testmodus uitvoeren door de volgende opdracht in uw terminal uit te voeren:

sudo sshd -t


Wanneer deze opdracht met succes is uitgevoerd, wordt er geen uitvoer weergegeven op de terminal, zoals weergegeven in de onderstaande afbeelding:. Als er echter fouten in uw configuratiebestand staan, zal het uitvoeren van deze opdracht die fouten op de terminal weergeven. U wordt dan verondersteld die fouten te herstellen. Alleen dan kun je verder.

Stap #10: De SSH-server opnieuw laden met nieuwe configuraties:

Toen de SSH-server nu met succes in de testmodus liep, moeten we hem opnieuw laden zodat hij het nieuwe configuratiebestand kan lezen, i.e., de wijzigingen die we hebben aangebracht in het SSH-configuratiebestand in de bovenstaande stappen. Om de SSH-server opnieuw te laden met nieuwe configuraties, moet u de volgende opdracht in uw terminal uitvoeren:

sudo service sshd herladen


Als uw SSH-server met succes opnieuw is opgestart, geeft de terminal geen uitvoer weer, zoals weergegeven in de onderstaande afbeelding:

Geavanceerde stappen voor het beveiligen van de SSH-server in Ubuntu 20.04:

Na het uitvoeren van alle basisstappen voor het beveiligen van de SSH-server in Ubuntu 20.04, je kunt eindelijk doorgaan naar de geavanceerde stappen. Dit is slechts een stap vooruit om uw SSH-server te beveiligen. Als u echter slechts een matig beveiligingsniveau wilt bereiken, zijn de hierboven beschreven stappen voldoende. Maar als u iets verder wilt gaan, kunt u de onderstaande stappen volgen:

Stap # 1: Het openen van de ~/.ssh/authorized_keys Bestand:

De basisstappen voor het beveiligen van de SSH-server worden geïmplementeerd in het SSH-configuratiebestand. Het betekent dat dit beleid geldt voor alle gebruikers die proberen toegang te krijgen tot de SSH-server. Het houdt ook in dat de basisstappen een generieke methode vertegenwoordigen om de SSH-server te beveiligen. Als we echter proberen het principe van "Defense in Depth" te overwegen, zullen we ons realiseren dat we elke individuele SSH-sleutel afzonderlijk moeten beveiligen. Dit kan worden gedaan door expliciete beveiligingsparameters te definiëren voor elke individuele sleutel. De SSH-sleutels worden opgeslagen in de ~/.ssh/authorized_keys bestand, dus we zullen eerst dit bestand openen om de beveiligingsparameters te wijzigen. We zullen de volgende opdracht in de terminal uitvoeren om toegang te krijgen tot de ~/.ssh/authorized_keys bestand:

sudo nano ~/.ssh/authorized_keys

Als u deze opdracht uitvoert, wordt het opgegeven bestand geopend met de nano-editor. U kunt echter ook een andere teksteditor naar keuze gebruiken om dit bestand te openen. Dit bestand bevat alle SSH-sleutels die u tot nu toe hebt gegenereerd.

Stap # 2: Specifieke configuraties definiëren voor bepaalde toetsen:

Voor het bereiken van een geavanceerd beveiligingsniveau zijn de volgende vijf opties beschikbaar:

Deze opties kunnen vóór een SSH-sleutel van uw keuze worden geschreven om ze beschikbaar te maken voor die specifieke sleutel. Er kunnen zelfs meer dan één optie worden geconfigureerd voor een enkele SSH-sleutel. Als u bijvoorbeeld port forwarding voor een bepaalde sleutel wilt uitschakelen of, met andere woorden, u wilt geen port forwarding voor een specifieke sleutel implementeren, dan is de syntaxis als volgt:

no-port-forwarding GewensteSSHKey

Hier, in plaats van de DesiredSSHKey, heb je een echte SSH-sleutel in je ~/.ssh/authorized_keys bestand. Nadat u deze opties voor uw gewenste SSH-sleutels hebt toegepast, moet u de ~/.ssh/authorized_keys bestand en sluit het. Een goede eigenschap van deze geavanceerde methode is dat je je SSH-server niet opnieuw hoeft te laden nadat je deze wijzigingen hebt aangebracht. In plaats daarvan worden deze wijzigingen automatisch door uw SSH-server gelezen.

Op deze manier kunt u elke SSH-sleutel grondig beveiligen door de geavanceerde beveiligingsmechanismen toe te passen.

Enkele aanvullende tips voor het beveiligen van de SSH-server in Ubuntu 20.04:

Afgezien van alle basis- en geavanceerde stappen die we hierboven hebben genomen, zijn er ook enkele aanvullende tips die zeer goed kunnen blijken te zijn voor het beveiligen van de SSH-server in Ubuntu 20.04. Deze aanvullende tips zijn hieronder besproken:

Houd uw gegevens versleuteld:

De gegevens die zich op uw SSH-server bevinden, evenals de gegevens die onderweg zijn, moeten worden versleuteld en dat ook met een sterk versleutelingsalgoritme. Dit beschermt niet alleen de integriteit en vertrouwelijkheid van uw gegevens, maar voorkomt ook dat de beveiliging van uw hele SSH-server in gevaar komt.

Houd uw software up-to-date:

De software die op uw SSH-server draait, moet up-to-date zijn. Dit wordt gedaan om ervoor te zorgen dat er geen beveiligingsfouten in uw software onbeheerd blijven. In plaats daarvan moeten ze goed op tijd worden gepatcht. Dit zal u op de lange termijn behoeden voor mogelijke schade en ook voorkomen dat uw server uitvalt of niet beschikbaar is vanwege beveiligingsproblemen.

Zorg ervoor dat SELinux is ingeschakeld:

SELinux is het mechanisme dat de basis legt voor de beveiliging binnen de op Linux gebaseerde systemen. Het werkt door de implementatie van de verplichte toegangscontrole (MAC). Het implementeert dit toegangscontrolemodel door toegangsregels te definiëren in zijn beveiligingsbeleid. Dit mechanisme is standaard ingeschakeld. De gebruikers mogen deze instelling echter op elk moment wijzigen. Het betekent dat ze SELinux kunnen uitschakelen wanneer ze maar willen. Het wordt echter ten zeerste aanbevolen dat u SELinux altijd ingeschakeld houdt, zodat het uw SSH-server kan voorkomen van alle mogelijke schade.

Gebruik een strikt wachtwoordbeleid:

Als u uw SSH-server met wachtwoorden hebt beveiligd, moet u een sterk wachtwoordbeleid maken. Idealiter zouden de wachtwoorden meer dan 8 tekens lang moeten zijn. Ze moeten na een bepaalde tijd worden vervangen, bijvoorbeeld na elke 2 maanden. Ze mogen geen woordenboekwoorden bevatten; ze moeten eerder een combinatie zijn van alfabetten, cijfers en speciale tekens. Op dezelfde manier kunt u enkele andere extra strikte maatregelen voor uw wachtwoordbeleid definiëren om ervoor te zorgen dat ze sterk genoeg zijn.

Bewaak en onderhoud de auditlogboeken van uw SSH-server:

Als er iets misgaat met je SSH-server, kan je eerste hulp de auditlogboeken zijn. Daarom moet u deze logboeken blijven bijhouden, zodat u de oorzaak van het probleem kunt achterhalen. Bovendien, als je de gezondheid en werking van je SSH-server continu in de gaten houdt, dan zal dit in de eerste plaats ook voorkomen dat er grote problemen optreden.

Zorg voor regelmatige back-ups van uw gegevens:

Last but not least, je moet altijd een back-up van je hele SSH-server bewaren. Als u dit doet, voorkomt u niet alleen dat uw gegevens beschadigd raken of volledig verloren gaan; in plaats daarvan kunt u deze back-upserver ook gebruiken wanneer uw hoofdserver uitvalt. Dit zal ook de downtime van de server beperken en de beschikbaarheid ervan garanderen.

Conclusie:

Door alle maatregelen te nemen die in dit artikel zijn voorgeschreven, kunt u uw SSH-server eenvoudig beveiligen of verharden in Ubuntu 20.04. Als u echter een achtergrond op het gebied van informatiebeveiliging heeft, moet u zich goed bewust zijn van dit feit dat er niets beters is dan 100% beveiliging. Het enige dat we kunnen krijgen is de belofte van de beste inspanning, en die beste inspanning zal alleen veilig zijn tot het moment dat deze ook wordt geschonden. Daarom kun je zelfs na het nemen van al deze maatregelen niet zeggen dat je SSH-server 100% veilig is; in plaats daarvan kan het nog steeds zulke kwetsbaarheden hebben waar je nooit aan had kunnen denken. Dergelijke kwetsbaarheden kunnen alleen worden verholpen als we onze SSH-server scherp in de gaten houden en deze blijven updaten wanneer dat nodig is.

Doom installeren en spelen op Linux
Inleiding tot Doom De Doom-serie is ontstaan ​​in de jaren 90 na de release van de originele Doom. Het was meteen een hit en vanaf die tijd heeft de g...
Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...
OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...