Administració de dominis i seguretat

Imatge portada

Índex

Conceptes bàsics

Creació i configuració

Configuració previa

He postat les dues maquines en la mateixa xarxa virtual interna, creant la NatNetwork i assignant-la a les maquines

Creació xarxa NatNetwork virtualbox

Server Client
Configuració xarxa servidor Configuració xarxa client

Hem configurat la IP a estatica en el servidor, perque en principi “sempre” hauria de tenim la IP fixa, per fer-ho senzill ho he fet en interficie grafica (i no el netplan). I comprovat que s’ha aplicat correcta i tenim sortida a internet.

| Configuració IP estatica | Comprovació IP i connexió | | :——————————————————–: | :———————————————————-: |

He canviat del hostname amb hostnamectl i posat el domini “cire.cat” en el /etc/hosts, degut a que no tenim DNS

Configuració hostname

Creació i configuració servidors

Els paquets a instal·lar per a configurar el domini són slapd i ldap-utils, a on surtira un prompt per posar la contrasenya de l’administrador del domini

Prompt contrasenya instal·lació Prompt confirmació contrasenya instal·lació

Amb la comanda slapcat podem obtenir l’informació dels objectes, unitats, etc, del domini

Primer slapcat

Per configurar comodament algunes opcions del domini he executat dpkg-reconfigure slapd

En la pantalla 1 no ometem configuració Pantalla 2 nom domini cire.cat
Pantalla 3 nom organització cire Pantalla 4 contrasenya admin
Pantalla 5 verificació contrasenya admin Pantalla 6 posem si a borrar la base dades, en aquest cas
Pantalla 6 posem si a moure els arxius de la base de dades antiga Comprovació del slapcat que tenim el domini

Posteriorment he modificat el ou.ldif (amb sed), usu.ldif i el de grups, per canviar al meu domini

| Antic ldif | Canvi ldif | | :————————————–: | :————————————–: |

I finalment he afegit la unitat amb ldapadd -c -x -D "cn=admin,dc=cire,dc=cat" -W -f i els arxius.

Creació unitats, usuaris i grups 1 Creació unitats, usuaris i grups 2
Creació unitats, usuaris i grups 1 Creació unitats, usuaris i grups 2

I podrem veure al slapcat que s’han creat.

Comprovació slapcat dels usuaris

Configuració client

He instal·lat els paquets libnss-ldap libpam-ldap nscd

Instal·lació paquets

En el prompt que surt en l’instal·lació, he posat la IP del servidor i emplenat les dades.

Pantalla 1 de la IP ldap:// Pantalla 2 domini
Pantalla 3 Versió ldap Pantalla 4 Local root admin
Pantalla 5 seleccionem que la base no Pantalla 6 ldap-auth-config
Pantalla 7 contrasenya  

En principi podriem reconfigurar amb el paquet el ldap-auth-config, que es practicament mateix que surt a l’instal·lació

Pantalla 1 debconf YES Pantalla 2 ldap require login
Pantalla 3 usuari administrador Pantalla 4 ldap root account password
Pantalla 5 ldap root account password encryption  

Després al /etc/nsswitch.conf he afegit la base ldap abans de totes, per a que cerqui ahi usuari, contrasenyes i grups

Afegint entrada ldap en nsswitch.conf en passwd, group, shadow, gshadow

Per finalitzar en el arxius de autenficació he fet:

| Linia a eliminar common-password | Comprovació que s'ha eliminat | Afegit el pam_mkhomedir.so | | :————————————————————-: | :———————————————————-: | :——————————————————–: |

I he configurat el fitxer de configuració de LightDM per permetre l’inici de sessió manual d’usuaris LDAP. Això és necessari perquè, per defecte, LightDM només mostra els usuaris locals i no permet introduir manualment un nom d’usuari. Afegint aquestes opcions:

[Seat:*]
user-session=ubuntu
greeter-show-manual-login=true

Configuració lightdm

