Postfix main.cf updatefest erweitern

Hallo zusammen,

ich möchte gerne ein paar Header-Zeilen aus den ausgehenden Mails entfernen, damit darin nicht immer interne Namen von DNS, Server, Betriebssystem auftauchen. Dazu habe ich gerade erfolgreich die Tipps von major.io getestet, indem ich die main.cf direkt angepasst habe. Das übersteht natürlich kein “ucr commit /etc/postfix/main.cf”.

Damit die Änderungen vorhanden bleiben, habe ich jetzt erst einmal die Datei /etc/univention/templates/files/etc/postfix/main.cf.d/80_delivery entsprechend angepasst, so dass die Konfiguration auch nach einem commit noch vorhanden ist.

[code]# if virus scanning is desired, all mails can be redirected through amavis.
@!@
if configRegistry.is_true(‘mail/antivir’, False):
print ‘content_filter = smtp-amavis:[127.0.0.1]:10024’

if configRegistry.get(‘mail/archivefolder’):
print ‘# Send a blind carbon copy of every mail to this account.’
print ‘always_bcc = %s’ % configRegistry.get(‘mail/archivefolder’)
@!@

clean mail header

mime_header_checks = regexp:/etc/postfix/header_checks
header_checks = regexp:/etc/postfix/header_checks[/code]

So ganz gefällt mir die Konfiguration aber immer noch nicht, da bei einem Update des Templates die Neuerungen von Univention nicht greifen werden (80_delivery.dpkg-dist). Da die main.cf ja aus allen Templates zusammengesetzt wird, die in /etc/univention/templates/info/univention-mail-postfix.info aufgeführt sind, wäre meine Vorstellung jetzt eine Datei /etc/univention/templates/info/customer-mail-postfix.info anzulegen und dort das zusätzliche Template einzubinden. Die Univention-Datei univention-mail-postfix.info soll ja auch unverändert bleiben.
Datei /etc/univention/templates/info/custom-mail-postfix.info:

[code]Type: multifile
Multifile: etc/postfix/main.cf

Type: subfile
Multifile: etc/postfix/main.cf
Subfile: etc/postfix/main.cf.d/99_custom_header
[/code]

Datei /etc/univention/templates/files/etc/postfix/main.cf.d/99_custom_header:

# clean mail header mime_header_checks = regexp:/etc/postfix/header_checks header_checks = regexp:/etc/postfix/header_checks

Entspricht diese Vorgehensweise den Univention-Richtlinien oder liege ich verkehrt?

Danke
Viele Grüße
Ulf

Ich glaub jetzt hab ichs. Danke für dieses wundervolle System und die dazugehörige Doku. Jetzt bin ich ins Spielen gekommen.

Erst einmal habe ich habe ich mir zwei neue Variablen angelegt …
Datei: /etc/univention/registry.info/variables/custom-mail-postfix.cfg

[code][mail/postfix/mime_header_checks]
Description[de]=Mit dieser Variable kann die optionale Lookup-Tabelle für MIME Kopfzeilen Überprüfungen angepasst werden. Das Format ist unter http://www.postfix.org/postconf.5.html#mime_header_checks beschrieben.
Description[en]=This variable allows the configuration of the optional lookup tables for content inspection of MIME related message headers. The format is documented at http://www.postfix.org/postconf.5.html#mime_header_checks.
Type=str
Categories=service-mail

[mail/postfix/header_checks]
Description[de]=Mit dieser Variable kann die optionale Lookup-Tabelle für Nicht-MIME Kopfzeilen Überprüfungen angepasst werden. Das Format ist unter http://www.postfix.org/postconf.5.html#header_checks beschrieben.
Description[en]=This variable allows the configuration of the optional lookup tables for content inspection of non-MIME related message headers. The format is documented at http://www.postfix.org/postconf.5.html#header_checks.
Type=str
Categories=service-mail
[/code]

… dann habe ich das zusätzliche Template angemeldet …
Datei: /etc/univention/templates/info/custom-mail-postfix.info

[code]Type: multifile
Multifile: etc/postfix/main.cf

Type: subfile
Multifile: etc/postfix/main.cf
Subfile: etc/postfix/main.cf.d/99_custom_header
Variables: mail/postfix/header_checks
Variables: mail/postfix/mime_header_checks[/code]

… und das eigentliche Template angelegt …
Datei: /etc/univention/templates/files/etc/postfix/main.cf.d/99_custom_header

@!@ from os.path import exists filename = configRegistry.get("mail/postfix/header_checks") if filename and exists(filename): print '# clean mail header of none-MIME messages' print 'header_checks = %s' % (filename,) filename = configRegistry.get("mail/postfix/mime_header_checks") if filename and exists(filename): print '# clean mail header of MIME messages' print 'mime_header_checks = %s' % (filename,) @!@

… und noch die Variablen gesetzt …

ucr set mail/postfix/header_checks=/etc/postfix/header_checks ucr set mail/postfix/mime_header_checks=/etc/postfix/header_checks

