ajuda reportar bug letsencrypt (systemd)

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

ajuda reportar bug letsencrypt (systemd)

guifipedro
Hola,

Crec que letsencrypt té un bug per com està empaquetat a debian

Acostumo a treure els permisos de root a letsencrypt (i fer-ho amb un
usuari dedicat), això implica que al meu /etc/cron.d/certbot [1]
l'executa l'usuari letsencrypt enlloc de root

que intel·ligentment m'avisa si el vull modificar en futures actualitzacions

sorprenentment vaig veure que en paral·lel hi ha un servei systemd que
fa el mateix aquí: /lib/systemd/system/certbot.service [2]

per tant el modifico, però a les actualitzacions no m'avisa de canvis,
directament el sobreescriu i aquí és on crec que es tracta d'un error.

Degut a que utilitzo el meu usuari propi pel letsencrypt, si un procés
com aquest de systemd s'executa com a root, llavors canvia els
permisos d'alguns fitxers i directoris i letsencrypt ja no pot renovar
/ ho fa de la manera que jo no vull / problemes per a mi.

Gràcies!
Pedro

[1]

0 */12 * * * letsencrypt test -x /usr/bin/certbot -a \! -d
/run/systemd/system && perl -e 'sleep int(rand(3600))' && su -
letsencrypt -s /bin/bash -c "certbot -q renew"

[2]

[Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://letsencrypt.readthedocs.io/en/latest/
[Service]
Type=oneshot
#ExecStart=/usr/bin/certbot -q renew
ExecStart=su - letsencrypt -s /bin/bash -c "certbot -q renew"
PrivateTmp=true

Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd)

Narcis Garcia-3
Tot se suposa que ha d'anar com una orquestra segons el previst pel
certbot, però sovint les coses no són com pensaven els desenvolupadors i
cal deshabilitar el seu renovador automàtic expressament.

Diria que es pot fer així:
systemctl disable certbot


__________
I'm using this express-made address because personal addresses aren't
masked enough at this mail public archive. Public archive administrator
should fix this against automated addresses collectors.
El 5/12/18 a les 12:59, guifipedro ha escrit:

> Hola,
>
> Crec que letsencrypt té un bug per com està empaquetat a debian
>
> Acostumo a treure els permisos de root a letsencrypt (i fer-ho amb un
> usuari dedicat), això implica que al meu /etc/cron.d/certbot [1]
> l'executa l'usuari letsencrypt enlloc de root
>
> que intel·ligentment m'avisa si el vull modificar en futures actualitzacions
>
> sorprenentment vaig veure que en paral·lel hi ha un servei systemd que
> fa el mateix aquí: /lib/systemd/system/certbot.service [2]
>
> per tant el modifico, però a les actualitzacions no m'avisa de canvis,
> directament el sobreescriu i aquí és on crec que es tracta d'un error.
>
> Degut a que utilitzo el meu usuari propi pel letsencrypt, si un procés
> com aquest de systemd s'executa com a root, llavors canvia els
> permisos d'alguns fitxers i directoris i letsencrypt ja no pot renovar
> / ho fa de la manera que jo no vull / problemes per a mi.
>
> Gràcies!
> Pedro
>
> [1]
>
> 0 */12 * * * letsencrypt test -x /usr/bin/certbot -a \! -d
> /run/systemd/system && perl -e 'sleep int(rand(3600))' && su -
> letsencrypt -s /bin/bash -c "certbot -q renew"
>
> [2]
>
> [Unit]
> Description=Certbot
> Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
> Documentation=https://letsencrypt.readthedocs.io/en/latest/
> [Service]
> Type=oneshot
> #ExecStart=/usr/bin/certbot -q renew
> ExecStart=su - letsencrypt -s /bin/bash -c "certbot -q renew"
> PrivateTmp=true
>

Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd)

Pedro-68
Narcís,

no era així del tot així, ja que `systemctl disable certbot`
sobreentén que es refereix a certbot.service així com `systemctl
status certbot`, i si el veiem diu que està mort de per sí. Algú li
està donant vida...

Resulta que certbot per la part de systemd té un cron també i d'aquesta manera:

- l'script /lib/systemd/system/certbot.service [1]
- el disparador /lib/systemd/system/certbot.timer [2]

per tant, es pot deshabilitar així per la sessió actual:

    systemctl stop certbot.timer

per sessions futures (només aquest no fa sessió actual):

    systemctl disable certbot.timer

