Configureer SSH-aanmeldingsverificatiefactoren in CentOS 7

Beveiliging is een van de bastions van CentOS 7 en we houden van beheerders of IT-personeel dat dit soort machines beheert, moet ervoor zorgen dat deze beveiligingsniveaus elke dag beter worden, aangezien de informatie van de gebruikers gevaar loopt. Er zijn verschillende beveiligingsmaatregelen die we kunnen implementeren in CentOS 7 En een van de belangrijkste, waar we ons op zullen concentreren, is authenticatie.

een factor van authenticatie Het is een methode die bepaalt of een gebruiker de machtigingen heeft om een ​​actie binnen het systeem uit te voeren, zoals het starten van een sessie of de installatie van een applicatie. Dit is essentieel omdat het ons in staat stelt om gecentraliseerde controle te hebben over elke gebeurtenis die binnen het systeem plaatsvindt Er zijn enkele fundamentele componenten in het authenticatieproces, zoals:

Authenticatie kanaalHet is de manier waarop het authenticatiesysteem levert een factor op voor de gebruiker zodat het zijn autorisatie aantoont, bijvoorbeeld een computer.

authenticatie factorZoals we hebben vermeld, is dit de methode om aan te tonen dat: wij hebben de rechten om de actie uit te voeren, bijvoorbeeld een wachtwoord.

We weten dat SSH voorgedefinieerde wachtwoorden gebruikt, maar dit is een authenticatiefactor en het is belangrijk om een ​​kanaal toe te voegen aangezien a wachtwoord in verkeerde handen brengt de gehele integriteit van de operatie in gevaar. Deze keer zullen we praten en analyseren hoe meerdere authenticatiefactoren, bekend, kunnen worden geïmplementeerd als MFA, aangezien deze de toegangsbeveiliging aanzienlijk verhogen door niet slechts één, maar meerdere authenticatieparameters te vereisen om correct in te loggen.
Er zijn verschillende authenticatiefactoren zoals:

  • Wachtwoorden en vragen van veiligheid.
  • token van veiligheid.
  • Stem of vingerafdruk digitaal.
Met deze concepten beginnen we met het configureren van meerdere authenticatiefactoren in CentOS 7.

1. Hoe Google PAM te installeren


PAM (Pluggable Authentication Module) is in feite een authenticatie-infrastructuur voor gebruikers van Linux-omgevingen. Deze PAM genereert TOTP (Time-based One-time Password) en is compatibel met OATH-TOTP-applicaties zoals Google Authenticator.

Stap 1
Voor installatie: PAM op CentOS 7 eerst zal het nodig zijn om de EPEL-repository (Extra Packages for Enterprise Linux) te installeren, hiervoor gebruiken we de volgende regel. We aanvaarden het downloaden en respectievelijk installeren van de pakketten.

 sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

VERGROTEN

Stap 2
Zodra de EPEL-repository is geïnstalleerd, zullen we PAM in CentOS 7 installeren met behulp van de volgende regel:

 sudo yum installeer google-authenticator

VERGROTEN

Stap 3
Als het de eerste keer is dat we deze repository gebruiken, moeten we: accepteer het gebruik van het wachtwoord van EPEL maar zal niet opnieuw worden aangevraagd, in deze regel voeren we de . in brieven:

VERGROTEN

We kunnen zien dat de installatie is gelukt. we hebben PAM geïnstalleerd In CentOS 7 zullen we de hulp van het hulpprogramma gebruiken om de TOPT voor de gebruiker te genereren waaraan een tweede authenticatiefactor wordt toegevoegd. Het is belangrijk om te verduidelijken dat dit sleutel moet door de gebruiker zijn gegenereerd maar niet op systeemniveau, aangezien elke toegang persoonlijk is.

2. Hoe Google PAM te gebruiken


Nu zullen we zien hoe voer en gebruik PAM van Google.

Stap 1
Met dit in gedachten gaan we verder met: start google-authenticator met behulp van de volgende opdracht:

 google-authenticator
Het volgende venster wordt weergegeven waar we het bericht krijgen als de beveiligingstokens op tijd zijn gebaseerd, we gaan naar: J:

VERGROTEN

Stap 2
PAM verwerkt twee soorten token, gebaseerd op tijd of sequentieel, met de sequentiële tokens kan de code op een bepaald punt beginnen en bij elk gebruik toenemen. Met het op tijd gebaseerde token kan de code na een bepaalde tijd willekeurig worden gewijzigd. Naar de druk op Y, we zullen het volgende zien.

we zien een QR code welke we kunnen scannen met onze telefoon of noteer de geheime sleutel eronder. Op dezelfde manier kunnen we de verificatiecode (6 cijfers) zien die: verandert elke 30 seconden.

VERGROTEN

OpmerkingHet is van vitaal belang dat laten we alle codes opslaan geplaatst op een veilige plaats.