… und fertig ist die updatefeste Konfiguration. Ok, den Python-Voodoo habe ich mir aus /etc/univention/templates/files/etc/ldap/slapd.conf.d/30univention-ldap-server_head geklaut. Aber es funktioniert einfach super. Nur wenn die Variable gesetzt ist UND die Datei existiert, werden Einträge in die main.cf geschrieben.

Setting mail/postfix/header_checks Multifile: /etc/postfix/main.cf

UCS ist einfach Klasse.

Und wenn das eine Bedürfnis befriedigt ist, wächst da gleich das Nächste. Wie sieht es eigentlich mit vorhandenen Einträgen in vorhandenen Templates aus? Ich denke da “LogLevel INFO” in der Datei /etc/univention/templates/files/etc/ssh/sshd_config. Wie kann ich das setzen, ohne das Original-Template zu verändern?

Danke
Ulf

Hallo,

super Anpassung die Sie gemacht haben!

Bzgl. der SSHd config: Eigentlich gibt es dafür die UCRV ‘sshd/config/.*’:

ucr set sshd/config/LogLevel=DEBUG

Allerdings scheint die sshd_config die ungewöhnliche Eigenschaft zu haben, dass spätere Einträge frühere nicht überschreiben können (zumindest nicht für LogLevel). Wenn sshd/config/.* weiter oben eingefügt würden, ginge es.

Ich habe einen Bug dazu aufgemacht: forge.univention.org/bugzilla/s … i?id=39704

Vorläufig würde ich vorschlagen /etc/default/ssh direkt zu editieren, da ein Update dieser Datei nur passiert, wenn die UCRV “sshd/autostart” verändert wird.

SSHD_OPTS="-o LogLevel=DEBUG3"

Keine hübsche Lösung - ansonsten bleibt vorerst nur das Editieren der Templates.

Hallo troeder,

danke für die Info und das Lob.

Ich habe die Anpassung jetzt erst einmal im Template belassen. Die Änderung bekomme ich durch das dist-File und univention-check-templates besser mit.

Aber jetzt habe ich sogar noch gelernt, dass man auch Platzhalter-Variablen verwenden kann “Variables: sshd/config/.*”.

Bleibt nur die Hoffnung, dass das Template /etc/univention/templates/files/etc/ssh/sshd_config dann um die LogLevel-Variable erweitert wird.

Danke
Ulf

Sorry, meine Frage hat zwar nichts mit der mail.cf zu tun, aber es geht ebenfalls um die UCR …

ich habe bei uns nun auch mal ein Template verändert und eine weitere Variable hinzugefügt.
Es handelt sich um das Template

/etc/univention/templates/files/etc/amavis/conf.d/60-univention

Hier habe ich eine weitere Variable

mail/antivir/banned/office_ext

welche ich auch in die Datei

/etc/univention/templates/info/univention-antivir-mail.info

eingetragen habe, aber leider ändert sich die Konfig-Datei nicht, wenn ich die UCR-Variable verändere, wenn ich ein

ucr commit

ausführe, funktioniert alles.

Wie mache ich dem System diese neue Variable denn bekannt, damit eine Änderung auch ein neues Bauen der Konfigurationsdatei anstößt?

VG, Christian Frey.

Hallo Christian,

habe nur kurz drüber gelesen. Du hast die Variable auch irgendwo unter /etc/univention/registry.info/variables/ definiert, ja?

VG Ulf

Hallo Ulf,

Nein, das habe ich nicht, ich wüsste auch nicht, wo.
Ich habe mal gesucht, ob in dem von dir genannten Verzeichnis .cfg-Dateien liegen, in denen schon bekannte Variablen wie mail/antivir/banned/*_ext definiert sind, habe diese Variablen dort aber auch nicht gefunden.

VG, Christian.

[quote=“onex”]
Nein, das habe ich nicht, ich wüsste auch nicht, wo.[/quote]

Am besten in einer neuen Datei, damit diese Änderungen auch updatesicher sind.

Hallo Christian,

genau, Du musst Dir die Datei selber anlegen. Das Beispiel hast Du oben in der /etc/univention/templates/info/custom-mail-postfix.info.

VG
Ulf

Hallo Ulf,

diese Datei gibt es bei mir leider nicht.
Wo muss ich denn die neue Datei dann hinterlegen, auch in /etc/univention/templates/info/ oder unter /etc/univention/registry.info/variables/, was Du zuvor erwähnt hattest?
Wie Teile ich dem System dann mit, dass es neue Variablen gibt (ohne Neustart)?

Gruß und Danke vorab,
Christian.

Hallo Christian,

in der Developer-Doku unter
Configuration files
und
UCR Template files
sind die notwendigen Schritte erklärt.

Die Dateien musst Du selber anlegen und Dich dabei an das notwendige Format halten. Da Amavis ein Single file ist

/etc/univention/templates/info/univention-antivir-mail.info Type: file

musst Du dort die Variablen einfügen, die Du unter

/etc/univention/registry.info/variables/<myOwnVariablex>.cfg 

definiert hast.

Dann erst kannst Du sie in

/etc/univention/templates/files/etc/amavis/conf.d/60-univention

verwenden.

Viele Grüße
Ulf

OK, vielen Dank, Ulf.

Ich werde mal die drei Dateien anlegen und schauen, was passiert …

VG, Christian.

Mastodon