CryptoPro JCP på Linux. Hur man enkelt och smärtfritt byter till den nya krypteringsstandarden

CryptoPro JCP på Linux.  Hur man enkelt och smärtfritt byter till den nya krypteringsstandarden
CryptoPro JCP på Linux. Hur man enkelt och smärtfritt byter till den nya krypteringsstandarden

Vi ändrade nyligen en användares lösenord i Linux när vi stötte på ett fel: 'Authentication Token Manipulation Error'.

Vi använde det normala passwd-kommandot för att ändra lösenordet och det gav oss detta fel och lösenordet ändrades inte.

Sudo passwd my_user_name Ändra lösenord för användaren my_user_name Ändra lösenord för tecmint (nuvarande) UNIX-lösenord: passwd: Autpasswd: lösenord oförändrat

Fixar manipuleringsfel för autentiseringstoken i Ubuntu

"Authentication Token Manipulation Error" betyder att lösenordsändringen av någon anledning misslyckades.

Det kan finnas flera anledningar till detta. I enkla fall kommer du att se grundorsaken till problemet i själva utgången. Om du till exempel inte angav ett lösenord bör du se det i ett felmeddelande:

Inget lösenord tillhandahållet passwd: Autpasswd: lösenord oförändrat

På liknande sätt, om lösenordsinmatningen inte stämmer överens, kommer den också att visa denna information:

Tyvärr, lösenord matchar inte passwd: Autpasswd: lösenord oförändrat

Detta är enkelt eftersom du vet vad som orsakade problemet och du kan vidta korrigerande åtgärder baserat på det. Men du kanske inte alltid har tur, för i vissa fall kommer du inte att se några användbar information, bara ett fel.

Låt oss titta på några av dessa fall och åtgärda problemet.

Metod 1

Om du är bekant med Linux-katalogstrukturen vet du att /etc/shadow-katalogen lagrar lösenordet i ett krypterat format, tillsammans med annan information om användare och deras lösenord.

Det är därför du måste se till att du har behörighet att läsa och skriva till den här filen. Eftersom du kommer att ändra lösenordet som root, måste den här filen ha läs- och skrivbehörigheter för root.

Om det inte är det måste du ställa in rätt behörighet:

sudo chmod 640 /etc/shadow

Metod 2

Metod 1 kommer att fungera i de flesta fall. Men i vårt fall var vi tvungna att montera om rotpartitionen med läs- och skrivbehörigheter. Vi har försökt återställa administratörslösenordet i Ubuntu.

Montera -rw -o montera om /

I vissa sällsynta fall kan din disk bli så full att du inte kommer att kunna göra några ändringar i filen /etc/shadow. Men om så är fallet kommer du att stöta på många andra problem.

Fungerade det för dig?

Vi har delat vad som fungerade för oss och vi kan bara hoppas att det fungerade för dig också. Klarade det? Vilken metod fungerade för dig? Nämn det i kommentarerna.

linux- det här är en miljö med flera användare och för att användaren ska börja arbeta i systemet måste han gå igenom autentiseringsproceduren. PAM (Pluggbara autentiseringsmoduler) är ett system (mekanism) som tar hand om implementeringen av autentiseringsprocedurer. Innan advent PAM, måste utvecklare av program som på något sätt var relaterade till autentisering anpassa sina program till de befintliga autentiseringsmekanismerna. Följaktligen, om autentiseringsmekanismerna ändrades, var det nödvändigt att ändra programmen som använde dem. Därför utvecklades ett system PAM, som är ett "lager" mellan program och autentiseringsmekanismer. Det vill säga nu autentiseringsprogrammen (till exempel programmet logga in) ska bara kunna fungera med systemet PAM. Programmet sänder PAM parametrar (till exempel inloggning och lösenord) och det (programmet) är inte längre "intresserat" av vilken autentiseringsmetod som är implementerad i systemet - lösenords- eller smartkortautentisering eller annan metod. Ytterligare arbeten PAM och returnerar programmet antingen framgång eller misslyckande.

Låt oss titta på systemet PAM Mer. De huvudsakliga funktionerna, eller åtgärderna, eller uppgifterna som systemet utför PAM- uppdelad i fyra grupper som har specifika namn:

grupp auth- Dessa är åtgärder som är direkt relaterade till autentisering. Det vill säga handlingar eller funktioner som gör att du kan avgöra att du är du. Detta kan vara lösenordsautentisering, smartkortsautentisering, biometrisk autentisering (fingeravtryck, etc.) och andra.

grupp konto– Det här är åtgärder relaterade till kontohantering. Till exempel, även om du är autentiserad i systemet, då din konto Du kan lägga arbetsförbud vissa tider på dygnet. Eller tillåt inloggning i konsolläge, men förbjud inloggning i grafiskt läge. Etc.

grupp session- den här gruppens handlingar ger användaren de nödvändiga resurserna för arbetet. Det enklaste exemplet är tillåtelse att montera kataloger.

grupp Lösenord- åtgärder som implementerar en ändring i användarens autentiseringsdata. Oftast är dessa åtgärder för att hantera användarlösenord.

Alla dessa åtgärder eller procedurer (funktioner) implementeras som separata moduler, som finns i katalogen /lib/säkerhet/. Det vill säga vi kan säga att det finns gruppmoduler auth, gruppmoduler konto etc. Följaktligen systemet PAMär modulär och om du behöver implementera biometrisk autentisering behöver du bara installera en modul som kan utföra denna procedur.

