Postfix/chroot: Unterschied zwischen den Versionen
K Textersetzung - „Kategorie:(.*):(.*)“ durch „Kategorie:/$1/$2“ |
K Textersetzung - „[[Kategorie:/“ durch „[[Kategorie:“ |
||
Zeile 52: | Zeile 52: | ||
Und vergessen Sie nicht, [https://wiki.archlinux.org/title/Reload laden] Postfix | Und vergessen Sie nicht, [https://wiki.archlinux.org/title/Reload laden] Postfix | ||
[[Kategorie: | [[Kategorie:Postfix/Sicherheit]] |
Version vom 28. März 2023, 10:31 Uhr
Postfix in einer chroot
Postfix wird standardmäßig nicht in ein Chroot-Gefängnis gesteckt.
- Die Postfix-Dokumentation [1] liefert Details darüber, wie man ein solches Jail bewerkstelligen kann.
- Die Schritte sind unten beschrieben und basieren auf dem chroot-setup-Skript, das im Postfix-Quellcode bereitgestellt wird.
Gehen Sie zuerst in die master.cfDatei im Verzeichnis /etc/postfixund ändern Sie alle Chroot-Einträge auf 'yes' (y) mit Ausnahme der Dienste qmgr, proxymap, proxywrite, local, und virtual
Erstellen Sie zweitens zwei Funktionen, die uns später beim Kopieren von Dateien in das Chroot-Gefängnis helfen (siehe letzter Schritt).
CP="cp -p"
cond_copy() { # Dateien nach Muster in $1 finden # Falls vorhanden, in Verzeichnis $2 kopieren dir=`dirname "$1"` pat=`Basisname "$1"` lr=`find "$dir" -maxdepth 1 -name "$pat"` wenn testen! -d "$2" ; dann Ausfahrt 1 ; fi if test "x$lr" != "x" ; dann $CP $1 "$2" ; fi }
Erstellen Sie als Nächstes die neuen Verzeichnisse für das Gefängnis:
set -e umask 022
POSTFIX_DIR=${POSTFIX_DIR-/var/spool/postfix} cd ${POSTFIX_DIR}
mkdir -p etc lib usr/lib/zoneinfo test -d /lib64 && mkdir -p lib64
Suchen Sie die localtime-Datei
lt=/etc/localtime if test ! -f $lt ; then lt=/usr/lib/zoneinfo/localtime ; fi if test ! -f $lt ; then lt=/usr/share/zoneinfo/localtime ; fi if test ! -f $lt ; then echo "cannot find localtime" ; exit 1 ; fi rm -f etc/localtime
Kopieren Sie localtime und einige andere Systemdateien in die Chroots etc
$CP -f $lt /etc/services /etc/resolv.conf /etc/nsswitch.conf usw $CP -f /etc/host.conf /etc/hosts /etc/passwd usw ln -s -f /etc/localtime usr/lib/zoneinfo
Stellen Sie sicher, dass resolv.conf root gehört:
chown root /var/spool/postfix/etc/resolv.conf
Kopieren Sie die erforderlichen Bibliotheken mit der zuvor erstellten Funktion in die Chroot cond_copy
cond_copy '/usr/lib/libnss_*.so*' lib cond_copy '/usr/lib/libresolv.so*' lib cond_copy '/usr/lib/libdb.so*' lib
Und vergessen Sie nicht, laden Postfix