https://xinux.net/api.php?action=feedcontributions&user=Thomas&feedformat=atom
xinux.net - Benutzerbeiträge [de]
2024-03-28T12:16:10Z
Benutzerbeiträge
MediaWiki 1.35.1
https://xinux.net/index.php?title=X509_Begriffe&diff=16617
X509 Begriffe
2018-02-15T13:17:06Z
<p>Thomas: /* PEM */</p>
<hr />
<div>Bei X.509 basierten Verfahren im allgemeinen und OpenSSL im besonderen ist ein Überblick über die Begriffe von erheblichem Vorteil.<br />
=Certificate (Zertifikat)=<br />
*SSL arbeitet mit einem Public-Key Verfahren. Das Zertifikat ist der (RSA) Public-Teil dieses Paares und kann daher offen verteilt werden.<br />
*Ein Zertifikat wurde von einer (Root-)CA signiert.<br />
*Das Zertifikat besteht aus mehreren Komponenten.<br />
*DN des Inhabers<br />
**Der eindeutige (distinguished) Name des Zertfikatsinhabers, der durch dieses Zertfikat identifiziert werden kann.<br />
*DN des Herausgebers<br />
**Distinguished Name des Herausgebers (Issuer), also der CA die dieses Zertifikat signiert hat.<br />
*Seriennumer beim Herausgeber<br />
**Die Seriennummer, unter der dieses Zertifikat beim Herausgeber geführt wird.<br />
*Signatur des Herausgebers<br />
**Der Herausgeber (die CA) signiert das Zertifikat mit dem privaten Schlüssel der CA.<br />
=Certificate Signing Request (CSR)=<br />
Anfrage um das Zertifikat von einer Root-CA signieren zu lassen. Der CSR enthält den Public-Key und den Distiguished Name des Antragstellers. <br />
=Certificate Authority (CA)=<br />
Überprüfft CSR hinsichtlich der Angaben der Identität des Antragstellers signiert wenn diese stimmen.<br />
=CA Certificate=<br />
*CA muß Ihren Public-Key, also Ihr von einer Root-CA signiertes Zertifikat öffentlich zur Verfügung stellen<br />
*Damit können die von Ihr signierten Zertifikate verifiziert werden. <br />
*In den Browsern sind z.B. etliche Zertifikate von CA's vorinstalliert.<br />
=DER=<br />
*DER ist die Abkürzung für Distinguished Encoding Rules<br />
*Format für die Speicherung und Übermittlung von Zertifikatsdaten. <br />
*DER ist ein binäres Format und kann daher nur 1 DER Objekt per Datei enthalten.<br />
*Alternative zu PEM<br />
=Diffie - Hellmann=<br />
*Kein Verfahren ist kein Verschlüsselungsverfahren im eigentlichen Sinne.<br />
*Protokoll zum sicheren Austausch von Schlüsseln über offene Kanäle. <br />
*Mit Hilfe dieser Schlüssel kann dann eine Nachricht symmetrisch verschlüsselt und sicher übermittelt werden.<br />
=DSA=<br />
*Asymmetrischer Kryptographie basierendes Signaturverfahren. <br />
*Nachricht wird mit dem privaten Schlüssel signiert und kann mit dem öffentlichen Schlüssel verifiziert werden.<br />
*Bietet in Verbindung mit Diffie-Hellmann und einem zusätzlichen symmetrischen Verschlüsselungsverfahren (3DES, AES) <br />
*Die Möglichkeit der Verschlüsselung und Signatur von Nachrichten.<br />
=PEM=<br />
*PEM steht für Privacy Enhanced Mail und ist ein Verfahren für den Austausch von Nachrichten. <br />
*Im Zusammenhang mit X.509 wird PEM häufig als Format für die Übermittlung und Speicherung von Zertifikatsdaten genutzt. <br />
*Bietet gegenüber DER mehrere Vorteile. <br />
**Daten sind Base64 encoded, so dass keine Binärdaten vorkommen. <br />
**Aus diesem Grund kann eine PEM Datei auch mehrere PEM Objekte enthalten. <br />
**Daten können vor der Konvertierung ins PEM Format verschlüsselt werden.<br />
=PKCS=<br />
*Public Key Cryptography Standards. <br />
*Standards von den RSA Laboratories zur Spezifikation gängiger kryptographischer Datenstrukturen, Datenelemente und Verfahren.<br />
=PKCS#10=<br />
*beschreibt den Aufbau eines Certificate Signing Requests, also einer Anfrage an eine CA, <br />
*einen Public Key zu signieren. <br />
*CSR nach PKCS#10 besteht aus <br />
**dem voll qualifizierten Namen (FQDN) des Zertifikats<br />
**dem Public-Key<br />
**Zusätzlich können weitere optionale Attribute angegeben werden, die mit dem privaten Schlüssel signiert werden.<br />
=RSA=<br />
*asymmetrisches Verschlüsselungsverfahren, dass mit dem gleichen Schlüsselpaar die Möglichkeit bietet Nachrichten zu verschlüsseln und zu signieren und damit zu verifizieren.<br />
=Quelle=<br />
*http://www.werthmoeller.de/doc/microhowtos/openssl/x509-begriffsbestimmungen/</div>
Thomas
https://xinux.net/index.php?title=X509_Begriffe&diff=16616
X509 Begriffe
2018-02-15T13:12:35Z
<p>Thomas: Die Seite wurde neu angelegt: „Bei X.509 basierten Verfahren im allgemeinen und OpenSSL im besonderen ist ein Überblick über die Begriffe von erheblichem Vorteil. =Certificate (Zertifikat)…“</p>
<hr />
<div>Bei X.509 basierten Verfahren im allgemeinen und OpenSSL im besonderen ist ein Überblick über die Begriffe von erheblichem Vorteil.<br />
=Certificate (Zertifikat)=<br />
*SSL arbeitet mit einem Public-Key Verfahren. Das Zertifikat ist der (RSA) Public-Teil dieses Paares und kann daher offen verteilt werden.<br />
*Ein Zertifikat wurde von einer (Root-)CA signiert.<br />
*Das Zertifikat besteht aus mehreren Komponenten.<br />
*DN des Inhabers<br />
**Der eindeutige (distinguished) Name des Zertfikatsinhabers, der durch dieses Zertfikat identifiziert werden kann.<br />
*DN des Herausgebers<br />
**Distinguished Name des Herausgebers (Issuer), also der CA die dieses Zertifikat signiert hat.<br />
*Seriennumer beim Herausgeber<br />
**Die Seriennummer, unter der dieses Zertifikat beim Herausgeber geführt wird.<br />
*Signatur des Herausgebers<br />
**Der Herausgeber (die CA) signiert das Zertifikat mit dem privaten Schlüssel der CA.<br />
=Certificate Signing Request (CSR)=<br />
Anfrage um das Zertifikat von einer Root-CA signieren zu lassen. Der CSR enthält den Public-Key und den Distiguished Name des Antragstellers. <br />
=Certificate Authority (CA)=<br />
Überprüfft CSR hinsichtlich der Angaben der Identität des Antragstellers signiert wenn diese stimmen.<br />
=CA Certificate=<br />
*CA muß Ihren Public-Key, also Ihr von einer Root-CA signiertes Zertifikat öffentlich zur Verfügung stellen<br />
*Damit können die von Ihr signierten Zertifikate verifiziert werden. <br />
*In den Browsern sind z.B. etliche Zertifikate von CA's vorinstalliert.<br />
=DER=<br />
*DER ist die Abkürzung für Distinguished Encoding Rules<br />
*Format für die Speicherung und Übermittlung von Zertifikatsdaten. <br />
*DER ist ein binäres Format und kann daher nur 1 DER Objekt per Datei enthalten.<br />
*Alternative zu PEM<br />
=Diffie - Hellmann=<br />
*Kein Verfahren ist kein Verschlüsselungsverfahren im eigentlichen Sinne.<br />
*Protokoll zum sicheren Austausch von Schlüsseln über offene Kanäle. <br />
*Mit Hilfe dieser Schlüssel kann dann eine Nachricht symmetrisch verschlüsselt und sicher übermittelt werden.<br />
=DSA=<br />
*Asymmetrischer Kryptographie basierendes Signaturverfahren. <br />
*Nachricht wird mit dem privaten Schlüssel signiert und kann mit dem öffentlichen Schlüssel verifiziert werden.<br />
*Bietet in Verbindung mit Diffie-Hellmann und einem zusätzlichen symmetrischen Verschlüsselungsverfahren (3DES, AES) <br />
*Die Möglichkeit der Verschlüsselung und Signatur von Nachrichten.<br />
=PEM=<br />
*PEM steht für Privacy Enhanced Mail und ist ein Verfahren für den Austausch von Nachrichten. <br />
*Im Zusammenhang mit X.509 wird PEM häufig als Format für die Übermittlung und Speicherung von Zertifikatsdaten genutzt. <br />
*Bietet gegenüber DER mehrere Vorteile. <br />
**Daten sind Base64 encoded, so dass keine Binärdaten vorkommen. <br />
**Aus diesem Grund kann eine PEM Datei auch mehrere PEM Objekte enthalten. <br />
**Daten können vor der Konvertierung ins PEM Format verschlüsselt werden.<br />
<br />
PEM ist in den RFCs 1421, 1422, 1423 und 1424 beschrieben.<br />
<br />
PKCS<br />
PKCS ist die Abkürzung für Public Key Cryptography Standards. Die PKC Standards sind von den RSA Laboratories zur Spezifikation gängiger kryptographischer Datenstrukturen, Datenelemente und Verfahren entwickelt worden.<br />
<br />
PKCS#10<br />
PKCS#10 beschreibt den Aufbau eines Certificate Signing Requests, also einer Anfrage an eine CA, einen Public Key zu signieren. Ein CSR nach PKCS#10 besteht aus dem voll qualifizierten Namen (FQDN) des Zertifikats, dem Public-Key. Zusätzlich können weitere optionale Attribute angegeben werden, die mit dem privaten Schlüssel signiert werden.<br />
<br />
PKCS#10 ist in RFC 2986 beschrieben.<br />
<br />
RSA<br />
RSA ist ein asymmetrisches Verschlüsselungsverfahren, dass mit dem gleichen Schlüsselpaar die Möglichkeit bietet Nachrichten zu verschlüsseln und zu signieren und damit zu verifizieren.</div>
Thomas
https://xinux.net/index.php?title=Openssl&diff=16615
Openssl
2018-02-15T13:00:53Z
<p>Thomas: </p>
<hr />
<div>*[[openssl prinzip]]<br />
*[[openssl howto one]]<br />
*[[openssl howto two]]<br />
*[[openssl s_client]]<br />
<br />
*[http://www.absolute-cool.de/dokus/ssl/openssl/ Das OpenSSL Handbuch]<br />
*[http://www.phildev.net/ssl/opensslconf.html openssl.conf]<br />
*[[xinuxpki]]<br />
*[[X509 ruck zuck]]<br />
*[[X509 Begriffe]]</div>
Thomas
https://xinux.net/index.php?title=Openssl_prinzip&diff=16614
Openssl prinzip
2018-02-15T12:42:31Z
<p>Thomas: </p>
<hr />
<div>=Voraussetzung=<br />
*Server muss einen festgelegten DNS Namen besitzen.<br />
<br />
<br />
== Prinzip ==<br />
<br />
=== Signieren ===<br />
<br />
*Generieren eines Schlüsselpaares einen privkey-s und einen pubkey-s. <br />
*Den Pubkey-s schickt man nun an einen Zertifizierungsstelle.<br />
*Diese bildet nun einen Hashwert hash-s<br />
*hash wird nun mit dem privkey-ca verschlüsselt, <br />
*Das Teil nennt man nun signature-s <br />
*diese wird an den pubkey-s angehängt<br />
*Man nennt dies nun certifkat-s und <br />
*Es wird zum Server zurück geschickt<br />
*Man baut dies dann in seinen Websever ein<br />
<br />
[[Datei:signierung.jpg]]<br />
<br />
=== Authentifzieren ===<br />
*Client auf den Webserver zugreift macht er eine Anfrage <br />
*Server schickt nun das certifikat-s zum Client <br />
*Client teilt nun dieses wieder auf in pubkey-s und signature-s <br />
*Bildet einen hash aus dem pubkey-s genau wie vorher in der Zertifizierungsstelle. <br />
*signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s <br />
*wenn beide gleich sind, ist die Authentifizierung erfolgreich ...<br />
<br />
[[Datei:auth.jpg]]</div>
Thomas
https://xinux.net/index.php?title=Openssl_prinzip&diff=16613
Openssl prinzip
2018-02-15T12:21:15Z
<p>Thomas: /* Authentifzieren */</p>
<hr />
<div><br />
<br />
'''Auflistung einiger Beispiele für openssl: (Mehr Informationen auf www.openssl.org)<br />
<br />
<br />
== Prinzip ==<br />
<br />
=== Signieren ===<br />
<br />
*Generieren eines Schlüsselpaares einen privkey-s und einen pubkey-s. <br />
*Den Pubkey-s schickt man nun an einen Zertifizierungsstelle.<br />
*Diese bildet nun einen Hashwert hash-s<br />
*hash wird nun mit dem privkey-ca verschlüsselt, <br />
*Das Teil nennt man nun signature-s <br />
*diese wird an den pubkey-s angehängt<br />
*Man nennt dies nun certifkat-s und <br />
*Es wird zum Server zurück geschickt<br />
*Man baut dies dann in seinen Websever ein<br />
<br />
[[Datei:signierung.jpg]]<br />
<br />
=== Authentifzieren ===<br />
*Client auf den Webserver zugreift macht er eine Anfrage <br />
*Server schickt nun das certifikat-s zum Client <br />
*Client teilt nun dieses wieder auf in pubkey-s und signature-s <br />
*Bildet einen hash aus dem pubkey-s genau wie vorher in der Zertifizierungsstelle. <br />
*signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s <br />
*wenn beide gleich sind, ist die Authentifizierung erfolgreich ...<br />
<br />
[[Datei:auth.jpg]]</div>
Thomas
https://xinux.net/index.php?title=Openssl_prinzip&diff=16612
Openssl prinzip
2018-02-15T12:19:11Z
<p>Thomas: /* Authentifzieren */</p>
<hr />
<div><br />
<br />
'''Auflistung einiger Beispiele für openssl: (Mehr Informationen auf www.openssl.org)<br />
<br />
<br />
== Prinzip ==<br />
<br />
=== Signieren ===<br />
<br />
*Generieren eines Schlüsselpaares einen privkey-s und einen pubkey-s. <br />
*Den Pubkey-s schickt man nun an einen Zertifizierungsstelle.<br />
*Diese bildet nun einen Hashwert hash-s<br />
*hash wird nun mit dem privkey-ca verschlüsselt, <br />
*Das Teil nennt man nun signature-s <br />
*diese wird an den pubkey-s angehängt<br />
*Man nennt dies nun certifkat-s und <br />
*Es wird zum Server zurück geschickt<br />
*Man baut dies dann in seinen Websever ein<br />
<br />
[[Datei:signierung.jpg]]<br />
<br />
=== Authentifzieren ===<br />
*Client auf den Webserver zugreift macht er eine Anfrage <br />
*Server schickt nun das certifikat-s zum Client <br />
*Client teilt nun dieses wieder auf in pubkey-s und signature-s <br />
*Bildet einen hash aus dem pubkey-s genau wie vorher in der Zertifizierungsstelle. <br />
nennen wir diesen mal X ... so und nun kommst: <br />
*die signature-s haben wir bekommen als in der Zertifizierungsstelle den hash-s mit dem privkey-ca verschlüsselt haben ... <br />
*wenn wir nun die signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s denn wir nun Y nennen ...<br />
<br />
wenn X = Y ist die authentifzierung erfolgreich ...<br />
<br />
[[Datei:auth.jpg]]</div>
Thomas
https://xinux.net/index.php?title=Openssl_prinzip&diff=16611
Openssl prinzip
2018-02-15T12:16:51Z
<p>Thomas: /* Signieren */</p>
<hr />
<div><br />
<br />
'''Auflistung einiger Beispiele für openssl: (Mehr Informationen auf www.openssl.org)<br />
<br />
<br />
== Prinzip ==<br />
<br />
=== Signieren ===<br />
<br />
*Generieren eines Schlüsselpaares einen privkey-s und einen pubkey-s. <br />
*Den Pubkey-s schickt man nun an einen Zertifizierungsstelle.<br />
*Diese bildet nun einen Hashwert hash-s<br />
*hash wird nun mit dem privkey-ca verschlüsselt, <br />
*Das Teil nennt man nun signature-s <br />
*diese wird an den pubkey-s angehängt<br />
*Man nennt dies nun certifkat-s und <br />
*Es wird zum Server zurück geschickt<br />
*Man baut dies dann in seinen Websever ein<br />
<br />
[[Datei:signierung.jpg]]<br />
<br />
=== Authentifzieren ===<br />
<br />
Wenn nun ein client auf den Webserver zugreift macht er eine Anfrage ... der Server schickt nun das certifikat-s zum Client ... der teilt nun dieses wieder auf in pubkey-s und signature-s und bildet einen hash aus dem pubkey-s genau wie vorher in der Zertifzierungstelle. nennen wir diesen mal X ... so und nun kommst: die signature-s haben wir bekommen als in der zertifizierungstelle den hash-s mit dem privkey-ca verschlüsselt haben ... wenn wir nun die signature-s wieder mit dem pubkey-ca verschlüsseln haben wir wieder den orginal hash-s denn wir nun Y nennen ...<br />
<br />
wenn X = Y ist die authentifzierung erfolgreich ...<br />
<br />
[[Datei:auth.jpg]]</div>
Thomas
https://xinux.net/index.php?title=Diffie_Hellmann&diff=16610
Diffie Hellmann
2018-02-15T12:08:33Z
<p>Thomas: /* Prinzp */</p>
<hr />
<div>=Grundlagen=<br />
*Der Diffie-Hellman-Schlüsselaustausch ist ein Protokoll zur Schlüsselvereinbarung.<br />
*Es ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann.<br />
*Der dadurch vereinbarte Schlüssel kann anschließend für ein symmetrisches Kryptosystem verwendet werden. <br />
*Unterschiedliche Varianten des Diffie-Hellman-Merkle-Verfahrens werden heute für die Schlüsselverteilung in den Kommunikations- und Sicherheitsprotokollen des Internet eingesetzt.<br />
=Prinzp=<br />
[[Datei:dh1.png|500px]]<br />
<br />
=Beispiel=<br />
Das folgende Beispiel dient zur Veranschaulichung und benutzt deshalb sehr kleine Zahlen. <br />
In der tatsächlichen Anwendung werden dagegen Zahlen mit mindestens mehreren hundert Stellen benutzt.<br />
==Berechnung==<br />
*Alice und Bob einigen sich auf die beiden öffentlichen Schlüssel <math>p = 13</math> und <math>g = 2</math>.<br />
*Alice wählt die Zufallszahl <math>a = 5</math> als geheimen Schlüssel.<br />
*Nun berechnet Alice <math>A = g^a\ \bmod\ p = 2^5\ \bmod\ 13 = 6</math> <br />
*Alice sendet <math>A</math> an Bob. <br />
*Bob wählt die Zufallszahl <math>b = 8</math> als geheimen Schlüssel<br />
*Bob berechnet <math>B = g^b\ \bmod\ p = 2^8\ \bmod\ 13 = 9</math> <br />
*Bob sendet <math>B</math> an Alice.<br />
*Alice berechnet <math>K_1 = B^a\ \bmod\ p = 9^5\ \bmod\ 13 = 3</math>. <br />
*Bob berechnet <math>K_2 = A^b\ \bmod\ p = 6^8\ \bmod\ 13 = 3</math>.<br />
*Beide erhalten das gleiche Ergebnis <math>K = K_1 = K_2 = 3</math>.<br />
<br />
==Sicherheit==<br />
*Die Lauscherin Eve kann zwar die Zahlen 13, 2, 6 und 9 mithören, <br />
*Das eigentliche gemeinsame Geheimnis von Alice und Bob <math>K = 3</math> bleibt ihr aber verborgen. <br />
*<math>K = 3</math> kann als Schlüssel für die nachfolgende Kommunikation verwendet werden.<br />
==Lauschen==<br />
*Mit Hilfe der abgefangenen Nachrichten kann Eve immerhin die folgenden Gleichungen aufstellen:<br />
*:<math>6 = 2^a\ \bmod\ 13</math><br />
*:<math>9 = 2^b\ \bmod\ 13</math><br />
*Daraus kann sie beispielsweise durch Ausprobieren die beiden geheimen Zahlen <math>a=5</math> und <math>b=8</math> bestimmen. <br />
*Den vereinbarten Schlüssel <math>K</math> von Alice und Bob kann sie nun mit<br />
*:<math>K = g^{ab}\ \bmod\ p</math> berechnen.<br />
*Wenn jedoch die Primzahl <math>p</math> groß genug gewählt wird und <math>g</math> <br />
*ein Generator der Gruppe <math>\Z_p^*</math> ist, ist es für Eve zu aufwändig, <br />
*um alle Zahlen zwischen <math>1</math> und <math>p-1</math> durchzuprobieren, <br />
*die als Resultat der modularen Potenz <math>g^a\ \bmod\ p</math> in Frage kommen<br />
==Script zum berechnen==<br />
*[[Diffie-Hellman-Script]]</div>
Thomas
https://xinux.net/index.php?title=Diffie_Hellmann&diff=16609
Diffie Hellmann
2018-02-15T12:08:08Z
<p>Thomas: /* Prinzp */</p>
<hr />
<div>=Grundlagen=<br />
*Der Diffie-Hellman-Schlüsselaustausch ist ein Protokoll zur Schlüsselvereinbarung.<br />
*Es ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann.<br />
*Der dadurch vereinbarte Schlüssel kann anschließend für ein symmetrisches Kryptosystem verwendet werden. <br />
*Unterschiedliche Varianten des Diffie-Hellman-Merkle-Verfahrens werden heute für die Schlüsselverteilung in den Kommunikations- und Sicherheitsprotokollen des Internet eingesetzt.<br />
=Prinzp=<br />
[[Datei:dh1.|500px]]<br />
<br />
=Beispiel=<br />
Das folgende Beispiel dient zur Veranschaulichung und benutzt deshalb sehr kleine Zahlen. <br />
In der tatsächlichen Anwendung werden dagegen Zahlen mit mindestens mehreren hundert Stellen benutzt.<br />
==Berechnung==<br />
*Alice und Bob einigen sich auf die beiden öffentlichen Schlüssel <math>p = 13</math> und <math>g = 2</math>.<br />
*Alice wählt die Zufallszahl <math>a = 5</math> als geheimen Schlüssel.<br />
*Nun berechnet Alice <math>A = g^a\ \bmod\ p = 2^5\ \bmod\ 13 = 6</math> <br />
*Alice sendet <math>A</math> an Bob. <br />
*Bob wählt die Zufallszahl <math>b = 8</math> als geheimen Schlüssel<br />
*Bob berechnet <math>B = g^b\ \bmod\ p = 2^8\ \bmod\ 13 = 9</math> <br />
*Bob sendet <math>B</math> an Alice.<br />
*Alice berechnet <math>K_1 = B^a\ \bmod\ p = 9^5\ \bmod\ 13 = 3</math>. <br />
*Bob berechnet <math>K_2 = A^b\ \bmod\ p = 6^8\ \bmod\ 13 = 3</math>.<br />
*Beide erhalten das gleiche Ergebnis <math>K = K_1 = K_2 = 3</math>.<br />
<br />
==Sicherheit==<br />
*Die Lauscherin Eve kann zwar die Zahlen 13, 2, 6 und 9 mithören, <br />
*Das eigentliche gemeinsame Geheimnis von Alice und Bob <math>K = 3</math> bleibt ihr aber verborgen. <br />
*<math>K = 3</math> kann als Schlüssel für die nachfolgende Kommunikation verwendet werden.<br />
==Lauschen==<br />
*Mit Hilfe der abgefangenen Nachrichten kann Eve immerhin die folgenden Gleichungen aufstellen:<br />
*:<math>6 = 2^a\ \bmod\ 13</math><br />
*:<math>9 = 2^b\ \bmod\ 13</math><br />
*Daraus kann sie beispielsweise durch Ausprobieren die beiden geheimen Zahlen <math>a=5</math> und <math>b=8</math> bestimmen. <br />
*Den vereinbarten Schlüssel <math>K</math> von Alice und Bob kann sie nun mit<br />
*:<math>K = g^{ab}\ \bmod\ p</math> berechnen.<br />
*Wenn jedoch die Primzahl <math>p</math> groß genug gewählt wird und <math>g</math> <br />
*ein Generator der Gruppe <math>\Z_p^*</math> ist, ist es für Eve zu aufwändig, <br />
*um alle Zahlen zwischen <math>1</math> und <math>p-1</math> durchzuprobieren, <br />
*die als Resultat der modularen Potenz <math>g^a\ \bmod\ p</math> in Frage kommen<br />
==Script zum berechnen==<br />
*[[Diffie-Hellman-Script]]</div>
Thomas
https://xinux.net/index.php?title=Datei:Dh1.png&diff=16608
Datei:Dh1.png
2018-02-15T12:03:17Z
<p>Thomas: </p>
<hr />
<div></div>
Thomas
https://xinux.net/index.php?title=Diffie_Hellmann&diff=16607
Diffie Hellmann
2018-02-15T12:03:04Z
<p>Thomas: /* Grundlagen */</p>
<hr />
<div>=Grundlagen=<br />
*Der Diffie-Hellman-Schlüsselaustausch ist ein Protokoll zur Schlüsselvereinbarung.<br />
*Es ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann.<br />
*Der dadurch vereinbarte Schlüssel kann anschließend für ein symmetrisches Kryptosystem verwendet werden. <br />
*Unterschiedliche Varianten des Diffie-Hellman-Merkle-Verfahrens werden heute für die Schlüsselverteilung in den Kommunikations- und Sicherheitsprotokollen des Internet eingesetzt.<br />
=Prinzp=<br />
[[Datei:dh1.png]]<br />
<br />
=Beispiel=<br />
Das folgende Beispiel dient zur Veranschaulichung und benutzt deshalb sehr kleine Zahlen. <br />
In der tatsächlichen Anwendung werden dagegen Zahlen mit mindestens mehreren hundert Stellen benutzt.<br />
==Berechnung==<br />
*Alice und Bob einigen sich auf die beiden öffentlichen Schlüssel <math>p = 13</math> und <math>g = 2</math>.<br />
*Alice wählt die Zufallszahl <math>a = 5</math> als geheimen Schlüssel.<br />
*Nun berechnet Alice <math>A = g^a\ \bmod\ p = 2^5\ \bmod\ 13 = 6</math> <br />
*Alice sendet <math>A</math> an Bob. <br />
*Bob wählt die Zufallszahl <math>b = 8</math> als geheimen Schlüssel<br />
*Bob berechnet <math>B = g^b\ \bmod\ p = 2^8\ \bmod\ 13 = 9</math> <br />
*Bob sendet <math>B</math> an Alice.<br />
*Alice berechnet <math>K_1 = B^a\ \bmod\ p = 9^5\ \bmod\ 13 = 3</math>. <br />
*Bob berechnet <math>K_2 = A^b\ \bmod\ p = 6^8\ \bmod\ 13 = 3</math>.<br />
*Beide erhalten das gleiche Ergebnis <math>K = K_1 = K_2 = 3</math>.<br />
<br />
==Sicherheit==<br />
*Die Lauscherin Eve kann zwar die Zahlen 13, 2, 6 und 9 mithören, <br />
*Das eigentliche gemeinsame Geheimnis von Alice und Bob <math>K = 3</math> bleibt ihr aber verborgen. <br />
*<math>K = 3</math> kann als Schlüssel für die nachfolgende Kommunikation verwendet werden.<br />
==Lauschen==<br />
*Mit Hilfe der abgefangenen Nachrichten kann Eve immerhin die folgenden Gleichungen aufstellen:<br />
*:<math>6 = 2^a\ \bmod\ 13</math><br />
*:<math>9 = 2^b\ \bmod\ 13</math><br />
*Daraus kann sie beispielsweise durch Ausprobieren die beiden geheimen Zahlen <math>a=5</math> und <math>b=8</math> bestimmen. <br />
*Den vereinbarten Schlüssel <math>K</math> von Alice und Bob kann sie nun mit<br />
*:<math>K = g^{ab}\ \bmod\ p</math> berechnen.<br />
*Wenn jedoch die Primzahl <math>p</math> groß genug gewählt wird und <math>g</math> <br />
*ein Generator der Gruppe <math>\Z_p^*</math> ist, ist es für Eve zu aufwändig, <br />
*um alle Zahlen zwischen <math>1</math> und <math>p-1</math> durchzuprobieren, <br />
*die als Resultat der modularen Potenz <math>g^a\ \bmod\ p</math> in Frage kommen<br />
==Script zum berechnen==<br />
*[[Diffie-Hellman-Script]]</div>
Thomas
https://xinux.net/index.php?title=Roundcube&diff=16452
Roundcube
2018-02-08T11:08:30Z
<p>Thomas: /* Enable php5enmod */</p>
<hr />
<div>=Install= <br />
*apt-get install apache2 mysql-server<br />
*apt-get install roundcube roundcube-mysql<br />
*dpkg-reconfigure roundcube-core<br />
=Enable phpenmod= <br />
*phpenmod mcrypt<br />
<br />
=Next create a symbolic link to apache's document root, in this case /var/www=<br />
*ln -s /usr/share/roundcube /var/www/html/roundcube<br />
<br />
=Restart Apache=<br />
*sudo service apache2 restart<br />
=Access with your Browser=<br />
http://myhostname.mydomainname.com/roundcube<br />
=Logdir=<br />
/var/log/roundcube/<br />
=Roundcube calendar Plugin installieren=<br />
==Plugin Manager installieren==<br />
von<br />
https://myroundcube.com/myroundcube-plugins/plugin-manager<br />
den Plugin Manager herunterladen (plugins.zip) und in das Verzeichnis<br />
/.../roundcube/<br />
entpacken<br />
<br />
==Plugin Manager aktivieren==<br />
<br />
vi /.../roundcube/config/config.inc.php<br />
<br />
// List of active plugins (in plugins/ directory)<br />
$rcmail_config['plugins'] = array('plugin_manager');<br />
Der naechste Benutzer, der sich anmeldet gilt als plugin manager admin benutzer.<br />
Dieser kann dann im Roundcube Frontende weitere Benutzer als Administratoren hinzufuegen.<br />
<br />
==Roundcube core files patches installieren==<br />
Download:<br />
https://mirror.myroundcube.com/dl/1.0.3/roundcube.zip<br />
und ueber die vorhandene roundcube Installation entpacken<br />
<br />
==Calendar Plugin installieren==<br />
im Plugin Manager von Roundcube:<br />
Manage Plugins -> Plugins downloads -->> 'I agree'<br />
Drauf achten, dass bei den gewünschten Plugins in der checkbox ein Häckchen hat und 'Zip-Archiv herunterladen' anklicken (zur Sicherheit am besten noch rechts unten 'kostenpflichtige Downloads abwählen' anklicken)<br />
folgnde Plugins auswählen (falls nicht schon installiert):<br />
calendar<br />
jqueryui<br />
jscolor<br />
qtip<br />
http_auth<br />
http_request<br />
timepicker<br />
db_version<br />
db_config<br />
Datei (plugins.zip) auf Server kopieren und in Roundcube Verzeichnis entpacken.<br />
<br />
Unter Preferences -> Manage Plugins -> Settings db_config aktivieren.<br />
<br />
==Calendar Plugin konfigurieren (Verwendung von db_config)==<br />
# Anmelden mit Plugin Manager Admin Account<br />
# Preferences -> Manage Plugins -> Settings -> Calendar : hier aktivieren<br />
<br />
im Menu Settings->Preferences ist nun ein weiterer Punkt Calendar, dort konfigurieren.<br />
<br />
==Zugriff auf caldav funktioniert nur mit dem calendar_plus Plugin (ab 8 Euro ??)==</div>
Thomas
https://xinux.net/index.php?title=IMAPS_LOGIN_CHECK&diff=16451
IMAPS LOGIN CHECK
2018-02-08T10:39:13Z
<p>Thomas: /* Connect */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Connect=<br />
*openssl s_client -connect yyy.tux.de:993<br />
...<br />
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.<br />
*. login leroy suxer<br />
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in<br />
*. list "" "*"<br />
* LIST (\HasNoChildren \Trash) "." Trash<br />
* LIST (\HasNoChildren \Sent) "." Sent<br />
* LIST (\HasNoChildren) "." INBOX<br />
. OK List completed (0.000 + 0.000 secs).<br />
*. Select INBOX<br />
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)<br />
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.<br />
* 8 EXISTS<br />
* 0 RECENT<br />
* OK [UNSEEN 6] First unseen.<br />
* OK [UIDVALIDITY 1518002926] UIDs valid<br />
* OK [UIDNEXT 9] Predicted next UID<br />
* OK [HIGHESTMODSEQ 12] Highest<br />
. OK [READ-WRITE] Select completed (0.000 + 0.000 secs)<br />
*. logout<br />
* BYE Logging out<br />
. OK Logout completed.<br />
closed</div>
Thomas
https://xinux.net/index.php?title=IMAPS_LOGIN_CHECK&diff=16450
IMAPS LOGIN CHECK
2018-02-08T10:32:46Z
<p>Thomas: /* Connect */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Connect=<br />
*openssl s_client -connect yyy.tux.de:993<br />
...<br />
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.<br />
*. login leroy suxer<br />
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in<br />
*. list "" "*"<br />
* LIST (\HasNoChildren \Trash) "." Trash<br />
* LIST (\HasNoChildren \Sent) "." Sent<br />
* LIST (\HasNoChildren) "." INBOX<br />
. OK List completed (0.000 + 0.000 secs).<br />
*. Select INBOX<br />
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)<br />
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.<br />
* 8 EXISTS<br />
* 0 RECENT<br />
* OK [UNSEEN 6] First unseen.<br />
* OK [UIDVALIDITY 1518002926] UIDs valid<br />
* OK [UIDNEXT 9] Predicted next UID<br />
* OK [HIGHESTMODSEQ 12] Highest<br />
. OK [READ-WRITE] Select completed (0.000 + 0.000 secs)</div>
Thomas
https://xinux.net/index.php?title=IMAPS_LOGIN_CHECK&diff=16449
IMAPS LOGIN CHECK
2018-02-08T10:28:29Z
<p>Thomas: </p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Connect=<br />
*openssl s_client -connect yyy.tux.de:993<br />
...<br />
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.<br />
*. login leroy suxer<br />
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in<br />
*. list "" "*"<br />
* LIST (\HasNoChildren \Trash) "." Trash<br />
* LIST (\HasNoChildren \Sent) "." Sent<br />
* LIST (\HasNoChildren) "." INBOX<br />
. OK List completed (0.000 + 0.000 secs).</div>
Thomas
https://xinux.net/index.php?title=IMAPS_LOGIN_CHECK&diff=16448
IMAPS LOGIN CHECK
2018-02-08T10:27:42Z
<p>Thomas: /* Connect */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Connect=<br />
*openssl s_client -connect yyy.tux.de:993<br />
...<br />
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.<br />
*. login leroy suxer<br />
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in</div>
Thomas
https://xinux.net/index.php?title=IMAPS_LOGIN_CHECK&diff=16447
IMAPS LOGIN CHECK
2018-02-08T10:26:59Z
<p>Thomas: /* Connect */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Connect=<br />
*openssl s_client -connect yyy.tux.de:993<br />
...<br />
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.</div>
Thomas
https://xinux.net/index.php?title=IMAPS_LOGIN_CHECK&diff=16446
IMAPS LOGIN CHECK
2018-02-08T10:26:50Z
<p>Thomas: /* Login Data */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Connect=<br />
*openssl s_client -connect yyy.tux.de:993<br />
---<br />
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.</div>
Thomas
https://xinux.net/index.php?title=IMAPS_LOGIN_CHECK&diff=16445
IMAPS LOGIN CHECK
2018-02-08T10:25:20Z
<p>Thomas: Die Seite wurde neu angelegt: „=Login Data= *user: leroy *pass: suxer“</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16444
Mailserver-Best-Practice
2018-02-08T10:24:56Z
<p>Thomas: /* Checks */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*[[Letsencrpyt Ubuntu 16.04]]<br />
*crontab -e<br />
0 */6 * * * /usr/bin/certbot renew --no-self-upgrade --pre-hook "systemctl stop postfix; systemctl stop dovecot" --post-hook "systemctl start postfix ; systemctl start dovecot"<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre><br />
=Restart=<br />
*systemdctl restart postfix<br />
*systemdctl restart dovecot<br />
=Tables=<br />
<pre><br />
mydestination = $myhostname, yaphit.tuxmen.de, localhost.tuxmen.de, localhost , hash:/etc/postfix/mydestinations<br />
alias_maps = hash:/etc/aliases<br />
transport_maps = hash:/etc/postfix/transport<br />
relocated_maps = hash:/etc/postfix/relocated<br />
virtual_maps = hash:/etc/postfix/virtual<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
</pre><br />
=Checks=<br />
*[[SMTPS AUTH PLAIN CHECK]]<br />
*[[IMAPS LOGIN CHECK]]</div>
Thomas
https://xinux.net/index.php?title=SMTPS_AUTH_PLAIN_CHECK&diff=16443
SMTPS AUTH PLAIN CHECK
2018-02-08T10:22:20Z
<p>Thomas: /* Connect */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Base64 encoded=<br />
*perl -MMIME::Base64 -e 'print encode_base64("\000leroy\000suxer")'<br />
AGxlcm95AHN1eGVy<br />
=Connect=<br />
*openssl s_client -host yyy.tux.de -port 465<br />
...<br />
220 yyy.tux.de ESMTP Postfix (Ubuntu)<br />
*ehlo host.wahnsinn.de<br />
250-yaphit.tuxmen.de<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
250-ETRN<br />
250-AUTH PLAIN<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
250-DSN<br />
250 SMTPUTF8<br />
*auth plain AGxlcm95AHN1eGVy<br />
235 2.7.0 Authentication successful<br />
*mail from: leroy@sux.de<br />
250 2.1.0 Ok<br />
*rcpt to: technik@xinux.de<br />
250 2.1.5 Ok<br />
*data<br />
354 End data with <CR><LF>.<CR><LF><br />
*Subject: testmail<br />
*<br />
*<br />
*Hallo Welt<br />
*und cu<br />
*.<br />
250 2.0.0 Ok: queued as 1F9B05A1702<br />
*quit<br />
221 2.0.0 Bye</div>
Thomas
https://xinux.net/index.php?title=SMTPS_AUTH_PLAIN_CHECK&diff=16442
SMTPS AUTH PLAIN CHECK
2018-02-08T10:20:23Z
<p>Thomas: /* Connect */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Base64 encoded=<br />
*perl -MMIME::Base64 -e 'print encode_base64("\000leroy\000suxer")'<br />
AGxlcm95AHN1eGVy<br />
=Connect=<br />
*openssl s_client -host yyy.tux.de -port 465<br />
...<br />
220 yyy.tux.de ESMTP Postfix (Ubuntu)<br />
*ehlo host.wahnsinn.de<br />
250-yaphit.tuxmen.de<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
250-ETRN<br />
250-AUTH PLAIN<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
250-DSN<br />
250 SMTPUTF8<br />
*auth plain AGxlcm95AHN1eGVy<br />
235 2.7.0 Authentication successful</div>
Thomas
https://xinux.net/index.php?title=SMTPS_AUTH_PLAIN_CHECK&diff=16441
SMTPS AUTH PLAIN CHECK
2018-02-08T10:15:37Z
<p>Thomas: /* Connect */</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Base64 encoded=<br />
*perl -MMIME::Base64 -e 'print encode_base64("\000leroy\000suxer")'<br />
AGxlcm95AHN1eGVy<br />
=Connect=<br />
*openssl s_client -host yyy.tux.de -port 465<br />
...<br />
220 yyy.tux.de ESMTP Postfix (Ubuntu)<br />
*ehlo host.wahnsinn.de<br />
250-yaphit.tuxmen.de<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
250-ETRN<br />
250-AUTH PLAIN<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
250-DSN<br />
250 SMTPUTF8<br />
*AUTH PLAIN AGxlcm95AHN1eGVy<br />
235 2.7.0 Authentication successful</div>
Thomas
https://xinux.net/index.php?title=SMTPS_AUTH_PLAIN_CHECK&diff=16440
SMTPS AUTH PLAIN CHECK
2018-02-08T10:13:14Z
<p>Thomas: Die Seite wurde neu angelegt: „=Login Data= *user: leroy *pass: suxer =Base64 encoded= *perl -MMIME::Base64 -e 'print encode_base64("\000leroy\000suxer")' AGxlcm95AHN1eGVy =Connect= *openss…“</p>
<hr />
<div>=Login Data=<br />
*user: leroy<br />
*pass: suxer<br />
=Base64 encoded=<br />
*perl -MMIME::Base64 -e 'print encode_base64("\000leroy\000suxer")'<br />
AGxlcm95AHN1eGVy<br />
=Connect=<br />
*openssl s_client -host yyy.tux.de -port 465<br />
...<br />
220 yyy.tux.de ESMTP Postfix (Ubuntu)<br />
*ehlo host.wahnsinn.de<br />
250-yaphit.tuxmen.de<br />
250-PIPELINING<br />
250-SIZE 10240000<br />
250-VRFY<br />
250-ETRN<br />
250-AUTH PLAIN<br />
250-ENHANCEDSTATUSCODES<br />
250-8BITMIME<br />
250-DSN<br />
250 SMTPUTF8</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16439
Mailserver-Best-Practice
2018-02-08T10:10:13Z
<p>Thomas: /* Tables */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*[[Letsencrpyt Ubuntu 16.04]]<br />
*crontab -e<br />
0 */6 * * * /usr/bin/certbot renew --no-self-upgrade --pre-hook "systemctl stop postfix; systemctl stop dovecot" --post-hook "systemctl start postfix ; systemctl start dovecot"<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre><br />
=Restart=<br />
*systemdctl restart postfix<br />
*systemdctl restart dovecot<br />
=Tables=<br />
<pre><br />
mydestination = $myhostname, yaphit.tuxmen.de, localhost.tuxmen.de, localhost , hash:/etc/postfix/mydestinations<br />
alias_maps = hash:/etc/aliases<br />
transport_maps = hash:/etc/postfix/transport<br />
relocated_maps = hash:/etc/postfix/relocated<br />
virtual_maps = hash:/etc/postfix/virtual<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
</pre><br />
=Checks=<br />
*[[SMTPS AUTH PLAIN CHECK]]</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16438
Mailserver-Best-Practice
2018-02-08T09:39:19Z
<p>Thomas: /* Tables */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*[[Letsencrpyt Ubuntu 16.04]]<br />
*crontab -e<br />
0 */6 * * * /usr/bin/certbot renew --no-self-upgrade --pre-hook "systemctl stop postfix; systemctl stop dovecot" --post-hook "systemctl start postfix ; systemctl start dovecot"<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre><br />
=Restart=<br />
*systemdctl restart postfix<br />
*systemdctl restart dovecot<br />
=Tables=<br />
<pre><br />
mydestination = $myhostname, yaphit.tuxmen.de, localhost.tuxmen.de, localhost , hash:/etc/postfix/mydestinations<br />
alias_maps = hash:/etc/aliases<br />
transport_maps = hash:/etc/postfix/transport<br />
relocated_maps = hash:/etc/postfix/relocated<br />
virtual_maps = hash:/etc/postfix/virtual<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
</pre></div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16437
Mailserver-Best-Practice
2018-02-07T15:29:43Z
<p>Thomas: /* Restart */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*[[Letsencrpyt Ubuntu 16.04]]<br />
*crontab -e<br />
0 */6 * * * /usr/bin/certbot renew --no-self-upgrade --pre-hook "systemctl stop postfix; systemctl stop dovecot" --post-hook "systemctl start postfix ; systemctl start dovecot"<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre><br />
=Restart=<br />
*systemdctl restart postfix<br />
*systemdctl restart dovecot<br />
=Tables=<br />
<pre><br />
alias_maps = hash:/etc/aliases<br />
transport_maps = hash:/etc/postfix/transport<br />
relocated_maps = hash:/etc/postfix/relocated<br />
virtual_maps = hash:/etc/postfix/virtual<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
</pre></div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16436
Mailserver-Best-Practice
2018-02-07T14:14:35Z
<p>Thomas: /* Install letsencrypt */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*[[Letsencrpyt Ubuntu 16.04]]<br />
*crontab -e<br />
0 */6 * * * /usr/bin/certbot renew --no-self-upgrade --pre-hook "systemctl stop postfix; systemctl stop dovecot" --post-hook "systemctl start postfix ; systemctl start dovecot"<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre><br />
=Restart=<br />
*systemdctl restart postfix<br />
*systemdctl restart dovecot</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16435
Mailserver-Best-Practice
2018-02-07T14:10:28Z
<p>Thomas: /* SSL Verschlüsselung */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*[[Letsencrpyt Ubuntu 16.04]]<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre><br />
=Restart=<br />
*systemdctl restart postfix<br />
*systemdctl restart dovecot</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16434
Mailserver-Best-Practice
2018-02-07T13:55:02Z
<p>Thomas: /* Config */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre><br />
=Restart=<br />
*systemdctl restart postfix<br />
*systemdctl restart dovecot</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16433
Mailserver-Best-Practice
2018-02-07T13:54:19Z
<p>Thomas: </p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
=Sasl2 over Dovecot=<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre></div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16432
Mailserver-Best-Practice
2018-02-07T13:52:42Z
<p>Thomas: /* Config */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_path = smtpd<br />
broken_sasl_auth_clients = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer<br />
=Dovecot=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir<br />
*/etc/dovecot/conf.d/10-master.conf<br />
<pre><br />
service auth {<br />
unix_listener auth-userdb {<br />
#mode = 0666<br />
#user = <br />
#group = <br />
}<br />
unix_listener /var/spool/postfix/private/auth {<br />
mode = 0666<br />
}<br />
}<br />
</pre></div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16430
Mailserver-Best-Practice
2018-02-07T11:38:00Z
<p>Thomas: /* main.cf */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_path = smtpd<br />
broken_sasl_auth_clients = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer<br />
=Dovecote=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16429
Mailserver-Best-Practice
2018-02-07T11:36:18Z
<p>Thomas: /* Install Procmail */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_path = smtpd<br />
broken_sasl_auth_clients = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer<br />
=Dovecote=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16428
Mailserver-Best-Practice
2018-02-07T11:24:48Z
<p>Thomas: /* Dovecote */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_path = smtpd<br />
broken_sasl_auth_clients = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer<br />
=Dovecote=<br />
==Install==<br />
*apt-get install dovecot-core dovecot-imap<br />
==Config==<br />
*/etc/dovecot/conf.d/10-ssl.conf <br />
ssl = yes<br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
*/etc/dovecot/conf.d/10-mail.conf<br />
mail_location = maildir:~/Maildir</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16427
Mailserver-Best-Practice
2018-02-07T11:19:50Z
<p>Thomas: </p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_path = smtpd<br />
broken_sasl_auth_clients = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer<br />
=Dovecote=<br />
*apt-get install dovecot-core dovecot-imap</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16426
Mailserver-Best-Practice
2018-02-07T11:18:01Z
<p>Thomas: /* Config */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_path = smtpd<br />
broken_sasl_auth_clients = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16425
Mailserver-Best-Practice
2018-02-07T11:17:13Z
<p>Thomas: /* Config */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
*/etc/postfix/main.cf<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_sasl_path = smtpd<br />
broken_sasl_auth_clients = yes<br />
<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16424
Mailserver-Best-Practice
2018-02-07T11:16:13Z
<p>Thomas: /* Config */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
==Test==<br />
*testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u leroy -p suxer</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16423
Mailserver-Best-Practice
2018-02-07T11:15:03Z
<p>Thomas: /* Install and config sasl */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Sasl2=<br />
==Install==<br />
*apt-get install sasl2-bin<br />
==Config==<br />
*/etc/postfix/sasl/smtpd.conf<br />
pwcheck_method: saslauthd<br />
mech_list: PLAIN LOGIN<br />
saslauthd_path: /var/run/saslauthd/mux<br />
*/etc/default/saslauthd<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16422
Mailserver-Best-Practice
2018-02-07T11:10:40Z
<p>Thomas: /* Install letsencrypt */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyy.tuxmen.de<br />
<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Install and config sasl=<br />
*apt-get install sasl2-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16421
Mailserver-Best-Practice
2018-02-07T11:10:32Z
<p>Thomas: /* main.cf */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyyy.tuxmen.de<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yyy.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yyy.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Install and config sasl=<br />
*apt-get install sasl2-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16420
Mailserver-Best-Practice
2018-02-07T11:10:15Z
<p>Thomas: /* master.cf changed */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyyy.tuxmen.de<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
==main.cf==<br />
<pre><br />
smtpd_tls_cert_file = /etc/letsencrypt/live/yaphit.tuxmen.de/fullchain.pem<br />
smtpd_tls_key_file = /etc/letsencrypt/live/yaphit.tuxmen.de/privkey.pem<br />
smtpd_tls_security_level = may<br />
smtpd_tls_received_header = yes<br />
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination<br />
</pre><br />
<br />
=Install and config sasl=<br />
*apt-get install sasl2-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16419
Mailserver-Best-Practice
2018-02-07T11:08:33Z
<p>Thomas: /* SSL Verschlüsselung */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
==Install letsencrypt==<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyyy.tuxmen.de<br />
==master.cf changed==<br />
<pre><br />
smtps inet n - y - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject<br />
</pre><br />
<br />
=Install and config sasl=<br />
*apt-get install sasl2-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16418
Mailserver-Best-Practice
2018-02-07T11:07:01Z
<p>Thomas: /* SSL Verschlüsselung */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
*sudo apt install letsencrypt<br />
*letsencrypt certonly --standalone -d yyyy.tuxmen.de<br />
<br />
=Install and config sasl=<br />
*apt-get install sasl2-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16417
Mailserver-Best-Practice
2018-02-07T10:17:07Z
<p>Thomas: /* Config of Postfix */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=SSL Verschlüsselung=<br />
<br />
=Install and config sasl=<br />
*apt-get install sasl2-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16416
Mailserver-Best-Practice
2018-02-07T10:13:45Z
<p>Thomas: /* Install and config sasl */</p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=Install and config sasl=<br />
*apt-get install sasl2-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Best-Practice&diff=16415
Mailserver-Best-Practice
2018-02-07T10:12:20Z
<p>Thomas: </p>
<hr />
<div>=Prepare Maildirs=<br />
*mkdir -p /etc/skel/Maildir/new<br />
*mkdir -p /etc/skel/Maildir/cur<br />
*mkdir -p /etc/skel/Maildir/tmp<br />
=Install Postfix=<br />
*apt-get install postfix<br />
=Install Procmail=<br />
*apt-get install procmail<br />
<br />
=Postfix Service Handling=<br />
*systemctl start postfix.service<br />
*systemctl restart postfix.service<br />
*systemctl stop postfix.service<br />
*systemctl status postfix.service<br />
=Config of Postfix=<br />
*/etc/postfix/master.cf<br />
*/etc/postfix/main.cf<br />
=Install and config sasl=<br />
*apt-get install sasl-bin</div>
Thomas
https://xinux.net/index.php?title=Mailserver&diff=16409
Mailserver
2018-02-07T08:29:47Z
<p>Thomas: </p>
<hr />
<div>*[[Mailserver-Komplett]]<br />
*[[Mailserver-Best-Practice]]<br />
*[[Openrelay check]]<br />
*[[Mail tools]]<br />
*[[imap befehle]]<br />
*[[postfix]]<br />
*[[postfix-commands]]<br />
*[[dovecot]]<br />
*[[roundcube]]<br />
*[[spamassassin]]<br />
*[[Greylisting]]<br />
*[[qmail.schema]]<br />
*[[postfix ldap]]<br />
*[[postfix Backup MX]]<br />
=Links=<br />
*http://www.whisperedshouts.de/dokumente/postfix-und-ldap-part-1-openldap-konfigurieren<br />
*http://wanderingbarque.com/howtos/mailserver/mailserver.html<br />
*http://acidx.net/wordpress/2014/06/installing-a-mailserver-with-postfix-dovecot-sasl-ldap-roundcube/<br />
*http://davmail.sourceforge.net/index.html<br />
<br />
=Migration=<br />
*[[imapsync]]<br />
*http://wiki2.dovecot.org/Migration<br />
*http://www.scalix.com/forums/viewtopic.php?f=9&t=14116</div>
Thomas
https://xinux.net/index.php?title=Mailserver-Komplett&diff=16408
Mailserver-Komplett
2018-02-07T08:16:14Z
<p>Thomas: /* SMTP-Versand per telnet */</p>
<hr />
<div><br />
<br />
Die “Internet text messages” waren eine der ersten Anwendungen des Internet. Es war damals eine fantastische Vorstellung, Textnachrichten innerhalb von Sekunden von einem Rechner zu einem anderen über Tausende von Kilometern hinweg zuzustellen.<br />
Heute werden diese text messages E-Mails genannt. Für deren Transport haben sich zwei verschiedene Protokolle herauskristallisiert. <br />
Simple Mail Transfer Protocol (SMTP)<br />
Unix to Unix Copy (UUCP)<br />
SMTP wird heute für fast alle E-Mails verwendet. Es definiert die Kommunikation von Start- und Zielrechner per TCP/IP zur Übermittlung der Nachrichten. Das UUCP-Protokoll dient eigentlich dazu, Dateien von einem Unixrechner zu einem anderen zu kopieren. Hierbei werden im ersten Schritt Dateien zum Kopieren vorgemerkt (gespoolt). Dann wird im zweiten Schritt eine Verbindung zum anderen Rechner aufgebaut, wobei es mehrere Arten der Kontaktaufnahme gibt, z.B. direkte Modemverbindung oder TCP/IP. Danach werden über diese Verbindung die Dateien zum Zielrechner kopiert.<br />
Da die mit UUCP zu kopierenden Dateien vor der Übertragung komprimiert werden können, eignet es sich gut für Systeme mit langsamen Netzverbindungen oder Wählleitungen.<br />
Da UUCP keine TCP/IP-Verbindung erfordert, eignet es sich ideal zur E-Mail-Anbindungvon Hochsicherheitssystemen<br />
Die Konfiguration von UUCP wird nur noch in Einzelfällen benötigt, so dass sich dieses Skript auf SMTP beschränkt.<br />
<br />
=Arbeitsweise des Protokolls SMTP=<br />
Die Aufgabe von SMTP ist der zuverlässige und effiziente Transport von Mail (Senden und Empfangen). SMTP ist unabhängig von dem unterliegenden Netzprotokoll, normalerweise wird jedoch TCP verwendet und die Kommunikation geht über den TCP-Port 25.<br />
Der Sender erhält vom Benutzer den Auftrag, eine Mail zuzustellen. Dieser baut nun eine bidirektionale Verbindung zum Empfänger auf, der entweder das direkte Ziel der Nachricht oder ein Nachrichtenübermittler auf der Strecke zum Ziel ist. Im letzteren Falle sorgt dieser für die weitere Verbindung zum Zielrechner. Der Sender schickt Kommandos, die vom Empfänger akzeptiert oder abgelehnt werden können. Dieser ist nun für die Zustellung beim Benutzer verantwortlich. <br />
Anders als bei UUCP werden die Mails sofort zugestellt, sofern der Empfänger erreichbar ist<br />
<br />
==SMTP-Versand per telnet==<br />
Diese Kommunikation erfolgt in einzelnen Schritten, die alle nacheinander auszuführen sind:<br />
Angabe des Absenders<br />
Syntax<br />
MAIL FROM: <Absender><br />
Zuerst ist anzugeben, wer die E-Mail verschickt.<br />
MAIL FROM: thomas@xinux.de<br />
<br />
Angabe des Empfängers<br />
Syntax<br />
RCPT TO: <Empfänger><br />
Danach folgt der Empfänger der Nachricht; um sie an mehrere Empfänger zu verschicken, verwendet man dieses Kommando einfach mehrmals.<br />
<br />
RCPT TO: martin@tuxmen.de<br />
Übertragung des E-Mailtextes<br />
Syntax<br />
DATA <Text> .<br />
Nach dem DATA-Kommando werden alle folgenden Zeilen als Nachrichtentext interpretiert, bis ein einzelner Punkt am Zeilenanfang eingegeben wird.Als Subject geben <br />
wir “testmail von thomas” an.<br />
<br />
DATA<br />
Subject: testmail von thomas<br />
<br />
Hallo Martin!<br />
Dies ist eine Testmail per SMTP.<br />
.<br />
Beenden der Übertragung<br />
Syntax<br />
QUIT<br />
Man kann über eine Verbindung mehrere E-Mails verschicken; am Ende muss man QUIT eingeben, um die Verbindung ordentlich zu trennen.<br />
QUIT<br />
Und hier nochmal komplett:<br />
<br />
<pre><br />
pate:/etc/postfix# telnet neelix.talaxia.de 25<br />
Trying 85.10.194.199...<br />
Connected to neelix.talaxia.de.<br />
Escape character is '^]'.<br />
220 neelix.talaxia.de ESMTP Postfix (Debian/GNU)<br />
MAIL FROM: thomas@xinux.de<br />
250 Ok<br />
RCPT TO: martin@tuxmen.de<br />
250 Ok<br />
DATA<br />
354 End data with <CR><LF>.<CR><LF><br />
Subject: testmail von thomas<br />
<br />
Hallo Martin!<br />
Dies ist eine Testmail per SMTP.<br />
<br />
gruss<br />
<br />
Thomas<br />
.<br />
250 Ok: queued as D44DF99009B<br />
QUIT<br />
221 Bye<br />
</pre><br />
<br />
==Voraussetzungen für den Versand über SMTP==<br />
Damit ein Rechner E-Mail empfangen kann, muss er ständig eingeschaltet sein. Da dies für die meisten Client-Rechner nicht der Fall ist, gibt es so genannte Mailserver, die ständig aktiv sind und E-Mails für eine ganze Reihe von Benutzern empfangen und zwischenspeichern können<br />
Die ständige Verfügbarkeit oder der passende MX-Eintrag des zuständigen DNS-Servers sind allgemein Voraussetzung für den Empfang von E-Mail<br />
<br />
==Weitere Möglichkeiten für den Versand von E-Mail==<br />
Wir wissen nun, wie E-Mail zum zuständigen SMTP-Server des Empfängers übermittelt wird. Es stellt jedoch häufig für den Sender ein Problem dar, den SMTP-Server direkt zu erreichen. So kann es sein, dass unter Umständen der SMTP-Server vorübergehend nicht erreichbar ist. Das kann vorkommen, wenn der Sender nur über eine Wählverbindung mit dem Internet verbunden ist oder wenn der SMTP-Server ausgefallen ist. Der Client müsste also beim Versenden jeder Mail eine Verbindung ins Internet aufbauen oder ggf. zu einem späteren Zeitpunkt probieren, die Mail zu versenden. Die Verbindung ins Internet ist in vielen Fällen auch durch eine Firewall gesperrt. Um diesen Problemen aus dem Weg zu gehen, haben SMTP-Server noch eine weitere Funktion:<br />
Der Sender benutzt häufig seinen eigenen SMTP-Server, um ausgehende Mail zu versenden. Dieser kann sich dann darum kümmern, dass die Mail zum SMTP-Server des Empfängers transportiert wird. Somit kann die Mail - ohne Zutun des Senders - auch erst ausgeliefert werden, wenn der SMTP-Server des Empfängers erreichbar ist. Die Einrichtung des Clients ist recht einfach, da nur der eigene Mail-Server einzutragen ist. Früher war es üblich, dass E-Mails über mehrere SMTP-Server transportiert wurden, bis sie den Empfänger erreichte (Mail Relaying), heute stellt der sendende Mailserver dem Mailserver des Empfängers die Mail in der Regel direkt zu.<br />
=Sendmail=<br />
Sendmail war lange Zeit Standardprogramm zum E-Mail-Transport im Internet . Seine Popularität verdankt es nicht zuletzt seiner Flexibilität, die eine Konfiguration allerdings erschwert. Leider ist der monolithische Sendmail alles andere als leicht zu pflegen. In solch ein "Multifunktions-Tool" schleichen sich zwangsläufig Fehler ein - eine neue Sicherheitslücke in Sendmail gehörte in der Vergangenheit zu den Treppenwitzen der Internet-Geschichte schlechthin.<br />
<br />
=Alternativen=<br />
<br />
Die beiden am häufigsten eingesetzten (freien) Alternativen zu Sendmail sind Dan Bernsteins Qmail und Postfix von Wietse Venema. Beide sind wie Sendmail im Quelltext frei verfügbar - Qmail unter der GPL, Postfix unter einer von der Mozilla Public License abgeleiteten Lizenz von IBM - und beide sind einfacher zu handhaben als das altehrwürdige Sendmail.<br />
<br />
<br />
=Postfix=<br />
<br />
Wieste's Ziel bei der Entwicklung von Postfix war, ein schnelles, einfach zu administrierendes und sicheres Programm(paket) zu entwickeln, das so weit wie möglich zu Sendmail kompatibel sein soll. Das Interessanteste an Postfix ist sein innerer Aufbau (siehe Grafik): es besteht aus mehreren kleinen Programmen, die über UNIX-Domain-Sockets kommunizieren. Auf diese Weise ist es viel einfacher, Probleme, Fehler oder Sicherheitsmängel in den Griff zu bekommen. Beispielsweise kommt Postfix ganz ohne setuid-M©chanismen aus. Deshalb ist es für einen potenziellen Angreifer unmöglich, Superuser-Rechte zu bekommen - selbst wenn er ein Sicherheitsloch von Postfix gefunden hätte. Sendmail hingegen muß unter UID 0 (root) laufen, zumindest in einer Standardinstallation und ohne größere Klimmzüge. <br />
Ebenfalls aus Sicherheitsgründen arbeitet Postfix mit vier verschiedenen Queues: "maildrop", "incoming", "active" und "deferred". Lokal gesendete Mails landen in "maildrop" und werden von dort in die "incoming"-Queue kopiert, nachdem sie regelbasiert auf Größe, Inhalt und anderes überprüft wurden. In der "active" Queue landen die Mails, die der Queue-Manager gerade bearbeitet und ausliefert (lokal oder remote). Nachrichten, die Postfix nicht ausliefern kann (Dienst des Zielmailservers reagiert nicht, keine Route, keine Netzverbindung, ...), landen in der "deferred" Queue. Da Postfix immer nur eine Mail gleichzeitig bearbeitet und die "active" Queue klein hält, ist es unempfindlich gegen Ressourcenknappheit. Das Bearbeiten/Ausliefern von Mails kann also in keinem Fall, beispielsweise wegen eines vollen Dateisystems, blockiert werden. <br />
<br />
<br />
<br />
Die Grafik zeigt den modularen Aufbau von Postfix. Hierbei bedeuten: <br />
gelbe Ellipsen Programme <br />
gelbe Kästen Mail-Queues oder -Dateien <br />
blaue Kästen (Nachschlage-) Tabellen <br />
Programme in der umrandeten Box laufen unter der Kontrolle des Postfix master Daemons. <br />
Dateien in diesem Kasten gehören dem Postfix-Mail-System. <br />
[[Datei:queue.jpg]]<br />
<br />
<br />
==Installation von Postfix==<br />
<br />
Vobereitung: Im Verzeichniss /etc/skel sollte folgende Verzeichnisstruktur angelegt werden:<br />
<br />
pate:/etc/skel# tree .<br />
.<br />
`-- Maildir<br />
|-- cur<br />
|-- new<br />
`-- tmp<br />
<br />
4 directories, 0 files<br />
<br />
oder Maildir Vorlage anlegen<br />
mkdir -p /etc/skel/Maildir/new<br />
mkdir -p /etc/skel/Maildir/cur<br />
mkdir -p /etc/skel/Maildir/tmp<br />
<br />
Wir brauchen das für den courier imap Server (kommt weiter unten) <br />
<br />
<br />
Installiert wird Postfix mit dem Befehl <br />
apt-get install postfix<br />
Da auf einem Debiansyste meistens exim vorinstalliert ist und es sich bei Mailservern um Highländerpakete handelt wird vorgeschlagen exim zu entfernen.Dieses kann man bejahren.Danach gehts los mit der Debian-Konfiguration:<br />
[[Datei:mail1.jpg]]<br />
[[Datei:mail2.jpg]]<br />
[[Datei:mail3.jpg]]<br />
[[Datei:mail4.jpg]]<br />
<br />
==Dateien und Verzeichnisse==<br />
<br />
<br />
<br />
postfix startet oder stoppt das Postfix-System<br />
<br />
postalias erzeugt die aliases-table für Postfix aus /etc/aliases, das Pendant zu postmap<br />
<br />
postcat zeigt den Inhalt der Queues an <br />
<br />
postconf listet alle Variablen aus der Postfix-Konfiguration auf,kann aber auch gleichzeitig Einstellungen in der main. cf verändern! So kann man bequem aus Skripten heraus die Postfix-Konfiguration anpassen.<br />
<br />
postdrop nimmt e-Mails auf der Kommandozeile an und speist sie in die Queues ein<br />
<br />
postkick sendet an einzelne Postfix-Module Steuerbefehle<br />
<br />
postlock lockt für Postfix Mailboxen, kann in Skripten eingesetzt werden<br />
<br />
postlog erzeugt eine Logmeldung für syslogd<br />
<br />
postmap wandelt alle Tables von Postfix vom Text-Format in das hash-Format (. db). Neben<br />
mailq das wohl wichtigste Tool<br />
<br />
postqueue listet die Mailqueue oder startet die Auslieferung daraus (flush); wird von mailq aufgerufen.<br />
<br />
postsuper verwaltet die Postfix-Queue<br />
<br />
mailq listet den Inhalt der Mailqueues auf und zeigt den aktuellen Versandstatus oder Versandprobleme; ersetzt mailq von Sendmail.<br />
<br />
newaliases ersetzt das Sendmail-Programm newaliases und ist im Prinzip postalias nur unter einem anderen Namen.<br />
<br />
sendmail Sendmail-kompatibles Interface für lokal erzeugte Mails. Es verhält sich exakt so, wie sich auch das Original verhalten würde, übergibt die e-Mails dann aber sofort an postdrop.<br />
<br />
==Dateien und Verzeichnisse==<br />
<br />
<br />
Da sich die Konfiguration von Postfix über mehrere Dateien erstreckt, ist es von Bedeutung, dass man die wichtigsten davon kennt, bevor man mit der Konfiguration beginnt<br />
<br />
==Konfigurationdateien==<br />
<br />
Postfixmaster Programm<br />
/usr/sbin/postfix <br />
<br />
Startdatei von postfix <br />
/etc/init.d/postfix start|stop|restart<br />
<br />
Module und Unterprogramme <br />
/usr/lib/postfix<br />
<br />
Dokumentation<br />
/usr/share/doc/postfix<br />
<br />
Mailqueue Ordner<br />
/var/spool/postfix<br />
<br />
==Konfigurationverzeichnis /etc/postfix==<br />
===master.cf - Prozess Masterkonfigurationsdatei===<br />
Aufbau der Datei master.cf<br />
<br />
Das Postfix Paket selbst bringt ausführlich kommentierte Konfigurationsdateien mit. Der größte Teil der master.cf besteht aus Erläuterungen. Die Konfiguration erfolgt zeilenweise in einer Tabellenähnlichen Datenstruktur. Jede Zeile definiert hier eine Komponente des Postfixsystems, die vom Masterprozess gestartet werden kann. Die einzelnen Spalten steuern wie und wann der zentrale Daemon die jeweiligen Prozesse startet oder stoppt.<br />
<br />
Eine Konfigurationszeile der Konfigurationsdatei beginnt immer in der ersten Spalte. Nach einem Zeilenumbruch wird sie nach einem Whitespace fortgesetzt. Es werden also keine \ benötigt um Zeilenumbrüche zu maskieren. <br />
Bedeutung der einzelnen "Spalten"<br />
Jede Konfigurationszeile ist in maximal 8 Spalten unterteilt. Die Spalten werden durch Whitespaces voneinander getrennt. In jeder Zeile haben die einzelnen Spalten dieselbe Bedeutung für die jeweilige Teilkomponente. Einige der Spalten sind mit einem Defaultwert vorbelegt. Wenn in dieser Spalte ein "-" eingetragen wird kommt der Defaultwert zum tragen. <br />
*service <br />
Hier wird der Service-Typ eingetragen, der zur folgenden Typ-Spalte passen muß. Jeder Bezeichner in dieser Spalte muss eindeutig sein. <br />
Services, die in der zweiten Spalte als inet definiert werden, müssen auf eine Portnummer aufgelöst werden können. Das heisst, das dem hier eingetragenen Service in der Datei /etc/services eine Portnummer zugeordnet sein muss. Alternativ zum Eintrag in /etc/services kann auch direkt eine Portnummer angegeben werden. Der Portnummer oder dem Dienstbezeichner kann noch ein Hostname oder eine IP-Adresse vorangestellt werden. Der Master Daemon bindet sich dann nur an das konfigurierte Interface. Ein Eintrag hier kann also im Format [host|ip:]<service|port> (z.B: localhost:smtp) eingetragen werden<br />
Ein hier angegebener Bezeichner für einen Service kann in einem transport adressiert werden. Dieses ist z.B. die empfohlene Vorgehensweise um die E-Mail an Cyrus Mailboxen auszuliefern.<br />
*type <br />
Dieses Feld bietet die Möglichkeit den Typ des in Spalte 1 definierten Services festzulegen. Mögliche Typen sind inet für Internet Sockets, unix für Unix-Domain Sockets und fifo für Named Pipes.<br />
Falls eine E-Mail an ein Programm übergeben werden soll, wird in der master.cf ein Service des Typs unix eingestellt. In der "command" Spalte wird das Kommando pipe eingestellt, das eine E-Mail an ein externes Programm übergibt. <br />
*private (Default ja) <br />
Ein als privat gekennzeichneter Dienst darf nur vom Postfix-Mailsystem selbst angesprochen werden. Dieses ist auch die Defaulteinstellung. Dienste die als Internet Sockets definiert sind müssen als öffentlich ("n") deklariert werden.<br />
*unpriv (Default ja) <br />
Der Parameter unpriv legt fest, ob der Dienst mit mit der Userid eines unprivilegierten Accounts gestartet werden soll oder als root. Die Benutzer ID des unprivilegierten Accounts wird in main.cf mit dem Parameter mail_owner bestimmt. Wenn der Dienst mit den Rechten von root gestartet werden soll, wird hier ein "n" eingetragen.<br />
*chroot <br />
Mit chroot wird bestimmt, ob der Prozess in einer chroot Umgebung laufen soll. Die Basis dieser Umgebung ist das Verzeichnis in dem die Mail Queues von Postfix installiert sind. Dieses Verzeichnis wird mit Hilfe des Parameters queue_directory in der main.cf bestimmt. Alle Prozesse mit Ausnahme der als PIPE definierten und den Daemons die die virtuelle oder lokale Auslieferung von E-Mail übernehmen, können chroot gestartet werden.<br />
*wakeup <br />
Hier wird eingestellt, ob der in der "command" Spalte eingestellte Prozess in regelmässigen Abständen Aktionen durchführen soll, wie z.B. das Leeren die Queue.<br />
*maxproc <br />
Die maximale Anzahl Prozesse, die von diesem Service gestartet werden können.<br />
*command <br />
Das zu startende Kommando. Der Pfad ist relativ zum Postfix Kommandoverzeichnis (kann mit dem Parameter program_directory in main.cf eingestellt werden).<br />
*args <br />
Die Argumente, die dem Kommando der Spalte "command" übergeben werden. Für die von Postfix selbst bereitgestellten Kommandos kann hier mit Hilfe eines oder mehreren -v Schaltern ein umfangreicheres Logging eingestellt werden.<br />
Das Pipe Kommando bietet die umfangreichste Liste von möglichen Argumenten. Die Bedeutung der einzelnen Parameter ist in der Manpage pipe(8) dokumentiert. <br />
<pre><br />
#======================================================================<br />
# service type private unpriv chroot wakeup maxproc command + args<br />
# (yes) (yes) (yes) (never) (100)<br />
#======================================================================<br />
smtp inet n - - - - smtpd<br />
pickup fifo n - - 60 1 pickup<br />
cleanup unix n - - - 0 cleanup<br />
qmgr fifo n - - 300 1 qmgr<br />
rewrite unix - - - - - trivial-rewrite<br />
bounce unix - - - - 0 bounce<br />
defer unix - - - - 0 bounce<br />
trace unix - - - - 0 bounce<br />
verify unix - - - - 1 verify<br />
flush unix n - - 1000? 0 flush<br />
proxymap unix - - n - - proxymap<br />
smtp unix - - - - - smtp<br />
relay unix - - - - - smtp<br />
showq unix n - - - - showq<br />
error unix - - - - - error<br />
local unix - n n - - local<br />
virtual unix - n n - - virtual<br />
lmtp unix - - n - - lmtp<br />
anvil unix - - n - 1 anvil<br />
maildrop unix - n n - - pipe<br />
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}<br />
uucp unix - n n - - pipe<br />
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)<br />
ifmail unix - n n - - pipe<br />
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)<br />
bsmtp unix - n n - - pipe<br />
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -d -t$nexthop -f$sender $recipient<br />
scalemail-backend unix - n n - 2 pipe<br />
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}<br />
</pre><br />
<br />
===main.cf - Hauptkonfigurationsdatei===<br />
<br />
wird angezeigt wenn man ein telnet hostname 25 macht<br />
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)<br />
<br />
aktiviert die zusammenarbeit mit dem biff daemon<br />
dieser zeigt auf de konsole an das mails eingegangen sind<br />
biff = no<br />
<br />
wenn ein name kein fqdn ist ,wird der domainname angehaengt<br />
append_dot_mydomain = no<br />
<br />
der fqdn der mailservers<br />
myhostname = pate.provider.int<br />
<br />
die domain des mailservers<br />
mydomain = provider.int<br />
<br />
hostname der bei der lokalen erzeigung von emails benutzt wird<br />
myorigin = /etc/mailname<br />
<br />
tabelle der mailaliasen<br />
alias_maps = hash:/etc/aliases<br />
<br />
canonical tabelle der sender adressen<br />
sender_canonical_maps = hash:/etc/postfix/canonical<br />
<br />
transport tabelle => mailertable bei sendmail<br />
transport_maps = hash:/etc/postfix/transport<br />
<br />
virtuall tabelle<br />
virtual_maps = hash:/etc/postfix/virtual<br />
<br />
relocated_maps = hash:/etc/postfix/relocated<br />
<br />
header_check = rexexp:/etc/postifx/header_check<br />
<br />
domain fuer die postfix "final destination ist" ist. sie werden local zugestellt<br />
mydestination = $myhostname, $mydomain, /etc/postfix/mydestination<br />
<br />
ip nummern, die bei permit_mynetworks, permit_auth_destination und<br />
reject_unauth_destination relayen duerfen<br />
mynetworks = 127.0.0.0/8, 192.168.86.0/24, 192.168.254.22<br />
<br />
<br />
host ueber den alle ausgehenden mails geschickt werden, der mx record wird ignoriert<br />
relayhost = neelix.talaxia.de<br />
<br />
restrictions nach dem "RCPT TO:" abgesetzt wurde<br />
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access<br />
permit_mx_backup<br />
permit_mynetwork<br />
check_relay_domains<br />
<br />
das programm das die mails an die localen postfaechern zustellt<br />
mailbox_command = procmail -a "$EXTENSION"<br />
<br />
maximal groesse der userpostfaecher danach wird gebounced<br />
mailbox_size_limit = 0<br />
<br />
trennzeichen um in der empfaenger adresse die maibox extention abzutrennen<br />
recipient_delimiter = +<br />
<br />
ip nummern auf denen postfix einen port oeffnet<br />
inet_interface = all<br />
nicht fqdn-namen in der mailadresse wird die §mydomain angehängt<br />
append_dot_mydomain = yes<br />
<br />
===Die Tabellen=== <br />
Die Tabellen bei Postfix werden als normale ASCII-Textdateien angelegt. Sie müssen danach noch in ein Datenbankformat umgewandelt werden. Dazu stehen zwei Tools zur verfügung.<br />
*postalias für die aliases-tabelle<br />
*postmap für den rest <br />
<br />
<br />
====alias_maps = hash:/etc/aliases====<br />
Die aliases-table definiert Mailaliase. Damit lassen sich lokale Adressen umschreiben und Mails in andere Postfächer umleiten. Sie liegt historischen Gründen im gegensatz zu den anderen Tabellen nicht unter /etc/postfix. <br />
<br />
<pre><br />
#/etc/aliases<br />
mailer-daemon: postmaster<br />
postmaster: root<br />
nobody: root<br />
hostmaster: root<br />
usenet: root<br />
news: root<br />
webmaster: root<br />
www: root<br />
ftp: root<br />
abuse: root<br />
noc: root<br />
security: root<br />
technik: thomas,martin,tina <br />
</pre><br />
Danach wird in das Datenbankformat umgewandelt: postalias /etc/aliases<br />
====virtual_maps = hash:/etc/postfix/virtual====<br />
Damit lassen sich alle Adressen umschreiben. <br />
Folgende Kriterien gelten hierbei: <br />
<pre><br />
user@domain.de genau diese Mailadresse<br />
@domain.de alle Adressen dieser Domain<br />
user dieser User bei beliebigen Domains <br />
domain.de definiert diese Domain als virtuelle Domain<br />
<br />
<br />
#allgemeines freischalten der virtuellen domains. das blabla dient nur als platzhalter. <br />
<br />
apfel.int blabla<br />
birne.int blabla<br />
delicius.int blabla<br />
<br />
#vertrieb@apfel.int wird hier dem lokalen konto apfel-vertieb zu geordnet. <br />
vertrieb@apfel.int apfel-vertrieb<br />
#webmaster@apfel.int wird hier dem lokalen apfel-webmaster zu geordnet.<br />
webmaster@apfel.int apfel-webmaster<br />
<br />
#alles an die domain delicius.int wird hier dem lokalen apfel-sammel zu geordnet.<br />
@delicius.int apfel-sammel<br />
<br />
vertrieb@birne.int birne-vertrieb<br />
webmaster@birne.int birne-webmaster<br />
<br />
vertrieb@provider.int provider-vertrieb<br />
webmaster@provider.int provider-webmaster<br />
</pre><br />
<br />
Danach wird in das Datenbankformat umgewandelt: postmap /etc/postfix/virtual<br />
<br />
====sender_canonical_maps = hash:/etc/postfix/canonical====<br />
<br />
Auch die canonical-Tabellen können Mailadressen umschreiben. Sie sind jedoch in der lage auch Absendeadressen umzuschreiben so ist es möglich. unschöner Absendeadressen durch schönere zuersetzen.<br />
Es gibt drei Arten von canonical-Tabellen <br />
<br />
*canonical_maps -> Umwandlung bei Absende und Empfängeradressen<br />
*sender_canonical_maps-> Umwandlung bei Absendeadressen<br />
*recipient_canonical_maps -> Umwandlung bei Empfängeradressen<br />
#wandelt eine localen absender adresse in eine offizielle adresse um<br />
root technik@provider.int<br />
#wandelt fuer alle konten absender in dies domain um<br />
@pate.provider.int @provider.int<br />
<br />
Danach wird in das Datenbankformat umgewandelt postmap /etc/postfix/virtual<br />
<br />
====transport_maps = hash:/etc/postfix/transport====<br />
Postfix kennt verschiedene Transport-Methodem e-Mails zuzustellen. Über den Parameter default_transport kann man Postfix eine Standardmethode zuweisen.<br />
Beispielsweise <br />
*SMTP -> Sendmail Transport Protokoll <br />
*UUCP -> Unix 2 Unix Copy <br />
*LMTP -> lokale Mail auslieferung<br />
Man kann in der transport-Tabelle nun diesen Vorgabe ändern. Es wird dann unabhängig vom <br />
MX-Record eine Mail über einen bestimmten Mailserver geschickt.<br />
<br />
pate:/etc/postfix# dig -t mx sympatel.de | grep -A 3 ";; ANSWER"<br />
;; ANSWER SECTION:<br />
sympatel.de. 86255 IN MX 10 mail.sympatel.de.<br />
sympatel.de. 86255 IN MX 20 mforward.dtag.de.<br />
<br />
# Mails für sympatel.de werden trotz der anderslautenten MX Records über neelix.talaxia.de<br />
geschickt.<br />
sympatel.de esmtp:neelix.talaxia.de<br />
<br />
Danach wird in das Datenbankformat umgewandelt postmap /etc/postfix/transport<br />
<br />
<br />
<br />
<br />
====relocated_maps = hash:/etc/postfix/relocated====<br />
relocated bounct unzustellbare Mails unter Angabe der neuen Mailadresse des verzogenen Accounts <br />
<br />
#neue Adresse von bauer ist jetzt martin.bold@xinux.de<br />
bauer@apfel.int martin.bold@xinux.de<br />
<br />
Danach wird in das Datenbankformat umgewandelt postmap /etc/postfix/relocated<br />
<br />
<br />
<br />
<br />
==Schutz durch Restrictions==<br />
Der entscheidende Stelle, um Spam abzuwehren, ist der Einliefungszeitpunkt auf dem Mailserver.<br />
Es soll also daum gehen, die Annahme von vorneherein abblocken zu können. Ob eine Mail angenommen werden darf, entscheidendet sich aus einem zusammenspiel von <br />
<br />
<br />
*IP-Adresse des einliefernden Mailservers<br />
<br />
*Empfänger der Mail<br />
<br />
*Mailadresse des Absenders (unsicher)<br />
<br />
*Password Authentifizierung (sicher)<br />
<br />
Formale Kritierien (fehlerhafte SMTP Befehle)<br />
<br />
<br />
===Wann wird geprüft?===<br />
<br />
Die Prüfung kann jetzt zu verschiedenen Zeitpunkten durch geführt werden wobei hier gilt <br />
je später der Zeitpunkt desto mehr informationen können ausgewertert werden. Es gibt hier <br />
4 Möglichkeiten:<br />
<pre><br />
Zeitpunkt <br />
smtp_recipient_restrictions -> nach RCPT TO:ziel@provider.int <br />
check_sender_access typ:mapname<br />
reject_unknown_recipient<br />
permit_mx_backup<br />
check_relay_domains<br />
permit_auth_destination<br />
<br />
smtp_sender_restrictions -> nach MAIL FROM:quelle@provider.int<br />
check_sender_access typ:mapname<br />
reject_unknown_senderdomain<br />
reject_non_fqdn_sender<br />
<br />
smtp_helo_restrictions -> nach HELO domain.de FROM:quelle@provider.int<br />
check_helo_access<br />
reject_unknown_hostname<br />
reject_non_fqdn_hostname<br />
reject_invalid_hostname<br />
permit_naked_ip_adresse<br />
<br />
smtp_client_restrictions -> nach dem CONNECT <br />
reject_unauth_pipelining<br />
permit<br />
reject<br />
warn_in_reject<br />
check_client_access typ:mapname<br />
reject_unknown_client<br />
reject_maps_rbl<br />
permit_mynetworks<br />
</pre> <br />
<br />
<br />
====check_sender_access hash:/etc/postfix/access====<br />
Die Tabelle access erlaubt es, einzelne Adressen ,Nutzer oder Hosts für bestimmte Aktionen<br />
freizugeben oder zu blocken. Die access-Tabelle trifft dabei immer Ja/Nein-Aussagen : <br />
OK oder REJECT<br />
<pre><br />
#restrictions nach dem "RCPT TO:" abgesetzt wurde<br />
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access,<br />
permit_mx_backup,<br />
permit_mynetwork,<br />
check_relay_domains<br />
<br />
#/etc/postfix/access <br />
provider.int OK<br />
apfel.int OK<br />
birne.int OK<br />
delicius.int OK<br />
tuxmen.int OK<br />
</pre><br />
Danach wird in das Datenbankformat umgewandelt postmap /etc/postfix/access<br />
<br />
===Problem bei virtuellem Server mit anderen IPS=== <br />
<br />
# postconf | grep smtp_host_lookup<br />
smtp_host_lookup = dns<br />
#<br />
<br />
<br />
Variable host_lookup auf native setzen (kann auch direkt in /etc/postfix/main.cf gemacht werden)<br />
# postconf -e smtp_host_lookup=native<br />
# /etc/init.d/postfix restart<br />
<br />
===Protokolle zum Abruf von E-Mail===<br />
Nachdem die Mail im Postfach des Benutzers angekommen ist, muss sie irgendwie zum Mail-Client des Benutzers gelangen. In den seltensten Fällen hat der Mail-Empfänger einen direkten Zugang (login-Shell) zum Unix-Rechner. Somit muss der Benutzer sich die E-Mail vom Unix-Rechner ”abholen”. Es haben sich hier zwei Protokolle herauskristallisiert:<br />
Post Office Protokoll - Version 3 (POP3)<br />
Internet Message Access Protokoll - Version 4 (IMAP4)<br />
Von den beiden Protokollen ist IMAP4 das deutlich komplexere und flexiblere. Trotzdem ist POP3 noch sehr weit verbreitet, da es weniger Server-Ressourcen verbraucht.<br />
==POP3==<br />
Das POP3-Protokoll bietet nicht viele Möglichkeiten; man kann sich am Server authentifizieren, erfährt, wie viele Nachrichten vorhanden und wie viele ungelesen sind und kann diese Nachrichten dann herunterladen und vom Server löschen.<br />
Dies bedeutet, dass bei Verwendung eines POP3-Servers immer alle Nachrichten vor dem Lesen heruntergeladen werden müssen und es nicht möglich ist, die Nachrichten von zwei oder mehreren Rechnern aus abzurufen, da sie nur auf einem Rechner vorhanden sein werden<br />
Es gibt bei vielen Mailprogrammen auch die Option “Nachrichten auf dem Server belassen”. Hierbei werden die Nachrichten einfach nur nicht gelöscht, so dass man sie beim nächsten Mal wieder herunterladen muss und somit nichts gewonnen hat<br />
Beschreibung des Protokolls POP3<br />
Ähnlich wie bei anderen Protokollen ist es auch hier möglich, die Verbindung zu einem POP3-Server ”von Hand” aufzubauen. Wir verwenden das Programm telnet, um den Abruf von E-Mail zu simulieren. Die Befehle von POP3 sind sehr einfach:<br />
Authentifizierung<br />
Syntax<br />
<pre><br />
USER <benutzername> PASS <passwort><br />
Hier entspricht das Protokoll dem FTP-Protokoll, aber warum sollte man sich etwas Neues ausdenken müssen?<br />
<br />
USER martin<br />
PASS suxer<br />
Übersicht<br />
Syntax<br />
LIST<br />
Dieses Kommando gibt einem eine Liste von Nachrichtennummern und Längen der Nachrichten aus.<br />
Nachricht lesen<br />
Syntax<br />
RETR <Nachrichtennummern><br />
Die Nachrichtennummer muss eine der Nummern aus der Ausgabe des LIST-Kommandos sein.<br />
RETR 10<br />
Nachricht löschen<br />
Syntax<br />
DELE <Nachrichtennummern><br />
Die entsprechende Nachricht wird unwiderruflich gelöscht.<br />
DELE 10<br />
Alles in allem ziemlich unspektakulär, deshalb hier das ganze nochmal zusammen:<br />
pate:/etc/skel# telnet pate.provider.int 110<br />
Trying 192.168.86.10...<br />
Connected to pate.provider.int.<br />
Escape character is '^]'.<br />
+OK Qpopper (version 4.0.5) at localhost.localdomain starting. <8228.1131614979@localhost.localdomain><br />
user martin<br />
+OK Password required for martin.<br />
pass suxer<br />
+OK martin has 1 visible message (0 hidden) in 444 octets.<br />
list<br />
+OK 1 visible messages (444 octets)<br />
1 444<br />
.<br />
retr 1<br />
+OK 444 octets<br />
Return-Path: <technik@provider.int><br />
X-Original-To: martin<br />
Delivered-To: martin@pate.provider.int<br />
Received: by pate.provider.int (Postfix, from userid 0)<br />
id 9F0A56A210; Thu, 10 Nov 2005 10:29:36 +0100 (CET)<br />
To: martin@pate.provider.int<br />
Message-Id: <20051110092936.9F0A56A210@pate.provider.int><br />
Date: Thu, 10 Nov 2005 10:29:36 +0100 (CET)<br />
From: technik@provider.int (root)<br />
X-UIDL: =/e!!#X)#!dbh"!@lp!!<br />
<br />
Do Nov 10 10:29:36 CET 2005<br />
.<br />
dele 1<br />
+OK Message 1 has been deleted.<br />
list<br />
+OK 0 visible messages (0 octets)<br />
.<br />
quit<br />
+OK Pop server at localhost.localdomain signing off.<br />
Connection closed by foreign host.<br />
Die Installation einer POP3 Server ist unter Debian wie immer sehr einfach:<br />
<br />
</pre><br />
<br />
apt-get install qpopper<br />
<br />
<br />
Und zur Kontrolle:<br />
<br />
pate:/etc/skel# netstat -ltp | grep pop3<br />
tcp 0 0 *:pop3 *:* LISTEN 759/inetd<br />
<br />
==IMAP4==<br />
Bei IMAP4 handelt es sich um ein deutlich komplexeres Protokoll, das alle Funktionen von POP3 unterstützt und über weitere Funktionen verfügt. So kann man die Kopfzeilen der Nachrichten, also Datum, Absender, Empfänger, Betreff usw. getrennt herunterladen, um eine Übersicht der Nachrichten zu erhalten. Nachrichten können direkt auf dem Server verschoben und gelöscht werden; die Authentifizierung kann verschlüsselt erfolgen, uvm.<br />
Aus diesem Grund kann IMAP4 sehr gut in Intranets eingesetzt werden, in denen von mehreren Rechnern aus (z.B. Laptop und Arbeitsplatz) die gleiche E-Mail gelesen werden soll. Da die E-Mail zentral auf dem Server verbleibt, kann sie in das Backup-Konzept eingebunden werden, so dass der Ausfall eines Arbeitsplatzes keinen Verluste der E-Mail bedeutet. Hierzu ist allerdings auf eine entsprechende Leistungsfähigkeit des Servers zu achten.<br />
<br />
===Courier-IMAP===<br />
<br />
Courier-IMAP ist eine sehr große und mächtige Lösung, um Mails auf einem System zu verwalten. Die Installation und Konfiguration von Courier-IMAP ist aber gar nicht so schwer und aufwendig, wie es auf den ersten Blick erscheinen mag. Ein Grundsystem für einen oder mehrere User ist schnell zusammengestellt.<br />
Da Courier-IMAP auf das Maildir-Format aufsetzt, muss jedoch gewährleistet sein, dass diese Mails bereits vorm Zugriff mit Courier in diesem Format vorhanden sind. Anders als im mbox-Format liegen die einzelnen Mails dabei jeweils in Unterverzeichnissen. Pro Folder (IMAP-Ordner) gibt es drei Unterverzeichnisse, nämlich new, cur und tmp. Das haben wir oben schon erledigt :)<br />
<br />
===Installation von courier-imap===<br />
<pre><br />
apt-get install courier-imap<br />
Kontrolle<br />
pate:~# netstat -lntp | grep 143<br />
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 3665/couriertcpd<br />
</pre><br />
Es gibt dann Zwei Konfigurationsdateien die in der Regel nicht angepasst werden müssen<br />
<br />
pate:/etc/courier# cat authdaemonrc<br />
<br />
#authmodulelist und authmodulelistorig legen die Art der Userauthentifizierung fest. daemons legt #die Anzahl der gleichzeitig laufenden Authentifizierungs-Daemons fest. Wenn nicht mehr als #ungefähr 20 Mailboxen gleichzeitig angesteuert werden sollen, reicht einer. Ansonsten ist die #Anzahl dementsprechend zu erhöhen.<br />
<br />
authmodulelist="authpam"<br />
authmodulelistorig="authcustom authcram authuserdb authldap authpgsql authmysql authpam"<br />
daemons=5<br />
version=""<br />
<br />
authdaemonvar=/var/run/courier/authdaemon<br />
<pre><br />
pate:/etc/courier# cat imapd<br />
# Adresse wo der imap server lauschen soll<br />
ADDRESS=0<br />
# der Port der imap verwenden soll <br />
PORT=143<br />
#maxiamleAanzahl der imap daemons<br />
MAXDAEMONS=40<br />
<br />
#Maixmale Verbindungen per IP<br />
MAXPERIP=20<br />
<br />
#Datei der die Prozess id enthält Prozess ID<br />
PIDFILE=/var/run/courier/imapd.pid<br />
# Optionen der couriertcpd sollten nicht geändert werden<br />
TCPDOPTS="-nodnslookup -noidentlookup"<br />
#Wenn AUTHMODULES="authdaemon", gesetzt ist “DO NOT CHANGE IT”<br />
#Ändere den Parameter in der /etc/courier/autdaemon<br />
AUTHMODULES="authdaemon"<br />
#fuer das webminmodul<br />
AUTHMODULES_ORIG="authdaemon"<br />
<br />
#Debuglevel<br />
DEBUG_LOGIN=0<br />
# antwort auf das CAPABILITY-Kommando<br />
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"<br />
# custom keywords freischalten<br />
IMAP_KEYWORDS=1<br />
# für webadmin<br />
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"<br />
# Idle-Timeout des IMAP-Servers<br />
IMAP_IDLE_TIMEOUT=60<br />
#SASL PLAIN authentifizierung nach STARTTLS erlauben<br />
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"<br />
# wird von webadmin benutzt<br />
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"<br />
# darf der Client auf dem Server Thread und SORT Kommandos ausführen? (erhöht die Serverlast!)<br />
IMAP_DISABLETHREADSORT=0<br />
# In allen Ordnern nach neuer Mail suchen (nur sinnvoll, wenn Mails auf dem Server in die<br />
# Unterordner sortiert werden). Erhöht die Last auf dem Server!<br />
IMAP_CHECK_ALL_FOLDERS=0<br />
# Workaround für Fehlerhafte Clients<br />
IMAP_OBSOLETE_CLIENT=0<br />
# Maximale größe des Serverprozesses (64MB) – kann gegen DoS-Attacken schützen <br />
IMAP_ULIMITD=65536<br />
# sollte bei der benutzung von “shared folders” unbedingt aktiv sein!<br />
IMAP_USELOCKS=1<br />
# Index aller zugänglichen Ordner<br />
IMAP_SHAREDINDEXFILE=/etc/courier/shared/index<br />
#Idle-Modus (für Konkurrierende Updates)<br />
IMAP_ENHANCEDIDLE=0<br />
# Name des Trash-Folders (für Outlook-Kompatibilität sollte hier “Deleted Items” stehen)<br />
IMAP_TRASHFOLDERNAME=Trash<br />
# Trash-Folder nach 7Tagen, Sent-Folder nach 30Tagen löschen (bezieht sich auf CTIME-Stamp)<br />
IMAP_EMPTYTRASH=Trash:7,Sent:30<br />
# Mails löschen oder in den Mülleimer werfen?<br />
IMAP_MOVE_EXPUNGE_TO_TRASH=0<br />
<br />
#Zusatzfeature: Mails verschicken durch ablegen in diesem Ordner<br />
OUTBOX=.Outbox<br />
# dazu wird das folgende sendmail aufgerufen<br />
SENDMAIL=/usr/sbin/sendmail<br />
# Headerfeld in dem der Absender nochmals hinterlegt wird, wenn eine Mail wie oben verschickt<br />
# wird<br />
HEADERFROM=X-IMAP-Sender<br />
# IMAPD starten? (wird von manchen Distributionen in Init-Skripten abgefragt)<br />
IMAPDSTART=YES<br />
# Pfad zum Maildir<br />
MAILDIRPATH=Maildir<br />
</pre><br />
<br />
==Sicherheit mit SSL==<br />
Secure Socket Layer (SSL v2/3) bzw. der Nachfolger Transport Layer Security (TLS vl) stellen ein Verfahren dar, mit dem sich beliebige TCP/IP-Verbindungen verschlüsseln lassen.<br />
Sie setzen dabei auf sehr niedriger TCP/IP-Ebene in der Übertragung an (für Profis: OSI-Schicht 3). Anders als als PGP, das auf Applikationsebene arbeitet (z. B. in der Mailsoftware), sichert SSL/TLS unmittelbar die TCP/IP-Verbindung zwischen zwei Hosts. Das macht es so flexibel, denn nahezu jedes Protokoll, das mit einem einzelnen Verbindungskanal auskommt, lässt sich damit über SSL/TLS absichern. Bekannte Vertreter sind z. B. HTTPs, POPSs, IMAPs oder SMTPs.<br />
SSL/TLS funktioniert dabei grundsätzlich wieder nach dem von PGP bekannten Double-Key-Verfahren, d. h., es können auch zwei Hosts eine abhörsichere Verbindung aufbauen, die sich vorher noch gar nicht kannten. Durch das Double-Key-Verfahren ist es unnötig, über einen zweiten gesicherten Kanal zu verfügen, über den ein Schlüssel transportiert werden kann. Auch ein von vornherein mitlauschender Angreifer bekommt die Secret Keys nie in die Hände - und ist damit nicht in der Lage, die mitgeschnittene Kommunikation zu dekodieren.<br />
Eine verschlüsselte Verbindung zu einem unbekannten Host aufzubauen ist also kein Problem - etwas anders sieht es bei der Frage der Authentifizierung aus. Es könnte ein Angreifer in der Mitte sitzen und die übertragenen Schlüssel durch eigene ausgetauscht haben. Nur durch das Double-Key-Verfahren allein können wir Verschlüsselung einsetzen, können aber nicht garantieren, dass wir auch tatsächlich mit demjenigen Daten austauschen, von dem wir glauben, er sei unser Partner.<br />
Dieses Problem löst eine Signierung eines Public Keys. Dabei steht eine so genannte Certification Authority (CA) durch eine digitale Unterschrift dafür ein, dass sie sich höchstselbst davon überzeugt hat, dass dieser Schlüssel einer bestimmten Person oder Organisation gehört.<br />
CAs sind dabei nicht vorbestimmt: Praktisch jeder kann seine eigene CA aufmachen und seine eigenen oder die Schlüssel Dritter signieren. Nur stellt sich die Frage, ob der Rest der Welt diese selbstgemachten CAs kennt und ihnen vertraut.<br />
Große professionelle CAs haben dafür gesorgt, dass ihre CA-Schlüssel in den üblichen Mail- und Webclients bereits fest eingebunden sind. Jeder dieser Clients kann die von diesen CAs signierten Schlüssel sofort als gesichert und vertrauenswürdig übernehmen.<br />
Bei selbtgebauten CAs fällt das weg: Die Schlüssel sind zwar signiert - aber ebenfalls von einer dem Client unbekannten CA. Der Client muss also den Benutzer fragen, ob er dieser CA vertraut. In der Praxis ist das ein einmaliger Vorgang. An der Qualität der Verschlüsselung ändert das rein gar nichts - nur die Frage, ob dieser Schlüssel dem gehört, von dem er zu sein scheint, lässt sich nicht hundertprozentig klären.<br />
Deshalb werden sich auch viele Firmen weiterhin ihre Schlüssel teuer von bekannten, etablierten CAs signieren lassen:<br />
http://www.verisign.com http://www.thawte.com<br />
Wichtig sind absolut sicher authentifizierte Schlüssel vor allem bei Web-Servern: Hier wird garantiert, dass ein HTTPs-Schlüssel tatsächlich zur angesprochenen Webseite einer Bank gehört, und nicht etwa einem Man-in-the-Middle, der den Schlüssel ausgetauscht hat und so unsere Daten und PIN-Nummern zum Online-Banking ausspionieren möchte. Weitere zentrale Einsatzgebiete sind z. B. das Übertragen von Konto- oder Kreditkartendaten beim Online-Shopping - aber auch die Abfrage von e-Mail Postfächern per e-Mail oder dergleichen.<br />
Auch Mailserver lassen sich über SSL/TLS sichern: POPSs, IMAPs und SMTPs sind sehr sinnvoll und wünschenswert, aber bislang leider kaum vertreten. Die eigentlichen Verfahren POPS, IMAP und SMTP kommen dabei wie gewohnt zum Einsatz, an ihnen ändert sich nichts! SSL/TLS ist ja gerade eine Verschlüsselung auf Transportebene, d. h., die gesamte Verbindung wird gesichert, und darüber läuft dann „normales" POPS ab. Genauer könnte man sagen: HTTP, POPS, IMAP, SMTP über SSL/TLS.<br />
So gut wie alle heutigen Mailclients unterstützen das. Manchmal ist es direkt als POPSs oder IMAPs benannt, manchmal ist es etwas verklausuliert in der Konfiguration zu finden: „Server erfordert sichere Verbindung." Auf jeden Fall sollten Sie Ihre Nutzer grundsätzlich anhalten, diese Verfahren zu benutzen - es gibt eigentlich keine Nachteile, außer etwas CPU-Last. Auch hausintern sollten Sie grundsätzlich Verschlüsseltes POPS und IMAP einsetzen: Ausgespähte Passwörter sind ein vollkommen überflüssiges Sicherheitsrisiko.<br />
Die Frage der Authentifizierung des Mailservers spielt dabei eine unwichtigere Rolle als bei Web-Servern. Häufig werden deshalb selbstsignierte Schlüssel eingesetzt, denn das spart die Signierungsskosten einer kommerziellen CA. Der Anwender kann dann darauf vertrauen, dass der Schlüssel tatsächlich zu seinem Mailserver gehört. Denn anders als beim Web hat es der Nutzer i. d. R. nicht mit völlig fremden, wechselnden Webservern unbekannter Anbieter zu tun, sondern stets mit „seinem" Mailserver, auf dem sein Postfach liegt.<br />
Mailclients warnen teilweise beim Aufbau von POP3s oder IMAPs-Verbindungen zu Servern mit selbstsignierten Schlüsseln. Doch da der Nutzer diese Schlüssel lokal akzeptieren und abspeichern kann, ist man für die Zukunft trotzdem gesichert und kann Authentizität garantieren: Würde ein Angreifer den Schlüssel austauschen, so würde das der Mailclient merken, denn der übertragene Schlüssel stimmt nicht mehr mit dem gespeicherten überein.<br />
Nicht unbedingt die Authentifizierung ist es also, die uns treibt, sondern die Verschlüsselung der Mailverbindungen! Sowohl die e-Mails als auch der POP3/ IMAP-Dialog wird kodiert. Und dadurch gehen auch Zugangsdaten zum Postfach nie im Klartext über das Netz.<br />
SSL/TLS macht jedoch Systeme wie PGP keinesfalls überflüssig. Denn SSL/TLS sichert nur den Moment des Transports. In der Sekunde des Abrufs gehen alle Daten unlesbar über die Leitung. Auf dem Server selbst und auch auf dem Client liegen sie hingegen im Klartext vor, wie immer. Ein Angreifer könnte die Mails dort problemlos lesen. Auch sonst kann man nie sicherstellen, wie eine e-Mail an das Ziel gelangt. Die wenigsten Mailserver versuchen untereinander eine SMTPs-Verbindung aufzubauen, i. d. R. wird Klartext-SMTP verwendet. Wollen wir also den elektronischen Briefumschlag zukleben, brauchen wir PGP. Und wollen wir unsere Login-Daten geheim halten, brauchen wir SSL/TLS. Es ist keine Frage des „entweder-oder", sondern eine Frage des „sowohl-als auch"!<br />
<br />
<br />
===Mails abholen mit IMAP-SSL===<br />
<br />
Trotz seiner zusätzlichen Funktionalitäten überträgt IMAP sowohl Authentifizierung als auch die eigentlichen E-Mails unverschlüsselt.<br />
Hier hilft das Zusatzpaket courier-imap-ssl. Installiert wird es durch den Aufruf voneinander<br />
<br />
apt-get install courier-imap-ssl<br />
<br />
Nach dem Download, vor der Installation erscheint ein Textfenster welches darauf hinweist, dass das Paket während der Installation ein selbstsigniertes Zertifikat generieren wird. Dieses ist zu demonstrationszwecken ausreichend. Für den Produktivbetrieb ist es jedoch unter Umständen angebracht das Zertfikat von einer offiziellen Zertifizierungsstelle unterschreiben zu lassen, so dass die Gültigkeit von jedem E-Mail-Client überprüft werden kann.<br />
[[Datei:imap1.jpg]]<br />
<br />
Nachdem das Paket installiert und das Zertifikat generiert ist sollte der imap-ssl Daemon starten.<br />
Dies kann mit <br />
<br />
pate:~# netstat -lntp | grep 993<br />
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 16786/couriertcpd<br />
<br />
überprüft werden.<br />
Die Konfiguration ähnelt der des normalen IMAPd. Tatsächlich ist es sogar so, daß zuerst dessen Konfiguration eingelesen und dann durch den Inhalt von imapd-ssl ergänzt. Dadurch wird der Konfigurationsaufwand merklich verringert, da nicht alle Defaults noch einmal gesetzt werden müssen.<br />
<pre><br />
pate:~# cat /etc/courier/imapd-ssl<br />
#Port an dem imap-ssl lauschen soll<br />
SSLPORT=993<br />
#IP-Adresse (falls nich alle)<br />
SSLADDRESS=0<br />
#PID-Files<br />
SSLPIDFILE=/var/run/courier/imapd-ssl.pid<br />
IMAPDSSLSTART=YES<br />
#IMAP-StartTLS-Funktionalität<br />
IMAPDSTARTTLS=YES<br />
#Login nur mit TLS, wenn Wert=1<br />
IMAP_TLS_REQUIRED=0<br />
COURIERTLS=/usr/bin/couriertls<br />
TLS_PROTOCOL=SSL3<br />
TLS_STARTTLS_PROTOCOL=TLS1<br />
#Nur bestimmte Verschlüsselungsalgorithmen zulassen<br />
# TLS_CIPHER_LIST="ALL:!ADH:RC4+RSA:+SSLv2:@STRENGTH"<br />
#Pfad zur Zertifikatsdatei<br />
TLS_CERTFILE=/etc/courier/imapd.pem<br />
#Soll das Clientzertifikat überprüft werden (NONE=nein, PEER=wenn der Client ein Zertifikat<br />
# vorlegt, REQUIREPEER=Fehler, wenn der Client kein Zertifikat vorlegt)<br />
TLS_VERIFYPEER=NONE<br />
#Sessioncache (experimentell)<br />
TLS_CACHEFILE=/var/lib/courier/couriersslcache<br />
TLS_CACHESIZE=524288<br />
#Pfad zum Maildir<br />
MAILDIRPATH=Maildir<br />
</pre><br />
<br />
==Mails sicher verschicken: Postfix-mit TLS==<br />
Um auch den Mailversand über Postfix sicher zu machen brauchen wir noch einige Pakete:<br />
<br />
apt-get install postfix-tls libsasl2-modules-gssapi-heimdal libsasl2-modules sasl2-bin <br />
<br />
Anders als bei Courier müssen wir das Zertifikat hier jedoch selbst generieren. Dabei hilft uns OpenSSL.<br />
Die Befehle <br />
/usr/lib/ssl/misc/CA.sh -newreq # zum erstellen einer Zertifizierungsanfrage<br />
/usr/lib/ssl/misc/CA.sh -sign # zum unterschreiben der selben<br />
und<br />
openssl rsa < newreq.pem > key.pem # um einen Key ohne Passwort zu erhalten<br />
<br />
sollten ausreichen, wenn schon eine CA existiert. Ansonsten kann eine solche vorher mit <br />
/usr/lib/ssl/misc/CA.sh -newca<br />
einfach erstellt werden.<br />
<br />
Aschließend müssen die Zertifikate an die richtigen stellen kopiert werden:<br />
cp newcert.pem /etc/postfix/cert.pem<br />
cp key.pem /etc/postfix/key.pem<br />
cp demoCA/cacert.pem /etc/postfix/CAcert.pem<br />
chmod 400 /etc/postfix/*.pem<br />
<br />
Damit ist Postfix vorbereitet. Nun muß TLS noch aktiviert werden. Hierzu werden folgende Einträge in der main.cf benötigt:<br />
<br />
# aktiviert STARTTLS wenn Postfix Server ist:<br />
smptd_use_tls = yes<br />
<br />
# Loggt (nicht) in den Received-Zeilen:<br />
smtpd_tls_received_header = no<br />
<br />
smtpd_tls_key_file = /etc/postfix/key.pem<br />
smtpd_tls_cert_file = /etc/postfix/cert.pem<br />
smtpd_tls_CAfile = /etc/postfix/CAcert.pem<br />
<br />
# Aktiviert STARTTLS wenn Postfix ausliefert:<br />
smtp_use_tls = yes<br />
<br />
smtp_tls_key_file = /etc/postfix/key.pem<br />
smtp_tls_cert_file = /etc/postfix/cert.pem<br />
smtp_tls_CAfile = /etc/postfix/CAcert.pem<br />
<br />
<br />
Auch die master.cf muß angepasst werden:<br />
<br />
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes<br />
submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes<br />
<br />
(Diese beiden Zeilen sind dort wahrscheinlich schon vorhanden und müssen lediglich durch entfernen des Kommentarzeichens aktiviert werden)<br />
<br />
=Beispiel mit sasl=<br />
==Pakete==<br />
*Postfix<br />
*Courier-imap-ssl<br />
*sasl2-bin<br />
==Installation==<br />
apt-get install postfix<br />
apt-get install courier-imap-ssl<br />
apt-get install sasl2-bin<br />
==Konfiguration==<br />
*Maildir Vorlage anlegen<br />
mkdir -p /etc/skel/Maildir/new<br />
mkdir -p /etc/skel/Maildir/cur<br />
mkdir -p /etc/skel/Maildir/tmp<br />
<br />
;In /etc/postfix/main.cf<br />
:ändern<br />
mydestination = echt-jetzt.de, smtp.echt-jetzt.de, mail.echt-jetzt.de, localhost.echt-jetzt.de, localhost<br />
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 '''${externeip adresse}'''<br />
:hinzufügen<br />
smtpd_sasl_auth_enable = yes<br />
smtpd_recipient_restrictions = permit_mynetworks,<br />
permit_sasl_authenticated,<br />
reject_unauth_destination<br />
<br />
smtpd_helo_restrictions = permit_sasl_authenticated,<br />
permit_mynetworks,<br />
reject_invalid_hostname,<br />
reject_unauth_pipelining,<br />
reject_non_fqdn_hostname<br />
<br />
smtpd_sasl_path = smtpd<br />
home_mailbox=Maildir/<br />
<br />
broken_sasl_auth_clients = yes<br />
;In /etc/postfix/master.cf<br />
:unkommentieren<br />
smtps inet n - - - - smtpd<br />
-o smtpd_tls_wrappermode=yes<br />
-o smtpd_sasl_auth_enable=yes<br />
-o smtpd_client_restrictions=permit_sasl_authenticated,reject<br />
<br />
<br />
; /etc/postfix/sasl/smtpd.conf erstellen<br />
echo "pwcheck_method: saslauthd" >> /etc/postfix/sasl/smtpd.conf<br />
echo "mech_list: PLAIN LOGIN" >> /etc/postfix/sasl/smtpd.conf<br />
echo "saslauthd_path: /var/run/saslauthd/mux" >>/etc/postfix/sasl/smtpd.conf<br />
<br />
; gruppenberechtigung für SASL setzen<br />
adduser postfix sasl<br />
<br />
SASL Socket in den chroot legen<br />
----<br />
;In /etc/default/saslauthd<br />
:ändern<br />
START=yes<br />
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"<br />
<br />
; daemons neu starten<br />
/etc/init.d/saslauthd restart<br />
/etc/init.d/postfix restart<br />
<br />
;sasl testen<br />
testsaslauthd -f /var/spool/postfix/var/run/saslauthd/mux -s smtp -u user -p userpasswd<br />
<br />
==Courier Zertifikat einrichten==<br />
cat example.com.key example.com.crt > /etc/courier/imapd.pem<br />
cp ca.pem /etc/ssl/certs/<br />
/etc/init.d/courier-imap-ssl restart<br />
<br />
==Open-Relay Test==<br />
*Von aussen<br />
http://www.mailradar.com/openrelay/<br />
<br />
http://www.abuse.net/relay.html<br />
*Telnet auf localhost<br />
'''telnet localhost 25'''<br />
Trying 127.0.0.1...<br />
Connected to localhost.<br />
Escape character is '^]'.<br />
220 echt-jetzt.de ESMTP Postfix (Ubuntu)<br />
'''HELO whitehouse.com'''<br />
250 echt-jetzt.de<br />
'''MAIL From:<goerge.w@whitehouse.com>'''<br />
250 2.1.0 Ok<br />
'''RCPT TO:<hutze@echt-jetzt.de>'''<br />
250 2.1.5 Ok<br />
'''Subject:Matter of national security!'''<br />
221 2.7.0 Error: I can break rules, too. Goodbye.<br />
<br />
==Roundcube einfach==<br />
<br />
<br />
sudo apt-get install roundcube roundcube-mysql<br />
sudo gedit /etc/roundcube/apache.conf<br />
sudo /etc/init/d/apache2 restart<br />
sudo gedit /usr/share/roundcube/program/include/iniset.php<br />
PHP Code:<br />
$include_path.= '/usr/share/php' . PATH_SEPARATOR; <br />
after the line 46 :<br />
PHP Code:<br />
$include_path.= INSTALL_PATH . 'program/include' . PATH_SEPARATOR;<br />
<br />
==Roundcube Web Frontend==<br />
apt-get install php-pear php5-mysql php-mdb2 php-net-smtp php-mail-mime<br />
sudo apt-get install lamp-server^<br />
pear install channel://pear.php.net/Net_IDNA2-0.1.1<br />
echo date.timezone = 'UTC' >> /etc/php5/pache2/php.ini<br />
<br />
Roundcube runter laden<br />
neuste version runterladen<br />
;Tar umbenennen und entpacken<br />
tar xzf roundcubemail-0.*.tar.gz<br />
;Roundcube in Web-server verschieben<br />
mv roundcubemail-0.6 /var/www/webmail<br />
;MySQL installieren<br />
apt-get install mysql-server<br />
<br />
;MySQL für Roundcube einrichten<br />
mysql -u root -p<br />
CREATE DATAVABASE roundcube;<br />
CREATE USER roundcube;<br />
SET PASSWORD FOR 'roundcube' = PASSWORD('12345');<br />
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube' IDENTIFIED BY '12345';<br />
exit<br />
<br />
mysql roundcubemail -p < SQL/mysql.initial.sql<br />
;Roundcube ''installer'' ausführen über Browser<br />
http://example.de/webmail/installer<br />
;Konfiguration über Browser<br />
*Bei '''Database setup''' die korrekten Daten eintragen<br />
*Bei '''IMAP Settings''' den '''default_host''' mit ssl: '''ssl://imap.example.de''' eintragen und port auf '''993''' stellen<br />
*Bei '''SMTP Setiings''' den '''smtp_server''' mit ssl: '''ssl://smtp.example.de''' eintragen und port auf '''465''' stellen sowie '''Use the current IMAP username and password for SMTP authentication''' ankreuzen!<br />
*Continue<br />
;Die angezeigten Konfigurations Dateien: '''db.inc.php''' und '''main.inc.php''' in dem '''/config''' Ordner der Roundcube Installation anlegen und übernehmen<br />
*Continue<br />
;In der Roundcube Installation die Ordner '''temp''' und '''logs''' sowie die eben erstellten Konfigurationsdateien für den Webserver beschreibbar machen<br />
chown www-data temp logs config/db.inc.php config/main.inc.php<br />
;'''installer''' aus der Roundcube installation entfernen<br />
rm installer<br />
<br />
==Roundcube Plugin installieren - carddav==<br />
<br />
Annahme: Roundcube Verzeichnis ist /var/www/webmail<br />
<br />
(sollte roundcube in einem anderen Verzeichnis sein bitte entsprechend anpassen)<br />
<br />
<br />
Paket herunterladen und in Plugin-Verzeichnis entpacken und evtl. umbenennen, Rechte anpassen<br />
tar xvfz carddav_x.tar.bz2 /var/www/webmail/plugins/<br />
mv /var/www/webmail/plugins/carddav_x /var/www/webmail/plugins/carddav<br />
<br />
PostgreSQL - roundcube Datenbank anpassen - Ausführen von ../plugins/carddav/SQL/postgres.sql:<br />
psql -Uroundcube roundcube < /var/www/webmail/plugins/carddav/SQL/postgres.sql<br />
<br />
ODER:<br />
<br />
MySQL - roundcube Datenbank anpassen - Ausführen von ../plugins/carddav/SQL/mysql.sql:<br />
mysql -u roundcube -p roundcubemail < /var/www/webmail/plugins/carddav/SQL/mysql.sql<br />
<br />
in Datei vi /var/www/webmail/config/main.inc.php das Plugin aktivieren:<br />
// List of active plugins (in plugins/ directory)<br />
$rcmail_config['plugins'] = array('carddav');<br />
<br />
Konfigdatei anlegen<br />
cp /var/www/webmail/plugins/carddav/config.inc.php.dist /var/www/webmail/plugins/carddav/config.inc.php<br />
<br />
Danach im Browser unter 'Einstellungen' das carddav Plugin konfigurieren.<br />
<br />
==Roundcube Plugin installieren - calendar==<br />
Annahme: Roundcube Verzeichnis ist /var/www/webmail<br />
<br />
(sollte roundcube in einem anderen Verzeichnis sein bitte entsprechend anpassen)<br />
<br />
Voraussetzung: Installation von myroundcube Plugin Manager<br />
<br />
Zuerst myroundcube Plugin Manager installieren<br />
<br />
Paket von http://myroundcube.com/myroundcube-plugins/plugin-manager herunterladen und in Plugin-Verzeichnis entpacken<br />
unzip plugins.zip -d /var/www/webmail/<br />
<br />
Plugin aktivieren<br />
vi /var/www/webmail/config/main.inc.php<br />
<br />
// List of active plugins (in plugins/ directory)<br />
$rcmail_config['plugins'] = array('carddav','plugin_manager');<br />
<br />
Der naechste Benutzer, der sich anmeldet gilt als plugin manager admin benutzer<br />
(kann auch in config.inc.php angegeben werden, dazu dann config.inc.php.dist nach config.inc.php kopieren und bearbeiten)<br />
<br />
Falls Feld Kundennummer leer:<br />
Bei Einstellungen->Erweiterungen verwalten->Kundenkonto->neue Kundennummer anforden<br />
<br />
Dann:<br />
Einstellungen -> Bereich Erweiterungen Verwalten -> Updates herunterladen ->I agree-> Liste der Plugins<br />
<br />
Drauf achten, dass bei den gewünschten Plugins in der checkbox ein Häckchen hat und 'Zip-Archiv herunterladen' anklicken (zur Sicherheit am besten noch rechts unten 'kostenpflichtige Downloads abwählen' anklicken)<br />
<br />
folge Plugins auswählen:<br />
calendar<br />
jqueryui<br />
jscolor<br />
qtip<br />
http_auth<br />
http_request<br />
timepicker<br />
<br />
Datei (plugins.zip) auf Server kopieren und in Plugin Verzeichnis enpacken:<br />
unzip /root/plugins.zip -d /var/www/webmail/<br />
<br />
MySQL - roundcube Datenbank anpassen - Ausführen von ../plugins/calendar/SQL/mysql.sql:<br />
mysql -u roundcube -p roundcubemail < /var/www/webmail/plugins/calendar/SQL/mysql.sql<br />
<br />
Konfigdatei anlegen<br />
cp /var/www/webmail/plugins/calendar/config.inc.php.example /var/www/webmail/plugins/calendar/config.inc.php<br />
<br />
config.inc.php solange bearbeiten, bis beim Aufruf von 'Einstellungen' keine php Fehler mehr auftauchen, also Löschen bzw. auskommentieren der Modulabschnitte in der Konfig, die zu nicht installierten Modulen gehören.<br />
<br />
Fertig.<br />
<br />
==MX Backup Mailserver einrichten==<br />
;MX Record auf DNS in zone des Mainservers eintragen<br />
MX 20 mail.zweebrigge.de.<br />
;Auf Mainserver in '''main.cf''' hinzufügen<br />
smtpd_recipient_restrictions = permit_mynetworks,<br />
permit_sasl_authenticated,<br />
reject_unauth_destination,<br />
'''permit_mx_backup'''<br />
;Auf Backupserver in '''main.cf''' hinzufügen<br />
smtpd_recipient_restrictions = permit_mynetworks,<br />
'''permit_mx_backup,'''<br />
permit_sasl_authenticated,<br />
reject<br />
'''relay_domains = $mydestination, hash:/etc/postfix/relay_domains'''<br />
'''maximal_queue_lifetime = 60d'''<br />
;In '''/etc/postfix/maps/relay_domains''' Mainserver Domain eintragen<br />
echt-jetzt.de x<br />
;Postfix lookup table aktivieren <br />
postmap relay_domains<br />
;Postfix neustarten<br />
/etc/init.d/postfix restart<br />
<br />
==Mail Forward==<br />
Um mit Postfix ein forwarding von Mails einzurichten muss man in '''/etc/postfix/main.cf''' folgende Zeilen addieren:<br />
virtual_alias_domains = suxer.com<br />
virtual_alias_maps = hash:/etc/postfix/virtual<br />
Damit werden die Domains die bei '''virtual_alias_domains''' aufgelistet sind zu Domains die der Mailserver behandelt und nicht abweißt. In unserem Beispiel wäre das die Domain '''suxer.com'''.<br />
In der Zeile mit '''virtual_alias_maps''' legt man die zuständige Konfigurationsdatei fest.<br />
<br />
Nun erstellt man die Konfigurationsdatei in der festgelegt wird, welche domain wohin weitergeleitet werden soll mit:<br />
vi /etc/postfix/virtual<br />
<br />
In unserem Beispiel addieren wir jetzt folgende Zeile:<br />
xinux@suxer.com schmeich@daneich.de<br />
Dies wird alle Mails die an '''xinux@suxer.com''' gesendet werden auf unserem Mailserver entgegennehmen und sie weiterleiten an '''schmeich@daneich.de'''<br />
<br />
Nun schließen wir die Datei und laden die in Postfix ein mit:<br />
postmap /etc/postfix/virtual<br />
service postfix reload<br />
Man beachte das bei jeder änderung der Datei '''postmap''' wieder aufgerufen werden muss.<br />
<br />
==authsmtp==<br />
<br />
This instructions will guide you through configuring Postfix to use AuthSMTP as an authenticated SMTP relay host for all your outbound email.<br />
First you need to make sure the email address(es) you will be sending from have been authorised for your account in our Control Panel.<br />
These instructions assume your server is already configured with Postfix, email can be received and you have external network access on one of the following ports -<br />
23, 25, 26, 2525<br />
<br />
>cd /etc/postfix<br />
<br />
Backup your configuration files:<br />
>mkdir /POSTFIX_BACKUP<br />
>cp /etc/postfix/* /POSTFIX_BACKUP<br />
<br />
Open your Postfix configuration file (typically /etc/postfix/main.cf) using 'vi' or an alternative file editor and do the following:<br />
>vi /etc/postfix/main.cf<br />
<br />
Add the following lines to the bottom of the file:<br />
smtp_sasl_auth_enable = yes<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd<br />
smtp_sasl_mechanism_filter =<br />
smtp_sasl_security_options =<br />
relayhost = mail.authsmtp.com<br />
<br />
The above configuration use's the default 'plain' SASL authentication mechanism but you have the option of PLAIN, LOGIN, CRAM-MD5 and DIGEST-MD5 but to use those is an advanced Postfix topic that should only be approached by advanced users.<br />
<br />
This next step is optional - the default SMTP port is 25 but some ISPs block this port so if you wish to use one of the alternative ports (23, 26, 2525) please add ':' and the alternative port to the end of the 'relayhost' line, so it should read as follows:<br />
relayhost = mail.authsmtp.com:2525<br />
<br />
If you wish to send your messages using TLS/SSL you will need to also add the two following lines:<br />
smtp_tls_security_level = encrypt<br />
smtp_tls_mandatory_ciphers = high<br />
<br />
'''IMPORTANT: If you do wish to send your messages using SSL you will also need to login to the Control Panel and enable SSL on your account.'''<br />
<br />
Open your SASL password file (typically /etc/postfix/sasl_passwd) using 'vi' or an alternative file editor and add the following line replacing 'username' and 'password' with your AuthSMTP username and password:<br />
mail.authsmtp.com username:password<br />
<br />
Save and close the file, then run the following command on your SASL password file:<br />
>postmap hash:/etc/postfix/sasl_passwd<br />
<br />
Once you have made the changes you will need to restart Postfix for the changes to take effect:<br />
>/etc/rc.d/init.d/postfix restart<br />
<br />
==no shell==<br />
<br />
chsh -s /usr/sbin/nologin<br />
<br />
==Blacklist & Whitelist==<br />
<br />
Es gibt zwei verschiedene Arten zu blocken: <br />
*Client: IP(Range)/Hostname<br />
check_client_access <br />
<br />
*Sender: FROM-Field (= Domain)<br />
check_sender_access <br />
<br />
Trage diese Regel in die main.cf ein: (Am besten fügt man das weit oben ein)<br />
===Main.cf-Eintrag===<br />
vi /etc/postfix/main.cf<br />
<br />
<pre><br />
smtpd_recipient_restrictions =<br />
check_client_access hash:/etc/postfix/client_checks,<br />
check_sender_access hash:/etc/postfix/sender_checks,<br />
...<br />
</pre><br />
===List-Erstellung===<br />
vi /etc/postfix/client_checks<br />
<br />
# Restricts which clients this system accepts SMTP connections from.<br />
<pre><br />
example.com REJECT No spammers<br />
.example.com REJECT No spammers, from your subdomain<br />
123.456.789.123 REJECT Your IP is spammer<br />
123.456.789.0/24 REJECT Your IP range is spammer<br />
321.987.654.321 OK<br />
example1.com OK<br />
</pre><br />
<br />
vi /etc/postfix/sender_checks<br />
<br />
# Restricts sender addresses this system accepts in MAIL FROM commands.<br />
<pre><br />
example.com REJECT env. from addr any@example.com rejected<br />
.example.com REJECT env. from addr any@sub.example.com rejected<br />
user@example.com REJECT We don't want your email<br />
example2.com OK<br />
</pre><br />
<br />
'''OK is allowed '''<br />
'''REJECT is block '''<br />
<br />
<br />
Wenn Änderungen vorgenommen wurden, muss man die Datenbank aktualisieren!<br />
<br />
===reload/restart===<br />
postmap /etc/postfix/client_checks<br />
postmap /etc/postfix/sender_checks<br />
<br />
Oder man schreibt es in '''/etc/init.d/postfix '''<br />
vi /etc/init.d/postfix<br />
Unter dem Casepunkt "start" fügt man an das Ende des Skriptes das an:<br />
/usr/sbin/postmap /etc/postfix/sender_checks<br />
<br />
Beispiel: (Auszug aus der /etc/init.d/postfix)<br />
<pre><br />
case "$1" in<br />
start)<br />
log_daemon_msg "Starting Postfix Mail Transport Agent" postfix<br />
RET=0<br />
# for all instances that are not already running, handle chroot setup if needed, and start<br />
for INSTANCE in $(enabled_instances); do<br />
RUNNING=$(running $INSTANCE)<br />
if [ "X$RUNNING" = X ]; then<br />
configure_instance $INSTANCE<br />
CMD="/usr/sbin/postmulti -- -i $INSTANCE -x ${DAEMON}"<br />
if ! start-stop-daemon --start --exec $CMD quiet-quick-start; then<br />
RET=1<br />
fi<br />
fi<br />
done<br />
log_end_msg $RET<br />
/usr/sbin/postmap /etc/postfix/sender_checks<br />
;;<br />
</pre><br />
<br />
Danach Postfix reload/restart<br />
/etc/init.d/postfix restart<br />
<br />
===Link===<br />
: http://linuxlasse.net/linux/howtos/Blacklist_and_Whitelist_with_Postfix<br />
<br />
==nützliche Tools==<br />
<br />
===postconf===<br />
<br />
Zeigt alle Einstellungen der main.cf, die nicht den Defaultwerten entsprechen:<br />
<br />
postconf -n<br />
Zeigt den Defaultwert einer Variable an; ignoriert also den Wert aus der main.cf:<br />
<br />
postconf -d myorigin<br />
myorigin = $myhostname<br />
Die Abfrage von Variablen direkt aus unserem laufenden Postfix heraus erfolgt ohne Parameterangabe:<br />
<br />
postconf myorigin<br />
myorigin = $mydomain<br />
Wollen wir einen Parameter ändern, so benutzen wir die Option -e<br />
<br />
<pre><br />
postconf -d smtpd_client_connection_count_limit<br />
smtpd_client_connection_count_limit = 50<br />
<br />
postconf smtpd_client_connection_count_limit<br />
smtpd_client_connection_count_limit = 10<br />
<br />
postconf -e "smtpd_client_connection_count_limit = 15"<br />
<br />
postconf smtpd_client_connection_count_limit<br />
smtpd_client_connection_count_limit = 15<br />
</pre><br />
<br />
Anschließend muss via service postfix reload der laufende Daemon noch von der Änderung an der main.cf informiert werden<br />
<br />
<br />
===postqueue===<br />
<br />
Zeigt eine vollständige Übersicht aller eMails in den Warteschlangen<br />
<br />
postqueue -p<br />
Alle eMails in der deferred-Queue werden sofort wieder zur Auslieferung gebracht<br />
<br />
postqueue -f<br />
<br />
<br />
===postsuper===<br />
<br />
Um alle Nachrichten aus der Mailqueu erneut zur Auslieferung zu bringen, erreichen wir durch:<br />
postsuper -r ALL<br />
<br />
Löschen der eMail mit der <QUEUE-ID> aus der Warteschlange<br />
postsuper -d <QUEUE-ID><br />
<br />
Will man mehrere Nachrichten eines bestimmten Absenders bzw. Empfängers löschen, so wäre die manuelle Löschung von z.B. mehreren Tausenden von Nachrichten nicht mehr durchzuführen.<br />
In der Manpage von postsuper findet man hierzu einen sehr Hilfreichen Tip (Die Variabeln sind dabei wie folgt belegt: $7=sender, $8=recipient1, $9=recipient2)<br />
<br />
Mit folgendem Befehl löscht man z.B. alle Nachrichten von gaudiwurm@nerv.com:<br />
mailq | tail +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($7 == "gaudiwurm@nerv.com") print $1 }' | tr -d '*!' | postsuper -d -<br />
<br />
alternativ empfiehlt sich das delete_from_mailq.pl von Victor Duchovni<br />
<pre><br />
#!/usr/bin/perl<br />
<br />
$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";<br />
<br />
@data = qx</usr/sbin/postqueue -p>;<br />
for (@data) {<br />
if (/^(\w+)(\*|\!)?\s/) {<br />
$queue_id = $1;<br />
}<br />
if($queue_id) {<br />
if (/$REGEXP/i) {<br />
$Q{$queue_id} = 1;<br />
$queue_id = "";<br />
}<br />
}<br />
}<br />
<br />
#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;<br />
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;<br />
<br />
foreach (keys %Q) {<br />
print POSTSUPER "$_\n";<br />
};<br />
close(POSTSUPER);<br />
</pre><br />
<br />
<br />
===postalias===<br />
<br />
Konvertiert die Datei aliases in das binäre Datenbankformat. (Auf Grund der Doppelpunkte funktioniert hier postmap nicht!) Muss nach jedem Ändern der /etc/aliases aufgerufen werden!<br />
postalias /etc/aliases<br />
<br />
postmap<br />
Konvertiert die angegebene Textdatei in das binäre Datenbankformat. Muss nach jeder Änderung an der Textdatei aufgerufen werden!<br />
<br />
postmap /etc/postfix/policyd_weight_client_whitelist<br />
Listet alle einträge einer Datenbank (i.e. policyd_weight_client_whitelist) auf:<br />
<br />
postmap -s /etc/postfix/policyd_weight_client_whitelist<br />
kundenserver.de OK<br />
<br />
<br />
===lsof===<br />
<br />
Zeigt welches Programm (Command) auf dem gennaten Port lauscht/reagiert.<br />
lsof -i :25<br />
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME<br />
smtpd 22703 postfix 6u IPv4 2790158 TCP *:smtp (LISTEN)<br />
smtpd 22803 postfix 6u IPv4 2790158 TCP *:smtp (LISTEN)<br />
master 31413 root 11u IPv4 2790158 TCP *:smtp (LISTEN)<br />
<br />
<br />
===mailx===<br />
<br />
Nachrichtentext (Mailbody) wird mit dem Subject „Betreff“ an den postmaster und in cc an bigchief geschickt<br />
echo Nachrichtentext | mailx -s "Betreff" -c bigchief postmaster<br />
<br />
<br />
===uuenview===<br />
<br />
Will man Nachrichten mit Anhängen von der Konsole aus verschicken, so z.B. <br />
Status- oder Logfiles via cronjob, so bendient man sich am besten uuenview.<br />
Das Postfixlog (/var/log/maillog) wird als Anhang an den User mit der Adresse empfaenger@nausch.org geschickt. <br />
Absender ist absender@nausch.org, wobei wir als Rückantwortadresse rueckantwortadresse@nausch.org mitgeben.<br />
<br />
# /usr/bin/uuenview -b -s "Betreff" -r rueckantwortadresse@nausch.org -f absender@nausch.org -m empfaenger@nausch.org /var/log/maillog<br />
<br />
=Links=<br />
: http://nodomain.cc/2007/03/14/howto-postfix-als-backup-mx-einrichten.html<br />
: http://www.cyberciti.biz/faq/linux-unix-bsd-postfix-forward-email-to-another-account/<br />
: http://dokuwiki.nausch.org/doku.php/centos:mailserver:nuetzliche_kommandos_rund_um_postfix<br />
: http://www.authsmtp.com/postfix/<br />
: http://www.huschi.net/4_220_de-postfix-greylisting-mit-postgrey-debian.html<br />
: http://www.weareroot.de/2008/07/24/postfix-absender-bei-mailversand-von-der-konsole-anpassen/</div>
Thomas