Zpět na domů

Chyby Kerberos Squid: bad encryption a service key

Článek rozebírá běžné chyby Kerberos autentizace v Squid s MS AD: bad encryption type, service key not available, KVNO mismatch, ICMP pinger. Uvádějí se příkazy pro diagnostiku, vytvoření keytab, nastavení krb5.conf a práv přístupu.

Opravujeme chyby Kerberos Squid: od bad encryption do ICMP
Advertisement 728x90

Diagnostika a odstranění chyb ověřování Kerberos v Squid s Active Directory

Pro efektivní diagnostiku problémů s Kerberosem v Squid aktivujte rozšířené protokolování. V souboru squid.conf nastavte:

debug_options ALL,1 33,2 28,2 50,2 # autentizace, ACL, DNS

Oddíly: 33 — autentizace, 28 — ACL, 50 — DNS, 84 — externí pomocné skripty pro ACL. Úrovně se pohybují od 0 (kritické chyby) po 9 (úplný výpis).

Nastavte výstup protokolů:

Google AdInline article slot
access_log stdio:/opt/squid/var/log/squid/access.log
cache_log stdio:/opt/squid/var/log/squid/cache.log

Tím získáte data pro analýzu chyb GSS-API a Negotiate.

Chyba 'Bad encryption type' v GSS

Protokol ukazuje:

ERROR: Negotiate Authentication validating user. Result: {result=BH, notes={message=gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information. Bad encryption type }}

Příčina: Klienti mají uložené TGS-tikety zašifrované starým klíčem, který Squid nemůže dešifrovat.

Google AdInline article slot

Kroky opravy na PDC Emulatoru

  • Určete PDC:
Get-ADDomain | Select-Object PDCEmulator
  • Zkontrolujte a odstraňte staré SPN:
setspn -L squid
setspn -D HTTP/testSquidPc.domain.ru userAD
  • Resetujte heslo uživatele userAD v AD.
  • Vytvořte nový keytab:
ktpass /princ HTTP/[email protected] /mapuser [email protected] /crypto ALL /ptype KRB5_NT_PRINCIPAL /pass password /out C:\squid.keytab
  • Synchronizujte změny:
repadmin /syncall /AdeP

Na serveru Squid

systemctl stop squid
chown proxy:proxy /opt/squid/etc/squid.keytab
chmod 600 /opt/squid/etc/squid.keytab
klist -kte /opt/squid/etc/squid.keytab

Na klientovi

klist purge

Spusťte systemctl start squid. Tím obejdete čekací dobu replikace (10–24 hodin).

Chyba 'Service key not available'

Protokol:

ERROR: Negotiate Authentication validating user. Result: {result=BH, notes={message=gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information. Service key not available }}

Příčiny:

Google AdInline article slot
  • Nesoulad KVNO (Key Version Number) mezi AD a keytab.
  • Rozdíl v SPN (FQDN vs krátké jméno).

Kontrola KVNO

Na Squid:

klist -kte /opt/squid/etc/squid.keytab

Výstup zobrazí KVNO, etype a principal.

Na DC (PowerShell):

Get-ADUser -Identity "userAD" -Properties msDS-KeyVersionNumber | Select-Object msDS-KeyVersionNumber

Při použití ktpass uveďte /vno <číslo> pro synchronizaci.

Test keytabu

sudo -u proxy kinit -kt /opt/squid/etc/squid.keytab HTTP/testSquidPc.domain.ru

Úspěch – žádný výstup. Problém je v spouštění pomocného skriptu Squid.

Seznam běžných typů enctypes v keytabu:

  • aes256-cts-hmac-sha1-96
  • aes128-cts-hmac-sha1-96
  • arcfour-hmac (zastaralé)

Nastavení šifrování v krb5.conf

Pro chybu 'Bad encryption type' synchronizujte enctypes v /etc/krb5.conf:

[libdefaults]
default_tgs_enctypes = aes256-cts-hmac-sha1-96
default_tkt_enctypes = aes256-cts-hmac-sha1-96
permitted_enctypes = aes256-cts-hmac-sha1-96

Vyhněte se allow_weak_crypto = true – uveďte přesné typy AES. Zkontrolujte keytab na přítomnost DES/RC4 (zastaralé).

Chyba ICMP pinger

Protokol:

pinger| Open icmp_sock: (1) Operation not permitted
ERROR: Unable to start ICMP pinger.
FATAL: Unable to open any ICMP sockets.

Řešení – udělte práva raw socket:

setcap cap_net_raw+ep /opt/squid/libexec/pinger

Restartujte Squid.

Důležité body

  • Aktivujte debug_options 33,2 pro detailní analýzu autentizace.
  • Synchronizujte KVNO keytab s AD prostřednictvím ktpass /vno a repadmin /syncall.
  • Vyčistěte klientské tikety: klist purge.
  • Nastavte /etc/krb5.conf na AES256, vyhýbejte se slabému šifrování.
  • Pro ICMP: setcap cap_net_raw+ep na pinger.

— Editorial Team

Advertisement 728x90

Číst dál