Erhöhen Sie die Sicherheit Ihres E-Mail-Servers gegen Hackerangriffe mit einem VPN auf CentOS/RHEL
09:17, 11.12.2023
E-Mail-Server mit einem VPN absichern
Dieser Artikel ist hilfreich für alle Nutzer, die ihre E-Mail-Server vor Online-Angriffen schützen möchten. Hier erfahren Sie alles über die möglichen Tricks und Empfehlungen für selbst gehostete VPNs. Das Problem mit Spammern ist wirklich groß, sie greifen regelmäßig E-Mail-Server an. Sobald sie ein Ziel erreicht haben und Zugang zu dem benötigten Server haben, stehlen sie entweder Informationen oder versenden große Mengen an Spam. Durch die Verwendung eines selbst gehosteten VPNs können Sie die Chancen solcher Spammer drastisch verringern und eine sicherere Umgebung schaffen.
Wenn Sie diesen Artikel lesen, dann haben Sie wahrscheinlich einen E-Mail-Server und einen VPN-Server eingerichtet. Wenn nicht, folgen Sie ein paar Anleitungen und installieren Sie, was Sie brauchen. Es gibt 2 Varianten: Der VPN-Server kann auf demselben Server wie der E-Mail-Server oder auf einem separaten Host betrieben werden.
Eine bessere Variante wäre es, Mail und VPN als zwei getrennte Server zu betreiben, was die Komplexität des Betriebs drastisch verringern würde. Wenn dies auf demselben Server geschieht, muss eine Zone für Antwortrichtlinien eingerichtet werden.
Sperren von Anschlüssen
Wenn Sie alles eingerichtet haben, was das Funktionieren von Mail- und VPN-Servern betrifft, und überprüft haben, dass das System reibungslos funktioniert, können Sie mit dem nächsten Schritt fortfahren. Es ist sehr ratsam, die IP des VPN-Servers in die Whitelist der Firewall aufzunehmen. Unter CentOS oder RHEL ist dies mit einer kleinen Änderung leicht zu bewerkstelligen: Ersetzen Sie einfach die Server-IP durch 12.34.56.78. Laden Sie Firewalld neu und der Vorgang ist abgeschlossen.
Jetzt können Sie mit der Sperrung der Ports beginnen. Sie müssen POP3-, Submission- und IMAP-Ports schließen. Niemand möchte irgendwelche seltsamen Aktivitäten auf dem Server, daher ist es besser, Ports wie 995, 587, 110, 465, 993 und 143 in der Firewall zu schließen. Aufgrund des vorangegangenen Schritts des IP-Whitelistings können nur diejenigen, die tatsächlich mit dem VPN-Server verbunden sind, auf diese Ports zugreifen.
Vernachlässigen Sie nicht die Tatsache, dass Port 25 belassen werden sollte, um weiterhin E-Mails von SMPT-Servern zu empfangen.
Um diese Ports unter RHEL und CentOS zu entfernen, verwenden Sie die folgenden Befehle:
sudo firewall-cmd --permanent --remove-service={smtp-submission,smtps,imap,imaps,pop3,pop3s}
sudo firewall-cmd --permanent --remove-port={587/tcp,465/tcp,143/tcp,993/tcp,110/tcp,995/tcp}
Es kann sein, dass nach diesen Befehlen eine Warnung erscheint, aber das braucht Sie nicht zu kümmern. Laden Sie einfach Firewalld neu, mit der Zeile:
sudo systemctl reload firewalld
Absicherung des Admin-Panels und von Webmail
Webmail und Admin-Panel können auch durch einfaches Sperren der Ports 443 und 80 gesichert werden. Dies führt jedoch zu einem weiteren Problem - es wird keinen öffentlichen Zugang zu den virtuellen Hosts geben. Viele Kunden bevorzugen virtuelle Hosts, z.B. in Nginx, und das muss offen sein. Ein Ausweg aus dieser Situation wäre der Einsatz einer Zugangskontrollfunktion für Nginx oder Apache.
Nginx Sicherheit
Um eine höhere Sicherheitsstufe zu erreichen, sind einige wichtige Schritte erforderlich. Beginnen Sie mit der folgenden Datei:
sudo nano /etc/nginx/conf.d/mail.your-domain.com.conf
Hier müssen Sie die virtuelle Hostdatei für Mail bearbeiten. In der nächsten Zeile werden alle IPs außer der von Ihnen angegebenen abgelehnt:
allow 12.43.23.45;
deny all;
Wenn Sie mehrere VPN-Server verwenden, ist das kein Problem. Sie können so viele IPs hinzufügen, wie Sie benötigen, dann die Änderungen speichern und die Datei schließen. Testen Sie die Konfiguration, und wenn sie gut funktioniert, laden Sie Nginx neu. Nachdem Sie den gesamten Vorgang abgeschlossen haben, werden Benutzer, die nicht in der Whitelist stehen, mit einem 403-Fehler darauf hingewiesen, dass etwas nicht stimmt.
Apache-Sicherheit
Wie bei Nginx beginnt der Prozess auch hier mit der Webmail im Verzeichnis /etc/httpd/conf.d/. Das müssen Sie finden:
sudo nano /etc/httpd/conf.d/mail.your-domain.com-le-ssl.conf
Sie müssen die benötigte IP-Adresse zwischen den folgenden Tags eingeben - <VirtualHost>...</VirtualHost>. Wenn Sie die erforderliche IP-Adresse eingeben, werden alle anderen Zugriffe verweigert.
Require ip 12.45.54.11
In dieser Datei können auch einige IPs hinzugefügt werden, und diese Zeile sieht dann wie folgt aus:
Require ip 45.34.11.78 15.45.23.69
Lassen Sie die Änderungen so, wie Sie sie vorgenommen haben, und schließen Sie die Datei. Testen Sie danach die Konfiguration von Apache und laden Sie sie neu. Die Benutzer, die nicht in der Whitelist enthalten sind, werden mit einem 403-Fehler benachrichtigt.
Deaktivieren von DNS über HTTPS in Ihrem Webbrowser
Falls Mail- und VPN-Server auf einem Host liegen, ist es ratsam, DNS über HTTPS im Browser zu deaktivieren.
- Wenn die Maschine mit dem VPN-Server verbunden ist, wird der DNS-Verkehr verschlüsselt und die Funktion DNS über HTTPS ist nicht erforderlich.
- Wenn DNS über HTTPS im Browser aktiviert ist, wird DNS von Dritten verwendet. Gleichzeitig wird Ihr persönlicher DNS-Resolver nicht verwendet und Sie haben keinen Zugriff auf Webmail und das Admin-Panel.
In verschiedenen Browsern kann diese Art von Einstellung anders bezeichnet werden. Firefox-Benutzer sollten zum Beispiel nach Netzwerkeinstellungen suchen. Chrome-Kunden finden diese Einstellungen unter Datenschutz und Sicherheit. Nach der Deaktivierung müssen Sie den Browser schließen und ein wenig warten. Danach erhalten Sie höchstwahrscheinlich den Zugang zurück. Sollte es immer noch nicht funktionieren, müssen Sie möglicherweise den Cache des Browsers leeren.
Erneuerung von Certbot TLS-Zertifikaten
Falls Sie die Whitelist in Nginx oder Apache aktiviert haben, blockieren Sie in diesem Fall auch Let's Encrypt-Server für die Verbindung zum Server. Es wird für die Erneuerung des TLS-Zertifikats mit der HTTP-01-Challenge benötigt. Dieses Problem kann gelöst werden, indem die Whitelist vor der Erneuerung des Zertifikats deaktiviert und direkt nach der Erneuerung aktiviert wird.
Beginnen Sie mit der Erstellung des Shell-Skripts im Verzeichnis /root/.
sudo nano /root/certbot-renewal.sh
Wenn Sie Nginx verwenden, sollten die folgenden Zeilen in die Datei eingefügt werden.
sed -i 's/deny all;/#deny all;/g' /etc/nginx/conf.d/mail.required-domain.com.conf
systemctl reload nginx
certbot renew --quiet
sed -i 's/#deny all;/deny all;/g' /etc/nginx/conf.d/mail.required-domain.com.conf
systemctl reload nginx
Wenn Sie Apache verwenden, sollten die folgenden Zeilen hinzugefügt werden.
sed -i 's/Require ip/#Require ip/g' /etc/httpd/conf.d/mail.required-domain.com-le-ssl.conf
systemctl reload apache2
certbot renew --quiet
sed -i 's/#Require ip/Require ip/g' /etc/httpd/conf.d/mail.required-domain.com-le-ssl.conf
systemctl reload apache2
Speichern Sie die Änderungen und schließen Sie diese Datei. Fügen Sie anschließend die Ausführungsberechtigung hinzu und bearbeiten Sie die crontab-Datei des Root-Benutzers. Richten Sie alles so ein, dass das Shell-Skript einmal pro Tag ausgeführt wird, und schließen Sie die Datei mit den vorgenommenen Änderungen.
Überlegungen zur SSH-Port-Sicherheit
Sobald Sie den Prozess des IP-Whitelistings abgeschlossen haben, ist die Sperrung der Ports aus Sicherheitsgründen sehr wichtig. Wie bei allen geschlossenen Ports können Sie auch die Sperrung des SSH-Ports in der Firewall in Betracht ziehen. Dieser Vorgang kann jedoch zusätzliche Risiken mit sich bringen. Im Notfall, wenn der Server nicht funktioniert, ist es möglich, ihn komplett auszusperren. Deshalb ist es besser, über den richtigen Schutz von SSH nachzudenken. Die bestmögliche Variante ist hier die Einrichtung einer Zwei-Faktor-Authentifizierung oder die Authentifizierung des öffentlichen Schlüssels.
Zusammenfassend
Die Sicherheit von E-Mail-Servern ist wirklich wichtig und sollte strategisch geplant und organisiert werden. Alle Schritte, die wir in diesem Artikel besprochen haben, werden sicherlich dazu beitragen, das Sicherheitsniveau zu verbessern und die Risiken von Spammer-Angriffen zu minimieren. Portsicherheitsmaßnahmen oder die vollständige Sperrung der Ports sollten als gute Methode gegen unerwünschte Log-ins angesehen werden. Darüber hinaus ist die Absicherung des Admin-Panels und der Webmail ein guter Ansatz, den alle Nutzer umsetzen sollten.