Mailtest

Wenn man einen Mailserver für diverse Domains betreibt, möchte man nach Erstellung einer neuen Domain überprüfen, ob alles (Mailserver, DNS, etc.) auch korrekt konfiguriert ist und Mails von der neuen Domäne nicht irgendwo von einen Spam-Filter o.ä. abgefangen werden. Dafür gibt es ein tolles Web-Tool:

https://www.mail-tester.com

Hier kann man sich einen Mail-Empfänger generieren lassen, auf welchen dann ein Mail von der zu überprüfenden Mail-Adresse gesendet werden kann. Das Web-Tool listet dann den Score auf und zeigt was verbessert werden kann.

IRedMail: Unban IP Adresse

Nach einigen „Modifikationen“ auf meinen Mail-Server schlug fail2ban zu und blockierte meine IP mit

reject-with icmp-port-unreachable

Nach einem kurzen Check auf iptables war auch klar wieso:

> sudo iptables -L -n

Chain fail2ban-dovecot (1 references)
target     prot opt source               destination         
REJECT     all  --  1.2.3.4              0.0.0.0/0            reject-with icmp-port-unreachable

Um die IP wieder freizuschalten geht man folgendermassen vor:

Ermitteln des fail2ban jails

> sudo fail2ban-client status

Status
|- Number of jail:	5
`- Jail list:		ssh-iredmail, roundcube-iredmail, w00tw00t-scans, dovecot-iredmail, postfix-iredmail

Dabei erkennt man, dass der Jail-name dovecot-iredmail mit der  iptables chain fail2ban-dovecot korrespondiert. Das ist also die jail, um welche es sich dreht.

Nun die Ip wieder freischalten

> sudo fail2ban-client set dovecot-iredmail unbanip 1.2.3.4

Ein weiterer check mit iptables zeigt, dass die Freischaltung funktioniert hat:

> sudo iptables -L -n

Chain fail2ban-dovecot (1 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0

Referenz

Serverfault: Fail2ban – unpan ip

iredmail E-Mail Verteiler Liste erstellen

E-Mail Verteilerlisten lassen sich mit der  iredmail Pro-Version leicht über das Admin-Panel erstellen. All jene, welche nicht die Pro-Version einsetzen, können das aber auch direkt über die Datenbank einrichten. Ich verwende MySQL als Backend-DB.

Folgendes Beispiel erstellt einen Alias „EmailUserAlias@example.net“. Mails an diese Adresse werden an die Adressen

  • user1@domain.com
  • user2@domain.com
  • user3@domain.com

weitergeleitet. Es sollen aber lediglich Mitglieder der Domain „example.net“ Emails an den Verteiler  „EmailUserAlias@example.net“ versenden können.

Das Forwarding wird für die Domain „example.net“ eingerichtet.

Und so geht’s:

mysql --user=<user> --password=<password>
USE vmail;
INSERT INTO alias (address, goto, accesspolicy, domain) VALUES ('EmailUserAlias@example.net', 'user1@domain.com,user2@domain.com,user3@domain.com','domain','example.net');

Mögliche Access Policies in iRedAPD-1.3.4:

Restriction Comment Value of column ‚alias.accesspolicy‘
Unrestricted Email is unrestricted, which means everyone can mail to this address. public
Domain Wide Only users under same domain can send mail to this address. domain
Domain and all sub-domains Only users under same domain and sub-domains can send mail to this address. subdomain
Members Only Only members can send mail to this address membersOnly
Moderators Only Only moderators can send mail to this address allowedOnly
Members and Moderators Only Only members and moderators can send mail to this address membersAndModeratorsOnly

Siehe dazu auch Link: http://www.iredmail.org/docs/sql.create.mail.alias.html

iredmail Greylisting

Nach der Installation von iRedMail konnte ich zwar Mails versenden, Mails empfangen ging aber teilweise nicht. Ursprung des Problem war Greylisting. Folgender Link hilft weiter:

http://www.laub-home.de/wiki/Eigener_Mailserver_mit_iRedMail#Fallstricke

Zitat aus obigem Link:
Bei den ersten Versuchen, von extern eine E-Mail an den Server zu schicken, wird diese nicht ankommen und Logfile ist zu sehen, dass die Nachricht wegen des Greylisting nicht zugestellt wurde. Greylisting ist standardmäßig über das Module Cluebringer aktiv und ist eine Methode zur Verhinderung von Spam.

Beim Greylisting wird ein Objekt aus der Sender-Adresse, dem Mail-Server und der Empfänger-Adresse gebildet. Taucht eine solche Kombination das erste Mal auf, wird die E-Mail temporär abgelehnt. Seriöse E-Mail-Server (Sender) versuchen in diesem Fall, die E-Mail nach einigen Minuten nochmals zuzustellen während eine Spam-Schleuder einfach aufhört. Erfolgt der zweite (manchmal auch dritte) Zustellungsversuch wird die E-Mail zugestellt und das Objekt in eine Whitelist aufgenommen. Alle zukünftigen Zustellungsversuche mit derselben Kombination werden sofort zugelassen.

Ist dieses Verhalten nicht gewünscht, dann kann das Greylisting in der Datei

/etc/cluebringer/cluebringer.conf

deaktiviert werden, indem unter dem Bereich [Greylisting] der Wert von „enable“ auf 0 gesetzt wird. Danach ist eine Restart des Cluebringer Service nötig:

service postfix-cluebringer restart

Photon 3.0 auf ESXi 5.5

Photon 3.0 installieren

Netzwerk einrichten

vi /etc/systemd/network/99-dhcp-en.network

Das File updaten

[Match]
Name=e*

[Network]
Address=x.x.x.x/xx
Gateway=x.x.x.x
DNS=x.x.x.x
Domains=name

Nach dem anschliessend Reboot sollte das Netzwerk erreichbar sein

reboot

root-login auf ssh erlauben

Natürlich ist es keine gute Idee, den root-User auf SSH zu erlauben. Damit man aber einigermassen angenehem die Konfigurationen vornehmen kann (über die ssh Konsole), wird dieser aktiviert. Sobald weitere User eingereichtet sind, kann der root-access wieder eingeschränkt werden.

Damit man sich als root per ssh einloggen kann muss man das File

vi /etc/ssh/sshd_config

editieren:

PermitRootLogin yes

Anschliessend den Service restarten

systemctl restart sshd

Root Passwort ändern

Beim Installieren von Photon gebe ich ein einfaches Passwort ein, weil die locale (Tastatur-Layout) nicht wirklich für Deutsch funktioniert. Anschliessen, sobald über SSH connected werden kann, setze ich ein stärkeres Passwort:

passwd

Upgrade PhotonOS

PhotonOS upgraden

tdnf distro-sync

Docker aktivieren

systemctl enable docker

Neuer User erstellen

Nun werden neue User erstellt.

useradd -m -U username
passwd username
usermod -aG docker username

Anschliessend rebooten

reboot

Ab sofort kann man sich mit dem neue erstellen User per SSH einloggen.

Root-User Rechter erhält man ab sofort mit

su -

Docker Compose installieren

Nun wird Docker Compose installiert. Bitte darauf achten, dass die neueste Version installiert wird.

Siehe auch https://github.com/docker/compose/releases/

su -
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
chgrp docker /usr/local/bin/docker-compose
exit

Root wieder deaktivieren

Nun kann das Root-Login über SSH wenn gewünscht wieder deaktiviert werden.

vi /etc/ssh/sshd_config
PermitRootLogin yes
systemctl restart sshd

dd-wrt: exclude IPs von VPN

Ich verwende OpenVPN auf dd-wrt und leite den gesamten Traffic über einen VPN-Anbieter. Leider b(l)ockt hier Netflix. Um den Traffic des Netflix-Devices nicht über OpenVPN zu leiten gibt es hier ein schönes Tutorial:

https://www.ivpn.net/knowledgebase/124/DD-WRT—How-do-I-exclude-hosts-or-bypass-VPN-tunnel.html

…das geht aber irgendwie nicht.

Next try:

http://www.titam.ca/2015/07/notes-on-various-ways-of-configuring.html

https://jamiegoodwin.uk/how-to-restrict-openvpn-to-certain-devices-in-dd-wrt/

Wichtig:

Die Zugriffsbeschränkung von dd-wrt funktioniert nicht zusammen mit vpn. Die Zugriffsbeschränkung zieht nur bei einer direkten internet-Verbindung. VPN gilt „quasi“ als interne Verbindung. Um einem Internen Host (z.B. dem xiaomi mi home) die Zugriffbeschränkung in das Internet zu entziehen muss man also diesen bestimmten Host (xiaomi mi home) ohne VPN vetreiben und so die Zugriffsbeschränkung aktivieren.

Um die IPs vom VPN zu exkludieren, muss man dies in dd-wrt mittels Netz-Definition (nicht durch Eingabe der spezifischen IP) definieren. Das geht rasch mit folgenden Link. Einfach IPs eingeben und sich das Netz berechnen lassen:

https://www.ipaddressguide.com/cidr