Grundläggande konfigurationsfil system PAMär en fil /etc/pam.conf. Förutom fil /etc/pam.conf, inställningar PAM lagras i katalogfiler /etc/pam.d/. Inne i katalogen finns textfiler som innehåller en sekvens av åtgärder (en viss algoritm) för program som använder PAM. Till exempel fil /etc/pam.d/login innehåller systemets operationsalgoritm PAM för programmet logga in, och filen /etc/pam.d/passwd för programmet passwd.

Tänk först på filformatet /etc/pam.conf. Filen består av linjer. Filen kan bestå av en rad, eller den kan bestå av flera rader, som bildar en kedja av på varandra följande åtgärder. Varje rad beskriver en regel eller ett steg i en sådan kedja (algoritm). Linjen består av fyra fält. Det första fältet är namnet på programmet som detta steg tillhör. Det andra fältet är åtgärdstypen ( auth, konto, session, Lösenord). Det tredje fältet är det fält där systemets beteende är inställt. PAM efter slutförandet av detta steg i detta steg av algoritmen (vi kommer att uppehålla oss mer i detalj nedan). Det fjärde fältet är namnet på modulfilen. Linjen kan också innehålla vissa parametrar som skickas till modulen.

Strukturen för filerna i katalogen /etc/pam.d/, det samma. Den enda skillnaden är frånvaron av det första fältet - namnet. Eftersom namnet på programmet är hämtat från namnet på själva filen. Låt oss titta på ett exempel på en sådan fil. Låt oss kalla det testpam.

auth tillräcklig pam_rootok.so
auth krävs pam_unix.so
konto krävs pam_unix.so

Låt oss titta på den första raden. Fält auth säger att det första steget kommer att vara autentisering. Det tredje fältet är modulen som kommer att utföra autentiseringen och returnera resultatet av exekveringen. I detta exempel modul pam_rootok.so kontrollerar om kontot är root ( rot). Om ja kommer framgång (true) att returneras, om inte kommer fel eller misslyckande (false) att returneras. Det andra fältet är reaktionen eller effekten av resultatet på kedjan som helhet.

Reaktionen kan vara av fyra typer: nödvändig, erforderlig, frivillig, tillräcklig. På exemplet med linjen auth tillräcklig pam_rootok.so Låt oss se vad dessa värden betyder.

Om det andra fältet är inställt på erforderlig, då betyder detta att om modulen pam_rootok.so slutade med ett fel, sedan ytterligare exekvering av filen testpam avbruten och systemet PAM returnerar ett fel till applikationen. Om modulen gav ett positivt resultat, fortsätter exekveringen av kedjan.

nödvändig ser ut som erforderlig. Om modulen pam_rootok.so slutade med ett fel alltså PAM kommer också att returnera ett fel, men efter att resten av modulerna är klara, det vill säga att kedjan inte avbryts. Om modulen gav ett positivt resultat, fortsätter exekveringen av kedjan.

tillräcklig- om modulen pam_rootok.so returnerade framgång, sedan systemet PAM returnerar framgång till applikationen och ytterligare exekvering av kedjan avbryts. Om det misslyckas, fortsätter kedjan.

frivillig- denna parameter påverkar inte kedjans förlopp på något sätt. Anges för de moduler som inte utför några kontrollåtgärder. Om filen endast innehåller rader med parametern frivillig, Den där PAM kommer att returnera framgång till ansökan.

Mer information om systemet PAM och syftet med ett visst bibliotek kan hittas på http://kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_SAG.html. Låt oss nu göra en liten praktisk övning som gör att du bättre förstår hur systemet fungerar. PAM och hur man skriver konfigurationsfiler.

Gå till katalogen /etc/pam.d/. Kopiera filen su till din hemkatalog (så att du kan återställa den) och radera filen i su från katalogen /etc/pam.d/. Försök nu att köra kommandot su i terminalen för att växla till superanvändarläge. Efter att ha angett lösenordet kommer systemet att ge ett autentiseringsfel, eftersom det inte finns någon konfigurationsfil för programmet su.

Skapa en fil /etc/pam.d/su och skriv följande rad i den:

Modul pam_deny.so returnerar alltid ett fel. Vad blir resultatet? Kolla upp. Och om du byter ut erforderlignödvändig?
Låt oss nu skriva följande regel i filen:

Modul pam_wheel.so returnerar framgång om användarkontot tillhör en grupp hjul. Om du försöker köra kommandot nu su, då slutar det omedelbart med ett fel. Det vill säga nu kommandot su kan endast köras av användare som är medlemmar i gruppen hjul och känna till kontolösenordet rot. Om du skapar en grupp hjul och lägg till ditt konto där, sedan kommandot su kommer att funka.

Här är ett annat exempel:

auth erforderlig pam_wheel.so
auth krävs pam_permit.so

Försök att svara på vem som framgångsrikt kan utföra kommandot su Och vad kommer att behöva göras för detta?
Detta avslutar den praktiska övningen (glöm inte att lägga tillbaka den ursprungliga su-filen).

Jag vill återigen betona att konfigurationsfiler i katalogen /etc/pam.d/ endast kan skapas för filer som använder systemet PAM. Till exempel om du skapar en fil /etc/pam.d/ls med snöre auth erforderlig pam_deny.so, sedan kommandot ls kommer fortfarande att köras eftersom det inte använder systemet PAM. För att kontrollera om ett kommando använder PAM-systemet kan du använda kommandot ldd, som skickas som en parameter fullständig sökväg till kommandofilen. Till exempel:

Nyckelord compat"säger" bara att systemet kommer att användas som ett autentiseringssystem PAM.

Och vidare. Var försiktig när du experimenterar med PAM. Genom okunnighet eller slarv kan du enkelt blockera ditt system. Se därför till att spara de ursprungliga konfigurationsfilerna innan du ändrar något så att du snabbt kan återställa dem i händelse av problem.

Tvåfaktorsautentisering (2FA) är en autentiseringsmetod som kräver flera delar av information för att logga in på ett konto eller en enhet. Förutom kombinationen av användarnamn och lösenord, kräver 2FA att användaren går in Ytterligare information, Till exempel engångslösenord(OTP, till exempel en sexsiffrig verifieringskod).

I allmänhet kräver 2FA att användaren anger olika typer av information:

  • Något användaren vet (som ett lösenord)
  • Något som användaren har (till exempel en bekräftelsekod genererad av en speciell applikation - en autentisering).

2FA är en delmängd av multi-factor authentication (MFA). MFA-metoden, utöver vad användaren kan och har, kräver något som den är. Dessa är biometriska data: fingeravtryck eller röstigenkänning, etc.

2FA hjälper till att säkra autentiseringsprocessen för en viss tjänst eller enhet: även om lösenordet har äventyrats kommer angriparen också att behöva en säkerhetskod, och detta kräver åtkomst till användarens enhet som är värd för autentiseringsappen. Av denna anledning erbjuder många onlinetjänster möjligheten att aktivera 2FA för användarkonton för att öka säkerheten för konton på autentiseringsnivå.

I den här handledningen kommer du att lära dig hur du ställer in 2FA med Google PAM-modulen för en icke-rootanvändare på Ubuntu 18.04. Eftersom du ställer in 2FA för en icke-root-användare, i händelse av en lockout, kommer du fortfarande att kunna komma åt datorn från ditt root-konto. Instruktionerna i manualen är tillräckligt generella för att de kan tillämpas på både servrar och stationära installationer, både lokala och fjärranslutna.

Krav

  • Ubuntu 18.04 server eller skrivbordsmiljö. Ubuntu 18.04-servern måste konfigureras med .
  • Autentiseringsverktyget installerat på den mobila enheten (till exempel Google Authenticator eller Authy). Med den kommer du att skanna säkerhets-QR-koder.

Steg 1: Installera Google PAM-modulen

För att ställa in 2FA på Ubuntu 18.04 måste du installera Google PAM-modulen för Linux. Pluggable Authentication Module (PAM) är autentiseringsmekanismen som används av Linux. Google PAM-modulen låter din användare autentisera med 2FA med hjälp av genererad Google-koder OTP.

Logga först in som sudo-användaren du skapade under den första serverinstallationen:

ssh [e-postskyddad] _server_ip

Uppdatera Ubuntu Package Index för att få senaste versionen autentisering:

sudo apt-get uppdatering

Efter att ha uppdaterat arkiven, installera den senaste versionen av PAM-modulen:

sudo apt-get installera libpam-google-authenticator

Detta är ett mycket litet paket utan några beroenden, så det tar några sekunder att installera. I nästa avsnitt kommer vi att ställa in 2FA för sudo-användaren.

Steg 2: Konfigurera tvåfaktorsautentisering

Nu när du har installerat PAM-modulen, kör den för att generera en QR-kod för den inloggade användaren. Detta kommer att generera koden, men Ubuntu-miljön behöver inte 2FA förrän du aktiverar den.

Kör kommandot google-authenticator för att starta och konfigurera PAM-modulen:

google-autentisering

Kommandot kommer att ställa några konfigurationsfrågor. Hon kommer först att fråga om du vill att polletterna ska vara tidsbegränsade. Tidsinställda autentiseringstoken löper ut efter ett visst intervall (standard är 30 sekunder på de flesta system). Tidsinställda tokens är säkrare än icke-tidsinställda tokens, och de flesta 2FA-implementeringar använder dem. Du kan välja vilket alternativ som helst här, men vi rekommenderar att du väljer Ja och använder tidsbegränsade autentiseringstokens:

Vill du att autentiseringstokens ska vara tidsbaserade (y/n) y

Genom att svara y på den här frågan kommer du att se flera utdatarader i konsolen:

  • QR-kod: Detta är koden som måste skannas med autentiseringsappen. När du har skannat den kommer appen att generera en ny OTP var 30:e sekund.
  • hemlig nyckel: detta alternativt sätt inställningar för autentiseringsprogram. Om du använder en app som inte stöder QR-skanning kan du ange en hemlig nyckel för att ställa in en autentisering.
  • Verifieringskod: Detta är den första sexsiffriga koden som den här QR-koden genererar.
  • Nödskrapkoder. dessa är engångs-tokens (även kallade reservkoder), de låter dig passera 2FA-autentisering om du tappar autentiseringsenheten. Förvara dessa koder på ett säkert ställe för att undvika kontoavstängning.

Efter att du har konfigurerat din autentiseringsapp och sparat dina reservkoder på en säker plats kommer programmet att fråga om du vill uppdatera konfigurationsfilen. Om du väljer n måste du köra installationsprogrammet igen. Skriv y för att spara ändringar och fortsätta:

Vill du att jag ska uppdatera din "~/.google_authenticator"-fil (y/n) y

Därefter kommer programmet att fråga om du vill förhindra användningen av autentiseringskoder mer än en gång. Som standard kan du bara använda varje kod en gång, även om det inte har gått 30 sekunder sedan den skapades. Detta är det säkraste valet eftersom det förhindrar reprisattacker från en angripare som på något sätt lyckats få din använda verifieringskod. Av denna anledning är det bättre att förbjuda användningen av koder mer än en gång. Svara y för att förhindra flera användningar av samma token:

Vill du inte tillåta flera användningar av samma autentisering
tecken? Detta begränsar dig till en inloggning ungefär var 30:e:e, men det ökar
dina chanser att märka eller till och med förhindra man-in-the-middle-attacker (y/n) y

Du måste sedan ange om du vill att autentiseringstoken ska accepteras en tid efter deras normala utgångsdatum. Koderna är väldigt tidskänsliga och därför kanske de inte fungerar om dina enheter inte är synkroniserade. Det här alternativet löser det här problemet genom att förlänga utgångstiden för standardverifieringskoderna så att autentiseringskoder ändå accepteras (även om dina enheter är tillfälligt osynkroniserade). Det är bäst att se till att tiden på alla dina enheter är synkroniserade, eftersom ja-svaret kommer att minska systemets säkerhet något. Svara n på denna fråga för att förhindra att token upphör att gälla:

Som standard är tokens bra i 30 sekunder och för att kompensera för
eventuell tidsskev mellan klienten och servern tillåter vi en extra
token före och efter den aktuella tiden. Om du upplever problem med de fattiga
tidssynkronisering kan du öka fönstret från dess standard
storlek på 1:30 min till ca 4 min. Vill du göra det (y/n) n

Den sista frågan är om du vill aktivera en gräns för antalet inloggningsförsök. Detta kommer att förhindra att användaren gör mer än tre misslyckade inloggningsförsök inom 30 sekunder, vilket kommer att öka systemsäkerheten. Aktivera denna begränsning genom att svara y:

Om datorn som du loggar in på inte är härdad mot brute-force
inloggningsförsök kan du aktivera hastighetsbegränsning för autentiseringsmodulen.
Som standard begränsar detta angripare till högst 3 inloggningsförsök var 30:e:e.
Vill du aktivera hastighetsbegränsande (y/n) y

Du har ställt in och genererat 2FA-koder med PAM-modulen. Nu måste du aktivera 2FA i din miljö.

Steg 3: Aktivera 2FA i Ubuntu

Google PAM-modulen genererar nu 2FA-koder för din användare, men Ubuntu vet ännu inte att den behöver använda koderna i autentiseringsprocessen. Vid det här laget måste du uppdatera din Ubuntu-konfiguration för att möjliggöra stöd för 2FA-tokens utöver grundläggande autentisering.

Det finns två sätt här:

  1. Du kan kräva tvåfaktorsautentisering varje gång en användare loggar in och varje gång en användare begär sudo-rättigheter.
  2. Du kan bara kräva 2FA under inloggning, då kommer endast användarens lösenord att krävas när du frågar om sudo-rättigheter.

Det första alternativet skulle vara idealiskt för en allmän miljö där det är önskvärt att skydda alla åtgärder som kräver sudo-privilegier. Det andra tillvägagångssättet är mer praktiskt för en lokal skrivbordsmiljö där du är den enda användaren på systemet.

Notera S: Om du aktiverar 2FA på en fjärrdator som du kommer åt via SSH, måste du slutföra steg två och tre i manualen innan du fortsätter. Resten av stegen i denna handbok gäller för alla Ubuntu-installationer, men fjärrmiljöer behöver avancerade inställningar så att SSH-tjänsten känner till 2FA.

Om du inte använder SSH för att komma åt installera Ubuntu, kan du omedelbart gå vidare till resten av stegen i denna handbok.

2FA-prompt om inloggning och sudo-höjd

För att systemet ska kunna använda 2FA under inloggning och efterföljande förfrågningar om privilegieeskalering, måste du redigera filen /etc/pam.d/common-auth genom att lägga till en rad i slutet av den befintliga filen.

Common-auth-filen gäller för alla autentiseringsmekanismer i systemet, oavsett vilken miljö som används. Det gäller även för autentiseringsförfrågningar som inträffar efter att en användare har loggat in, till exempel under en uppmaning om sudo-rättigheter vid installation av ett nytt paket från en terminal.

Öppna fil:

sudo nano /etc/pam.d/common-auth

Lägg till i slutet av filen:

...
# och här är fler moduler per paket ("Extra"-blocket)
session krävs pam_unix.so


Den här raden gör det möjligt för Ubuntus autentiseringssystem att stödja 2FA när du loggar in med Google PAM-modulen. Alternativet nullok tillåter befintliga användare att logga in även om de inte har ställt in 2FA-autentisering för sitt konto. Med andra ord kommer användare som har ställt in 2FA att behöva ange en autentiseringskod nästa gång de loggar in, medan användare som inte har kört google-authenticator-kommandot kommer att kunna logga in med sina standarduppgifter tills de konfigurerar 2FA.

Spara och stäng filen.

2FA-prompt endast när du är inloggad

