What is duo two-factor authentication?

Duo to-faktor: Sikkerhed for dine Linux-systemer

21/04/2024

Rating: 4.73 (13213 votes)
Indholdsfortegnelse

Hvad er Duo to-faktor autentificering?

I en verden hvor digitale trusler konstant udvikler sig, er det afgørende at beskytte dine systemer mod uautoriseret adgang. Duo to-faktor autentificering (også kendt som 2FA) tilbyder et ekstra lag af sikkerhed ud over den traditionelle adgangskode. Dette betyder, at for at få adgang til et system, skal en bruger ikke kun kende den korrekte adgangskode, men også have en anden form for bevis på deres identitet. Dette kan være noget de har (som en smartphone med en autentificeringsapp), eller noget de er (som et fingeraftryk).

What is duo two-factor authentication?

Duo Unix er en specifik implementering af Duo's to-faktor autentificeringsløsning, designet til at beskytte Unix-baserede systemer. Det fungerer typisk ved at integrere med systemets eksisterende autentificeringsmekanismer, såsom Pluggable Authentication Modules (PAM) eller via en selvstændig eksekverbar fil. Dette gør det muligt at sikre adgangen til kritiske tjenester som SSH (Secure Shell) og sudo (superuser do), som giver administrative rettigheder.

Denne artikel vil guide dig gennem processen med at forstå, installere og konfigurere Duo Unix, med fokus på at forbedre sikkerheden på dine Linux-maskiner. Vi vil dække alt fra de nødvendige forudsætninger og installationstrin til testning og overvejelser for produktionsmiljøer.

Hvorfor bruge Duo Unix?

Brugen af to-faktor autentificering er ikke længere en luksus, men en nødvendighed. Her er nogle af de primære fordele ved at integrere Duo Unix:

  • Forbedret sikkerhed: Reducerer risikoen for uautoriseret adgang markant, selv hvis en adgangskode bliver kompromitteret.
  • Beskyttelse af kritiske systemer: Sikrer adgang til SSH og sudo, som er essentielle for systemadministration.
  • Fleksibilitet: Understøtter forskellige autentificeringsmetoder, herunder push-beskeder til smartphones, engangskoder og endda hardware-tokens.
  • Brugervenlighed: Designet til at være relativt let at implementere og bruge for slutbrugere.

Kom godt i gang med Duo Unix

Før du kaster dig ud i installationen, er det vigtigt at have de rette forberedelser på plads. Udviklere og systemadministratorer opfordres stærkt til at arbejde i et virtuelt miljø, når de udvikler eller tester Duo Unix. Dette skyldes, at en forkert konfiguration potentielt kan låse dig ude af dit system. Ved at bruge en virtuel maskine, som f.eks. via Vagrant eller Docker, kan du eksperimentere uden risiko for at miste adgangen til dine produktionssystemer.

Installation af nødvendige biblioteker

Afhængigt af din Linux-distribution skal du installere visse tredjepartsbiblioteker. Her er eksempler for Debian-baserede og RHEL-baserede systemer:

Debian/Ubuntu-baserede systemer:

sudo apt-get install autoconf libtool libpam-dev libssl-dev make 

RHEL/CentOS-baserede systemer:

sudo yum install autoconf libtool pam-devel openssl-devel 

Hvis du bruger RHEL 7 eller CentOS 7 med SELinux aktiveret, skal du også installere:

sudo yum install selinux-policy-devel bzip2 

Kompilering og installation af Duo Unix

Når de nødvendige biblioteker er installeret, kan du fortsætte med at klone Duo Unix-projektet, kompilere og installere det:

  1. Klon projektet:
    git clone <indsæt_url_her> cd duo_unix/ 
  2. Generer konfigurationsscripts:
    ./bootstrap 
  3. Konfigurer til din installation (med PAM-understøttelse):
    ./configure --with-pam --prefix=/usr 

    --prefix=/usr angiver installationsplaceringen. Du kan vælge en anden placering, hvis det ønskes.

  4. Byg projektet:
    make 
  5. Installer projektet:
    sudo make install 

Konfiguration af Duo Integration

Efter installationen skal du konfigurere Duo Unix med dine integrationsnøgler. Disse nøgler opnås fra Duo Admin Panel.

  1. Opret en "Unix" integration: Log ind på dit Duo Admin Panel og opret en ny "Unix" integration, hvis du ikke allerede har en.
  2. Hent dine nøgler: Fra integrationen får du brug for tre oplysninger: ikey (Integration Key), skey (Secret Key) og api_host.
  3. Rediger konfigurationsfiler: Disse nøgler skal indsættes i de relevante konfigurationsfiler. Typisk er disse placeret i /etc/duo/.
    • Rediger /etc/duo/login_duo.conf
    • Rediger /etc/duo/pam_duo.conf

    Indsæt dine ikey, skey og api_host i de angivne felter i disse filer. Sørg for, at filrettighederne er korrekte for at forhindre uautoriseret læsning.

Test af din Duo-konfiguration

Det er afgørende at teste din konfiguration grundigt for at sikre, at alt fungerer som forventet, og at du ikke utilsigtet låser dig selv ude.

Brug følgende kommando til at teste autentificeringen:

sudo login_duo -f mitbrugernavn 'echo "Hello World"' 

Hvis autentificeringen lykkes (dvs. du godkender via Duo-prompten på din telefon eller en anden metode), vil du se "Hello World" outputtet. Hvis autentificeringen mislykkes, vil kommandoen ikke returnere noget, eller den vil vise en fejlmeddelelse.

What is duo two-factor authentication?

