PAM-godkjenning - SMB-nettverk

Generell indeks for serien: Datanettverk for små og mellomstore bedrifter: Introduksjon

Hei venner og venner!

Denne artikkelen har som mål å gi en oversikt over PAM- autentisering . Vi er vant til å bruke arbeidsstasjonene våre med Linux/UNIX-operativsystemer daglig, og vi stopper sjelden opp for å studere hvordan autentiseringsmekanismen fungerer hver gang vi logger oss inn. Er vi i det hele tatt klar over eksistensen av filene /etc/passwd og /etc/shadow , som utgjør hoveddatabasen for lokal brukerautentiseringsinformasjon? Vi håper at du etter å ha lest dette innlegget – i det minste – har en klar forståelse av hvordan PAM fungerer.

autentisering

Autentisering – i praksis – er måten en bruker verifiserer seg selv på i et system. Autentiseringsprosessen krever et sett med identiteter og legitimasjonsinformasjon – brukernavn og passord – som sammenlignes med informasjon lagret i en database. Hvis de presenterte legitimasjonsinformasjonene samsvarer med de som er lagret, og brukerens konto er aktiv, sies det at brukeren har autentisert seg eller bestått autentiseringsprosessen.

Når brukeren er autentisert, sendes informasjonen til tilgangskontrolltjenesten for å avgjøre hva brukeren kan gjøre i systemet og hvilke ressurser de har riktig autorisasjon til å få tilgang til.

Informasjon for å verifisere brukeren kan lagres i lokale databaser på systemet, eller det lokale systemet kan referere til en eksisterende database på et eksternt system, for eksempel LDAP, Kerberos, NIS-databaser og så videre.

De fleste UNIX® / Linux-operativsystemer har de nødvendige verktøyene for å konfigurere klient- / servergodkjenningstjenesten for de vanligste typene brukerdatabaser. Noen av disse systemene har veldig komplette grafiske verktøy som Red Hat / CentOS, SUSE / openSUSE og andre distribusjoner.

PAM: Pluggbar godkjenningsmodul

Vi bruker modulene som er satt inn for autentisering daglig når vi logger oss på skrivebordet vårt med et Linux/UNIX-basert operativsystem, og ved mange andre anledninger når vi får tilgang til lokale eller eksterne tjenester som har en bestemt lokal PAM-modul satt inn for autentisering mot den tjenesten.

En praktisk idé om hvordan PAM-moduler settes inn kan fås gjennom autentiseringstilstandssekvensen en Debian-maskin og en CentOS-maskin , som vi utvikler nedenfor.

Debian

dokumentasjon

Hvis vi installerer libpam-doc- pakken, vil vi ha veldig god dokumentasjon plassert i katalogen /usr/share/doc/libpam-doc/html.

root @ linuxbox: ~ # aptitude installer libpam-doc
root @ linuxbox: ~ # ls -l / usr / share / doc / libpam-doc /

Det er også mer dokumentasjon om PAM i katalogene:

root @ linuxbox: ~ # ls -l / usr / share / doc / | grep pam
drwxr-xr-x 2 rotrot 4096 5. april 21:11 libpam0g drwxr-xr-x 4 rotrot 4096 7. april 16:31 libpam-doc drwxr-xr-x 2 rotrot 4096 5. april 21:30 libpam-gnome- nøkkelring drwxr-xr-x 3 rotrot 4096 5. april 21:11 libpam-moduler drwxr-xr-x 2 rotrot 4096 5. april 21:11 libpam-moduler-bin drwxr-xr-x 2 rotrot 4096 5. april 21: 11 libpam-runtime drwxr-xr-x 2 root root 4096 5. apr 21:26 libpam-systemd drwxr-xr-x 3 root root 4096 5. apr 21:31 python-pam

Vi tror at før vi går ut for å lete etter dokumentasjon på Internett, bør vi gjennomgå den som allerede er installert, eller den som vi kan installere direkte fra programlagrene som finnes for noe, og ved mange anledninger kopierer vi dem til harddisken vår . Eksempel på dette er følgende:

root @ linuxbox: ~ # less / usr / share / doc / libpam-gnome-keyring / README
gnome-keyring er et program som holder passord og andre hemmeligheter for brukerne. Den kjøres som en demon i økten, i likhet med ssh-agent, og andre applikasjoner finner den via en miljøvariabel eller en D-Bus. Programmet kan administrere flere nøkkelringer, hver med sitt eget hovedpassord, og det er også en øktnøkkelring som aldri lagres på disken, men glemmes når økten avsluttes. Biblioteket libgnome-keyring brukes av applikasjoner for å integrere med GNOME-nøkkelring.

Som oversatt veldig fritt vil uttrykke:

  • gnome-keyring er programmet som har ansvaret for å oppbevare passord og andre hemmeligheter for brukerne. I hver økt kjører den som en demon, som ligner på ssh-agent, og til andre applikasjoner som er lokalisert gjennom en miljøvariabel - miljø eller via D-Bus. Programmet kan håndtere flere nøkkelringer, hver med sitt eget hovedpassord. Det er også en nøkkelring-økt som aldri er lagret på harddisken og blir glemt når økten avsluttes. Programmer bruker libgnome-nøkkelring-biblioteket for å integrere med GNOME-nøkkelring-systemet.

Debian med basisoperativsystemet

Vi starter med en datamaskin der vi nettopp har installert Debian 8 «Jessie» som operativsystem, og under installasjonsprosessen valgte vi bare «Grunnleggende systemverktøy», uten å sjekke noen andre alternativer for å installere oppgaver eller forhåndsdefinerte pakker som OpenSSH-serveren. Hvis vi kjører følgende etter å ha startet den første økten:

root @ master: ~ # pam-auth-update

vi vil oppnå følgende utganger: PAM-godkjenning - 01

PAM-godkjenning - 02

Dette viser oss at den eneste PAM-modulen som var i bruk frem til det tidspunktet var UNIX-autentisering. Verktøyet pam-auth-update lar oss konfigurere den sentrale autentiseringspolicyen for et system ved hjelp av forhåndsdefinerte profiler levert av PAM-modulene. For mer informasjon, se pam-auth-update man-siden.

Siden vi ennå ikke har installert OpenSSH-serveren, finner vi ikke PAM-modulen i /etc/pam.d/-katalogen , som vil inneholde PAM-modulene og profilene som er lastet inn frem til dette punktet:

root @ master: ~ # ls -l /etc/pam.d/
totalt 76 -rw-r - r-- 1 rotrot 235 30. september 2014 atd -rw-r - r-- 1 rotrot 1208 6. april 22:06 felleskonto -rw-r - r-- 1 rotrot 1221 6. apr 22:06 felles-auth -rw-r - r-- 1 rotrot 1440 6. april 22:06 felles-passord -rw-r - r-- 1 rotrot 1156 6. april 22:06 fellessession -rw -r - r-- 1 rotrot 1154 6. april 22:06 vanlig sesjon-ikke-interaktiv -rw-r - r-- 1 rotrot 606 11. juni 2015 cron -rw-r - r - 1 rotrot 384 19. november 2014 chfn -rw-r - r-- 1 root root 92 Nov 19 2014 chpasswd -rw-r - r-- 1 root root 581 Nov 19 2014 chsh -rw-r-- r-- 1 root root 4756 Nov 19 2014 login -rw-r - r-- 1 rotrot 92 nov 19 2014 nybrukere -rw-r - r-- 1 rotrot 520 6. januar 2016 annet -rw-r- -r-- 1 rotrot 92 19. november 2014 passwd - rw-r - r-- 1 rotrot 143 29. mars 2015 runuser -rw-r - r-- 1 rotrot 138 29. mars 2015 runuser-l -rw -r - r-- 1 rotrot 2257 19. november 2014 su - rw-r - r-- 1 rotrot 220 2. september 2016 systemd-bruker

For eksempel konfigurerer PAM-modulen `/etc/pam.d/chfn` Shadow- tjenesten , mens `/etc/pam.d/ cron` konfigurerer cron- daemonen. For å lære mer kan vi lese innholdet i hver av disse filene, noe som er veldig lærerikt. Som et eksempel vises innholdet i `/etc/pam.d/ cron`-modulen nedenfor :

root @ master: ~ # mindre /etc/pam.d/cron
# PAM-konfigurasjonsfilen for cron-demonen

@ inkluderer felles-godkjenning