Om du vill att 2FA endast ska begäras när du loggar in i en skrivbordsmiljö, måste du redigera konfigurationsfilen för skrivbordshanteraren du använder. Namnet på konfigurationsfilen är vanligtvis detsamma som namnet på skrivbordsmiljön. Till exempel är konfigurationsfilen för gdm (standard Ubuntu-miljö sedan Ubuntu 16.04) /etc/pam.d/gdm.

I fallet med en huvudlös server (som är virtuell server), istället måste du redigera filen /etc/pam.d/common-session. Öppna lämplig fil beroende på din miljö:

sudo nano /etc/pam.d/common-session

Lägg till de markerade raderna i slutet av filen:

#
# /etc/pam.d/common-session - sessionsrelaterade moduler som är gemensamma för alla tjänster
#
...
# # och här är fler per-paket-moduler ("Extra"-blocket)
session krävs pam_unix.so
session valfri pam_systemd.so
# slutet av pam-auth-update config
auth krävs pam_google_authenticator.so nullok

Ubuntu kommer nu att kräva 2FA när en användare ansluter till systemet via kommandoraden (lokalt eller på distans via SSH), men detta kommer inte att gälla för att köra kommandon med sudo.

Du har konfigurerat Ubuntu för att stödja 2FA. Nu är det dags att testa konfigurationen och se till att när du loggar in på ditt Ubuntu-system kommer du att bli tillfrågad om en säkerhetskod.

Steg 4: Testa tvåfaktorsautentisering

Tidigare har du ställt in 2FA för att generera koder var 30:e sekund. Försök nu att logga in på din Ubuntu-miljö.

Logga först ut och logga tillbaka in i din Ubuntu-miljö:

ssh [e-postskyddad] _server_ip

Om du använder lösenordsbaserad autentisering kommer du att bli ombedd att ange användarens lösenord:

Notera: Om du använder certifikatautentisering på fjärrservern kommer du inte att bli tillfrågad om ett lösenord. Nyckeln kommer att överföras och accepteras automatiskt. Du behöver bara ange en bekräftelsekod.

Ange lösenordet, varefter du blir ombedd att ange 2FA-koden:

Verifierings kod:

Efter det kommer du att loggas in:

[e-postskyddad] _server_ip: ~#

Om 2FA endast var aktiverat för inloggning behöver du inte längre ange 2FA-verifieringskoder förrän din session avslutas eller du loggar ut manuellt.

Om du har aktiverat 2FA via common-auth-filen, kommer du att bli ombedd att ange det också på varje begäran om sudo-privilegier:

[e-postskyddad] _server_ip: ~# sudo -s
sudo lösenord för 8host:
Verifierings kod:
[e-postskyddad] _server_ip:

Du har verifierat att 2FA-konfigurationen fungerar korrekt. Om något gick fel och systemet inte bad dig om verifieringskoder, gå tillbaka till det tredje avsnittet i guiden och se till att du har redigerat rätt fil Ubuntu-autentisering.

5: Förhindrar 2FA-blockering

Om din mobila enhet försvinner eller förstörs är det viktigt att ha säkerhetskopieringsmetoder på plats för att återställa åtkomsten till ditt 2FA-aktiverade konto. När du ställer in 2FA för första gången har du flera alternativ för att återfå åtkomst efter att ha blivit blockerad:

  • Spara säkerhetskopiering dina hemliga konfigurationskoder på en säker plats. Du kan göra det manuellt, men vissa autentiseringsappar som Authy tillhandahåller kodbackupfunktioner.
  • Spara återställningskoderna på en säker plats utanför en 2FA-aktiverad miljö som kan nås vid behov.

Om du av någon anledning inte har tillgång till alternativen för säkerhetskopiering kan du försöka återställa åtkomsten till den lokala miljön eller fjärrservern med 2FA-stöd på annat sätt.

Steg 6: Återställ åtkomst till den lokala miljön (valfritt)

Om du har fysisk åtkomst till maskinen kan du starta upp i återställningsläge för att inaktivera 2FA. Återställningsläget är en måltyp (liknande en runlevel) i Linux som används för att utföra administrativa uppgifter. Du måste redigera några inställningar i GRUB för att gå in i återställningsläge.

För att komma åt GRUB, starta först om din dator:

När GRUB-menyn visas, se till att Ubuntu-posten är markerad. Detta är standardinstallationsnamnet för 18.04, men det kan vara annorlunda om du ändrade det manuellt efter installationen.

Tryck sedan på e-tangenten på ditt tangentbord för att redigera GRUB-konfigurationen innan du startar ditt system.

Gå till slutet av filen som visas och hitta raden som börjar med linux och slutar med $vt_handoff. Gå till slutet av den här raden och lägg till systemd.unit=rescue.target. Se till att du lämnar ett mellanslag mellan $vt_handoff och systemd.unit=rescue.target. Detta gör att Ubuntu-maskinen kan starta upp i återställningsläge.

När du har gjort ändringar sparar du filen med kortkommandot Ctrl + X. Din maskin startar om och du kommer till kommandotolken. Tryck på Enter för att gå in i återställningsläge.

En gång på kommandoraden, öppna konfigurationen Google-fil Authenticator, som finns i hemkatalogen för den blockerade användaren.

nano /home/8host/.google-authenticator

Den första raden i den här filen är användarens privata nyckel, som används för att ställa in autentiseringsverktyget.

