Postfix-3.9.0

Introduksjon til Postfix

Postfix pakken inneholder en posttransport agent (MTA). Dette er nyttig for å sende e-post til andre brukere av vertsnmaskinen din. Den kan også konfigureres til å være en sentral e-postserver for ditt domene, en e-postreléagent eller ganske enkelt en e-postleveringsagent til din lokale internett leverandør.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

Postfix Avhengigheter

Anbefalt

Valgfri

ICU-76.1 for internasjonalisering av e-postadresser (SMTPUTF8) støtte, MariaDB-11.4.4 or MySQL, OpenLDAP-2.6.8, pcre2-10.44, PostgreSQL-17.1, SQLite-3.47.0, Berkeley DB (deprecated), og CDB eller TinyCDB

Merk at SQLite, MySQL, PostgreSQL og CDB er bare nyttige hvis det er et kjent behov for dem.

Redaktørens notater: https://wiki.linuxfromscratch.org/blfs/wiki/postfix

Installasjon av Postfix

Legge til Brukere og Grupper

Før du kompilerer programmet, må du opprette brukere og grupper som forventes å være på plass under installasjonen. Legg til brukerne og grupper med følgende kommandoer utstedt av root bruker:

groupadd -g 32 postfix &&
groupadd -g 33 postdrop &&
useradd -c "Postfix Daemon User" -d /var/spool/postfix -g postfix \
        -s /bin/false -u 32 postfix &&
chown -v postfix:postfix /var/mail

Konfigurering av Bygget

README filer er formatert for å kunne leses med en leser som less eller more. Hvis du vil bruke et tekstredigeringsprogram, gjør du det lesbart med følgende sed:

sed -i 's/.\x08//g' README_FILES/*

Postfix kildetreet inneholder ikke et configure skript, snarere makefilen i toppnivåmappen inneholder en makefiles mål som regenererer alle de andre makefilene i byggetreet. Hvis du ønsker å bruke tilleggsprogramvare som en databasebackend for virtuelle brukere, eller TLS/SSL autentisering, må du regenerere makefilene ved å bruke en eller flere av de passende CCARGS og AUXLIBS innstillingene oppført nedenfor.

[Notat]

Notat

For alle varianter av CCARGS bør du sørge for at '-DNO_NIS' er spesifisert slik at byggingen ikke prøver å få tilgang til en rpcsvc deklarasjonen som ikke finnes i BLFS. Hvis Berkeley DB (deprecated) ikke er installert, '-DNO_DB' må spesifiseres også.

Les readme filene for mer informasjon.

Initialiser CCARGS og AUXLIBS i henhold til notatet ovenfor:

CCARGS="-DNO_NIS -DNO_DB"
AUXLIBS=""

Neste, CCARGS og AUXLIBS variabler er fylt med innstillinger avhengig av den faktiske Systemkonfigurasjonen. Hvis en valgfri pakke er installert, men ikke burde inkluderes i Postfix bygget, bare hoppe over tilsvarende if [ ... ]; then i skriptet.

Cyrus-SASL

For å bruke Cyrus-SASL med Postfix, bruk følgende argumenter:

if [ -r /usr/lib/libsasl2.so ]; then
  CCARGS="$CCARGS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl"
  AUXLIBS="$AUXLIBS -lsasl2"
fi
LMDB

For å bruke LMDB med Postfix, bruk følgende argumenter:

if [ -r /usr/lib/liblmdb.so ]; then
  CCARGS="$CCARGS -DHAS_LMDB"
  AUXLIBS="$AUXLIBS -llmdb"
fi
OpenLDAP

For å bruke OpenLDAP med Postfix, bruk følgende argumenter:

if [ -r /usr/lib/libldap.so -a -r /usr/lib/liblber.so ]; then
  CCARGS="$CCARGS -DHAS_LDAP"
  AUXLIBS="$AUXLIBS -lldap -llber"
fi
Sqlite

For å bruke Sqlite med Postfix, bruk følgende argumenter:

if [ -r /usr/lib/libsqlite3.so ]; then
  CCARGS="$CCARGS -DHAS_SQLITE"
  AUXLIBS="$AUXLIBS -lsqlite3 -lpthread"
fi
MySQL

For å bruke MySQL med Postfix, bruk følgende argumenter:

if [ -r /usr/lib/libmysqlclient.so ]; then
  CCARGS="$CCARGS -DHAS_MYSQL -I/usr/include/mysql"
  AUXLIBS="$AUXLIBS -lmysqlclient -lz -lm"
fi
PostgreSQL

For å bruke PostgreSQL med Postfix, bruk følgende argumenter:

if [ -r /usr/lib/libpq.so ]; then
  CCARGS="$CCARGS -DHAS_PGSQL -I/usr/include/postgresql"
  AUXLIBS="$AUXLIBS -lpq -lz -lm"
fi
CDB/TinyCDB

For å bruke CDB eller TinyCDB med Postfix, bruk følgende argumenter:

if [ -r </path/to/CDB>/libcdb.a ]; then
  CCARGS="$CCARGS -DHAS_CDB"
  AUXLIBS="$AUXLIBS </path/to/CDB>/libcdb.a"
fi
StartTLS Authentication

For å bruke OpenSSL med Postfix, bruk følgende argumenter:

if [ -r /usr/lib/libssl.so -a -r /usr/lib/libcrypto.so ]; then
  CCARGS="$CCARGS -DUSE_TLS -I/usr/include/openssl/"
  AUXLIBS="$AUXLIBS -lssl -lcrypto"
fi

OpenSSL er installert av LFS så det skal alltid være der. if ... then er her bare for konsistens.

Installere Postfix

Det kan være dupliserte innstillinger i AUXLIBS som -lm når både, MariaDB og PostgreSQL er brukt. De gjør ikke skade. Installer Postfix ved å kjøre følgende kommandoer:

make CCARGS="$CCARGS" AUXLIBS="$AUXLIBS" makefiles &&
make

Denne pakken kommer ikke med en nyttig testpakke.

Nå, som root bruker:

sh postfix-install -non-interactive \
   daemon_directory=/usr/lib/postfix \
   manpage_directory=/usr/share/man \
   html_directory=/usr/share/doc/postfix-3.9.0/html \
   readme_directory=/usr/share/doc/postfix-3.9.0/readme

Parameterforklaringer

make makefiles: Denne kommandoen gjenoppbygger makefilene gjennom kildetreet for å bruke alternativene i CCARGS og AUXLIBS variablene.

sh postfix-install -non-interactive: Dette holder installer skriptet fra å stille spørsmål, og aksepterer dermed standard destinasjonsmapper i alle unntatt noen få tilfeller. Hvis html_directory og readme_directory alternativer ikke er angitt, vil ikke dokumentasjonen bli installert.

CCARGS="-DNO_EAI ...": dette vil slå av SMTPUTF8 støtte, for eksempel hvis resten av e-postadressens infrastruktur ikke kan håndtere UTF-8-e-postadresser og meldingsdeklarasjonsverdier.

Konfigurere Postfix

Konfigurasjonsfiler

/etc/aliases, /etc/postfix/main.cf, og /etc/postfix/master.cf

Konfigurasjonsinformasjon

Opprett (eller legg til en eksisterende) /etc/aliases med følgende kommando. Endre <LOGIN> til din ikke-root påloggings identitet så e-post adressert til root kan videresendes til deg. Som root bruker:

cat >> /etc/aliases << "EOF"
# Begin /etc/aliases

MAILER-DAEMON:    postmaster
postmaster:       root

root:             <LOGIN>
# End /etc/aliases
EOF

For å beskytte en eksisterende /etc/aliases fil, kommandoen ovenfor legger til disse aliasene til den hvis den eksisterer. Denne filen bør kontrolleres og dupliserte aliaser fjernes, hvis de finnes.

BLFS redaktørene anbefaler å bruke LMDB i stedet for Berkeley DB for Postfix tabeller. Legg til tre linjer i /etc/postfix/main.cf for å la postmap kode oppslagstabellene i LMDB formater som standard og for å endre standard hash innstilling for alias tabeller:

echo 'default_database_type = lmdb'       >> /etc/postfix/main.cf &&
echo 'alias_database = lmdb:/etc/aliases' >> /etc/postfix/main.cf &&
echo 'alias_maps = lmdb:/etc/aliases'     >> /etc/postfix/main.cf

For å beskytte serveren din mot de siste SMTP smuglingangrepene, ytterligere trinn kreves. Legg til to linjer i /etc/postfix/main.cf for å koble fra eksterne SMTP klienter som sender bare nye linjer i DATA delen, mens også tillater klienter på nettverket ditt med ikke-standard SMTP implementeringer for fortsatt å sende e-post:

echo 'smtpd_forbid_bare_newline = normalize' >> /etc/postfix/main.cf &&
echo 'smtpd_forbid_bare_newline_exclusions = $mynetworks' >> /etc/postfix/main.cf

Merk at hvis du følger en nettbasert veiledning for å konfigurere Postfix, veiledningen kan referere til en oppslagstabell med hash:/path/to/lookup_table. Du bør erstatte hash med lmdb for å bruke en oppslagstabell kodet i LMDB formatet.

[Notat]

Notat

/etc/postfix/main.cf og /etc/postfix/master.cf filene må tilpasses for systemet ditt. main.cf filen trenger din fullt kvalifiserte vertsnavn. Du vil se at main.cf er selvdokumenterende, så last den inn i ditt redigeringsprogram for å gjøre endringene du trenger for din situasjon.

[Notat]

Notat

Postfix kan også settes opp til kjøre i et chroot fengsel. Se filen i kilden examples/chroot-setup/LINUX2 for detaljer.

For å sikre at alle tillatelser er riktig angitt, postfix gir et verktøy som skal kjøres som root bruker:

/usr/sbin/postfix -c /etc/postfix set-permissions

Hvis du har en eksisterende konfigurasjon, kan du kjøre postfix verktøy for å legge til nødvendige definisjoner i dine eksisterende filer. Som root bruker:

/usr/sbin/postfix upgrade-configuration

Før start av Postfix, bør du sjekke at konfigurasjonen og filtillatelsene vil fungere som de skal. Kjør følgende kommandoer som root bruker for å sjekke og starte din Postfix server:

/usr/sbin/postfix check &&
/usr/sbin/postfix start

Oppstartsskript

For å automatisere kjøringen av Postfix ved oppstart, installer /etc/rc.d/init.d/postfix init skriptet inkludert i blfs-bootscripts-20240913 pakken:

make install-postfix

Innhold

Installerte Programmer: mailq (symbolkobling), newaliases (symbolkobling), postalias, postcat, postconf, postdrop, postfix, postkick, postlock, postlog, postmap, postmulti, postqueue, postsuper, og sendmail
Installerte Biblioteker: Ingen
Installerte Mapper: /{etc,usr/lib}/postfix, /usr/share/doc/postfix-3.9.0 og /var/{lib,spool}/postfix

Korte Beskrivelser

mailq

En symbolkobling til sendmail

newaliases

En symbolkobling til sendmail

postalias

er et verktøy for Postfix alias database vedlikehold

postcat

Skriver ut innholdet i filene fra Postfix køen i lesbart format

postconf

Viser eller endrer verdien av Postfix konfigurasjonsparametere

postdrop

Oppretter en fil i maildrop mappen og kopierer standard inndata til filen

postfix

er Postfix kontrollprogram

postkick

Sender forespørsler til den angitte tjenesten over en lokal transportkanal

postlock

Låser en e-postmappe for eksklusivt bruk, og utfører beståtte kommandoer til det

postlog

En Postfix kompatibelt loggingsgrensesnitt for bruk i for eksempel skallskript

postmap

Oppretter eller spør etter en eller flere Postfix oppslagstabeller, eller oppdaterer en eksisterende

postmulti

er Postfix multi-instans manager. Det lar en systemadministrator administrere flere Postfix forekomster på en enkelt vert

postqueue

Postfix brukergrensesnitt for køhåndtering

postsuper

Postfix brukergrensesnitt for superbruker køhåndtering

sendmail

er Postfix til Sendmail kompatibilitetsgrensesnitt