Postfix Grundkonfiguration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(29 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.
  
 
Dazu ändern wie in wenig die Konfiguration
 
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=
 
=auswahl der postfix kommandos=
Zeile 97: 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 111: 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 127: 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 148: 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 168: 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 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~