Nu har du två alternativ:

  1. Du kan kopiera den privata nyckeln och ställa in autentiseringsverktyget.
  2. Om du vill börja med ett rent blad kan du ta bort filen ~/.google-authenticator helt för att inaktivera 2FA för den användaren. Efter att ha loggat in igen kommer du att kunna ställa in 2FA igen och få en ny hemlig nyckel.

I vilket fall som helst kan du återställa systemet efter en 2FA-blockering i en lokal miljö med hjälp av GRUB bootloader. Därefter kommer vi att förklara hur man återställer åtkomst till en blockerad fjärrmiljö.

Steg 7: Återställ åtkomst till den borttagna miljön (valfritt)

Om ditt sudoer-konto är låst i en fjärrmiljö kan du tillfälligt inaktivera eller konfigurera om 2FA med hjälp av root-användaren.

Logga in som root-användare:

ssh [e-postskyddad] _server_ip

Öppna filen efter att ha loggat in Google-inställningar Authenticator, som finns i hemkatalogen för den blockerade användaren:

sudo nano /home/8host/.google_authenticator

Den första raden i den här filen är användarens privata nyckel, som du behöver för att ställa in autentiseringsverktyget.

Nu har du två vägar:

  1. Om du vill konfigurera en ny eller raderad enhet kan du använda den hemliga nyckeln för att konfigurera om autentiseringsappen.
  2. Om du vill börja med ett rent blad kan du ta bort filen /home/8host/.google_authenticator helt för att inaktivera 2FA för den användaren. Efter att ha loggat in som sudo-användare kommer du att kunna ställa in 2FA igen och få en ny privat nyckel.

Med något av dessa alternativ kommer du att kunna återhämta dig från ett oavsiktligt 2FA-block med hjälp av root-kontot.

Slutsats

I den här handledningen ställer du in 2FA på en Ubuntu 18.04-maskin. Tvåfaktorsautentisering ger ett extra lager av konto- och systemsäkerhet. Utöver standarduppgifterna måste du också ange ytterligare kod inloggningsbekräftelse. Detta gör det omöjligt för obehörig åtkomst till ditt konto, även om en angripare lyckas få dina referenser.

Taggar: ,
  1. Anslut USB-token till din dator.
  2. För att fastställa USB-tokens modellnamn, öppna Terminal och skriv in kommandot:
$ lsusb

Som ett resultat kommer namnet på USB-tokenmodellen att visas i terminalfönstret:

Se till att du använder: Aktiv Rutoken ECP

Introduktion

Pluggable Authentication Modules (PAM, Pluggable Authentication Modules) är en uppsättning delade bibliotek som låter dig integrera olika autentiseringsmetoder på låg nivå i ett enda högnivå-API. Detta gör att du kan tillhandahålla enhetliga mekanismer för att hantera, bädda in applikationer i autentiseringsprocessen.

Den allmänna proceduren för att ställa in PAM är som följer:

  1. Generera ett RSA-nyckelpar på token (verifierat att det fungerar för en nyckellängd på 2048 bitar, det fanns problem med 1024)
  2. Om ett certifikat krävs, använd OpenSSL eller annan programvara för att generera ett certifikat och skriva det till token
  3. bränna offentlig nyckel eller ett certifikat till önskad katalog

I slutändan ser det ut så här:



Preliminär förberedelse

Demon körs på Ubuntu 18.04. Den beskrivna sekvensen av åtgärder är också relevant för andra versioner av Ubuntu och system baserade på Debian.

För att konfigurera PAM-modulen måste du installera följande paket:

  • stcd
  • OpenSC
  • OpenSSL
  • libpam-p11
  • libengine-pkcs11-openssl

sudo apt-get install pcscd opensc openssl libpam-p11 libengine-pkcs11-openssl

Rutoken S-användare måste också installera drivrutinen från vår webbplats.

Allmänt förfarande

inställning pam_p11