Stap 3
In de vraag die we aan het einde van de regel zien, geeft dit aan dat de sleutels zullen worden geschreven en het bestand zal worden bijgewerkt. google-authenticatorAls we de letter n invoeren, wordt het programma gesloten en werkt de applicatie niet.
We voeren de letter in Y, wordt het volgende weergegeven:

VERGROTEN

Stap 4
Deze vraag verwijst naar de vraag of we accepteren: wij voorkomen een mislukking herhaling waardoor elke code vervalt na gebruik, deze optie voorkomt dat buitenstaanders deze codes vastleggen voor ongeautoriseerde toegang. Door op te drukken en we zullen het volgende zien:

VERGROTEN

Stap 5
Als we op deze vraag antwoorden of we toestaan ​​tegen maximaal 8 geldige codes met een venster van vier minuten, als we antwoorden, hebben we niet slechts 3 geldige codes met een venster van anderhalve minuut. Daar selecteren we de meest geschikte optie: het veiligst zijn. We zullen het volgende nog eens zien.

Deze vraag verwijst naar de pogingen beperking waarin een aanvaller toegang heeft voordat hij wordt geblokkeerd, is het maximum 3 pogingen. Klik op ja, dus hebben we google-authenticator geconfigureerd in CentOS 7.

VERGROTEN

3. Hoe OpenSSH te configureren op CentOS 7


Op dit punt zullen we een tweede maken SSH-verbinding om de tests uit te voeren, want als we de enige SSH-toegang blokkeren, zullen we problemen hebben om de parameters te configureren.

Stap 1
Om deze waarden te bewerken, zullen we het sshd-bestand openen met behulp van de voorkeurseditor, we zullen het volgende invoeren:

 sudo nano /etc/pam.d/sshd

VERGROTEN

Stap 2
Aan het einde van het bestand voegen we de volgende regel toe:

 auth vereist pam_google_authenticator.so nullok

VERGROTEN

Stap 3
Wij houden het bestand met behulp van de toetsencombinatie:

Ctrl + O

Y we gingen uit van hetzelfde met behulp van de combinatie:

Ctrl + X

Stap 3
De voorwaarde nullok vertelt PAM dat deze authenticatiefactor optioneel is, waardoor gebruikers zonder OATH-TOTP toegang hebben met hun SSH-sleutel. nutsvoorzieningen we zullen sshd . configureren Om dit type authenticatie toe te staan, zullen we hiervoor de volgende regel invoeren:

 sudo nano / etc / ssh / sshd_config

VERGROTEN

Stap 4

  • Daar we zullen lokaliseren de volgende regel:
 UitdagingReactieAuthenticatie
  • We zullen geen commentaar geven de lijn:
 UitdagingReactieAuthenticatie ja
  • We zullen commentaar geven op de regel:
 UitdagingReactieAuthenticatie nr

VERGROTEN

Stap 4
We slaan de wijzigingen op met Ctrl + OF. en we herstarten de service met de volgende regel:

 sudo systemctl herstart sshd.service
Stap 5
Wij kunnen valideren connectiviteit toegang vanaf een andere terminal:

4. SSH inschakelen om MFA af te handelen in CentOS 7.

Stap 1
Hiervoor openen we opnieuw het bestand sshd.config en in het laatste deel van het bestand zullen we de volgende regel toevoegen:

 Authenticatiemethoden publickey, wachtwoord publickey, toetsenbord-interactief 

VERGROTEN

Stap 2
We slaan de wijzigingen op met Ctrl + OF en dan zullen we toegang krijgen tot het PAM sshd-bestand met behulp van de volgende regel:

 sudo nano /etc/pam.d/sshd
Stap 3

Daar zullen we de lijn vinden auth substack wachtwoord-auth en we zullen het becommentariëren (#) zodat PAM het wachtwoord niet nodig heeft voor toegang door SSH:

VERGROTEN

Stap 4
Wij houden de veranderingen. We rebooten de service met behulp van de opdracht:

 sudo systemctl herstart sshd.service

5. Een derde authenticatiefactor toevoegen in CentOS 7

Stap 1
We konden zien dat de volgende authenticatiefactoren zijn toegevoegd:

 publickey (SSH key) wachtwoord publickey (Password) toetsenbord-interactief (Verificatiecode)
Stap 2
Als we proberen verbinding te maken, zien we alleen de SSH-sleutel en de verificatiecode actief, om het wachtwoord in te schakelen is het voldoende om opnieuw toegang te krijgen tot de route sudo nano /etc/pam.d/sshd en daar uncomment de regel
 auth substack wachtwoord-auth.
Stap 3
We slaan de wijzigingen op en we gaan de service opnieuw starten met sudo
 systemctl herstart sshd.service 
Zoals we zien, hoe meer beveiligingsniveaus we hanteren in CentOS 7, hoe meer mogelijkheden we zullen hebben om een ​​stabiel en betrouwbaar systeem voor alle gebruikers te hebben. Om meer te weten te komen over beveiliging op uw systeem, zie hoe u Firewall kunt configureren, in- of uitschakelen in CentOS 7.

CentOS7-firewall

wave wave wave wave wave