Postfix Grundkonfiguration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(28 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Vorarbeiten=
 +
*mail.itXX.int
 +
*Maschine klonen und nach Plan anpassen
  
 
=vorarbeiten=
 
=vorarbeiten=
 +
;Für den Kit User
 +
*su - kit
 +
*mkdir -p ~/Maildir/{cur,new,tmp}
 +
*echo export MAIL=\~/Maildir >> ~/.bashrc
 +
=Ab hier arbeiten wir als root=
 +
*sudo -i
 +
;Für alle neuen Benutzer
 
*mkdir -p  /etc/skel/Maildir/{cur,new,tmp}
 
*mkdir -p  /etc/skel/Maildir/{cur,new,tmp}
 
*echo export MAIL=\~/Maildir >> /etc/skel/.bashrc
 
*echo export MAIL=\~/Maildir >> /etc/skel/.bashrc
  
 
=installation=
 
=installation=
 +
*apt update
 
*apt install postfix dovecot-core dovecot-imapd
 
*apt install postfix dovecot-core dovecot-imapd
 +
'''wir wählen Internet-Site'''
  
 
=spätere grundkonfiguration=
 
=spätere grundkonfiguration=
 +
;Jetzt nicht notwendig
 
*dpkg-reconfigure -p low postfix
 
*dpkg-reconfigure -p low postfix
wir wählen Internet-Site
 
  
 
=/etc/postfix/main.cf=
 
=/etc/postfix/main.cf=
Zeile 50: Zeile 62:
  
 
# Hostname dieses Mailservers
 
# Hostname dieses Mailservers
myhostname = ns.it113.int
+
myhostname = mail.it213.int
  
 
# Pfad zur Aliase-Datei, die E-Mail-Aliasnamen speichert
 
# Pfad zur Aliase-Datei, die E-Mail-Aliasnamen speichert
Zeile 60: Zeile 72:
  
 
# Lokale Domains, für die dieser Server E-Mails annimmt
 
# Lokale Domains, für die dieser Server E-Mails annimmt
mydestination = $myhostname, ns.it113.int, localhost.it113.int, , localhost
+
mydestination = $myhostname, mail.it213.int, localhost.it213.int, , localhost
  
 
# Standard-Relay-Host (leer, d.h. keine Weiterleitung an einen anderen Server)
 
# Standard-Relay-Host (leer, d.h. keine Weiterleitung an einen anderen Server)
Zeile 83: Zeile 95:
 
==Maildirformat==
 
==Maildirformat==
 
;Wir fügen an
 
;Wir fügen an
  home_mailbox=Maildir/
+
  home_mailbox = Maildir/
 
  mailbox_command =
 
  mailbox_command =
 +
 
==Dovecot==
 
==Dovecot==
 
Wir müssen auch Dovecot sagen wo die Mails liegen.
 
Wir müssen auch Dovecot sagen wo die Mails liegen.
Zeile 91: Zeile 104:
  
 
*vi  /etc/dovecot/conf.d/10-mail.conf
 
*vi  /etc/dovecot/conf.d/10-mail.conf
 +
mail_driver = maildir
 +
mail_home = /home/%{user | username}
 +
mail_path = %{home}/Maildir
 +
*systemctl restart dovecot
 +
*systemctl restart postfix
  
 
=auswahl der postfix kommandos=
 
=auswahl der postfix kommandos=
Zeile 99: Zeile 117:
 
*postfix check
 
*postfix check
 
=logging=
 
=logging=
*journalctl -f -u postfix@-.service
+
*journalctl -f -u postfix
 
<pre>
 
<pre>
Mar 14 12:51:38 ns.it113.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
+
Mar 14 12:51:38 ns.it213.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Mar 14 12:51:38 ns.it113.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.
+
Mar 14 12:51:38 ns.it213.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.
Mar 14 12:56:38 ns.it113.int systemd[1]: postfix.service: Deactivated successfully.
+
Mar 14 12:56:38 ns.it213.int systemd[1]: postfix.service: Deactivated successfully.
Mar 14 12:56:38 ns.it113.int systemd[1]: Stopped postfix.service - Postfix Mail Transport Agent.
+
Mar 14 12:56:38 ns.it213.int systemd[1]: Stopped postfix.service - Postfix Mail Transport Agent.
Mar 14 12:56:38 ns.it113.int systemd[1]: Stopping postfix.service - Postfix Mail Transport Agent...
+
Mar 14 12:56:38 ns.it213.int systemd[1]: Stopping postfix.service - Postfix Mail Transport Agent...
Mar 14 12:56:39 ns.it113.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
+
Mar 14 12:56:39 ns.it213.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Mar 14 12:56:39 ns.it113.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.
+
Mar 14 12:56:39 ns.it213.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.
 
</pre>
 
</pre>
  
Zeile 113: Zeile 131:
 
*useradd  -m -s /bin/bash martha
 
*useradd  -m -s /bin/bash martha
 
*useradd  -m -s /bin/bash leroy
 
*useradd  -m -s /bin/bash leroy
 +
=installieren von mailutis=
 +
*apt install mailutils
 +
 +
=Zweites Terminal auf mail öffnen=
 +
*sudo -i
 +
*journalctl -fu postfix
  
 
=Erste Mail verschicken=
 
=Erste Mail verschicken=
 
*echo Hallo Welt  | mail martha
 
*echo Hallo Welt  | mail martha
  
=installieren von mailutis=
 
*apt install mailutils
 
 
=Kleines Tutorial=
 
=Kleines Tutorial=
 
*[[Mailutils]]
 
*[[Mailutils]]
  
 
=lokales lesen der mails=
 
=lokales lesen der mails=
*su - matha
+
*su - martha
 
*mail
 
*mail
 
<pre>
 
<pre>
Zeile 129: Zeile 151:
 
>N  1 root              Fri Mar 14 12:32  12/402
 
>N  1 root              Fri Mar 14 12:32  12/402
  
?  
+
?
Return-Path: <root@mail.it113.int>
+
Return-Path: <root@mail.it213.int>
 
X-Original-To: martha
 
X-Original-To: martha
Delivered-To: martha@mail.it113.int
+
Delivered-To: martha@mail.it213.int
Received: by mail.it113.int (Postfix, from userid 0)
+
Received: by mail.it213.int (Postfix, from userid 0)
id AD215E0056; Fri, 14 Mar 2025 13:32:26 +0100 (CET)
+
        id AD215E0056; Fri, 14 Mar 2025 13:32:26 +0100 (CET)
To: martha@mail.it113.int
+
To: martha@mail.it213.int
 
User-Agent: mail (GNU Mailutils 3.15)
 
User-Agent: mail (GNU Mailutils 3.15)
 
Date: Fri, 14 Mar 2025 13:32:26 +0100
 
Date: Fri, 14 Mar 2025 13:32:26 +0100
Message-Id: <20250314123226.AD215E0056@mail.it113.int>
+
Message-Id: <20250314123226.AD215E0056@mail.it213.int>
From: root <root@mail.it113.int>
+
From: root <root@mail.it213.int>
  
 
Hallo Welt
 
Hallo Welt
?  
+
?
 
</pre>
 
</pre>
  
Zeile 150: Zeile 172:
 
<pre>
 
<pre>
 
service auth {
 
service auth {
      }
+
  ...
 
   # Postfix smtp-auth
 
   # Postfix smtp-auth
 
   unix_listener /var/spool/postfix/private/auth {
 
   unix_listener /var/spool/postfix/private/auth {
Zeile 170: Zeile 192:
 
  smtpd_sasl_auth_enable = yes
 
  smtpd_sasl_auth_enable = yes
 
=Dienste neustarten=
 
=Dienste neustarten=
*systemctl restart postfix  
+
*systemctl restart postfix
 
*systemctl restart dovecot
 
*systemctl restart dovecot
 
=Test von einem anderen Client=
 
=Test von einem anderen Client=
*apt install mailutils
+
*apt install mailutils postfix
Teste ob  
+
Teste ob
*echo doofie | mail -s doof martha@mail.it1XX.int
+
*echo doofie | mail -s doof martha@mail.it2XX.int
 
geht
 
geht
  
Teste ob  
+
Teste ob
*echo doofie | mail -s doof martha@it1XX.int
+
*echo doofie | mail -s doof martha@it2XX.int
 
geht
 
geht
 +
 
=Wir fügen die Maildomain it1XX.int hinzu=
 
=Wir fügen die Maildomain it1XX.int hinzu=
*cat /etc/postir
+
*cat /etc/postfix/main.cf
  mydestination = $myhostname, mail.it113.int, localhost.it113.int, it113.int, localhost
+
  mydestination = $myhostname, mail.it213.int, localhost.it213.int, it213.int, localhost
 
*postfix reload
 
*postfix reload
erneut testen
+
erneut testen                                                                                                                                                                                                                                                                                                                                
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~                                                                                                                                                                                                                                                                                                                                                                       
 +
~

Aktuelle Version vom 19. März 2026, 09:07 Uhr

Vorarbeiten

  • mail.itXX.int
  • Maschine klonen und nach Plan anpassen

vorarbeiten

Für den Kit User
  • su - kit
  • mkdir -p ~/Maildir/{cur,new,tmp}
  • echo export MAIL=\~/Maildir >> ~/.bashrc

Ab hier arbeiten wir als root

  • sudo -i
Für alle neuen Benutzer
  • mkdir -p /etc/skel/Maildir/{cur,new,tmp}
  • echo export MAIL=\~/Maildir >> /etc/skel/.bashrc

installation

  • apt update
  • apt install postfix dovecot-core dovecot-imapd

wir wählen Internet-Site

spätere grundkonfiguration

Jetzt nicht notwendig
  • dpkg-reconfigure -p low postfix

/etc/postfix/main.cf

# Siehe /usr/share/postfix/main.cf.dist für eine kommentierte, vollständigere Version
# Debian-spezifisch: Wenn ein Dateiname angegeben wird, wird die erste Zeile dieser Datei
# als Name verwendet. Der Debian-Standard ist /etc/mailname.
#myorigin = /etc/mailname

# Begrüßungsbanner für SMTP-Verbindungen
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

# Deaktiviert Biff, das sonst Benachrichtigungen über neue Mails an lokale Benutzer sendet
biff = no

# Das Anhängen der Domain an lokale E-Mail-Adressen ist Aufgabe des Mail-Clients (MUA)
append_dot_mydomain = no

# Zeit, nach der eine verzögerte Zustellwarnung gesendet wird (auskommentiert)
#delay_warning_time = 4h

# Deaktiviert das README-Verzeichnis für Benutzer
readme_directory = no

# Siehe http://www.postfix.org/COMPATIBILITY_README.html -- Standard ist 3.6 bei neuen Installationen
compatibility_level = 3.6

# TLS-Parameter (Zertifikate für verschlüsselte Verbindungen)
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may  # TLS wird unterstützt, aber nicht erzwungen

# TLS für ausgehende SMTP-Verbindungen
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may  # TLS wird für ausgehende Verbindungen unterstützt, aber nicht erzwungen
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# Regeln für das Relaying (Weiterleiten) von E-Mails
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

# Hostname dieses Mailservers
myhostname = mail.it213.int

# Pfad zur Aliase-Datei, die E-Mail-Aliasnamen speichert
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# Ursprungsdomain für ausgehende Mails
myorigin = /etc/mailname

# Lokale Domains, für die dieser Server E-Mails annimmt
mydestination = $myhostname, mail.it213.int, localhost.it213.int, , localhost

# Standard-Relay-Host (leer, d.h. keine Weiterleitung an einen anderen Server)
relayhost =

# Netzwerke, die ohne Authentifizierung E-Mails über diesen Server senden dürfen
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

# Maximale Postfachgröße (0 bedeutet unbegrenzt)
mailbox_size_limit = 0

# Trennzeichen für Adressvarianten (z.B. user+info@example.com)
recipient_delimiter = +

# Auf welchen Netzwerk-Schnittstellen Postfix lauscht (hier: alle)
inet_interfaces = all

# Unterstützte Internetprotokolle (IPv4 und IPv6)
inet_protocols = all

Maildirformat

Wir fügen an
home_mailbox = Maildir/
mailbox_command =

Dovecot

Wir müssen auch Dovecot sagen wo die Mails liegen.

Dazu ändern wie in wenig die Konfiguration

  • vi /etc/dovecot/conf.d/10-mail.conf
mail_driver = maildir
mail_home = /home/%{user | username}
mail_path = %{home}/Maildir 
  • systemctl restart dovecot
  • systemctl restart postfix

auswahl der postfix kommandos

  • postfix status
  • postfix start
  • postfix stop
  • postfix reload
  • postfix check

logging

  • journalctl -f -u postfix
Mar 14 12:51:38 ns.it213.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Mar 14 12:51:38 ns.it213.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.
Mar 14 12:56:38 ns.it213.int systemd[1]: postfix.service: Deactivated successfully.
Mar 14 12:56:38 ns.it213.int systemd[1]: Stopped postfix.service - Postfix Mail Transport Agent.
Mar 14 12:56:38 ns.it213.int systemd[1]: Stopping postfix.service - Postfix Mail Transport Agent...
Mar 14 12:56:39 ns.it213.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Mar 14 12:56:39 ns.it213.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.

Wir legen 2 User an

  • useradd -m -s /bin/bash martha
  • useradd -m -s /bin/bash leroy

installieren von mailutis

  • apt install mailutils

Zweites Terminal auf mail öffnen

  • sudo -i
  • journalctl -fu postfix

Erste Mail verschicken

  • echo Hallo Welt | mail martha

Kleines Tutorial

lokales lesen der mails

  • su - martha
  • mail
"/home/martha/Maildir": 1 message 1 new
>N   1 root               Fri Mar 14 12:32  12/402

?
Return-Path: <root@mail.it213.int>
X-Original-To: martha
Delivered-To: martha@mail.it213.int
Received: by mail.it213.int (Postfix, from userid 0)
        id AD215E0056; Fri, 14 Mar 2025 13:32:26 +0100 (CET)
To: martha@mail.it213.int
User-Agent: mail (GNU Mailutils 3.15)
Date: Fri, 14 Mar 2025 13:32:26 +0100
Message-Id: <20250314123226.AD215E0056@mail.it213.int>
From: root <root@mail.it213.int>

Hallo Welt
?

sasl

Wir nutzen dovecot für SASL
  • vi /etc/dovecot/conf.d/10-master.conf
service auth {
   ...
   # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix

  }
...
}
  • vi /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login

Postfix Änderung

  • vi /etc/postfix/main.cf
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

Dienste neustarten

  • systemctl restart postfix
  • systemctl restart dovecot

Test von einem anderen Client

  • apt install mailutils postfix

Teste ob

  • echo doofie | mail -s doof martha@mail.it2XX.int

geht

Teste ob

  • echo doofie | mail -s doof martha@it2XX.int

geht

Wir fügen die Maildomain it1XX.int hinzu

  • cat /etc/postfix/main.cf
mydestination = $myhostname, mail.it213.int, localhost.it213.int, it213.int, localhost
  • postfix reload

erneut testen ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~