# Angir den nødvendige loginuid-prosessattributtøkten pam_loginuid.so # Les miljøvariabler fra pam_envs standardfiler, / etc / environment # og /etc/security/pam_env.conf. økt kreves pam_env.so # I tillegg må du lese systeminformasjon om lokal språkøkt pam_env.so envfile = / etc / default / locale

@ inkluderer felleskonto
@ inkluderer fellessesjon-ikke-interaktiv 

# Setter opp brukergrenser, vennligst definer grenser for cron-oppgaver # gjennom /etc/security/limits.conf-økt nødvendig pam_limits.so

Rekkefølgen på uttalelsene i hver av filene er viktig. Generelt sett anbefaler vi ikke å endre noen av dem med mindre vi vet veldig godt hva vi gjør.

Debian med base OS + OpenSSH

root @ master: ~ # aptitude installer oppgave-ssh-server
Følgende NYE pakker blir installert: openssh-server {a} openssh-sftp-server {a} task-ssh-server

Vi vil bekrefte at PAM sshd- modulen ble lagt til og konfigurert riktig :

root @ master: ~ # ls -l /etc/pam.d/sshd 
-rw-r - r-- 1 rotrot 2133 22. juli 2016 /etc/pam.d/sshd

Hvis vi vil vite innholdet i den profilen:

root @ master: ~ # mindre /etc/pam.d/sshd

Med andre ord, når vi prøver å starte en ekstern økt fra en annen datamaskin ved hjelp av ssh , gjøres autentisering på den lokale datamaskinen hovedsakelig gjennom sshd PAM-modulen , uten å glemme de andre autorisasjons- og sikkerhetsaspektene som er involvert i selve ssh-tjenesten.

Forresten, hovedkonfigurasjonsfilen for denne tjenesten er /etc/ssh/sshd_config , og i hvert fall på Debian er den installert som standard uten å tillate interaktiv root- pålogging . For å aktivere den må vi endre /etc/ssh/sshd_config -filen og endre følgende linje:

PermitRootLogin uten passord

av

PermitRootLogin ja

og start på nytt og kontroller tjenestens status ved å:

root @ master: ~ # systemctl start ssh på nytt
root @ master: ~ # systemctl status ssh

Debian med LXDE-skrivebordet

Vi fortsetter med samme team - vi endrer navnet deres eller vertsnavn av "Linuxbox»For fremtidig bruk - som vi ferdig med å installere LXDE Desktop. La oss løpe pam-auth-oppdatering og vi vil oppnå følgende utganger: PAM-godkjenning - 03

PAM-godkjenning - 04

Systemet har allerede aktivert alle profilene -Modules- som er nødvendige for riktig autentisering under installasjonen av LXDE-skrivebordet, som er følgende:

  • UNIX-godkjenningsmodul.
  • Modul som registrerer brukersessioner i den hierarkiske kontrollgruppen for systemd.
  • GNOME nøkkelring Daemon-modul
  • Vi benytter anledningen til å anbefale at når vi blir spurt "PAM-profiler for å aktivere", velger vi alternativet Med mindre vi vet veldig godt hva vi gjør. Hvis vi endrer PAM-konfigurasjonen som automatisk blir laget av selve operativsystemet, kan vi enkelt deaktivere påloggingen på datamaskinen.

I de foregående tilfellene snakker vi om lokal autentisering eller autentisering mot den lokale datamaskinen, slik det skjer når vi starter en ekstern økt ved hjelp av ssh.

Hvis vi implementerer en ekstern autentiseringsmetodeden lokale datamaskinen, slik at brukere med påloggingsinformasjonen sin lagres på en ekstern OpenLDAP-server eller i en Active Directory, vil systemet ta hensyn til den nye formen for autentisering og legge til de nødvendige PAM-modulene.

Hovedfiler

  • / Etc / passwd: Brukerkontoinformasjon
  • / etc / skygge: Sikker informasjon om brukerkontoer
  • /etc/pam.conf: Fil som bare skal brukes hvis katalogen ikke eksisterer /etc/pam.d/
  • /etc/pam.d/: Katalog der programmer og tjenester installerer PAM-modulene
  • /etc/pam.d/passwd: PAM-konfigurasjon for passwd.
  • /etc/pam.d/common-account: Autorisasjonsparametere som er felles for alle tjenester
  • /etc/pam.d/common-auth: Autentiseringsparametere som er felles for alle tjenester
  • /etc/pam.d/common-password: PAM-moduler som er felles for alle tjenester relatert til passord - passord
  • /etc/pam.d/common-session: PAM-moduler som er felles for alle tjenester relatert til brukersessioner
  • /etc/pam.d/common-session-noninteractive: PAM-moduler som er felles for alle tjenester relatert til ikke-interaktive økter eller som ikke krever brukerintervensjon, for eksempel oppgaver som utføres i begynnelsen og slutten av ikke-interaktive økter.
  • / usr / del / doc / passwd /: Dokumentasjonskatalog.