Innan du börjar arbeta med token bör du konfigurera pam_p11-modulen:

    Skapa fil /usr/share/pam-configs/p11 med följande innehåll:

    Namn: Pam_p11 Standard: ja Prioritet: 800 Auth-Typ: Primär Auth: tillräcklig pam_p11_opensc.so /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

    Om du inte kör Ubuntu 18.04 måste du kontrollera platsen för opensc-pkcs11.so. Den finns till exempel i

    /usr/lib/opensc-pkcs11.so. Om du inte kan hitta det, använd kommandot find

    Uppdatera PAM-konfiguration:

    sudo pam-auth-uppdatering

  1. Se till att pam_p11 är markerat i dialogrutan som visas. Om du vill inaktivera lösenordsautentisering kan du inaktivera Unix-autentisering.

    Skapa nycklar på en token

  2. Låt oss förbereda token.

    $ pkcs15-init -E $ pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk "" $ pkcs15-init --store-pin --etikett "Användar-PIN" --auth- id 02 --pin "12345678" --puk "" --so-pin "87654321" --slutför

    I pin- och so-pin-parametrarna kan du ange önskade användar- och administratörs pinkoder.

    Vi skapar ett RSA-nyckelpar med längden 2048 bitar med ID "45" (det är värt att komma ihåg ID, du behöver det när du skapar ett certifikat). Autentisering på en token sker under användarentiteten.

    $ pkcs15-init --generate-key rsa/2048 --auth-id 02 --id 45<вводим PIN пользователя>

    Låt oss kontrollera den genererade nyckeln:

    $ pkcs15-tool --list-keys Använda läsare med ett kort: Aktiv Rutoken ECP 00 00 Privat RSA Key Object Flaggor: , privat, modifierbar Användning: , sign Access Flags: , känslig, alltidKänslig, aldrigExtract, lokal ModLängd: 2048 Nyckelreferens : 1 (0x1) Inbyggt: ja Sökväg: 3f001000100060020001 Auth ID: 02 ID: 45

    Skapa ett certifikat och importera det till en token

  3. Kör openssl

    Vi laddar supportmodulen pkcs11:

    OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/x86_64- linux-gnu/opensc-pkcs11.so (dynamisk) Dynamisk motorladdningsstöd : SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so : ID:pkcs11 : LIST_ADD:1 : LOAD : MODULE_PATH: /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so Laddad: (pkcs11) pkcs11 motor OpenSSL>

    Om du inte använder Ubuntu 18.04 måste du kontrollera platsen för pkcs11.so. Den kan till exempel finnas i /usr/lib/openssl/engines/ . Om du inte kan hitta det, använd kommandot find

    Skapa ett självsignerat certifikat i PEM-format:

    OpenSSL> req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out cert.pem -text

    Där 0:45 är slot:id-paret (som vi angav i steg 5). OpenSSL kommer att uppmana dig att ange en PIN-kod och fylla i informationen om certifikatet. Om du får ett fel, kontrollera om andra USB-tokens eller smartkortläsare är anslutna till datorn.

    Kontrollerar det genererade certifikatet. En självsignerad certifikatfil med namnet cert.pem bör skapas i den aktuella katalogen.
    Notera: om du tar bort -x509-nyckeln när du skapar ett certifikat i OpenSSL, kommer vi att få en begäran om ett certifikat vid utgången.

    Notera

    I steget för användarval kan information om den anslutna token inte uppdateras dynamiskt. Om du har anslutit token och inte ser stiftinmatningsfältet kan du behöva flytta fokus till "gästsessionen" och tillbaka till din användare.

Sedan 2020 kommer användningen av kryptering i enlighet med GOST R 34.10-2001 att förbjudas, vilket innebär att alla organisationer som interagerar med statliga myndigheter tvingas att omedelbart implementera nästa standard - 2012. Om du arbetar i en av dem, gå inte förbi: i den här artikeln kommer vi att prata om hur du löser problemet med en server på CentOS 7 och CryptoPro JCP-paketet.

Om du hör om allt detta för första gången, så här är lite historisk bakgrund.

1994 utvecklade FSB ett antal standarder och åtgärder utformade för att skydda utbytet av dokument mellan organisationer och andra deltagare i denna process. En av dessa säkerhetsåtgärder var den elektroniska digitala signaturen av dokument, och en av standarderna - GOST R 34.10-94, som beskriver algoritmen för att generera och verifiera elektroniska digital signatur. Han antogs och sattes i kraft genom resolutionen från Rysslands statliga standard av den 23 maj 1994, nummer 154, och arbetade fram till 2001.

Den ersattes av den välkända GOST R 34.10-2001 - en förbättrad standard utformad för att säkerställa större algoritmstabilitet. Men tiden står inte stilla, algoritmer och metoder för kryptoskydd förändras, och efter elva år ändras GOST R 34.10-2001 till GOST R 34.10-2012.

I den nya standarden förblir den första versionen av kraven för parametrar desamma. Längd hemlig nyckelär av storleksordningen 256 bitar och det är tänkt att använda en hashfunktion med en hashkodlängd på 256 eller 512 bitar. Den största skillnaden i den nya standarden är alternativ med ytterligare parametrar och scheman, inklusive hash enligt GOST R 34.11-2012 Stribog-standarden.

INFO

Stribog är de gamla slavernas gud, som skyddar vindarna, vädret och allt som har med luftrummet att göra. Kanske och molnteknik Samma. Läs mer om detta chiffer i artiklarna "" och "".

I februari 2014 tillkännagav FSB starten av övergången till användningen av den nya nationella standarden GOST R 34.10-2012 i elektronisk signatur för uppgifter som inte innehåller uppgifter som utgör statshemlighet. Dokumentet numrerat 149/7/1/3-58 daterat 31 januari 2014 "Om proceduren för övergången till användning av nya EDS-standarder och hashfunktioner" publicerades, fastställde det följande krav.

  1. Efter den 31 december 2013, avsluta certifieringen av verktyg för elektroniska signaturer för överensstämmelse med kraven för verktyg för elektroniska signaturer som godkänts av den federala säkerhetstjänsten i Ryssland av den 27 december 2011 nr 796, om dessa verktyg inte tillhandahåller implementeringen av funktioner i enlighet med GOST R 34.10-2012.
  2. Efter den 31 december 2018, förbjud användningen av GOST R 34.10-2001 för att generera en elektronisk signatur.

Kommunikationsministeriet skapade till och med en plan för övergången till standarden (PDF). Men i praktiken visade det sig att allt inte är så enkelt, och övergången måste skjutas upp till den 31 december 2019. Skälen är följande.

  1. Många statliga och kommunala myndigheter är inte redo att byta till den nya elektroniska signaturstandarden GOST-2012 på grund av bristen på stöd på mjukvarunivå.
  2. För att utfärda nya certifikat behöver du hårdvara som stöder nya GOST, och certifikatet från huvudcertifieringsmyndigheten, genererat med GOST-2012. Certifieringscenter fick det först sommaren 2018. Ytterligare tid krävs för att utfärda certifikat till alla användare.