Ens assegurem que aparegui l’opció “Login manual” al gestor d’inici de sessió, permetent així que els usuaris autenticats pel servidor LDAP puguin iniciar sessió al sistema.

En reiniciar, podem comprovar que puc iniciar sessió

Posant l'usuari Posant la contrasenya
Captura de que esta creant el home Captura comprovació que en hem connectat graficament

Entorn gràfic

Abanda de crear unitat/usuari/grups amb scripts .ldif, ho podem fer amb un programa grafic, com:

El programa que documentaré es LAM

De cada programa cal provar i documentar:

Instal·lació Previ he instal·lat les dependencies de php i altres necessaries

apt install -y fonts-dejavu gettext libapache2-mod-php8.3 libphp-phpmailer \
  php php-bcmath php-constant-time php-gd php-gmp php-ldap php-monolog \
  php-mysql php-phpseclib3 php-random-compat php-sqlite3 php-xml \
  php8.3 php8.3-bcmath php8.3-gd php8.3-gmp php8.3-ldap \
  php8.3-mysql php8.3-sqlite3 php8.3-xml

Instal·lacio paquets

Després, l’he instal·lat descarregant el binari .deb amb wget de la pàgina per obtenir l’ultima versió

wget -q https://github.com/LDAPAccountManager/lam/releases/download/9.4/ldap-account-manager_9.4-1_all.deb
dpkg -i ldap-account-manager_9.4-1_all.deb

Instal·lació LAM

Configuració Per a configurar, he accedit mitjançant navegador web a http://localhost/lam i especificat una nova contrasenya. I en LAM Configuration he posat una contrasenya al perfil LAM per poder accedir-hi.

Contrasenya LAM LAM Configuration Edit server profiles Manage server profile
Contrasenya del perfil lam Prompt contrasenya mestra Contrasenya correcta  

Posteriorment he accedit amb LAM i proporcionat l’informació de servidor en Ajustes generales i els tipus de comptes en Tipos de cuentas

Login al portal de configuració amb lam Ajustes general - direccio IP i usuaris valids domini dc
Ajustes general - visor d'arbre sufix domini dc Tipus de comptes ldap account manager

Comprovar que l’arbre de directori és correcte Finalment, en connectar-me amb l’usuari admin i alumne de contrasenya, podrem veure que surt l’usuari i en l’arbre l’estructura.

| Login final admin al domini | Pantalla inicial a on podem veure l'usuari alu | Fem clic en Herramientas > Visor del arbol per accedir-hi | | :——————————————————–: | :—————————————————————————: | :————————————————————————————–: |

Captura de l'arbre

Crea una uo, un grup i un usuari

Nota: tot això es pot fer en el Visor d’arbre però amb les guiades es mes simple (no requereix saber les classes a afegir)

Per crear allò simplement he fet el següent.

  1. Per a la OU en L’Editor de OU
  2. Per al grup i usuari, he anat en Cuentas > Grupos / Usuarios i afegit
Proces seguit
GIF del procés de creació
Usuari creat Grup assignat Comprovació final
Usuari Grup Comprovació final

Per fer-ho en el visor, seria: Creant un nou objecte amb la respectiva classe de organizationalUnit i automaticament, s’afegira la classe abstracta top, que defineix que cada objecte de LDAP ha de tenir un atribut objectClass.


Accedir des del client amb aquest usuari Posterior a configurar, podem comprovar que puc accedir-hi:

Comprovació client GIF Comprovació client

Us comandes


Distinguished Name: DN CN: Common Name dc: domain controller

El modify sols es per canviar els valors dels atributs

modrn

1 cas: SI volem cnavia rel dn usem modrdn 2n cas: si vol moure un objecte a un altre


Fes un dpkg-reconfigure slapd al servidor per tal de deixar la base de dades buida i només amb el domini i l’usuari admin creat. Comprova-ho amb un slapcat.


Captura comprovament reconfigure (tot net):

alt text

