Kā bloķēt lietotāju kontus pēc neveiksmīgiem pieteikšanās mēģinājumiem


Šajā rokasgrāmatā tiks parādīts, kā bloķēt sistēmas lietotāja kontu pēc noteikta daudzuma neveiksmīgiem pieteikšanās mēģinājumiem CentOS, RHEL un Fedora izplatījumos. Šeit galvenā uzmanība tiek pievērsta vienkāršas servera drošības nodrošināšanai, bloķējot lietotāja kontu pēc neveiksmīgas autentifikācijas pēc kārtas.

To var panākt, izmantojot moduli pam_faillock , kas palīdz īslaicīgi bloķēt lietotāju kontus vairāku neveiksmīgu autentifikācijas mēģinājumu gadījumā un veic šī notikuma reģistrēšanu. Neveiksmīgi pieteikšanās mēģinājumi tiek saglabāti katram lietotājam paredzētajos failos kopsummas direktorijā, kas pēc noklusējuma ir /var/run/faillock/.

pam_faillock ir daļa no Linux PAM (Pluggable Authentication Modules), dinamiska mehānisma autentifikācijas pakalpojumu ieviešanai lietojumprogrammās un dažādos sistēmas pakalpojumos, ko mēs īsi izskaidrojām sadaļā PAM konfigurēšana, lai pārbaudītu lietotāja pieteikšanās čaulas darbību.

Kā bloķēt lietotāju kontus pēc secīgas neveiksmīgas autentifikācijas

Iepriekšminēto funkcionalitāti varat konfigurēt failos /etc/pam.d/system-auth un /etc/pam.d/password-auth, pievienojot zemāk esošos ierakstus sadaļā auth .

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

Kur:

  • audit - ļauj veikt lietotāju auditēšanu.
  • deny - tiek izmantots, lai noteiktu mēģinājumu skaitu (šajā gadījumā 3), pēc kuriem lietotāja konts ir jāaizver.
  • unlock_time - nosaka laiku (300 sekundes = 5 minūtes), kuram kontam vajadzētu būt bloķētam.

Ņemiet vērā, ka šo rindu secība ir ļoti svarīga, nepareizas konfigurācijas var izraisīt visu lietotāju kontu bloķēšanu.

Abu failu sadaļā auth zemāk esošajam saturam jābūt sakārtotam šādā secībā:

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

Tagad atveriet šos divus failus, izvēloties redaktoru.

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

Noklusējuma ieraksti sadaļā auth abi faili izskatās šādi.

#%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

Pēc iepriekš minēto iestatījumu pievienošanas tam vajadzētu parādīties šādi.

#%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

Pēc tam abos iepriekš minētajos failos konta sadaļā pievienojiet šo iezīmēto ierakstu.

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

Kā bloķēt saknes kontu pēc neveiksmīgiem pieteikšanās mēģinājumiem

Lai bloķētu saknes kontu pēc neveiksmīgiem autentifikācijas mēģinājumiem, pievienojiet opciju even_deny_root abās rindiņās auth šādā veidā.

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

Kad esat visu konfigurējis. Varat restartēt attālinātas piekļuves pakalpojumus, piemēram, sshd, lai stātos spēkā iepriekš minētā politika, tas ir, ja lietotāji izmantos ssh, lai izveidotu savienojumu ar serveri.

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

Kā pārbaudīt SSH lietotāja neizdevušos pieteikšanās mēģinājumus

No iepriekš minētajiem iestatījumiem mēs konfigurējām sistēmu bloķēt lietotāja kontu pēc 3 neveiksmīgiem autentifikācijas mēģinājumiem.

Šajā scenārijā lietotājs tecmint mēģina pārslēgties uz lietotāja aaronkilik , taču pēc 3 nepareiziem pieteikšanās gadījumiem nepareizas paroles dēļ, ko norāda ziņojums “Atļauja liegta”, lietotāja aaronkilik konts ir bloķēts, kā parādīts ziņojumā “Autentifikācijas kļūme” no ceturtā mēģinājuma.

Saknes lietotājam tiek paziņots arī par neveiksmīgiem pieteikšanās mēģinājumiem sistēmā, kā parādīts zemāk redzamajā ekrānuzņēmumā.

Kā apskatīt neizdevušos autentifikācijas mēģinājumus

Visus neizdevušos autentifikācijas žurnālus var redzēt, izmantojot utilītu faillock, kuru izmanto, lai parādītu un modificētu autentifikācijas kļūmju žurnālu.

Šādi var apskatīt neveiksmīgus pieteikšanās mēģinājumus konkrētam lietotājam.

# faillock --user aaronkilik

Lai skatītu visus neveiksmīgos pieteikšanās mēģinājumus, palaidiet faillock bez jebkādiem argumentiem:

# faillock 

Lai notīrītu lietotāja autentifikācijas kļūmju žurnālus, palaidiet šo komandu.

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

Visbeidzot, lai liktu sistēmai pēc vairākiem neveiksmīgiem pieteikšanās mēģinājumiem neaizslēgt lietotāja vai lietotāja kontus, pievienojiet ar sarkanu krāsu atzīmētu ierakstu tieši virs tā, kur pam_faillock vispirms tiek izsaukts autorizācijas sadaļā abos failos (/etc/pam.d/ system-auth un /etc/pam.d/password-auth) šādi.

Vienkārši pievienojiet pilnu kolu atdalītus lietotājvārdus opcijas lietotājam.

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

Plašāku informāciju skatiet pam_faillock un faillock cilvēka lapās.

# man pam_faillock
# man faillock 

Varat arī izlasīt šos noderīgos rakstus:

  1. TMOUT - automātiska atteikšanās no Linux čaulas, ja nav nekādu darbību
  2. Viena lietotāja režīms: aizmirstas root lietotāja konta paroles atiestatīšana/atjaunošana
  3. 5 labākās prakses SSH servera drošībai un aizsardzībai
  4. Kā iegūt root un lietotāju SSH pieteikšanās e-pasta brīdinājumus

Tas ir viss! Šajā rakstā mēs parādījām, kā nodrošināt vienkāršu servera drošību, bloķējot lietotāja kontu pēc x nepareizas pieteikšanās vai neveiksmīgiem autentifikācijas mēģinājumiem. Izmantojiet zemāk esošo komentāru veidlapu, lai dalītos ar mums savos jautājumos vai domās.