[OT] amavisd-new-snmp und postfix-queues

Patrick Ben Koetter p at sys4.de
Do Okt 1 13:10:55 CEST 2015


* Django <django at nausch.org>:
> HI Dealer aka p at rick,
> 
> nachdem Du mich zum Thema AMaViS und SNMP angefixt hast, habe ich mal
> eine grundsätzliche Frage, natürlich wieder etwas off-topic hier auf
> der Liste. ;)

So, so: Angefixt.
Warte, lass mich der NSA noch ein paar brauchbare Zusammenhänge liefern.

    Patrick hat Django angefixt. Patrick ist ein Dealer. ;)

Am Ende glauben die noch, ich hätte Dir davon erzählt wie man mit amavis
Postfix Mailqueues monitoren kann...

Zu Deiner Frage weiter unten:

> Der amavisd-snmp-subagent stellt ja auch Informationen der
> Postfix-Queues dem SNMP-Daemon zur Verfügung. Die Rechte stehen hierzu
> wie folgt:
>  # ll /var/spool/postfix/
> total 16
> drwx------.  2 postfix root        6 Oct  1 11:05 active
> drwx------.  2 postfix root        6 May  5 13:50 bounce
> drwx------.  2 postfix root        6 May  5 13:50 corrupt
> drwx------. 15 postfix root     4096 Oct  1 06:00 defer
> drwx------. 15 postfix root     4096 Oct  1 06:00 deferred
> drwx------.  2 postfix root        6 May  5 13:50 flush
> drwx------.  2 postfix root        6 May  5 13:50 hold
> drwx------.  2 postfix root        6 Oct  1 11:00 incoming
> drwx-wx---.  2 postfix postdrop    6 Oct  1 11:00 maildrop
> drwxr-xr-x.  2 root    root     4096 Sep 30 20:55 pid
> drwx------.  2 postfix root     4096 Sep 30 20:55 private
> drwx--x---.  2 postfix postdrop   68 Sep 30 20:55 public
> drwx------.  2 postfix root        6 May  5 13:50 saved
> drwx------.  2 postfix root        6 May  5 13:50 trace
> 
> Damit kein unberechtigter Nutzer auf Inhalte der eMails zugreifen
> kann, "gehören" die Verzeichnisse dem User postfix - macht ja auch Sinn.
> 
> Unter CentOS 7 wird der amavisd-snmp-subagent mit den Rechten
> "amavis:amavis" gestartet; soweit so gut.


Klar. Das kann nicht gehen. Ich denke, auch der Maintainer des Paketes war/ist
sich nicht bewußt, dass dieses Feature in amavis existiert.


> Frage ich nun den SNMP-Daemon nach Daten des AMaViS-Daemon erhalte ich
> lediglich:
> # snmpwalk -v 3 -l AuthNoPriv -u mailsupport \
>            -A c96tOp2SaqQFngE5ioGK+O2NjfMgmCmHgls \
>            127.0.0.1 AMAVIS-MIB::inMsgsSizeOriginating
> 
> AMAVIS-MIB::inMsgsSizeOriginating = No Such Object available on this
> agent at this OID
> 
> Ich hatte im ersten Schritt den Unix-Socket des SNMP-Daemon in
> Verdacht, warum zum bennanten OID nichts zurückgemeldet wird. Nachdem
> ich zu Debug-Zwecken den amavisd-snmp-subagent im Vordergrund hab
> laufen lassen, kam ich aber der eigentlichen Ursache auf die Schliche:
> 
> got a Postfix queue directory: /var/spool/postfix
> can't open directory /var/spool/postfix/active: Permission denied
> amavis-agentx-1.7 (20140127) starting in foreground, perl 5.016003
> Warning: Failed to connect to the agentx master agent ([NIL]):
> registering root OID 1.3.6.1.4.1.15312.2.1.1 for am.snmp
> registering root OID 1.3.6.1.4.1.15312.2.1.2 for am.nanny
> not registering root OID 1.3.6.1.4.1.15312.2.1.3.1.1 for pf.maildrop
> not registering root OID 1.3.6.1.4.1.15312.2.1.3.1.2 for pf.incoming
> not registering root OID 1.3.6.1.4.1.15312.2.1.3.1.3 for pf.active
> not registering root OID 1.3.6.1.4.1.15312.2.1.3.1.4 for pf.deferred
> 
> "can't open directory", tja, der Daemon läuft ja auch mit den rechten
> des Users *amavis*!

So isses.


> Tja, nun stellt sich für mich die Frage, gibt es einen
> anderen/besseren Weg als den amavisd-snmp-subagent mit Root-Rechten
> laufen zu lassen?

Mir ist im Moment keiner bekannt. Der subagent läuft allerdings (bei mir) so,
dass er nur auf localhost lauscht:

~ # lsof -Pni :705
COMMAND     PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
snmpd      8135 root   10u  IPv4 145020791      0t0  TCP 127.0.0.1:705 (LISTEN)
snmpd      8135 root   11u  IPv6 145020792      0t0  TCP [::1]:705 (LISTEN)
snmpd      8135 root   13u  IPv6 145022163      0t0  TCP [::1]:705->[::1]:59144 (ESTABLISHED)
amavisd-s 11383 root   21u  IPv6 145022162      0t0  TCP [::1]:59144->[::1]:705 (ESTABLISHED)

Ein Angreifer muss also dann schon auf dem Rechner sein. Ob er dann root wird,
indem der den subagent unter Kontrolle bekommt, ist IMO nicht mehr das
drängende Problem.

Du kannst natürlich mit SELunix den Zugriff entsprechend regeln.

p at rick


-- 
[*] sys4 AG
 
https://sys4.de, +49 (89) 30 90 46 64
Franziskanerstraße 15, 81669 München
 
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263
Vorstand: Patrick Ben Koetter, Marc Schiffbauer
Aufsichtsratsvorsitzender: Florian Kirstein
 


Mehr Informationen über die Mailingliste postfix-users