Crec que continua sent un bug perquè està duplicat en cron i en
systemd, perquè no avisa, és a dir: mal muntat en general, lo qual les
modificacions per una banda i no l'altre no es propaguen bé. Però el
meu problema sembla que ja està resolt!

Gràcies!
Pedro

[1]

# cat /lib/systemd/system/certbot.service
[Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://letsencrypt.readthedocs.io/en/latest/
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew
PrivateTmp=true

[2]

# cat /lib/systemd/system/certbot.timer
[Unit]
Description=Run certbot twice daily

[Timer]
OnCalendar=*-*-* 00,12:00:00
RandomizedDelaySec=3600
Persistent=true

[Install]
WantedBy=timers.target

Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd)

Narcis Garcia-3
Amb "systemctl status certbot" veuràs que se t'ha disparat el mateix
dia. Això vol dir que és un servei que fa una tasca (one-shot) i s'atura
fins el següent torn, que no sé si són una o dues vegades al dia.

Segons està anotat als «scripts», la tasca del Cron no té efecte si
Systemd està present. Aleshores aturant i deshabilitant només el
certbot.timer ja no hauria d'actuar en cap moment.


__________
I'm using this express-made address because personal addresses aren't
masked enough at this mail public archive. Public archive administrator
should fix this against automated addresses collectors.

El 5/12/18 a les 15:29, Pedro ha escrit:

> Narcís,
>
> no era així del tot així, ja que `systemctl disable certbot`
> sobreentén que es refereix a certbot.service així com `systemctl
> status certbot`, i si el veiem diu que està mort de per sí. Algú li
> està donant vida...
>
> Resulta que certbot per la part de systemd té un cron també i d'aquesta manera:
>
> - l'script /lib/systemd/system/certbot.service [1]
> - el disparador /lib/systemd/system/certbot.timer [2]
>
> per tant, es pot deshabilitar així per la sessió actual:
>
>     systemctl stop certbot.timer
>
> per sessions futures (només aquest no fa sessió actual):
>
>     systemctl disable certbot.timer
>
> Crec que continua sent un bug perquè està duplicat en cron i en
> systemd, perquè no avisa, és a dir: mal muntat en general, lo qual les
> modificacions per una banda i no l'altre no es propaguen bé. Però el
> meu problema sembla que ja està resolt!
>
> Gràcies!
> Pedro
>
> [1]
>
> # cat /lib/systemd/system/certbot.service
> [Unit]
> Description=Certbot
> Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
> Documentation=https://letsencrypt.readthedocs.io/en/latest/
> [Service]
> Type=oneshot
> ExecStart=/usr/bin/certbot -q renew
> PrivateTmp=true
>
> [2]
>
> # cat /lib/systemd/system/certbot.timer
> [Unit]
> Description=Run certbot twice daily
>
> [Timer]
> OnCalendar=*-*-* 00,12:00:00
> RandomizedDelaySec=3600
> Persistent=true
>
> [Install]
> WantedBy=timers.target
>

Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd)

Alex Muntada-2
In reply to this post by Pedro-68
Hola Pedro,

> Crec que continua sent un bug perquè està duplicat en cron i
> en systemd, perquè no avisa, és a dir: mal muntat en general,
> lo qual les modificacions per una banda i no l'altre no es
> propaguen bé. Però el meu problema sembla que ja està resolt!

No em queda clar si encara vols informar del bug i quin tipus
d'ajuda necessitaries en cas afirmatiu.

Per exemple, ja hi ha un bug[0] en què diverses persones demanen
que es pugui executar el certbot sense permisos de root. També
hi ha un altre bug[1] on el mantenidor explica que li agradaria
poder trobar una solució que no suposi utilitzar l'usuari root
per al certbot.

Per tant, sembla que tothom hi està d'acord però falta algú que
ho faci possible. Potser li pots donar un cop de mà?

Salut,
Alex

* [0] https://bugs.debian.org/810216
* [1] https://bugs.debian.org/902620

--
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Alex Muntada <[hidden email]>
  ⢿⡄⠘⠷⠚⠋   Debian Developer - log.alexm.org
  ⠈⠳⣄⠀⠀⠀⠀


signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd)

Pedro-68
In reply to this post by Narcis Garcia-3
Hola Narcís,

inline:

On Wed, Dec 5, 2018 at 3:54 PM Narcis Garcia <[hidden email]> wrote:
>
> Amb "systemctl status certbot" veuràs que se t'ha disparat el mateix
> dia. Això vol dir que és un servei que fa una tasca (one-shot) i s'atura
> fins el següent torn, que no sé si són una o dues vegades al dia.