He carregat els usuaris ldapadd -x -D cn=admin,dc=cire,dc=cat -W -f dades_pt1.ldif

Creació

alt text

Comprovació slapcat

alt text

  1. Crea un nou usuari directament al domini

Arxiu creacioUsuari.ldif

dn: cn=ferran,dc=cire,dc=cat
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
objectClass: top
cn: ferran
gidNumber: 1001
homeDirectory: /home/ferran
loginShell: /bin/bash
sn: Reus
uid: ferran
uidNumber: 1001
userPassword: alumne

Ho he fet amb la següent comanda: ldapadd -x -D "cn=admin,dc=cire,dc=cat" -w alumne -f creacioUsuari.ldif

alt text

  1. Crea una nova uo anomenada nòmines

Arxiu creacioUO.ldif

dn: ou=nomines,dc=cire,dc=cat
objectClass: organizationalUnit
objectClass: top
ou: nomines

Ho he fet amb la següent comanda: ldapadd -x -D "cn=admin,dc=cire,dc=cat" -w alumne -f creacioUO.ldif

alt text

  1. Mou l’usuari que has creat dintre de la uo nòmines

Arxiu moure.ldif

dn: cn=ferran,dc=cire,dc=cat
changetype: modrdn
newrdn: cn=ferran
deleteoldrdn: 1
newsuperior: ou=nomines,dc=cire,dc=cat

Ho he fet amb la següent comanda: ldapmodify -x -D "cn=admin,dc=cire,dc=cat" -w alumne -f moure.ldif

alt text

  1. Quants grups hi ha al domini cire.cat? N’hi han 2

Ho he obtés amb: ldapsearch -xLLL -b "dc=cire,dc=cat" objectClass=posixGroup

alt text

  1. Afegeix l’usuari que has creat dintre d’un dels grups del domini
dn: cn=informatica,ou=departaments,dc=cire,dc=cat
changetype: modify
add: memberUid
memberUid: ferran

Ho he fet amb la següent comanda: ldapmodify -x -D "cn=admin,dc=cire,dc=cat" -w alumne -f moure.ldif

alt text

  1. D’un sol cop: Afegeix un nou atribut opcional a l’usuari sergi, modifica el cognom de l’usuari sergi al valor Pallarés
dn: cn=sergi,ou=rrhh,dc=cire,dc=cat
changetype: modify
add: description
description: Usuari del departament d'informàtica
-
replace: sn
sn: Pallarés

ldapmodify -x -D “cn=admin,dc=cire,dc=cat” -w alumne -f modificarSergi.ldif

alt text

  1. Quants usuaris hi ha dintre de la uo rrhh? 3 usuaris Quins són? xavier, enric i sergi

Ho he comprovat amb ldapsearch -x -LLL -b "ou=rrhh,dc=cire,dc=cat" "(objectClass=posixAccount)" cn

alt text

  1. Esborra el gidNumber del grup informàtica
dn: cn=informatica,ou=departaments,dc=cire,dc=cat
changetype: modify
replace: gidNumber
gidNumber: 1001

ldapmodify -x -D “cn=admin,dc=cire,dc=cat” -w alumne -f esborrarInformatica.ldif

alt text

  1. Quantes uos hi ha al domini cire.cat? 3, rrhh, departament i nomines

alt text

  1. Modifica el cn de Xavier per Francesc Xavier
dn: cn=xavier,ou=rrhh,dc=cire,dc=cat
changetype: modrdn
newrdn: cn=Francesc Xavier
deleteoldrdn: 1

alt text

  1. Esborra la uo nòmines

Ho he fer amb ldapdelete -x -D "cn=admin,dc=cire,dc=cat" -w alumne "ou=nomines,dc=cire,dc=cat" -r

alt text

  1. Mostra els usuaris que tinguin com a grup principal el grup administració

ldapsearch -x -LLL -b “dc=cire,dc=cat” “(&(gidNumber=1001)(objectClass=inetOrgPerson))” cn

