Home-Mailserver mit DREI Hutchison – static IP – Ausgehende Emails werden geblockt

Nachdem die Geschwindigkeit meines mobilen Internetanschlusses für österreichische Verhältnisse „durch die Decke“ geht, habe ich sämtliche Dienste, die bis zuletzt auf einem externen Server (Rootserver) lagen, auf meinen Raspberry PI3 verlegt.

Grundsätzlich muss ich sagen, dass die Sache rund läuft. Wäre da nicht das leidige Thema der ausgehenden Emails, in Verbindung mit der vorhandenen statischen IP Adresse.

Sie ist statisch, ja.

Sie kostet zusätzlich pro Monat.

Dennoch erkennt zum Beispiel outlook.com die Adresse als „Adresse aus einem dynamischen IP Pool“ und nimmt Mails, die ich über meinen Mailserver sende, nicht an.

Andere Anbieter spucken mir ebenso in die Suppe. (Filterung von Spamhaus.org), obwohl ich dort nicht wegen etwaigem Blacklisting aufscheine.

Auszug:

Outbound Email Policy of The Spamhaus Project for this IP range:

This IP address range has been identified by Spamhaus as not meeting our policy for IP addresses permitted to deliver unauthenticated ‚direct-to-mx‘ email to PBL users.

Important: If you are using any normal email software (such as Outlook, Entourage, Thunderbird, Apple Mail, etc.) and you are being blocked by this Spamhaus PBL listing when you try to send email, the reason is simply that you need to turn on „SMTP Authentication“ in your email program settings. For help with SMTP Authentication or ways to quickly fix this problem click here.

Es liegt jedenfalls nicht am SMTP-Auth. Ich habe mich jetzt vom Listing entfernen lassen. Mal schauen, wann/ob ich bald wieder gelistet bin.

Schade, offenbar kann man doch nicht alle Dienste zu Hause nutzen. Zumindest nicht in Kombination mit meinem vorhandenen Internetzugang.

Raspberry PI3 und Owncloud 9 auf Raspbian Lite

Nachdem ich mittlerweile einen recht potenten Internetzugang zu Hause habe, wollte ich mal versuchen, wie es sich denn verhält, wenn man Owncloud wirklich zu 100% selbst hostet und nicht auf einen externen Serveranbieter angewiesen ist.

Zu diesem Zwecke, hatte ich zuletzt in einen Raspberry PI3 investiert.

Als Betriebsystem kommt Raspian Lite (Jessie) zum Einsatz.

SSD im externen Festplattengehäuse per USB

Das mitgelieferte Netzteil des Raspberry PI3 liefert um die 2,5 Ampere. Kurzerhand habe ich deshalb eine 64GB große SSD in ein externes USB3.0 Gehäuse gesteckt und an den PI3 angeschlossen.

Rein stromtechnisch scheint es hier bislang keine Probleme zu geben.

Swapspace auf der SSD?

Da der PI3 nur 1GB Ram zur Verfügung hat, habe ich auf der SSD eine 4GB große swap-Partition erstellt.

mkswap /dev/sda2

Die Einbindung in /etc/fstab erfolgt folgendermaßen:

/dev/sda2         swap          swap    defaults,noatime  0       0

dhphys-swapfile habe ich deinstalliert, da ich per fstab ja eine fixe Swap-Partition einbinde.

apt-get remove dhphys-swapfile

Nach einem Restart des PI3, checke ich per „top“ die Lage. Wird der Swapspace angezeigt?

top

KiB Swap: „3929084 total“ – es sieht so aus, als wäre alles ok.

Anmerkung: Hierbei handelt es sich um einen Test, da ich nicht weiß, ob dieses Swapfile überhaupt etwas bringt. Da jedoch die 1GB Ram sehr klein bemessen sind und ich einige Serverdienste laufen lassen will, versuch ich es einfach.

phpmyadmin installieren

Zuerst installiere ich mysql-server5, anschließend dann phpmyadmin. Phpmyadmin zieht den Apache Webserver und div. Php-Module mit. Bei der Vergabe des MySql-Rootpasswortes sollte man kein zu einfaches Passwort wählen!

/var/www auf SSD mounten

Anmerkung: Im Nachhinein gesehen, wäre es wahrscheinlich besser gewesen, das komplette /var Verzeichnis auszulagern!

Ich mounte also per /etc/fstab/ die erste Partition der SSD  /dev/sda1 auf /var/www. Das Verzeichnis liegt somit auf einer rund 60GB großen Partition auf der SSD-Festplatte.

 

Owncloud Repo hinzufügen und installieren

