Kerberos @edt ASIX M11-SAD Curs 2018-2019 Escola del treball de Barcelona
825
Podeu trobar la documentació a Github edtasixm11
Podeu trobar la documentació del mòdul a ASIX-M11
ASIX M1-SAD Escola del treball de barcelona
edtasixm11/k18:kserver servidor kerberos detach. Crea els usuaris pere pau (admin), jordi, anna, marta, marta/admin i julia. Assignar-li el nom de host: kserver.edt.org
edtasixm11/k18:khost host client de kerberos. Simplement amb eines kinit, klist i kdestroy (no pam). El servidor al que contacta s'ha de dir kserver.edt.org.
edtasixm11/k18:sshd Servidor SSHD kerberitzat. Servidor ssh que permet l'accés d'usuaris locals i usuaris locals amb autenticació kerberos. El servidor s'ha de dir sshd.edt.org.
edtasixm11/k18:khostp host amb PAM de kerberos. El servidor al que contacta s'ha de dir kserver.edt.org. Aquest host configura el system-auth de pam per usar el mòdul pam_krb5.so.
edtasixm11/k18:khostpl host amb PAM amb autenticació AP de kerberos i IP de ldap. El servidor kerberos al que contacta s'ha de dir kserver.edt.org. El servidor ldap s'anomena ldap.edt.org. Aquest host es configura amb authconfig .
edtasixm11/k18:sshdpl Servidor SSH amb PAM amb autenticació AP de kerberos i IP de ldap. El servidor kerberos al que contacta s'ha de dir kserver.edt.org. El servidor ldap s'anomena ldap.edt.org. Aquest host es configura amb authconfig . S'ha generat partint del host edtasixm11/k18:khostpl i dse li ha afegit la part del servidor sshd. Conté els fitxers per poder activar el mount del home samba, però no s'ha configurat.
edtasixm11/k18:sshdpls (sshd-pam-kerberos-ldap-home-samba) Servidor SSH amb PAM (kerberos+ldap) que munta els homes dels usuaris (dins del home) via samba.
Execució bàsica:
docker netweork create mynet
docker run --rm --name kserver.edt.org -h kserver.edt.org --net mynet -d edtasixm11/k18:kserver
docker run --rm --name sshd.edt.org -h sshd.edt.org --net mynet -d edtasixm11/k18:sshd
docker run --rm --name khost.edt.org -h khost.edt.org --net mynet -it edtasixm11/k18:khostp
Execució krb5+ldap:
docker netweork create mynet
docker run --rm --name ldap.edt.org -h ldap.edt.org --net mynet -d edtasixm06/ldapserver:18group
docker run --rm --name kserver.edt.org -h kserver.edt.org --net mynet -d edtasixm11/k18:kserver
docker run --rm --name khost.edt.org -h khost.edt.org --net mynet -it edtasixm11/k18:khostpl
Autenticaction Provider AP
Kerberos propoerciona el servei de proveïdor d'autenticació. No emmagatzema informació dels comptes d'usuari com el uid, git, shell, etc. Simplement emmagatzema i gestiona els passwords dels usuaris, en entrades anomenades principals en la seva base de dades.
Coneixem els següents AP:
Information Provider IP
Els serveis que emmagatzemen la informació dels comptes d'usuari s'anomenen Information providers. Aquests serveis proporcionen el uid, gid, shell, gecos, etc. Els clàssics són /etc/passwd i ldap.
El model que mantindrem a tot el mòsul ASIX M11-SAD ´es el següent:
ldap al servidor ldap tenim els usuaris habituals pere, marta, anna, julia, pau, jordi. El seu password és el seu propi nom.
/etc/passwd en els containers hi ha els usuaris locals local01, local02 i local03 que tenen assignat com a passeord el seu mateix nom.
kerberos + IP els usuaris user01, user02 i user03 són principals de kerberos amb passwords tipus kuser01, kuser02 i kuser03. La informació del seu compte d'usuari és local al /etc/passwd on no tenen password assignat.
kerberos + ldap Al servidor kerberos hi ha també principals per als usuaris usuals ldap pere, marta, anna, julia, jordi i pau. Els seus passwords són del tipus kpere, kmarta, kanna, kjulia, kjordi i kpau.
Es resum, podem verificar l'accés/autenticació d'usuaris locals usant el prototipus local01, podem fer test de la connectivitat kerberos amb comptes locals amb usuaris tipus user01. I finalment podem verificar l'autenticació d'usuaris kerberos amb IP ldap amb els clàssics pere (kpere).
edtasixm11/k18:kserver servidor kerberos detach. Crea els usuaris pere pau (admin), jordi, anna, marta, marta/admin i julia. Assignar-li el nom de host: kserver.edt.org
Servidor kerberos. Aquest servidor crea els principals corresponents als clàssics usuaris que tenim també a ldap.
Les característiques principals són:
Execució:
docker run --rm --name kserver.edt.org -h kserver.edt.org --net mynet -s edtasixm11/k18:kserver
edtasixm11/k18:khost host client de kerberos. Simplement amb eines kinit, klist i kdestroy (no pam). El servidor al que contacta s'ha de dir kserver.edt.org.
Bàsic:
Host client de kerberos. Per generar un host client bàsic, que permei accedir al servidor per verificar la connexió i obtenir tickets, cal:
Execució:
docker run --rm --name khost.edt.org -h khost.edt.org --net mynet -s edtasixm11/k18:khost
edtasixm11/k18:sshd Servidor SSHD kerberitzat. Servidor ssh que permet l'accés d'usuaris locals i usuaris locals amb autenticació kerberos. El servidor s'ha de dir sshd.edt.org.
Per fer que el servidor sshd sigui kerberos aware cal:
instal·lar.hi el paquet krb5-workstation.
copiar el fitxerd e configuració kerberos client /etc/krb5.conf.
crear un principal al servidor kerberos coresponent al host sshd. En aquest cas concret es crea una entrada host/sshd.edt.org.
propagar aquest principal (de host) al keytab del servidor sshd. Aquí s'utilitza un mecanisme pèssim, des del client, desatesament, es connecta amb usuari i passwd (text pla) via kadmin al servidor kerberos i exporta les claus del principal host/sshd.edt.org via ktadd.
configurar el servidor sshd per permetre l'autenticació kerberos, cal modificar el fitxer de configuració del servei /etc/ssh/sshd_config:
# Kerberos options
KerberosAuthentication yes
KerberosTicketCleanup yes
Atenció:
Si el principal de host que s'ha creat al servidor kerberos és host/sshd.edt.org es podrà realitzar l'accés kerberitzat només si es connecta al servidor usant aquest hosname. És a dir, amb les ordres:
ssh [email protected] (OK)
ssh user01@localhost (NO!)
La primera d'elles peermetrà l'accés kerberitzat, la segona no.
Execució:
docker run --rm --name sshd.edt.org -h sshd.edt.org --net mynet -d edtasixm11/k18:sshd
Feu atenció al significat d'accés kerberitzat! Si l'usuari user01 és un usuari vàlid en el host sshd.edt.org (provingi el seu information privider de /etc/passwd o de ldap) i la seva autenticació és kerberos (el seu password està desat al kerberos), en un accés kerberitzat, si l'usuari ja disposa de ticket podrà accedir al serveidor sshd sense cap password. atenció usualment quan això no va és causat per el keytab, no s'ha exportat bé, no s'ha creat bé, o no coincideixen els noms assignats al host.
Exemple-1
Des del propi container l'usuari local01, sense estar en posessió de cap ticket, realitza l'ordre ssh [email protected], el servidor li demanarà el password, en tractar-se d'un usuari de AP kerberos, verificarà l'autebnticació contra el servidor kerberos (el IP l'ha obtingut de /etc/passwd).
Exemple-2
Des del propi container l'usuari local01 sol·licita un ticket de user02 amb l'ordre kinit user02. Si s'autentica correctament amb el password de kerberos obté un tiket. Seguidament l'usuari local01 realitza l'ordre ssh [email protected] i conecta automàticament al servidor ssh sense que se li demnai el password.
Perquè? perquè està jà en possesió d'un ticket kerberos vàlid que el servidor sshd verifica i li permet iniciar sessió ssh sense necessitat de demanar-li el password (similar a l'accés per clau pública).
# ssh [email protected]
The authenticity of host '172.21.0.3 (172.21.0.3)' can't be established.
ECDSA key fingerprint is SHA256:FakX5h5J4mbjss2v3b4F4vqPllFn+AWXLj7f8ivdeAs.
ECDSA key fingerprint is MD5:bb:50:c9:26:1b:16:df:5c:91:b3:5a:b3:7d:69:82:7a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.21.0.3' (ECDSA) to the list of known hosts.
[email protected]'s password: kuser01
Last failed login: Fri Feb 22 16:49:32 UTC 2019 from 172.21.0.1 on ssh:notty
[user01@sshd ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_1003_h55yoBfeGG
Default principal: [email protected]
Valid starting Expires Service principal
02/22/19 16:49:35 02/23/19 16:49:35 krbtgt/[email protected]
[user01@sshd ~]$ ssh [email protected]
The authenticity of host 'sshd.edt.org (172.21.0.3)' can't be established.
ECDSA key fingerprint is SHA256:FakX5h5J4mbjss2v3b4F4vqPllFn+AWXLj7f8ivdeAs.
ECDSA key fingerprint is MD5:bb:50:c9:26:1b:16:df:5c:91:b3:5a:b3:7d:69:82:7a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'sshd.edt.org,172.21.0.3' (ECDSA) to the list of known hosts.
Last login: Fri Feb 22 16:49:35 2019 from 172.21.0.1
[user01@sshd ~]$ klist
klist: No credentials cache found (filename: /tmp/krb5cc_1003)
[user01@sshd ~]$ exit
logout
Connection to sshd.edt.org closed.
[user01@sshd ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_1003_h55yoBfeGG
Default principal: [email protected]
Valid starting Expires Service principal
02/22/19 16:49:35 02/23/19 16:49:35 krbtgt/[email protected]
02/22/19 16:49:56 02/23/19 16:49:35 host/[email protected]
[user01@sshd ~]$ ssh [email protected]
Last login: Fri Feb 22 16:49:56 2019 from 172.21.0.3
edtasixm11/k18:khostp host amb PAM de kerberos. El servidor al que contacta s'ha de dir kserver.edt.org. Aquest host configura el system-auth de pam per usar el mòdul pam_krb5.so.
per generar autenticació PAM kerberos simplement cal:
Execució:
docker run --rm --name kserver.edt.org -h kserver.edt.org --net mynet -d edtasixm11/k18:kserver
docker run --rm --name khost.edt.org -h khost.edt.org --net mynet -it edtasixm11/k18:khostp
$ su - local01
[local01@host ~]$ su - user03
Password: kuser03
[user03@host ~]$ id
uid=1005(user03) gid=100(users) groups=100(users),1001(kusers)
edtasixm11/k18:khostpl host amb PAM amb autenticació AP de kerberos i IP de ldap. El servidor kerberos al que contacta s'ha de dir kserver.edt.org. El servidor ldap s'anomena ldap.edt.org. Aquest host es configura amb authconfig .
per generar autenticació PAM amb kerberos i ldap cal:
Part Global:
Part Ldap:
Part Kerberos
Authconfig:
authconfig --enableshadow --enablelocauthorize --enableldap \
--ldapserver='ldap.edt.org' --ldapbase='dc=edt,dc=org' \
--enablekrb5 --krb5kdc='kserver.edt.org' \
--krb5adminserver='kserver.edt.org' --krb5realm='EDT.ORG' \
--updateall
docker run --rm --name ldap.edt.org -h ldap.edt.org --net mynet -d edtasixm06/ldapserver:18group
docker run --rm --name kserver.edt.org -h kserver.edt.org --net mynet -d edtasixm11/k18:kserver
docker run --rm --name khost.edt.org -h khost.edt.org --net mynet -it edtasixm11/k18:khostpl
edtasixm11/k18:sshdpl Servidor SSH amb PAM amb autenticació AP de kerberos i IP de ldap. El servidor kerberos al que contacta s'ha de dir kserver.edt.org. El servidor ldap s'anomena ldap.edt.org. Aquest host es configura amb authconfig .
S'ha generat partint del host edtasixm11/k18:khostpl i dse li ha afegit la part del servidor sshd.
Conté els fitxers per poder activar el mount del home samba, però no s'ha configurat.
docker run --rm --name ldap.edt.org -h ldap.edt.org --net mynet -d edtasixm06/ldapserver:18group
docker run --rm --name kserver.edt.org -h kserver.edt.org --net mynet -d edtasixm11/k18:kserver
docker run --rm --name sshd.edt.org -h sshd.edt.org --net mynet -d edtasixm11/k18:sshdpl
docker run --rm --name khost.edt.org -h khost.edt.org --net mynet -it edtasixm11/k18:khostpl
Test:
al verificar que externament es pot accedir al servei ssh en els casos:
edtasixm11/k18:sshdpls Servidor SSH amb PAM (kerberos/ldap) i homes SAMBA. S'ha generat partint del servidor ssh edtasixm11/k18:sshdpl i dse li ha afegit la part de muntar els homes samba.
Nota sembla que el client khost en fer ssh si que munta el home via samba, però si fa un ssh kerberitzat (amb un ticket prèvi) no. Imagino que aplica un altre fitxer de PAM.
docker run --rm --name ldap.edt.org -h ldap.edt.org --net mynet -d edtasixm06/ldapserver:18group
docker run --rm --name kserver.edt.org -h kserver.edt.org --net mynet -d edtasixm11/k18:kserver
docker run --rm --name sshd.edt.org -h sshd.edt.org --net mynet --privileged -d edtasixm11/k18:sshdpls
docker run --rm --name samba.edt.org -h samba.edt.org --net mynet --privileged -d edtasixm11/k18:samba
docker run --rm --name khost.edt.org -h khost.edt.org --net mynet --privileged -it edtasixm11/k18:khostpl
Test:
al verificar que externament es pot accedir al servei ssh en els casos:
Content type
Image
Digest
Size
280 MB
Last updated
over 7 years ago
docker pull edtasixm11/k18:sshd-pam-kerberos-ldap-home-samba