OK, però per aturar la tasca has d'atacar el timer, no el oneshot (que
en aquest cas és llençat per un timer)

Com he posat al fitxer de timer (i per lo que he vist als logs) és al
voltant de les 12:00

OnCalendar=*-*-* 00,12:00:00

> Segons està anotat als «scripts», la tasca del Cron no té efecte si
> Systemd està present. Aleshores aturant i deshabilitant només el
> certbot.timer ja no hauria d'actuar en cap moment.

Referència d'això que dius? Vols dir que si està systemd i el cron
llavors systemd té prioritat (i el cron en qüestió no s'executa?). Que
si paro el timer llavors només fa el cron?

Salut,
Pedro

Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd)

Narcis Garcia-3
__________
I'm using this express-made address because personal addresses aren't
masked enough at this mail public archive. Public archive administrator
should fix this against automated addresses collectors.
El 5/12/18 a les 16:48, Pedro ha escrit:

> Hola Narcís,
>
> inline:
>
> On Wed, Dec 5, 2018 at 3:54 PM Narcis Garcia <[hidden email]> wrote:
>>
>> Amb "systemctl status certbot" veuràs que se t'ha disparat el mateix
>> dia. Això vol dir que és un servei que fa una tasca (one-shot) i s'atura
>> fins el següent torn, que no sé si són una o dues vegades al dia.
>
> OK, però per aturar la tasca has d'atacar el timer, no el oneshot (que
> en aquest cas és llençat per un timer)
>
> Com he posat al fitxer de timer (i per lo que he vist als logs) és al
> voltant de les 12:00
>
> OnCalendar=*-*-* 00,12:00:00
>
>> Segons està anotat als «scripts», la tasca del Cron no té efecte si
>> Systemd està present. Aleshores aturant i deshabilitant només el
>> certbot.timer ja no hauria d'actuar en cap moment.
>
> Referència d'això que dius? Vols dir que si està systemd i el cron
> llavors systemd té prioritat (i el cron en qüestió no s'executa?). Que
> si paro el timer llavors només fa el cron?
>
> Salut,
> Pedro
>

Em pensava que ho havia llegit a /etc/cron.d/certbot però ara no ho veig.
Ara que m'has dit el tema dels «timers» ho estic posant a prova, a veure
si és veritat que certbot no fa cas de les crides de Cron, o bé ha de
ser que el servei «cron» se'l suposi deshabilitat per Systemd o... no
sé, no trobo on ho he llegit avui mateix.

Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd)

Alex Muntada-2
In reply to this post by Pedro-68
Hola Pedro,

> Referència d'això que dius? Vols dir que si està systemd i el
> cron llavors systemd té prioritat (i el cron en qüestió no
> s'executa?). Que si paro el timer llavors només fa el cron?

El certbot executa això al cron:

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew

Per tant, si existeix el directori /run/systemd/system ja no
s'executa l'ordre certbot del final.

A la versió de Debian 10 (ara mateix és la mateixa a testing i
unstable), a més a més, han afegit un comentari explicant-ho,
que també tanca un bug al respecte demanant més detalls:

https://salsa.debian.org/letsencrypt-team/certbot/certbot/blob/master/debian/certbot.cron.d
https://bugs.debian.org/908841

Salut,
Alex

--
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Alex Muntada <[hidden email]>
  ⢿⡄⠘⠷⠚⠋   Debian Developer - log.alexm.org
  ⠈⠳⣄⠀⠀⠀⠀


signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd) - [Off-topic]

Cubells
In reply to this post by Alex Muntada-2
El 5/12/18 a les 16:37, Alex Muntada ha escrit:

...

>
> * [0] https://bugs.debian.org/810216
> * [1] https://bugs.debian.org/902620

Àlex:

ja estàs completament dins de Matrix, comptes ja basat en zero[1]

:DDDD

* [1]:
https://en.wikipedia.org/wiki/Zero-based_numbering#In_computer_programming


--
Atentament, cubells.
--


signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: ajuda reportar bug letsencrypt (systemd) - [Off-topic]

Alex Muntada-2
Hola cubells,

> ja estàs completament dins de Matrix, comptes ja basat en zero

Fa temps vaig veure que ho feia algú en una altra llista de
Debian i em va fer gràcia el detall :)

Salut i records!
Alex

--
  ⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁  Alex Muntada <[hidden email]>
  ⢿⡄⠘⠷⠚⠋   Debian Developer - log.alexm.org
  ⠈⠳⣄⠀⠀⠀⠀


signature.asc (849 bytes) Download Attachment