Wie man auf der Site https://download.owncloud.org/download/repositories/stable/owncloud/ beschrieben, binde ich das Repository in apt ein. Die installation von Owncloud geschieht mittels:

apt-get update

apt-get install owncloud

Datenbank für Owncloud erstellen

Per phpmyadmin lege ich die für Owncloud notwendige Datenbank an.

ownclouddb

Natürlich brauchen wir auch noch einen User, der auf die DB zugreifen soll. Bitte nicht den MySql – Root User verwenden!

owncloudusr

Nachdem User und Datenbank erstellt sind, müssen noch die Berechtigungen des User auf die Datenbank vergeben werden (Klick für größeres Bild).

owncloud rechte

 

SSL Vhost aktivieren, SSL Zertifikat einbinden

Owncloud sollte NICHT per HTTP angesprochen werden. Es sollte eine strikte Umleitung auf SSL erfolgen. Dies wiederum, erfordert ein entsprechends SSL Zertifikat. Ein solches Zertifikat kann man sich entweder selbst erstellen, oder aber günstig erwerben. Ich habe mit AlphaSSL gute Erfarhungen gemacht. Es spricht jedoch nichts dagegen, ein selfsigned Zertifikat zu verwenden. Es geht ja primär um die Verschüsselung.

Genauere Infos dazu u.a. bei Digitalocean

Eine Bespielkonfiguration (Apache Vhost-Datei unter /etc/apache2/sites-available/dein.vhost.conf), mit permanenter Umleitung auf https kann z.B.: so aussehen (Apache Version 2.4):

<VirtualHost *:80>
ServerName owncloud.server.at
DocumentRoot /var/www/owncloud
SSLVerifyClient optional
Redirect permanent / https://owncloud.server.at
</Virtualhost>

<VirtualHost *:443>
ServerName owncloud.server.at
<IfModule mod_headers.c>
Header always set Strict-Transport-Security „max-age=15768000; includeSubDomains; preload“
</IfModule>

SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/zertifikat.key
SSLCertificateFile /etc/ssl/certs/zertifikat.crt
SSLCaCertificateFile /etc/ssl/certs/AlphaSSLroot.crt

 

DocumentRoot /var/www/owncloud

 

<Directory /var/www/owncloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>

 

ErrorLog /var/log/apache2/owncloud_error.log
CustomLog /var/log/apache2/owncloud_access.log combined
</VirtualHost>

Oben FETT geschrieben = permanente Umleitung auf HTTPS

Die Konfiguration muss dann noch per a2ensite <vhostfile> aktiviert werden! (Achtung Apache Restart nicht vergessen!)

Apache Modul SSL und headers aktivieren

a2enmod ssl
a2enmod headers
service apapche2 restart

 Memory Cache apcu installieren

apt-get install php5-apcu

Danach diese Zeile (unten fett geschrieben) in /var/www/owncloud/config/config.php einfügen:

 ‚dbpassword‘ => ‚wPCn5EhH5q4E4ZcB‘,
‚logtimezone‘ => ‚UTC‘,
‚installed‘ => true,
  ‚memcache.local‘ => ‚\OC\Memcache\APCu‘,

Apache Restart nicht vergessen.

Owncloud Installation starten

Nun sollten die grundlegenden Vorarbeiten erledigt sein. Nach Aufruf des entsprechenden URL der Owncloudinstallation, gibt man nun DB_User, Datenbank,  Host, Owncloud-Admin-User inklusive Passwort in die erscheinende Maske im Browser ein und klickt auf „Installation Fertigstellen“.

Ist alles glatt gegangen, sollte man im Backend von Owncloud landen.

Weitere wichtige Schritte

Serverseitige Verschlüsselung aktivieren

Im Backend sollte die serverseitige Verschlüsselung (Anklicken des angemeldeten User – Administration – links auf Serverseiteige Verschlüsselung – Haken setzen bei Serverseiteige Verschlüsselung aktivieren + Klick auf Verschlüsselung aktiveren) eingeschaltet werden.

Verschlüsselungsmodul laden

Aktivieren des Verschlüsselungsmodules über Klick (links) auf: Apps – Nicht aktiviert – Default encryption module – > auf Aktivieren klicken.

Danach bitte nochmals ab- und wieder anmelden, damit der Schlüssel initialisiert werden kann.

fail2ban installieren

apt-get install fail2ban

Danach kopiert man /etc/fail2ban/jail.conf nach jail.local und aktiviert die entsprechenden jails in der Datei.

Am Beispiel von ssh sieht die Konfig so aus (enabled einfach auf true stellen):

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

rkhunter installieren

apt-get install rkhunter

rkhunter –propupd –update