Vi anbefaler å lese man-sidene for passwd og shadow ved å bruke `man passwd` og `man shadow` . Det er også lurt å lese innholdet i filene `common-account`, `common-auth`, `common-passwrod`, `common-session` og `common-session-noninteractive`.

PAM-moduler tilgjengelig

For å få en idé om PAM-modulene som er tilgjengelige a priori i standard Debian-depotet, kjører vi:

buzz @ linuxbox: ~ $ aptitude search libpam

Listen er lang, og vi vil bare gjenspeile modulene som viser hvor omfattende den er:

libpam-afs-session          - PAM module to set up a PAG and obtain AFS tokens                    
libpam-alreadyloggedin      - PAM module to skip password authentication for logged users
libpam-apparmor             - changehat AppArmor library as a PAM module
libpam-barada               - PAM module to provide two-factor authentication based on HOTP
libpam-blue                 - PAM module for local authenticaction with bluetooth devices
libpam-ca                   - POSIX 1003.1e capabilities (PAM module)                             
libpam-ccreds               - Pam module to cache authentication credentials                      
libpam-cgrou                - control and monitor control groups (PAM)                            
libpam-chroot               - Chroot Pluggable Authentication Module for PAM                      
libpam-ck-connector         - ConsoleKit PAM module                 
libpam-cracklib             - PAM module to enable cracklib support 
libpam-dbus                 - A PAM module which asks the logged in user for confirmation         
libpam-duo                  - PAM module for Duo Security two-factor authentication               
libpam-dynalogin            - two-factor HOTP/TOTP authentication - implementation libs           
libpam-encfs                - PAM module to automatically mount encfs filesystems on login        
libpam-fprintd              - PAM module for fingerprint authentication trough fprintd            
libpam-geo                  - PAM module checking access of source IPs with a GeoIP database      
libpam-gnome-keyring        - PAM module to unlock the GNOME keyring upon login                   
libpam-google-authenticator - Two-step verification                 
libpam-heimdal              - PAM module for Heimdal Kerberos       
libpam-krb5                 - PAM module for MIT Kerberos           
libpam-krb5-migrate-heimdal - PAM module for migrating to Kerberos  
libpam-lda                  - Pluggable Authentication Module for LDA                         
libpam-ldapd                - PAM module for using LDAP as an authentication service              
libpam-mkhomedir            -         
libpam-mklocaluser          - Configure PAM to create a local user if it do not exist already     
libpam-modules              - Pluggable Authentication Modules for PAM                            
libpam-modules-bin          - Pluggable Authentication Modules for PAM - helper binaries          
libpam-mount                - PAM module that can mount volumes for a user session                
libpam-mysql                - PAM module allowing authentication from a MySQL server              
libpam-nufw                 - The authenticating firewall [PAM module]                            
libpam-oath                 - OATH Toolkit libpam_oath PAM module   
libpam-ocaml                - OCaml bindings for the PAM library (runtime)                        
libpam-openafs-kaserver     - AFS distributed filesystem kaserver PAM module                      
libpam-otpw                 - Use OTPW for PAM authentication       
libpam-p11                  - PAM module for using PKCS#11 smart cards                            
libpam-passwdqc             - PAM module for password strength policy enforcement                 
libpam-pgsql                - PAM module to authenticate using a PostgreSQL database              
libpam-pkcs11               - Fully featured PAM module for using PKCS#11 smart cards             
libpam-pold                 - PAM module allowing authentication using a OpenPGP smartcard        
libpam-pwdfile              - PAM module allowing authentication via an /etc/passwd-like file     
libpam-pwquality            - PAM module to check password strength 
libpam-python               - Enables PAM modules to be written in Python                         
libpam-python-doc           - Documentation for the bindings provided by libpam-python            
libpam-radius-auth          - The PAM RADIUS authentication module  
libpam-runtime              - Runtime support for the PAM library   
libpam-script               - PAM module which allows executing a script                          
libpam-shield               - locks out remote attackers trying password guessing                 
libpam-shish                - PAM module for Shishi Kerberos v5     
libpam-slurm                - PAM module to authenticate using the SLURM resource manager         
libpam-smbpass              - pluggable authentication module for Samba                           
libpam-snapper              - PAM module for Linux filesystem snapshot management tool            
libpam-ssh                  - Authenticate using SSH keys           
libpam-sshauth              - authenticate using an SSH server      
libpam-sss                  - Pam module for the System Security Services Daemon                  
libpam-systemd              - system and service manager - PAM module                             
libpam-tacplus              - PAM module for using TACACS+ as an authentication service           
libpam-tmpdir               - automatic per-user temporary directories                            
libpam-usb                  - PAM module for authentication with removable USB block devices      
libpam-winbind              - Windows domain authentication integration plugin                    
libpam-yubico               - two-factor password and YubiKey OTP PAM module                      
libpam0g                    - Pluggable Authentication Modules library                            
libpam0g-dev                - Development files for PAM             
libpam4j-java               - Java binding for libpam.so            
libpam4j-java-doc           - Documentation for Java binding for libpam.so