alt text

  1. Quin usuari té el uidNumber 1003? Cap

alt text

  1. Mostra quins són els usuaris on el seu cognom comenci per R i el seu uidNumber sigui més gran que 1003

ldapsearch -x -b “dc=cire,dc=cat” “(&(sn=R*)(uidNumber>=1004))” cn uidNumber sn

alt text

  1. Mostra quins usuaris formen part del grup informàtica o aquells usuaris que tinguis de cognom Pallarés
ldapsearch -x -LLL -b "dc=cire,dc=cat" "(&(objectClass=inetOrgPerson)(|(gidNumber=1001)(sn=Pallarés)))" gidNumber sn

He usat un or

alt text

Servidor samba

Un servidor samba ens permet compartir recursos (fitxers, impressores), tant en equips Windows com Linux L’autentificació es a nivell d’usuari no de host com NFS, poden ser usuaris propis de Samba o d’ldap.

Configuració server smb

El paquet requerit instal·lat és samba

alt text

A continuació he creat la carpeta a compartir amb permissos totals a tots, sense usuari i grup propietari

cd /
mkdir asixa
chmod 777 asixa && chown nobody:nogroup asixa

alt text

Seguidament hem preparat els usuaris i grups per realitzar proves, els hem creat de forma que no puguin accedir al sistema mitjançant shell/graficament

Creació d’usuaris i grups Assignació de contrasenyes
Crear usuari i grups Assignar Contrasenyes

Per assignar les contrasenyes hem usat smbpasswd, el paràmetre -a és per indicar l’usuari.

Per configurar el recurs compartir hem d’editar /etc/samba/smb.conf

alt text

I reiniciem els serveis smbd, nmbd al editar.

alt text

Configuració client smb

Accedim al client, que es troba a la mateixa xarxa, com he comprovat amb el ping

alt text

El paquet a instal·lar és smbclient

alt text

I ja pdem connectar-nos mitjançant el navegador de fitxers

alt text

Test amb l’usuari anonim

He provat amb l’anonim i he pogut conectarme i crear carpeta i esborar

Connexió Carpeta creada Arxiu creat
connexió carpeta creada Arxiu creat

I he desconnectat el recurs de xarxa per a les següents proves.

alt text

Test amb edgar

No pot ni connectarse, després de fer clic en Connectar torna a sortir la mateixa finestra

Connexió

Test amb naim

Pot fer tot.

Connexió Crear carpeta Afegir arxiu
Connexió Crear carpeta Afegir arxiu

Pot accedir pero no crear ni eliminar directoris o fitxers.

Connexió No pot esborrar No pot afegir fitxers
Connexió No pot esborrar No pot afegir fitxers

Integració OpenLDAP

Configuració server


Fonts consultades:

  1. https://medium.com/@cminion/openldap-with-samba-bd929f93401a
  2. https://documentation.ubuntu.com/server/how-to/samba/openldap-backend-legacy/

Per integrar amb el domini ldap configurat, he editat/afegit en la directiva global els paràmetres:

# per indicar a on buscar les contrasenyes
passdb backend = ldapsam:ldap://10.0.2.15

# Aqui l'informació del domini ldap 'cire.cat'
ldap suffix = dc=cire,dc=cat

# I l'administrador
ldap admin dn = cn=admin,dc=cire,dc=cat
# Sense SSL  perque ho vaig configurar així
ldap ssl = no

# I que sincronitzi les contrasenyes
ldap passwd sync = yes

L’usuari admin l’hi he posat contrasenya amb smbpasswd, el paràmetre -w és per especificar la contrasenya en línia.

smbpasswd -a admin

alt text

Perquè OpenLDAP es pugui utilitzar com a backend per a Samba, el DIT haurà d’utilitzar atributs que puguin descriure correctament les dades de Samba. Aquests atributs es poden obtenir introduint un esquema LDAP de Samba.