Sollte man in eine Fehlermeldung a la: „Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/lwp-request“ laufen, muss in /etc/rkhunter.conf die Zeile

SCRIPTWHITELIST=/usr/bin/lwp-request

auskommentiert werden. Danach sollte das Updatescript problemlos durchlaufen und einen Fingerabdruck des Systemes erstellen.

mod_evasive aktivieren

apt-get install libapache2-mod-evasive

Nach der Installation sollte man das Logginverzeichnis erstellen und dem Apache-User (in der Regel www-data bei einsatz von mod_php) Zugriff auf dieses Verzeichnis gewähren.

chown www-data /var/log/mod_evasive

Unter /etc/apache2/mods-available/evasive.conf muss die Konfiguration angepasst werden. Eine nicht so scharf eingestellte Beispielkonfiguration wäre:

<IfModule mod_evasive20.c>
DOSHashTableSize    3097
DOSPageCount        20
DOSSiteCount        100
DOSPageInterval     1
DOSSiteInterval     1
DOSBlockingPeriod   10

 

DOSEmailNotify      hostmaster@it-networker.at
#DOSSystemCommand    „su – someuser -c ‚/sbin/… %s …'“
DOSLogDir           „/var/log/mod_evasive“
DOSWhitelist 127.0.0.1
</IfModule>

Dies sollte es vorerst gewesen sein. Im folgenden Teil (noch in Arbeit), werde ich kurz auf die zusätzliche Absicherung des Systemes eingehen und auch eine Benachrichtigung einrichten.

Vor allem kann ich dann eventuell schon Aussagen bezogen auf die Leistungsfähigkeit des PI3 tätigen.

TP-Link Archer MR200 – Drei Hutchison und 4G – fixe IP

Der TP-Link Router bietet mehr Möglichkeiten wie der Webgate3, deshalb schickte ich mit heutigem Tage den braven Gate in die Pension. Zuvor entfernte ich natürlich noch die Simkarte und steckte sie in den SIM-Slot des TP-Link.

Da ich externe Antennen verwende, blieben die mitgelieferten Stummelantennen originalverpackt in der Verpackung liegen.

Nur noch das CAT-Kabel anschließen, die Stromversorgung anstecken und Power UP.

„Das wird eine Plug and Play Installation“, dachte ich mir.

Standardmäßig hat der MR200 die IP 192.168.1.1. Ich arbeite mich durch den kurz gehaltenen Assistenten, sehe dass mein Provider samt APN drei.at bereits erkannt worden ist, klicke hastig weiter…

Internet Verbindung wird überprüft… und überprüft… und FEHLER, keine Verbindung

Kurz überlegt, was hab ich falsch gemacht, mir fällt nichts ein. Signalstärke liegt bei 100%. Trotzdem hol ich die Stummelantennen raus. Signalstärke fällt auf 70%. Der Verbindungstest schlägt fehl.

Ich wechsle in das Menü „Internet“ im Backend des Router. Stelle den Network Mode von Auto auf 4G. Keine Verbindung. Na gut, dann versuch ich halt auch noch 3G. Plötzlich lese ich „connected“.

Jetzt, wo ich eine Internetverbindung zu Stande gebracht habe, kann ich gleich ein Firmware-Update durchführen. (vielleicht behebt ja das das Problem). Ein unspektakuläres Firmware Update später, muss ich jedoch feststellen, dass die Aktualisierung genau „nichts“ gebracht hat. Es funktioniert immer noch nicht.

Bleibt mir wohl der Griff zum Telefon nicht erspart – Hotlinetime.

Gibt es vielleicht irgendwelche Einschränkungen seitens der Providers? Meine letzte Hoffnung zerstört der sehr freundliche Mitarbeiter mit einem „Uns ist egal, welche Hardware sie einsetzen, sie müssen nur den APN: drei.at einstellen.“ (Anm.: Ich habe gefragt, ob das auch bei fixer IP so ist).

Mist, da hat wohl der Router einen Defekt… Doch dann passierte es ;-).

Mir schoss in den Kopf, dass ich irgendwo mal etwas vom APN: static.drei.at gelesen hab. (Gedankengang: static.drei.at … statische IP, könnte vlt. klappen).

Ich stelle also den APN auf static.drei.at um, schalte auf 4G und der Router connected. Damit meine Verbindung allerdings auch auf 3G zurück fallen kann, belasse ich dann die Einstellung auf Auto.

Fazit

Wer Drei Hui Flat in Verbindung mit einer statischen (fixen) IP verwendet und nicht den Webgate3 einsetzt, muss den APN manuell auf static.drei.at setzen, sonst klappt die Verbindung per 4G nicht!

static_drei

1 2 3 65