Testning med Duo Unix

Duo Unix-projektet inkluderer et omfattende testsæt for at verificere funktionaliteten. For at køre disse tests skal du have Python installeret.

Installation af Python:

  • RHEL-baserede: sudo yum install python
  • Debian-baserede: sudo apt-get install python

Kørsel af alle automatiserede tests:

sudo make check 

Kørsel af individuelle testfiler:

cd tests/ python test_login_duo.py 

Kørsel af individuelle test-suiter eller test-cases: Tests er organiseret i klasser og metoder. Du kan køre specifikke dele af testen ved at specificere klassen eller metoden, f.eks.:

cd tests/ python test_login_duo.py TestLoginDuoConfig.test_empty_args 

Python-tests i Duo Unix

Duo Unix anvender Pythons unittest bibliotek til sine automatiserede tests. Disse tests simulerer ofte en Duo-tjeneste (mock duo service) for at verificere, at Duo Unix-softwaren opfører sig korrekt under forskellige scenarier. Selvom de bruger unittest, er mange af disse tests nærmere blackbox-tests, da de interagerer med subprocesser og fokuserer på den samlede funktionalitet snarere end individuelle kodemoduler.

Test med dækning (Coverage)

For at få et dybere indblik i, hvilke dele af koden der testes, kan du kompilere Duo Unix med dækningsmuligheder. Dette kræver installation af gcovr pakken for HTML-rapporter.

  1. Kompiler med dækning:
    ./configure --with-coverage --with-pam 
  2. Indsaml dækningsdata:
    ./collect_coverage.sh 
  3. Åbn rapporten:
    $BROWSER coverage/pam_duo.html 

Bemærk, at kompilering med --with-coverage kan deaktivere compileroptimeringer for at give en mere præcis måling af kodeafvikling.

Yderligere testtips

Du kan også køre en mock Duo-server manuelt for at udføre mere specifikke tests. Dette er nyttigt, hvis du vil debugge eller teste specifikke interaktioner.

Start en mock-server:

cd tests/ python mockduo.py certs/mockduo.pem 

Autentificer mod mock-serveren (i et separat terminalvindue):

../login_duo/login_duo -d -c confs/mockduo.conf -f dinbruger echo "Success" 

Disse mock-servere kan være følsomme, så det kan være nødvendigt at genstarte dem, hvis du oplever uventet adfærd.

Produktionsimplementering

Mens udviklingsversionen er god til test, anbefaler Duo kraftigt at bruge de stabile udgivelsespakker eller tarballs til produktionsmiljøer. Disse versioner er grundigt testet og optimeret til stabilitet og ydeevne. Detaljerede instruktioner for produktionsimplementering kan findes på Duo's officielle dokumentationsside.

TLS 1.2 og 1.3 Support

Duo Unix benytter systemets installerede OpenSSL-bibliotek til TLS (Transport Layer Security) operationer. Det vil automatisk anvende den højeste tilgængelige TLS-version for at sikre sikre API-kald til Duo. For TLS 1.2 kræves OpenSSL 1.0.1 eller nyere, mens TLS 1.3 kræver OpenSSL 1.1.1 eller nyere.

How to protect SSH duo in Linux?
1. Installation of pam_duo PAM module to protect SSH Duo can be easily added to any Linux system to protect remote (SSH) with the addition of a simple pam_duo PAM module. 1.1.

Bidrag til projektet

Hvis du er interesseret i at bidrage til Duo Unix-projektet, opfordres du til at læse filerne CODEOFCONDUCT.md og CONTRIBUTING.md for at forstå retningslinjerne for adfærd og processen for at indsende pull requests.

Versionsstyring

Projektet anvender SemVer (Semantic Versioning) til versionsstyring, hvilket giver en klar og konsistent måde at angive ændringer og kompatibilitet.

Licens

Duo Unix er licenseret under GPLv2-licensen. Detaljer kan findes i LICENSE-filen i projektets rodmappe.

Support

For fejlrapporter, funktionsanmodninger eller andre supportrelaterede spørgsmål, kan du kontakte Duo support på [email protected].

Hvordan beskytter jeg SSH med Duo i Linux?

Beskyttelse af SSH med Duo i Linux involverer primært installation og konfiguration af pam_duo PAM-modulet. Når dette modul er korrekt installeret og konfigureret med dine Duo-integrationsoplysninger, vil SSH-logins kræve en succesfuld Duo-autentificering ud over den traditionelle adgangskode. Dette kan gøres ved at redigere PAM-konfigurationsfilerne (f.eks. /etc/pam.d/sshd) for at inkludere linjer, der refererer til pam_duo.so.

Eksempel på konfiguration i /etc/pam.d/sshd:

# Første linje (eller hvor du ønsker Duo-prompten skal vises) auth required pam_duo.so # Eventuelt for at tillade lokale logins uden Duo, hvis du bruger `login_duo` direkte # auth substack password-auth 

Det er vigtigt at teste denne konfiguration omhyggeligt for at undgå at låse dig selv ude af SSH.

Konklusion

Implementering af Duo Unix på dine Linux-systemer er en effektiv måde at styrke din sikkerhedsposition på. Ved at tilføje et ekstra lag af autentificering beskytter du dine systemer mod en lang række trusler. Følg installations- og konfigurationsvejledningen nøje, test grundigt, og overvej at bruge de stabile udgivelser til produktionsmiljøer for at sikre den bedst mulige beskyttelse.

Hvis du vil læse andre artikler, der ligner Duo to-faktor: Sikkerhed for dine Linux-systemer, kan du besøge kategorien Teknologi.

Go up