L’esquema es troba al paquet Samba ara instal·lat i ja està en format LDIF. El podem importar amb una simple ordre:

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /usr/share/doc/samba/examples/LDAP/samba.ldif

alt text

Per consultar i visualitzar aquest nou esquema: sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config 'cn=*samba*'

alt text

Després reiniciem els serveis.

alt text

Proves client

Podem veure que ens podem connectar, per exemple com enric

Al pareixer enric te tots els permissos, pot esborrar, crear, etc.

Connexió Crear carpeta Crear arxiu
Connexió Crear carpeta Crear arxiu

Comprovació en terminal que es veu millor:

Comprovació en terminal

Servidor NFS

Un servidor samba ens permet compartir recursos (fitxers, impressores), tant en equips Windows com Linux L’autentificació es a nivell d’usuari no de host com NFS, poden ser usuaris propis de Samba o d’ldap.

És un protocol que ens permet compartir fitxers, directoris (no impressores) a traves d’una xarxa local.

Configuració server NFS

El paquet instal·lat és nfs-kernel-server.

alt text

Creem el recurs compartit, sense que li perteneixi a algú.

mkdir /1exercici
chmod 777
chown nobody:nogroup

alt text

A continuació editem l’arxiu de configuració /etc/exports, de forma que ha quedat aixi:

/1exercici *(rw,sync,no_subtree_check)

Explicació de la configuració:

alt text

Reiniciem el servei i afegim un arxiu que posteriorment consultarem al client.

alt text

Configuració client NFS

El paquet instal·lat és nfs-common i rpcbind.

alt text

I montem el recurs a una carpeta (usant el fstab), després de comprovar que podem accedir

mkdir /proves && chmod 777 /proves && chown nobody:nogroup /proves

10.0.2.15:/1exercici /proves nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0

alt text

També podriem temporalment amb:

mount -t nfs 10.0.2.15:/1exercici /proves

alt text

Exercicis

Ubuntu

En aquest exercici l’objectiu es canviar la ruta dels “homes” del usuaris i que estigui disponible per NFS

Per aixó he creat el directori i repetit tot el procés anterior (ja se veu el resultat).

alt text

Per a que els usuaris del domini es creien en aquest ruta, he usat un script per que canvie les propietats dels usuaris.

Comprovació usuaris

El script de bash que fa la faena:

#!/bin/bash

# El domini hauria de estar al /etc/hosts
domain="cire.cat"
password="alumne"

# Realizar la búsqueda de usuarios y generar los cambios en homeDirectory
ldapsearch -xLLL -H "ldap://$domain" -D "cn=admin,dc=cire,dc=cat" -w "$password" -b "ou=rrhhh,dc=cire,dc=cat" uid | grep "^uid: " | awk '{print $2}' | while read user; do
    echo "dn: cn=$user,ou=rrhhh,dc=cire,dc=cat"
    echo "changetype: modify"
    echo "replace: homeDirectory"
    echo "homeDirectory: /homes/$user"
    echo ""
done > modify_home.ldif

# Ejecutar el ldapmodify, indicando el servidor con -H
#ldapmodify -x -H "ldap://$domain" -D "cn=admin,dc=cire,dc=cat" -w "$password" -f modify_home.ldif

alt text alt text

En el client he configurat el fstab tambe

alt text alt text

En el client en iniciar, podem comprovar que crear les carpetes i tot.

Iniciant sessió La carpeta és creada
alt text alt text
El client pot entrar En el servidor tenim la carpeta creada
alt text alt text

Windows

He activitat la caracteristica de Servei per a NFS en el Panell control > Programes > Programes i caracteristiques

alt text

I en aixó he pogut visualitzar el directori, usant la connexió d’unitat xarxa.

Pas 1: Connexió unitat xarxa Pas 2: Especificar dades
1r pas, clic dret a xarxa > Connectat a unitat... 2n pas, expecifiquem les dades i finalitzem
Pas 3: Verificació
3r pas, disfrutem si funciona