Hoe beveiligt u uw SSH verbinding in CentOS 7

SSH is het belangrijkste protocol dat wordt gebruikt om verbinding te maken met Linux servers en deze te beheren. Daarom is het een van de meest aangevallen poorten wanneer kwaadwillenden toegang proberen te krijgen tot uw server. In dit artikel bespreken we een paar methoden die je kunt gebruiken om je SSH-verbinding veiliger te maken.

Opmerking: Afhankelijk van het product dat je bij OVHcloud hebt, kunnen sommige van deze stappen al zijn genomen. Als dit het geval is, ga dan gewoon door naar de volgende stap. Bovendien gaan de stappen in dit artikel ervan uit dat u zich op uw server authenticeert met SSH-sleutels. Als u in plaats daarvan een wachtwoord gebruikt, zullen bepaalde stappen in dit artikel niet werken.

Voorvereisten

  • Hoe SSH sleutels te gebruiken
  • Server draait CentOS 7

Onderwerpen

  • Een nieuwe Sudo gebruiker aanmaken
  • De SSH Daemon wijzigen Configuratie

Een nieuwe Sudo gebruiker aanmaken

Het is altijd het beste om root authenticatie via SSH uit te schakelen, aangezien dit de gebruikersnaam is die mensen het meest zullen proberen te hacken. Dus, het eerste wat we willen doen om onze server te beveiligen is een nieuwe sudo gebruiker aanmaken voor SSH. Om dit te doen, voer het volgende commando in, waarbij je de rode gebruikersnaam vervangt door de gebruikersnaam van je keuze:

# adduser username

Volgende, we zullen een wachtwoord instellen voor de gebruiker:

# passwd username

Volg de prompt om het wachtwoord te maken en te bevestigen. Nu willen we onze nieuwe gebruiker sudo privileges geven, zodat we root kunnen worden en commando’s kunnen uitvoeren die administratieve privileges nodig hebben. We kunnen dit doen door het volgende commando in te voeren.

# usermod -aG wheel username

Ten slotte willen we onze nieuwe gebruiker toelaten om te authenticeren met de SSH publieke sleutel die we reeds aan de root gebruiker hebben gegeven. We kunnen een eenvoudig rsync commando gebruiken om de publieke sleutel naar het authorized_keys bestand van onze nieuwe gebruiker te kopiëren.

# rsync --archive --chown=username:username ~/.ssh /home/username

Voordat we verder gaan met de volgende stap, log uit en zorg ervoor dat u zich kunt authenticeren op de server als de nieuwe gebruiker met SSH. Als u niet kunt inloggen als uw nieuwe gebruiker, kunt u nog steeds inloggen als root; controleer of alle commando’s correct zijn ingevoerd en probeer opnieuw in te loggen als uw nieuwe gebruiker.

De SSH Daemon Configuratie Veranderen

Omdat we SSH keys en een nieuwe gebruiker gebruiken om te authenticeren op onze server, willen we nooit dat iemand zich authenticeert met een wachtwoord of de root gebruikersnaam. Om dit te bereiken, moeten we eerst naar het configuratiebestand voor de OpenSSH daemon gaan. Om dit te doen, opent u het bestand in een teksteditor naar keuze met het volgende commando:

$ sudo vi /etc/ssh/sshd_config

Er zijn drie wijzigingen die we in dit bestand willen aanbrengen. Ten eerste willen we de poort veranderen waarop OpenSSH luistert voor verzoeken.

Waarschuwing: Als u actieve firewalls hebt, moet u verkeer toelaten via de poort die u kiest of u sluit uzelf buiten van uw server. Als u zich toch van uw server afsluit, kunt u weer toegang krijgen via IPMI of KVM. Voor meer informatie kunt u ons artikel Aan de slag met IPMI lezen.

Bovenaan het bestand ziet u een sectie die er standaard als volgt uitziet:

#Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Maak het “Port” gedeelte leeg en kies een geldig poortnummer zoals in het volgende voorbeeld. In ons voorbeeld gebruiken we poort 12345.

Port 12345#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

Daarna scrollt u naar beneden naar het # Authentication: gedeelte van het bestand. U zult vijf opties zien die standaard als volgt verschijnen:

#LoginGraceTime 2m#PermitRootLogin yes
PermitRootLogin yes#StrictModes#MaxAuthTries 6#MaxSessions 10

Hier willen we de “yes” naast “PermitRootLogin” veranderen in “no.” Het zal als volgt verschijnen:

#LoginGraceTime 2m
#PermitRootLogin yesPermitRootLogin no#StrictModes#MaxAuthTries 6#MaxSessions 10

Nu willen we een beetje verder naar beneden scrollen in het sshd_config bestand om onze laatste wijziging aan te brengen – het uitschakelen van wachtwoord authenticatie. U zult een sectie zien die er standaard zo uitziet:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication yes

We willen de “yes” naast “PasswordAuthentication” veranderen in een “no.” Het zal er als volgt uitzien:

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication no

Bewaar en verlaat het bestand. Tenslotte moeten we OpenSSH herstarten om de veranderingen te effectueren. Doe dit door het volgende commando in te voeren:

$ sudo systemctl restart sshd.service

Laten we even een moment nemen om te bekijken wat we hier gedaan hebben. We hebben het poortnummer gewijzigd dat we gebruiken om te luisteren naar SSH verzoeken. Vervolgens hebben we SSH toegang uitgeschakeld voor de root gebruiker of iedere gebruiker die zich probeert te authenticeren met een wachtwoord. Als we dit juist hebben gedaan, zal het volgende commando niet langer werken om in te loggen op de server.

$ ssh [email protected]

Om nu in te loggen, moeten we het poortnummer opgeven dat we gebruiken om te luisteren naar SSH verzoeken. Dat betekent dat we vanaf nu het volgende commando moeten gebruiken, waarbij we het getal naast “-p” vervangen door het poortnummer dat we eerder hebben gekozen:

$ ssh -p 12345 [email protected]

Zorg ervoor dat dit commando werkt en dat het vorige dat niet doet. Als het werkt, bent u helemaal klaar om uw server veilig te benaderen via SSH.

Conclusie

Met zoveel slechte actoren die het internet gebruiken, is het nog nooit zo belangrijk geweest om alle potentiële toegangspunten tot uw server te beveiligen. Door deze gids te volgen, hebt u de beveiliging van het meest voorkomende toegangspunt op Linux servers geholpen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.