πŸ“‘ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅


1️⃣ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

🧩 Π’ Astra Linux (вСрсии 1.7.x ΠΈ Π²Ρ‹ΡˆΠ΅) систСма Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ построСна Π½Π° PAM (Pluggable Authentication Modules).
Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

🚨 Иногда ΠΏΡ€ΠΈ мноТСствС Π½Π΅Π²Π΅Ρ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π²Ρ…ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 60+) ΡƒΡ‡Ρ‘Ρ‚ΠΊΠ° блокируСтся навсСгда.
Π’ этом случаС трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ PAM-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½, ΠΈ ΠΊΠ°ΠΊ бСзопасно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ.


2️⃣ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ PAM-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°

🧱 ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ PAM слСдит Π·Π° Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ ΠΈ записываСт Π΄Π°Π½Π½Ρ‹Π΅ Π² свои Ρ„Π°ΠΉΠ»Ρ‹:

ΠœΠΎΠ΄ΡƒΠ»ΡŒ РасполоТСниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚
pam_tally2 /var/log/tallylog Π’Π΅Π΄Ρ‘Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ счётчик Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄ΠΎΠ²
pam_faillock /var/run/faillock/ ΠΈΠ»ΠΈ /var/lib/faillock/ Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
pam_umc /etc/umc/users/ УправляСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ Π² усилСнном Ρ€Π΅ΠΆΠΈΠΌΠ΅

Когда Π»ΠΈΠΌΠΈΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ β€” PAM Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π²Π΅Ρ€Π½Ρ‹ΠΉ.


3️⃣ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ модуля PAM

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄, ΠΎΡ‚ΠΊΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ» /etc/pam.d/common-auth:

cat /etc/pam.d/common-auth

πŸ”Ž Π˜Ρ‰ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΠ· строк:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ строки Активный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π“Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ
auth required pam_tally2.so deny=5 unlock_time=never pam_tally2 /var/log/tallylog
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=0 pam_faillock /var/run/faillock/ ΠΈΠ»ΠΈ /var/lib/faillock/
auth required pam_umc.so pam_umc (усилСнный Ρ€Π΅ΠΆΠΈΠΌ) /etc/umc/users/

πŸ’‘ Если Π² Ρ„Π°ΠΉΠ»Π΅ встрСчаСтся нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈ pam_tally2, ΠΈ pam_umc), ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π±Π΅Ρ€Ρ‘Ρ‚ pam_umc, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ…ΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ°Π½Π΄Π°Ρ‚Π½ΠΎΠΉ бСзопасности.


4️⃣ БСзопасноС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ pam_tally2

🧰 Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ pam_tally2.so, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ для Π²Ρ…ΠΎΠ΄Π° Π² систСму:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ PAM:

    nano /etc/pam.d/common-auth
    
  2. Найди строку:

    auth required pam_tally2.so deny=5 onerr=fail unlock_time=never
    
  3. Π”ΠΎΠ±Π°Π²ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ символ #, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

    #auth required pam_tally2.so deny=5 onerr=fail unlock_time=never
    
  4. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈ (Ctrl+O, Ctrl+X) ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΉΠ΄ΠΈ Π² систСму.
  5. ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΡΠ±Ρ€ΠΎΡΡŒ счётчики:

    pam_tally2 --reset
    
  6. Π’Π΅Ρ€Π½ΠΈ строку ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ сохрани.

πŸ“Ž Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ снова Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Π±Π΅Π· старых Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.


5️⃣ БСзопасноС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ pam_faillock

πŸͺ„ Если Π² систСмС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ pam_faillock, порядок ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉ:

    nano /etc/pam.d/common-auth
    
  2. Найди строки с pam_faillock.so (ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 2 β€” preauth ΠΈ authfail):

    auth required pam_faillock.so preauth silent audit deny=5 unlock_time=0
    auth required pam_faillock.so authfail audit deny=5 unlock_time=0
    
  3. Π—Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉ ΠΎΠ±Π΅ строки, Π΄ΠΎΠ±Π°Π²ΠΈΠ² # Π² Π½Π°Ρ‡Π°Π»Π΅.
  4. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΉΠ΄ΠΈ Π² систСму.
  5. ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° ΡΠ±Ρ€ΠΎΡΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ:

    faillock --user имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ --reset
    
  6. Π’Π΅Ρ€Π½ΠΈ строки ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ сохрани.

6️⃣ Π Π°Π±ΠΎΡ‚Π° с UMC (усилСнный Ρ€Π΅ΠΆΠΈΠΌ)

πŸ›‘οΈ Если систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° 63 ΡƒΡ€ΠΎΠ²Π½Π΅ бСзопасности, PAM ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ с UMC (Unified Mandatory Control). Π”Π°ΠΆΠ΅ Ссли Ρ‚Ρ‹ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡˆΡŒ tallylog, UMC всё Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ:

umc-user -l

Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ:

umc-user -u имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ -E

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сниТСниС уровня бСзопасности:

setumc -s 0

ПослС Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ:

setumc -s 63

7️⃣ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° послС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

πŸ” Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ PAM Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ:

grep pam /var/log/auth.log
journalctl -xe | grep pam

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° состояния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

pam_tally2 --user имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
# ΠΈΠ»ΠΈ
faillock --user имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Если счётчики Ρ€Π°Π²Π½Ρ‹ 0, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° снята.


8️⃣ ВосстановлСниС ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк

Если послС тСста Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

cp /etc/pam.d/common-auth.backup /etc/pam.d/common-auth

ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ раскоммСнтируй Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ строки. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΏΠ΅Ρ€Π΅Π΄ измСнСниями:

cp /etc/pam.d/common-auth /etc/pam.d/common-auth.backup

9️⃣ РСзюмС ΠΈ совСты

βœ… ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹:

🧠 Помни: Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· PAM β€” это Π½Π΅ ошибка, Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности Astra. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ‹ ΡƒΠΌΠ΅Π΅ΡˆΡŒ бСзопасно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Сю Π±Π΅Π· пСрСустановки систСмы. πŸš€


✳️ Π˜Ρ‚ΠΎΠ³:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ PAM-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² Astra Linux сводится ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ„Π°ΠΉΠ»Π° /etc/pam.d/common-auth, Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½Ρ‹Ρ… строк ΠΈ очисткС Ρ„Π°ΠΉΠ»ΠΎΠ² /var/log/tallylog ΠΈΠ»ΠΈ /var/run/faillock/. Π’ усилСнном Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с UMC Ρ‡Π΅Ρ€Π΅Π· umc-user.