Nu finns det två kryptoskyddsstandarder för driften av EDS, men de som använder GOST-2001 måste snabbt göra något. Vintern, som de säger, kommer, vilket innebär att en serie tester väntar oss när vi implementerar GOST-2012-stöd.

Jag kommer att berätta hur du distribuerar ett FSB-certifierat verktyg för kryptografiskt informationsskydd (CryptoPro JCP) på en Linux-server som kör Java JDK. Förresten, om du fortfarande använder GOST-2001, det finns en underbar sådan på CryptoPro-webbplatsen, jag råder dig att läsa den, den kommer inte att vara överflödig.

Hela dokumentflödet mellan utbytets deltagare sker enligt principen SMEV (system of interdepartmental electronic interaction). En ansökan kan vara medlem i ett sådant system, men det kanske inte alls är det, principen om dokumentutbyte ändras inte från detta. För att underlätta förståelsen ritade jag ett litet diagram.


Priser

Som alltid uppstår frågan om licensiering. mjukvarulösning. CryptoPro JCP är inte billigt, och om en arbetsstation kostar 1200 rubel, är serverlicenser mycket dyrare - cirka 30 000 för varje kärna (eller två kärnor) Intel-processor med Hyper Threading inaktiverad).

Installera och konfigurera en kryptoleverantör

I exemplen jag kommer att använda virtuell maskin med CentOS 7, men du är inte begränsad i valet hårdvara Och Linux distribution. Alla åtgärder och kommandon kommer att vara desamma.

Låt oss först och främst skapa en lokal användare där programvaran som använder dokumentsignering kommer att köras.

$ sudo useradd -d /opt/user -p<Тут указываем пароль>-s /bin/bash användare; sudo grep användare /etc/passwd

Installera Java JDK korrekt. Ladda ner den nödvändiga distributionen.

$ wget --header "Cookie: oraclelicense=a" --content-disposition http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/4jdk-linux-19x. .gz -O jdk-8u191-linux-x64.tar.gz

Packa upp arkivet och kontrollera om Java-mappen är redo för kopiering.

$ tar zxvf jdk-8u191-linux-x64.tar.gz; ls-al;

Kopiera mappen till avsnittet för applikationsprogramvara. Jag brukar använda /opt .

$ sudo cp -rf jdk1.8.0_191 /opt/

Vi kontrollerar att den har kopierats korrekt. Om det behövs, ändra ägaren av mappen till root.

$ ls -al /opt/jdk1.8.0_191/ $ sudo chown -R root:root /opt/jdk1.8.0_191/; cd /opt/jdk1.8.0_191/; ls-al;

Föreskriva Miljövariabler för Java JDK för alla användare som standard.

$ sudo vi /etc/profile.d/oracle.sh

Vi skriver följande till filen:

Exportera JAVA_HOME=/opt/jdk1.8.0_191 export JRE_HOME=/opt/jdk1.8.0_191/jre export PATH=$PATH:/opt/jdk1.8.0_191/bin:/opt/jdk1.8.0_191/jre/bin

Om servern har flera versioner av Java JDK måste alternativ registreras för ny version.

$ sudo alternatives --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 2 $ sudo alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_191/bin/jar 2 $ sudo-alternativ --installera /usr/bin/javac javac /opt/jdk1.8.0_191/bin/javac 2 $ sudo-alternativ --set jar /opt/jdk1.8.0_181/bin/jar $ sudo-alternativ --set jar /opt/jdk1.8.0_191/bin/jar $ sudo-alternativ --set javac /opt/jdk1.8.0_191/bin/javac $ sudo-alternativ --config java

I menyn väljer du alternativ 2 (eller det som kommer att leda till användning av en nyare Java-versioner). Glöm inte att korrigera rättigheterna till JRE-systemetPrefs.

$ sudo chmod 777 -R /opt/jdk1.8.0_191/jre/.systemPrefs

Kontroll installerad version Java.

$ java-version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-bitars server VM (byggd 25.191-b12, blandat läge)

Kopiera mappen med CryptoPro JCP-distributionssatsen till avsnittet för applikationsprogramvara.

$ sudo cp -rf jcp-2.0.40035 /opt/

Vi kontrollerar att allt är korrekt kopierat.

$ ls -al /opt/jcp-2.0.40035/

Ge tillstånd att köra skript.

$ sudo chmod +x /opt/jcp-2.0.40035/*.sh

Vi kontrollerar ägaren och rättigheterna till mappen, den måste vara root. Låt oss gå in på det.

$ ls -al /opt/jcp-2.0.40035/; cd /opt/jcp-2.0.40035/;

För att undvika problem under installationen, kontrollera antalet kärnor på processorn och kontrollera licensen. Du kan ta reda på antalet kärnor med kommandot nproc.

Låt oss gå vidare till att installera JCP-krypteringsleverantören. Under installationen måste du svara på ett antal frågor.

Fortsatt tillgänglig endast för medlemmar

Alternativ 1. Gå med i "site"-gemenskapen för att läsa allt material på sajten

Medlemskap i communityn under den angivna perioden ger dig tillgång till ALLT hackermaterial, ökar din personliga kumulativa rabatt och låter dig samla ett professionellt Xakep-poängbetyg!