Tegn dine egne konklusjoner.

CentOS

Hvis vi velger alternativet « Server med GUI » under installasjonsprosessen , får vi en god plattform for implementering av ulike tjenester for SMB-nettverket. I motsetning til Debian tilbyr CentOS/Red Hat® en rekke konsoll- og grafikkverktøy som gjør livet enklere for en system- eller nettverksadministrator.

dokumentasjon

Installert som standard finner vi det i katalogen:

[root @ linuxbox ~] # ls -l /usr/share/doc/pam-1.1.8/
totalt 256 -rw-r - r--. 1 rotrot 2045 18. juni 2013 Copyright drwxr-xr-x. 2 rotrot 4096 9. apr 06:28 html
-rw-r - r--. 1 rotrot 175382 5. nov 19:13 Linux-PAM_SAG.txt -rw-r - r--. 1 rotrot 67948 18. juni 2013 rfc86.0.txt drwxr-xr-x. 2 rotrot 4096 9. apr 06:28 tekster
[root @ linuxbox ~] # ls /usr/share/doc/pam-1.1.8/txts/
README.pam_access README.pam_exec README.pam_lastlog README.pam_namespace README.pam_selinux README.pam_timestamp README.pam_console README.pam_faildelay README.pam_limits README.pam_nologin README.pam_sepermit README.pam_tty_audit README.pam_cracklib README.pam_faillock README.pam_listfile README.pam_permit README. pam_shells README.pam_umask README.pam_chroot README.pam_filter README.pam_localuser README.pam_postgresok README.pam_stress README.pam_unix README.pam_debug README.pam_ftp README.pam_loginuid README.pam_pwhistory README.pam_succeed_if README.pam_userdb README.pam_deny README.pam_group README.pam_mail LESMEG .pam_rhosts README.pam_tally README.pam_warn README.pam_echo README README.pam_issue README.pam_mkhomedir README.pam_rootok README.pam_tally2 README.pam_wam.

Ja, vi kaller også CentOS-teamet "linuxbox" som med Debian, som vil tjene oss for fremtidige artikler om SMB Networks.

CentOS med GNOME3 GUI

Når vi velger alternativet « Server med GUI » under installasjonen , installeres GNOME 3 Desktop og andre verktøy og basisprogrammer for å utvikle en server. På konsollnivå kjører vi følgende for å sjekke autentiseringsstatusen:

[root @ linuxbox ~] # authconfig-tui

PAM-godkjenning - 05

Vi sjekker at bare PAM-modulene som er nødvendige for den nåværende serverkonfigurasjonen er aktivert, til og med en modul for å lese fingeravtrykk, et autentiseringssystem som vi finner i noen modeller av bærbare datamaskiner.

CentOS med GNOME3 GUI ble koblet til en Microsoft Active Directory

PAM-godkjenning - 06

Som vi kan se, er de nødvendige modulene – winbind – for autentisering mot en Active Directory lagt til og aktivert , mens vi bevisst deaktiverte modulen for lesing av fingeravtrykk, fordi den ikke er nødvendig.

