Sådan låses brugerkonti efter mislykkede loginforsøg


Denne vejledning viser, hvordan du låser en systembrugerkonto efter et specificerbart antal mislykkede loginforsøg i CentOS-, RHEL- og Fedora-distributioner. Her er fokus at håndhæve enkel serversikkerhed ved at låse en brugers konto efter på hinanden følgende antal mislykkede godkendelser.

Dette kan opnås ved hjælp af pam_faillock -modulet, som hjælper med at midlertidigt låse brugerkonti i tilfælde af flere mislykkede godkendelsesforsøg og registrerer denne begivenhed. Mislykkede loginforsøg gemmes i filer pr. Bruger i tally-biblioteket, der er /var/run/faillock/ som standard.

pam_faillock er en del af Linux PAM (Pluggable Authentication Modules), en dynamisk mekanisme til implementering af godkendelsestjenester i applikationer og forskellige systemtjenester, som vi kort forklarede under konfiguration af PAM til revision af brugerlogin shell-aktivitet.

Sådan låses brugerkonti efter på hinanden følgende mislykkede godkendelser

Du kan konfigurere ovenstående funktionalitet i filerne /etc/pam.d/system-auth og /etc/pam.d/password-auth ved at tilføje nedenstående poster til auth sektionen.

auth    required       pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth    [default=die]  pam_faillock.so authfail audit deny=3 unlock_time=600

Hvor:

  • audit - muliggør brugerkontrol.
  • nægter - bruges til at definere antallet af forsøg (3 i dette tilfælde), hvorefter brugerkontoen skal låses.
  • unlock_time - indstiller det tidspunkt (300 sekunder = 5 minutter), som kontoen skal forblive låst for.

Bemærk, at rækkefølgen af disse linjer er meget vigtig, forkerte konfigurationer kan få alle brugerkonti til at blive låst.

Afsnittet auth i begge filer skal have indholdet nedenfor arrangeret i denne rækkefølge:

auth        required      pam_env.so
auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=300
auth        sufficient    pam_unix.so  nullok  try_first_pass
auth        [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=300
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

Åbn nu disse to filer med dit valg af editor.

# vi /etc/pam.d/system-auth
# vi /etc/pam.d/password-auth 

Standardindgangene i auth sektionen begge filer ser sådan ud.

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet
auth        required      pam_deny.so

Efter tilføjelse af ovenstående indstillinger skal det se ud som følger.

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=300
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=300
auth        requisite     pam_succeed_if.so uid >= 1000 quiet
auth        required      pam_deny.so

Føj derefter følgende fremhævede post til kontosektionen i begge ovenstående filer.

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so
account     required      pam_faillock.so

Sådan låses rodkontoen efter mislykkede loginforsøg

For at låse rodkontoen efter mislykkede godkendelsesforsøg skal du tilføje indstillingen even_deny_root til linjerne i begge filer i afsnittet auth som denne.

auth        required      pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=300
auth        [default=die]  pam_faillock.so  authfail  audit  deny=3 even_deny_root unlock_time=300

Når du har konfigureret alt. Du kan genstarte fjernadgangstjenester som sshd, for at ovenstående politik skal træde i kraft, det vil sige, hvis brugerne vil bruge ssh til at oprette forbindelse til serveren.

# systemctl restart sshd  [On SystemD]
# service sshd restart    [On SysVInit]

Sådan testes SSH-bruger mislykkede loginforsøg

Fra ovenstående indstillinger konfigurerede vi systemet til at låse en brugers konto efter 3 mislykkede godkendelsesforsøg.

I dette scenarie forsøger brugeren tecmint at skifte til bruger aaronkilik , men efter 3 forkerte login på grund af en forkert adgangskode angivet med meddelelsen "Tilladelse nægtet" vises bruger aaronkiliks konto er låst som vist ved meddelelsen "godkendelsesfejl" fra det fjerde forsøg.

Rodbrugeren underrettes også om de mislykkede loginforsøg på systemet, som vist på skærmbilledet nedenfor.

Sådan får du vist mislykkede godkendelsesforsøg

Du kan se alle mislykkede godkendelseslogfiler ved hjælp af faillock-værktøjet, som bruges til at vise og ændre godkendelsesfejlloggen.

Du kan se mislykkede loginforsøg for en bestemt bruger som denne.

# faillock --user aaronkilik

For at se alle mislykkede loginforsøg, kør faillock uden noget argument som sådan:

# faillock 

For at rydde en brugers godkendelsesfejllogfiler skal du køre denne kommando.

# faillock --user aaronkilik --reset 
OR
# fail --reset	#clears all authentication failure records

Endelig, for at fortælle systemet ikke at låse en bruger eller brugerens konti efter flere mislykkede loginforsøg, skal du tilføje posten markeret med rød farve lige over, hvor pam_faillock først kaldes under autorisationsafsnittet i begge filer (/etc/pam.d/ system-auth og /etc/pam.d/password-auth) som følger.

Du skal blot tilføje fulde kolon-adskilte brugernavne til indstillingsbrugeren i.

auth  required      pam_env.so
auth   [success=1 default=ignore] pam_succeed_if.so user in tecmint:aaronkilik 
auth   required      pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth   sufficient    pam_unix.so  nullok  try_first_pass
auth   [default=die]  pam_faillock.so  authfail  audit  deny=3  unlock_time=600
auth   requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth   required      pam_deny.so

For mere information, se pam_faillock og faillock man sider.

# man pam_faillock
# man faillock 

Du kan også godt lide at læse følgende nyttige artikler:

  1. TMOUT - Automatisk logout Linux-shell, når der ikke er nogen aktivitet
  2. Enkeltbrugertilstand: Nulstilling/gendannelse af glemt adgangskode til rodbrugerkonto
  3. 5 bedste fremgangsmåder til sikring og beskyttelse af SSH-server
  4. Sådan får du rod- og bruger-SSH-login-mailalarmer

Det er alt! I denne artikel viste vi, hvordan man håndhæver enkel serversikkerhed ved at låse en brugers konto efter x antal forkerte login eller mislykkede godkendelsesforsøg. Brug kommentarformularen nedenfor til at dele dine spørgsmål eller tanker med os.