Hola,
../.. a la configuració del nostre pam teníem una
directiva que obligava a root a demanar password quan feia su > ../..
I la instrucció:
* su -s /bin/sh postgres -c "test -O /var/lib/postgresql &&
test -G /var/lib/postgresql" || \
chown postgres:postgres /var/lib/postgresql*
Gràcies per llegir-nos,
Julio
On 20/9/21 23:56, Julio Amorós wrote:
Hola,../..
../.. a la configuració del nostre pam teníem una
directiva que obligava a root a demanar password quan feia su > ../..
I la instrucció:
* su -s /bin/sh postgres -c "test -O /var/lib/postgresql &&
test -G /var/lib/postgresql" || \
chown postgres:postgres /var/lib/postgresql*
Gràcies per llegir-nos,
Julio
Fins on jo se, l'usuari postgres no te password i per seguretat no n'ha
de tenir.
Potser teniu una situació impossible, el pam obliga a demanar un
password que no existeix.
No se si dir que és un bug del instal·lador postgres o una "feature" de pam.
... com que a la configuració del nostre pam teníem una
directiva que obligava a root a demanar password quan feia su
l'script d'instal·lació es parava demanant un password, però
tant era el que escriguessis, o que en una altra terminal
posessis el password a l'usuari postgres.
El fitxer és
/var/lib/dpkg/info/postgresql-common.postinst
I la instrucció:
* su -s /bin/sh postgres -c "test -O /var/lib/postgresql &&
test -G /var/lib/postgresql" || \ chown postgres:postgres /var/lib/postgresql*
Vam trobar referències a: https://bugs.launchpad.net/ubuntu/+source/postgresql-common/+bug/1528822/comments/1
Hola, Julio
... com que a la configuració del nostre pam teníem una
directiva que obligava a root a demanar password quan feia su
l'script d'instal·lació es parava demanant un password, però
tant era el que escriguessis, o que en una altra terminal
posessis el password a l'usuari postgres.
Podríeu donar més detalls de la directiva que teníeu al PAM?
El fitxer és
/var/lib/dpkg/info/postgresql-common.postinst
I la instrucció:
* su -s /bin/sh postgres -c "test -O /var/lib/postgresql &&
test -G /var/lib/postgresql" || \ chown postgres:postgres
/var/lib/postgresql*
Ho he provat en un contenidor de docker i funciona perfectament,
fins i tot si li poso contrasenya a l'usuari postgres.
Vam trobar referències a:
https://bugs.launchpad.net/ubuntu/+source/postgresql-common/+bug/1528822/comments/1
Tal com comenten en aquest bug, té pinta que el problema està a
la configuració de PAM i no pas al paquet de postgresql. Si no
passava a la versió 12 pot ser per molts motius, entre els quals
també hi ha que la versió de libpam segurament també és diferent.
Salut,
Alex
--
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Alex Muntada <alexm@debian.org>
⢿⡄⠘⠷⠚⠋ Debian Developer 🍥 log.alexm.org
⠈⠳⣄⠀⠀⠀⠀
la directiva del fitxer
/etc/pam.d/su
és
# auth sufficient pam_rootok.so
Si la descomentem el postgresql funciona.bé, ja que lògicament
ja no demana el pass
però llavors tenim un "forat" pel ticket de kerberos :)
[...]
- millorar l'script de postinst de postgres perquè utilitzi algun
altre mecanisme per canviar a l'usuari postgres
Acabo de recordar que fa un temps (oldstable o fins i tot
oldoldstable) hi va haver un canvi important a la comanda su,
bàsicament hi havia dues implementacions i es va canviar d'una
a l'altra per defecte, que tenia algunes subtileses. Crec que
es va documentar a les release notes corresponents, a veure si
quan pugui ho trobo i ho enllaço.
Una de les recomanacions que vaig llegir aleshores era usar la
comanda "runuser" quan qui l'executa ja és root, doncs desescala
a qualsevol usuari sense demanar autenticació mentre que la
resta d'usuaris no la poden executar.
No tinc clar si funcionaria en aquest escenari específic que
s'ha descrit ni si la presumpció que els postinst s'executen
amb permisos de root és sempre certa, per tant no puc valorar
si el canvi de su a runuser seria una solució adequada per al
paquet.
Hola, Eloi
[...]
Una de les recomanacions que vaig llegir aleshores era usar laAixò no recordo haver-ho llegit però ho acabo de provar i
comanda "runuser" quan qui l'executa ja és root, doncs desescala
a qualsevol usuari sense demanar autenticació mentre que la
resta d'usuaris no la poden executar.
funciona bé: no demana contrasenya encara que comenti l'entrada
del pam_rootok al /etc/pam.d/runuser.
El 25/9/21 a les 11:06, Alex Muntada ha escrit:-----------------------cc416f4a0806d9d82e05e04f6018baef--
Hola, Eloi
[...]
Una de les recomanacions que vaig llegir aleshores era usar la
comanda "runuser" quan qui l'executa ja és root, doncs desescala
a qualsevol usuari sense demanar autenticació mentre que la
resta d'usuaris no la poden executar.
Això no recordo haver-ho llegit però ho acabo de provar i
funciona bé: no demana contrasenya encara que comenti l'entrada
del pam_rootok al /etc/pam.d/runuser.
Això és que em faig vell i/o no menjo prou cues de pansa :-)
Jo tampoc he trobat el que recordo haver llegit, segurament deuria ser
una font de tercers, que em deuria enganxar documentant-me i al final he
acabat confonent els orígens. L'única referència explícita que he estat
capaç de trobar amb DDG (DuckDuckGo, no Diari De Girona :-D) dins
debian.org és la següent, que no és el que recordo haver llegit però que
igualment apunta en la mateixa direcció:
https://bugs.debian.org/890862
Si trobo on redimonis vaig llegir-ho us ho faré saber.
Al man su/man runuser hi fa alguna referència. Però no entenc el motiu perquè és un forat de seguretat si s'usa kerberos (NOTA: jo no faig servir kerberos).
Toni Mas
GPG 3F42A21D84D7E950
Sent with ProtonMail Secure Email.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
El dissabte, 25 de setembre 2021 a les 21:00, Eloi <entfe001@gmail.com>
va escriure:
El 25/9/21 a les 11:06, Alex Muntada ha escrit:
Hola, Eloi
[...]
Una de les recomanacions que vaig llegir aleshores era usar la
comanda "runuser" quan qui l'executa ja és root, doncs desescala
a qualsevol usuari sense demanar autenticació mentre que la
resta d'usuaris no la poden executar.
Això no recordo haver-ho llegit però ho acabo de provar i
funciona bé: no demana contrasenya encara que comenti l'entrada
del pam_rootok al /etc/pam.d/runuser.
Això és que em faig vell i/o no menjo prou cues de pansa :-)
Jo tampoc he trobat el que recordo haver llegit, segurament deuria ser
una font de tercers, que em deuria enganxar documentant-me i al final he
acabat confonent els orígens. L'única referència explícita que he estat
capaç de trobar amb DDG (DuckDuckGo, no Diari De Girona :-D) dins
debian.org és la següent, que no és el que recordo haver llegit però que
igualment apunta en la mateixa direcció:
https://bugs.debian.org/890862
Si trobo on redimonis vaig llegir-ho us ho faré saber.
<div>I Toni, el problema amb Kerberos, és que si no fas un kdestroy o l'elimine
el problema amb Kerberos, és que si no fas un kdestroy o
l'elimines manualment de /tmp dura no se quantes hores i per
tant amb l'ordre que hem esmentat pots fer ...
Hola, Julio
el problema amb Kerberos, és que si no fas un kdestroy o
l'elimines manualment de /tmp dura no se quantes hores i per
tant amb l'ordre que hem esmentat pots fer ...
No entenc quina relació té l'expiració de sessions de kerberos
amb el fet de no permetre que l'usuari root executi el su que
vulgui. Ara ja sabem que també hi ha runuser i, mirant la seva
pàgina de man, he vist que també hi ha setpriv, que ni tan sols
utilitza pam.
Malauradament limitar l'ús de su no és suficient per evitar que
un usuari amb root es pugui convertir fàcilment en un altre o
executar ordres en nom d'un altre: a banda del runuser i setpriv,
qualsevol llenguatge de programació prou genèric permetrà cridar
les funcions del sistema per fer-ho sense passar pel PAM.
Se m'acut que la millor forma de què els alumnes tinguin root
però no interfereixin amb d'altres usuaris és que tinguin una
màquina virtual per cadascú.
Salut,
Alex
--
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Alex Muntada <alexm@debian.org>
⢿⡄⠘⠷⠚⠋ Debian Developer 🍥 log.alexm.org
⠈⠳⣄⠀⠀⠀⠀
Quan un d'aquests despistats del grup B, es logueja i s'oblida
de fer kdestroy, el tiquet de kerberos roman durant unes hores
a l'ordinador i en aquest moment, qualsevol usuari amb el compte
local de root pot fer un `su -l usuari_despistat_del_grup_B`
Malauradament limitar l'ús de su no és suficient per evitar que
un usuari amb root es pugui convertir fàcilment en un altre o
executar ordres en nom d'un altre: a banda del runuser i setpriv,
qualsevol llenguatge de programació prou genèric permetrà cridar
les funcions del sistema per fer-ho sense passar pel PAM.
Cert.
Se m'acut que la millor forma de què els alumnes tinguin root
però no interfereixin amb d'altres usuaris és que tinguin una
màquina virtual per cadascú.
Segurament Àlex, però som de la filosofia de que facin servir sistemes reals i que els trenquin, com a sistema de capçalera, evidentment també fan servir VMs i Dockers.
El problema realment és que es loguegin a una màquina on algun despistat ho hagi fet prèviament, ja que s'haurà muntat per NFS (kerberitzat) el directori d'aquest usuari despistat.
Potser el que s'hauria de fer és permetre la exportació de segons quins directoris a segons quines IPs...
Merci per les bones idees.
Julio
Salut,
Alex
--
⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Alex Muntada alexm@debian.org
⢿⡄⠘⠷⠚⠋ Debian Developer 🍥 log.alexm.org
⠈⠳⣄⠀⠀⠀⠀
Sent from my Android device with K-9 Mail. Please excuse my brevity.-----------------------a2925b8fb2746a6c0f4f5010fd00fd84--
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 77:26:15 |
Calls: | 6,658 |
Calls today: | 4 |
Files: | 12,203 |
Messages: | 5,332,832 |
Posted today: | 1 |