I en kommende artikkel vil vi dekke i detalj hvordan du kobler en CentOS 7-klient til en Microsoft Active Directory. Foreløpig vil vi bare nevne at verktøyet autoconfig-gtk i stor grad automatiserer installasjonen av nødvendige pakker, konfigurasjonen av automatisk oppretting av domenekataloger for lokalt autentiserte brukere og selve prosessen med å koble klienten til Active Directory-domenet. Etter at du har koblet deg til, trenger du kanskje bare å starte datamaskinen på nytt.

Hovedfiler

Filene relatert til autentisering i CentOS ligger i /etc/pam.d/-katalogen :

[root @ linuxbox ~] # ls /etc/pam.d/
atd liveinst smartcard-auth-ac authconfig login smtp authconfig-gtk annet smtp.postfix authconfig-tui passwd sshd config-util passord-auth su crond passord-auth-ac sudo kopper pluto sudo-i chfn polkit-1 su-l chsh postlogin system-auth fingeravtrykk-auth postlogin-ac system-auth-ac fingeravtrykk-auth-ac ppp system-config-autentisering gdm-autologin ekstern systemd-bruker gdm-fingeravtrykk runuser vlock gdm-lanseringsmiljø runuser-l vmtoolsd gdm-passord samba xserver gdm-pin setup gdm-smartcard smartcard-auth

PAM-moduler tilgjengelig

Vi har basisrepositoriene centosplus, epel og updates . I dem finner vi – blant annet – følgende moduler som bruker kommandoene `yum search pam-` , `yum search pam_` og `yum search libpam` :

nss-pam-ldapd.i686: En nsswitch-modul som bruker katalogservere nss-pam-ldapd.x86_64: En nsswitch-modul som bruker katalogservere ovirt-guest-agent-pam-module.x86_64: PAM-modul for oVirt Guest Agent-pam -kwallet.x86_64: PAM-modul for KWallet pam_afs_session.x86_64: AFS PAG- og AFS-tokens ved pålogging pam_krb5.i686: En pluggbar autentiseringsmodul for Kerberos 5 pam_krb5.x86_64: En pluggbar autentiseringsmodul for Kerberos 5 pam_api .x86_64: En PAM-modul for pluggbar påloggingsautentisering for OATH pam_pkcs86.i64: PKCS # 11 / NSS PAM-påloggingsmodul pam_pkcs686.x11_11: PKCS # 86 / NSS PAM-påloggingsmodul pam_radius.x64_11: PAM-modul for RADIUS Authentication pam_script.x: PAM_script. modul for å utføre skript pam_snapper.i86: PAM-modul for å ringe snapper pam_snapper.x64_86: PAM-modul for å ringe snapper pam_ssh.x64_686: PAM-modul for bruk med SSH-nøkler og ssh-agent pam_ssh_agent_86 64: PAM-modul for autentisering med ssh-agent pam_ssh_agent_auth.x86_64: PAM-modul for autentisering med ssh-agent pam_url.x686_86: PAM-modul for å autentisere med HTTP-servere pam_wrapper.x64_86: Et verktøy for å teste PAM-applikasjoner og PAM-moduler pam_yubico.x64_: En pluggbar autentiseringsmodul for yubikeys libpamtest-doc.x86_64: libpamtest API-dokumentasjonen python-libpamtest.x86_64: En python-omslag for libpamtest libpamtest.x86_64: Et verktøy for å teste PAM-applikasjoner og PAM-moduler libpamtest-devel.x86_64: Et verktøy for å teste PAM-applikasjoner og PAM-moduler

Oppsummering

Det er viktig å ha et minimum av kunnskap om PAM hvis vi på en generell måte vil forstå hvordan autentisering utføres hver gang vi logger på Linux / UNIX-datamaskinen vår. Det er også viktig å vite at bare med lokal autentisering kan vi tilby tjenester til andre datamaskiner i et lite SMB-nettverk som Proxy, Mail, FTP, etc., alt konsentrert på en enkelt server. Alle de tidligere tjenestene - og mange flere som vi så tidligere - har deres PAM-modul.

Kilder konsultert

PDF-versjon

Last ned PDF-versjonen her.

Fram til neste artikkel!

Forfatter: Federico A. Valdes Toujague
[e-postbeskyttet]
https://blog.desdelinux.net/author/fico


Legg til som foretrukket kilde i Google