Sophos: SSL Netzanbindung mit Raspberry Pi

Sophos: SSL Netzanbindung mit Raspberry Pi

Sollte die Anbindung an einem Netz erforderlich sein, kann man zum einen ein gesamtes Netz mit einer RED oder einer Firewall realisieren. Selbst eine Anbindung mit einer Fritzbox ist möglich (Achtung: Dies ist jedoch nicht von Sophos supported!).

Sollte es jedoch absolut nicht klappen, kann man einen Raspberry Pi als Router umfunktionieren und diesen per OpenVPN verbinden. Über die Fritzbox verteilt man dann die Route zu dem entfernten Netz und versteckt das Netz per NAT hinter dem Raspberry. Somit kann das gesamte lokale Netz auf das Netz hinter der Sophos zugreifen (Achtung: Da dies keine Site-to-Site Anbindung ist, kann man nicht aus dem Netz hinter der Sophos auf das entfernte Netz zugreifen).

Ich nutze hier einen aktuellen Raspberry Pi in der Version 3B (dieser hat genug Power und ein Gigabit LAN Interface). Dieser kostet um die 35€, komplette Sets gibt es bei Amazon und vielen anderen für ca. 60€ inkl. Raspberry Pi, Netzteil, Gehäuse, SD Karte mit Adapter, HDMI Kabel und Anleitung.

SSL VPN Benutzer einrichten auf der Firewall

Aktivieren und richten Sie den SSL Fernzugriff ein auf der Sophos. Gehen Sie dazu auf Remote Access > SSL > New Remote Access Profile … und erstellen ein Profil wie folgt:

Erstellen Sie nun auf der Sophos einen User wie folgt (natürlich mit echten Daten):

Diesen User nun einer Gruppe hinzufügen die SSL VPN Rechte hat oder direkt in dem SSL Fernzugriff Profil hinzufügen.

Laden Sie nun die entsprechende ovpn Datei herunter (aus der Zip-Datei extrahieren).

Tipp: SSL-Konfigurationsdatei als Admin runterladen!

Installation Linux auf dem Raspberry

Als Basis setze ich ein aktuelles Raspberian Stretch Lite ein (Download).

Wie in der Anleitung beschrieben, entpacke ich die Datei nach dem Download und überspiele die entpackte ISO Datei mit dem Tool Etcher auf die SD Karte.

Anschließend kommt die Karte in dem Raspberry Pi und das Gerät wird gestartet.

Wenn das System gestartet ist, als User pi mit dem Passwort raspberry einloggen (beachtet bitte, das das Default Keyboardlayout US ist und somit das z statt dem y zu verwenden ist) und das System updaten wie folgt:

sudo apt-get update
sudo apt-get dist-upgrade

Als nächstes dann den Raspberry Pi einrichten mit dem folgenden Befehl:

sudo raspi-config

Stellt bitte nun ein neues Passwort ein, die IP Adresse und das Keyboard Layout auf DE. Ich aktiviere auch SSH, damit ich bequem per SSH und Copy&Paste von einem Rechner mit Internetanschluß die Konfiguration abarbeiten kann. Wenn Sie SSH nicht mehr benötigen, können Sie es wieder über raspi-config deaktivieren.

Ich habe die folgenden Einstellungen gewählt (Basis für mein ISO zur Verteilung):

  • Kennwort: RasRou!2019
  • Hostname: pi-gateway
  • Locales: de_DE ISO-8859-1, Default: de_DE
  • Timezone: Europe/Berlin
  • Keyboard Layout: Generic 105-Key (Intl) PC, Other: German, German, Default Key, No compose Key
  • Interface Options: SSH Enabled

Nach einem Neustart deaktivieren Sie noch WLAN und Bluetooth laut dieser Anleitung wie folgt:

sudo nano /boot/config.txt
 # turn wifi and bluetooth off  
 dtoverlay=pi3-disable-wifi  
 dtoverlay=pi3-disable-bt  

Anschließend noch den hciuart Dienst deaktivieren und neustarten:

sudo systemctl disable hciuart  
sudo reboot  

Einrichten VPN Client

Ich gehe hier grundsätzlich nach dieser Anleitung vor, habe jedoch ein paar kleine Änderungen.

Als erstes den VPN Client installieren mit:

sudo apt-get install openvpn

Diese eben kopierte VPN-Konfigurationsdatei bitte nach remote.conf umbennen und nach /etc/openvpn kopieren (z.B. mittels wget oder FTP auf dem Rechner kopieren).

Hinweis: Wenn die Datei anders heißen soll, bitte unten bei Systemctl diese Datei entsprechend anpassen. Die Endung sollte jedoch .conf sein – nicht .ovpn, da sonst Systemctl nicht den Dienst starten kann – es wird kein kompletter Dateiname angegeben und .conf automatisch angehangen!

Dann eine Datei mit dem Namen login mit Zugangsdaten erstellen (in der erste Zeile ist der Username und in der zweiten Zeile das Passwort):

sudo nano /etc/openvpn/login

Dann an der Datei die Rechte anpassen, das nur root sie einsehen kann:

sudo chmod 600 /etc/openvpn/login

Editieren Sie die ovpn-Datei, das hinter auth-user-pass noch der Dateinamen Login steht und speichern diese:

auth-user-pass /etc/openvpn/login

Mit dem folgenden Befehl können Sie sehen, ob die Einwahl erfolgreich war (diese müsste dann in der Sophos unter Fernzugriff angezeigt werden):

sudo openvpn --config /etc/openvpn/remote.conf

Nun wird das VPN so eingestellt, das es direkt nach dem Boot läuft (Achtung: Der Dateiname OHNE .ovpn):

sudo systemctl enable openvpn@remote

Den Raspberry zum Router umfunktionieren

Nun muss noch IP Forwarding aktiviert werden:

echo -e '\n#Enable IP Routing\nnet.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Anschließend noch NAT aktivieren:

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

Die Regeln speichern:

sudo apt-get install iptables-persistent

Anpassungen am vorhandenem Internetrouter

Weiterhin müssen sie der Raspberry stets die selbe Adresse zuordnen, dies können sie über die Fritzbox einstellen (sofern diese den DHCP Server stellt). Gehen Sie dazu unter Heimnetz > Netzwerk > Rapberry auswählen und auf das Stiftsymbol klicken. Kontrollieren sie Namen und IP Adresse und machen Sie einen Hacken bei Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen.

Damit auch die anderen Rechner im LAN das VPN Netz finden, muss auf dem Internetrouter noch eine Route bekanntgegeben werden – hier anhand einer Fritzbox, gehen Sie unter Heimnetz > Netzwerk > Netzwerkeinstellungen > IPv4 Routen:

Masterimage

Falls sie möchten, können Sie ein fertiges Image runterladen und dieses nur noch anpassen. Das Image hat folgende Konfiguration:

  • Username: pi
  • Passwort: RasRou!2019
  • IP: DHCP
  • SSH: Aktiviert

Das Image können Sie hier herunterladen. Es wurde gezippt, damit es weniger Platz und Bandbreite spart. Entzippt es (z.B. mit 7-Zip) und kopiert es dann mit einem Imagetool (z.B. mit Win32Diskimager) auf eine neue SD Karte und startet damit euren Raspberry. Mit den Tools könnt ihr euch auch selber jederzeit ein Backup erstellen (z.B. Sicherungskopie wenn alles funktioniert).

Wenn Sie das Image einsetzen, sollten Sie unbedingt das Kennwort ändern und gegebenenfalls die IP anpassen! Um das VPN nutzen zu können, müssen Sie natürlich eine OpenVPN Konfigurationsdatei einspielen. Wenn Sie SSH nicht benötigen, deaktivieren Sie es. Beachten Sie, das nun alle Rechner im Netzwerk (auch im WLAN) Zugriff auf das entfernte VPN Netz haben – auch eventuell Virenverseuchte Rechner!

Weitere Möglichkeiten

Site-to-Site statt Einzelanbindung: https://www.foxplex.com/sites/sophos-utm-site-to-site-vpn-mit-openvpn/

Raspberry als VPN Server verwenden: http://www.pivpn.io/

WLAN Hotspot bereitstellen über Raspberry:
https://www.datenreise.de/raspberry-pi-3-wlan-verbindung-herstellen/

Bekannte Probleme

  • Feste IP zuordnen klappt noch nicht. Lösung über Fritzbox eingerichtet.
  • Wenn die Verbindung mehrfach neu aufgebaut wurde, funtkoonierte zeitweise Ping nicht stabil – entfernte Dienste konnten jedoch ohne Problem genutzt werden.

Achtung

Ich übernehme keine Haftung, weder für die Dokumentation noch für das fertige Masterimage!!!

Stand 23.01.2019


OpenVPN / Sophos SSL VPN Client: Windows Rechner als Softwarerouter verwenden

Achtung: Seit dem 23.1.2019 habe ich auch einen Artikel der erklärt, wie man einen Raspberry Pi verwenden kann. Diese Lösung wäre zu bevorzugen!

Dieser Tip funktioniert zwar grundsätzlich, ist aber weit entfernt davon als stabil zu gelten – womöglich kann er dazu dienen eine kurze Zeit als Notlösung zu fungieren.

Stellen Sie auf dem Rechner im BIOS/UEFI ein, das der Rechner immer an bleibt und nach einem Stromausfall wieder hochfährt.

Stellen Sie im Windows in den Energieoptionen ein, das der Rechner nicht ausschaltet (Festplatte und Monitor können jedoch ausgehen). Es muss niemand am Rechner angemeldet sein, nachdem alles eingerichtet wurde! Es reicht wenn er hochfährt.

Melden Sie sich an Windows mit Adminrechten an und geben Sie dem Rechner eine Feste IP, sowie alle benötigten weiteren Parameter wie DNS und Gateway.

Installieren Sie den aktuellsten Open VPN oder Sophos VPN Client und richten Sie die SSL Verbindung ein (am besten mit rechter Maustaste und „Als Administrator ausführen“) und testen Sie die Verbindung.

Sollte diese funktionieren, gehen Sie bitte in das Config Verzeichnis des VPN Clients (z.B. C:\Program Files (x86)\Sophos\Sophos SSL VPN Client\config) und erstellen sie eine Datei mit dem Namen password.txt, tragen sie in der ersten Zeile den Benutzernamen und in der zweiten Zeile das Kennwort ein.

Öffnen Sie die entsprechende Config-Datei und tragen Sie nach auth-user-pass ein Leerzeichen und dann password.txt ein:

auth-user-pass password.txt

Prüfen Sie nun ob Sie die Verbindung ohne Zugangsdaten aufbauen können.

Klicken Sie nun auf Start und tippen Sie services.msc und machen ein Doppelklick auf OpenVPN Service und stellen Sie die Startart auf Automatisch.

Wenn Sie den Rechner neustarten und sich anmelden, sollten sie nach ein paar Sekunden Adressen aus dem entfernten VPN anpingen können (ohne das der VPN Client eine Verbindung anzeigt). Es sollte jedoch die Netzwerkschnittstelle des VPN Clients im Netzwerk- und Freigabecenter aktiv sein (kein rotes X).

Sollte nun soweit alles funktionieren, gehen Sie bitte mit der rechten Maustaste auf die Verbindung in die Eigenschaften auf dem Tab Freigabe (sollte der nicht vorhanden sein, deinstallieren Sie bitte den alten VPN Client und installieren eine aktuelle Version mit Adminrechten).

Windows wird nun eine Meldung ausgeben, das von der Netzwerkschnittstelle die IP Adresse verändert wird auf 192.168.137.1 – stellen Sie die Netzwerkeinstellungen wieder zurück auf die richtigen Werte. Nach ein paar Sekunden sollten wieder entferne Ressourcen anzupingen sein.

Damit nun die anderen Rechner auch das entsprechende Netz finden, müssen Sie eine Route erstellen auf das entfernte Netz, damit sie das nicht an jedem Rechner machen müssen, machen Sie das am besten auf den vorhandenen Router, der die Internetverbindung herstellt – z.B. bei einer Fritzbox unter Heimnetz > Netzwerk > Netzwerkeinstellungen > IPv4 Routen:

Bekannte Probleme:

Nach einem Neustart funktioniert die Verbindung zwar an dem Rechner wo das VPN Installiert ist, jedoch nicht mehr bei den anderen Geräten im Netzwerk:

Hier muss einmal wieder der Hacken bei „Internetverbindung freigeben“ bei der VPN Netzwerkschnittstelle entfernt werden – da dabei Windows auch die IP bei der LAN Verbindung zurücksetzt auf 192.168.137.1, muss hier wieder alles die zuvor konfigurierte Adresse zurückgesetzt werden. Nach ein paar Sekunden ist die Verbindung durch den VPN Dienst wieder neugestartet und sollte wieder funktionieren.

Alle Geräte im Netzwerk können auf das Remotenetzwerk zugreifen, jedoch das Remotenetzwerk nicht auf die lokalen Geräte:

Dies wird auch leider nicht funktionieren, da alle Geräte hinter der Adresse des einzelnen VPN Rechners per NAT (Network Adress Translation) versteckt sind und nicht erreichbar sind. Hier würde eine Lösung benötigt, die das gesamte Netz anbindet (z.B. ein Hardwarerouter auf Raspi-Basis). Evtl. kommt hierzu noch ein entsprechender Beitrag.


Apache: SSL höhere Verschlüsselungssicherheit

Wer die Verschlüsselungssicherheit erhöhren möchte und dabei auf Kompatibilität mit alten Anwendungen verzichten möchte, der kann die folgende Konfiguration vornehmen:

Aktivieren des Apache2 Moduls Headers mit (in einer Shell mit root-rechten oder mit sudo):

sudo a2enmod headers 

Danach die ssl.conf (z.B. unter Debian unter /etc/apache2/mods-aviable) anpassen um die folgenden Zeilen bzw. existierende entsprechend anpassen:

SSLCipherSuite  TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
SSLSessionTickets Off

Anschließend mit root-rechten die Konfiguration prüfen:

apachectl -t

Und dann Apache neustarten:

apachectl restart

Anschließend könnt ihr mit SSL Testingsites (z.b. https://www.ssllabs.com/ssltest/) die Konfiguration prüfen.

Weitere Links:

Tipp: Mit dem Editor Nano können sie über eine SSH Shell Copy & Paste nuzten.

Windows Server könnt ihr mit dem Tool IISCrypto.exe sichern – zu finden hier: https://www.nartac.com/Products/IISCrypto


Wildcard Zertifikat unter Windows erstellen und einrichten

Kategorie: Diverse , Server

Installieren Sie bitte OpenSSL (gibt es auch als Windows Version).

Öffnen Sie eine privilegierte Shell (CMD > rechte Maustaste > als Administrator ausführen) und gehen Sie nach C:\OpenSSL-Win32\bin und geben Sie folgenden Befehl ein:

openssl genrsa -out wildcard.domain.de.key 2048

Anschließend geben Sie folgenden Befehl ein:

openssl req -new -sha256 -key wildcard.domain.de.key -out wildcard.domain.de.csr

Öffnen Sie nun die Datei wildcard.domain.de.csr und kopieren Sie den Inhalt und erstellen sie damit ihr Zertifikat (z.B. bei SSLs.com).

Die anschließend erhaltenen Dateien kopieren Sie in eine Datei zusammen in folgender Reihenfolge in die Datei C:\Openssl-Win32\bin\wildcard-domain-de.pem):

  • Zertifikat (vom Anbieter erhalten)
  • Keydatei (Inhalt der Datei wildcard.domain.de.key)
  • Inhalt aus der Datei ca-bundle oder erst das Root Zertifikat sowie die weiteren Intermediate Zertifikate

Geben Sie nun den folgenden Befehl ein in der Shell und merken sie sich unbedingt das Kennwort:

openssl pkcs12 -export -out wildcard-domain-de.pfx -in wildcard-leibling-de.pem

Sie sollten nun eine PFX Datei erhalten, welche sie unter Windows einbinden können.

Starten Sie dazu mmc.exe und gehen sie auf Datei > Snap-In hinzufügen > Zertifikate > Computerkonto. Dort können sie das Zertifikat importieren.

In den Bindungen des Internetmanagers können sie in der entsprechenden Site das Zertifikat zuordnen.

Weitere Links:

 


Windows/IIS: TLS absichern

Bei der Prüfung eines alten Windows 2008 R2 Servers mit Greenbone Security Assistent wurden mir mehrere Probleme ausgegeben, da der Windows Server 2008 R2 einige Optionen nutzt, die als nicht mehr sicher gelten.

Diese kann man per Registry de- bzw. aktivieren, was jedoch sehr unkomfortabel ist. Einfacher geht es mit dem IIS Crypto Tool 2.0 – dies bietet alle Optionen an und dies sogar noch mit komfortablen Templates.

Die Sicherheit kann man anschließend mit dem SSL Lab Test verifizieren.

Benötigt man ein Offline Tool, da der Server nicht von extern erreichbar ist, kann man ein Tool von Github nutzen, welches auch für Windows existiert.

Anschließend noch SMTP mit TLS testen.

In größeren Umgebungen (hier in dem Beispiel zwei Exchange Server die über Windows Clusterdienste NLB für CAS und Hubtransport zur Verfügung stellen) sollte man behutsam umgehen, ich bin wie folgt vorgegangen:

  • Entfernen EXCHANGE1 aus dem NLB (ca. 5 Sekunden unterbrechung, evtl. kommt kurz bei Clients das Anmeldefenster – wenn zuvor auf dem EXCHANGE1 verbunden gewesen)
  • Warten bis die Warteschlange geleert wurde und kontrollieren, das diese nicht mehr füllt
  • Erstellen Snapshot, falls was schief laufen sollte
  • Erstellen Security-Übersicht
  • Anpassen der Security
  • Kontrolle der Security-Einstellungen
  • Einbinden wieder in den NLB
  • Anpassen der Security-Einstellungen wie auf EXCHANGE1 auf dem EXCHANGE2
  • Testen von Extern mit ausgiebigem Sicherheits-Bericht
  • Besprechen ob Einstellungen anwendbar
  • Testen mit Penetrationstool
  • Wenn alles sauber funktioniert, bereinigen der Snapshots

Quellen:

 


Sophos: SSL VPN Client für Benutzer über Webadmin runterladen

Um den SSL VPN Client herunterzuladen gehen Sie bitte wie folgt vor:

  • Öffnen Sie den Webadmin.
  • Gehen sie auf Definition & Users.
  • Anschließend wählen die den Unterpunkt Users und setzen Sie bei den entsprechenden Usern den Hacken.
  • Wählen Sie unter Actions den Punkt Download SSL VPN Packages.
  • Abschließend wählen Sie bitte was sie herunterladen möchten.

Installieren Sie auf dem entsprechenden Gerät den VPN Client (bitte mit rechter Maustaste und Als Administrator ausführen) und kopieren Sie das entsprechende Profil nach C:\Program Files (x86)\Sophos\Sophos SSL VPN Client\config.


Exchange: TLS Testen

Ein Exchangeserver verwendet wenn möglich TLS (muss auf dem Sende- und Empfangsconnector eingerichtet sein).

Möchte man gerne die Verbindungen kontrollieren, dann kann man OpenSSL installieren und mit dem folgenden Befehl die Verbindung kontrollieren:

openssl s_client -connect remote.leibling.de:25 -starttls smtp


Debian: Webserver mit vhosts (virtuellen Webservern)

Einen Webserver unter Debian zu installieren ist nicht besonders schwer, hier eine kurze Anleitung.

Beachten Sie jedoch dringend noch folgende Ratschläge:

  • Stellen Sie ihr System so ein, das es sich automatisch aktuell hält oder halten Sie ihr System aktuell.
  • Stellen Sie ihren Server nicht direkt ins Internet, nutzen Sie eine Firewall davor und veröffentlichen Sie nur die entsprechend benötigten Dienste.
  • Wählen Sie komplexe Kennwörter.
  • Erlauben sie keinen direkten Root Zugriff.
  • Setzen Sie Richtlinien zum härten ihres Webservers um.

Los geht:

Downloaden sie die aktuelle Version (derzeit 9.3) Netzwerkinstall herunter und kopieren Sie sie in einen Datenspeicher auf dem Host.

Erstellen Sie eine VM (z.B. Version 6.5, 4 Porzessoren, 8 GB Ram, 60 GB Thin, Netzwerkkarte, CD Laufwerk mit dem entsprechenden ISO).

Starten Sie die Installation (z.B. alles abgewählt bis auf SSH Server und Systemtools).

Nach der Installation loggen Sie sich ein mit dem erstellten User und holen sich die IP mit „ip addr show“.

Verbinden Sie sich mit SSH (unter OSX oder *nix mit Terminal oder unter Windows mit z.B. Putty) und wecheln sie zu root mit „su“.

Sollten sie einen virtuellen Server verwenden (ESX oder ESXI), so sollten Sie als erstes die Open VM Tools installieren und den Server neu starten:

apt-get install open-vm-Tools
init 6

Nun werden wir dem Server eine feste IP zurordnen:

cd /etc/network/interfaces

Editieren Sie den folgenden Eintrag (z.B. mit VI oder Nano):

iface ens192 inet dhcp (Achtung, statt ens192 kann hier auch was anderes stehen wie z.B. eth0)

Ändern sie ihn wie folgt (verwenden Sie bitte natürlich ihre eigenen Daten):

iface ens192 inet static
address 192.168.123.10/24
gateway 192.168.123.254
dns-nameservers 192.168.123.254
dns-search domain.tld

Starten Sie die Installation vom Webserverteil wie folgt:

apt-get update
apt-get upgrade
apt install apache2 apache2-utils

Wenn Sie ihre Seite mit SSL sichern wollen (ich verwende mittlerweile oft ssls.com, dort bekommt man ein einfaches Zertifikat für ca. 15$ für 3 Jahre und dies erhält man in wenigen Minuten), gehen Sie wie folgt im Terminal vor:

cd /etc/ssl/private
openssl genrsa -out servername.domain.tld.key 2048
openssl req -new -key servername.domain.tld.key -out servername.domain.tld.csr -sha256

Dieses CSR verwenden Sie bitte um das Zertifikat zu beantragen. Ich hole es mir einfach in dem ich folgendes im Terminal eingebe:

cat servername.domain.tld.csr

Dieses dann rauskopieren zum beantragen.

Sollten Sie das Zertifikat haben, benötigen Sie das entsprechend auf dem Server. Dazu muss der inhalt vom servername.domain.tld.crt und servername.domain.tld.ca-bundle auf dem Server in eine Datei servername.domain.tld.crt kopiert werden – dies mache ich mit dem VI:

vi servername.domain.tld.crt

i drücken, den Inhalt aus servername.domain.tld.crt reinkopieren und in der nächsten Zeile dann den Inhalt aus servername.domain.tld.ca-bundle und das ganze dann mit „ESC“, „:wq“ speichern.

Nun die Rechte anpassen:

chown root:ssl-cert servername.domain.tld.*

Dann noch die Zertifikate in /etc/apache2/sites-available/default-site.conf ändern auf die neuen Dateien:

SSLCertificateFile /etc/ssl/private/servername.domain.tld.crt
SSLCertificateKeyFile /etc/ssl/private/servername.domain.tld.key

Nun die alte Site entladen, die neue laden und danach die Konfiguration neuladen – sollte Apache danach immer noch keine SSL Seite zeigen, noch mal den Dienst neu starten:

a2dissite default-ssl.conf

a2ensite defaultssl.conf

systemctl reload apache2

systemctl restart apache2

Habt ihr nun den Namen des Servers schon im DNS oder mindestens in der Hosts eingerichtet, so könnt ihr schon den Server aufrufen. Vergesst auch bitte nicht in der Firewall den Port forzuwarden (Port 80 und 443).

Möchte man später mehrere virtuelle Webserver auf dem Server installieren empfiehlt es sich schon jetzt die Verzeichnisse entsprechend anzupassen:

cd /var/www

mkdir ordnername

chown -R www-data:www-data ordnername

chmod -R 755 ordnername

Dann noch die Ordnerpfade und eigene Adminemailadresse anpassen in der /etc/apache2/sites-available/000-default-site.conf und default-ssl.conf und wieder die Sites neulade sowie den Apache:

a2dissite 000-default.conf

a2dissite default-ssl.conf

a2ensite 000-default.conf

a2ensite default-ssl.conf

systemctl reload apache2

Nun kommt die PHP Installation:

apt install php7.0 libapache2-mod-php7.0 php7.0-mysql php-common php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline

a2enmod php7.0

a2enmod rewrite

systemctl restart apache2

Kontrolliert nun ob PHP funktioniert – erstellt z.B. in dem Ordner oben eine Datei index.php mit dem folgenden Inhalt:

<?php
phpinfo();
?>

Sollten Sie nun auch ihre Seite nur noch über HTTPS aufrufen wollen, dann können sie in dem Verzeichnis eine Datei .htaccess erstellen mit folgenden Inhalt:

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>

Anschließend noch mal die Rechte anpassen:

chown -R www-data:www-data ordnername

chmod -R 755 ordnername

Weiterhin muss noch /etc/apache2/sites-available/000-default.conf erweitert werden (unterhalb von Documentroot) mit dem folgendem Eintrag:

<Directory /var/www/servicecenter>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
</Directory>

Weiterhin muss noch /etc/apache2/sites-available/000-default.conf erweitert werden (unterhalb von Documentroot) mit dem folgendem Eintrag:

<Directory /var/www/servicecenter>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
</Directory>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
</FilesMatch>

Anschließend müssen natürlich wieder die Konfigurationen neu geladen werden:

a2dissite 000-default.conf

a2dissite default-ssl.conf

a2ensite 000-default.conf

a2ensite default-ssl.conf

systemctl reload apache2

Rufen Sie die Seite auf und kontrollieren Sie bitte ob die Seite erreichbar ist und auch PHP funktioniert. Löschen Sie bitte jedoch nach der erfolgreichen Installation wieder die Datei index.php oder ändern sie den Inhalt , da sie viele Informationen über ihr System preisgibt.

Nun installieren wir den SQL Server, statt MySQL wird jedoch mittlerweile MariaDB verwendet, welches kompatibel ist jedoch Open Source und somit frei zur Nutzung. Mit dem weiteren Befehl machen wir MariDB zum Standard und anschließend kontrollieren wir ob der Server gestartet ist. Starten Sie dazu wieder im Terminal wie folgt:

apt install mariadb-server mariadb-client

apt install mysql-server mysql-client

systemctl status mariadb

Nachdem der Server läuft, kommen die Nacharbeiten (Autostart einrichten und Security härten):

systemctl enable mariadb

mysql_secure_installation

Wollte ihr mehrere Seiten auf dem Server hosten, erstellt bitte pro Seite einen Ordner:

cd /var/www
mkdir ordnername
chown -R www-data:www-data ordnername
chmod -R 755 ordnername

Passt wieder in /etc/apache2/sites-available die Dateien wie folgt an:

Default-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
 SSLEngine on
 SSLCertificateFile /etc/ssl/private/seite1.crt
 SSLCertificateKeyFile /etc/ssl/private/seite1.key

 Servername "www.seite1.de"
 ServerAlias "seite1.de"
 DocumentRoot "/var/www/seite1"
 ServerAdmin admin@seite1.de
 ErrorLog ${APACHE_LOG_DIR}/ssl-error.log
 CustomLog ${APACHE_LOG_DIR}/ssl-access.log combined
 <Directory /var/www/seite1>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory>
 <FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>
 BrowserMatch "MSIE [2-6]" \
 nokeepalive ssl-unclean-shutdown \
 downgrade-1.0 force-response-1.0
 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
 </VirtualHost>

 <VirtualHost *:443>
 SSLEngine on
 SSLCertificateFile /etc/ssl/private/seite2.crt
 SSLCertificateKeyFile /etc/ssl/private/seite2.key

 Servername "www.seite2.de"
 ServerAlias "seite2.de"
 DocumentRoot "/var/www/seite2"
 ServerAdmin admin@seite2.de
 ErrorLog ${APACHE_LOG_DIR}/seite2-ssl-error.log
 CustomLog ${APACHE_LOG_DIR}/seite2-ssl-access.log combined
 <Directory /var/www/seite2>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory>
 <FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>
 BrowserMatch "MSIE [2-6]" \
 nokeepalive ssl-unclean-shutdown \
 downgrade-1.0 force-response-1.0
 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
 </VirtualHost>
</IfModule>

000-default.conf

<VirtualHost *:80>
 ServerName www.seite1.de
 ServerAlias seite1.de
 ServerAdmin admin@seite1.de
 DocumentRoot /var/www/seite1/
 <Directory />
 Options FollowSymLinks
 AllowOverride None
 </Directory>
 <Directory /var/www/seite1>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory> ErrorLog /var/log/apache2/error.log
 LogLevel warn
 CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<VirtualHost *:80>
 ServerName www.seite2.de
 ServerAlias seite2.de
 ServerAdmin admin@seite2.de
 DocumentRoot /var/www/seite2/
 <Directory /var/www/seite2>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory>
 ErrorLog /var/log/apache2/seite2-error.log
 LogLevel warn
 CustomLog /var/log/apache2/seite2-access.log combined
 ServerSignature On
</VirtualHost>

Danach natürlich wie immer alles entladen und neuladen:

a2dissite 000-default.conf

a2dissite default-ssl.conf

a2ensite 000-default.conf

a2ensite default-ssl.conf

systemctl reload apache2

Widmen wir uns nun dem Teil der Datenübertragung – dies realisieren wir mit ProFTP. Da der Server in der DMZ steht und nur meine eigenen Seiten gehostet werden sowie nur über VPN Zugegriffen wird werde ich das Documentroot auf /var/www/ stellen, da ich dort alle Seiten anlege und kein TLS verwenden. Der Server übers Internet nur über HTTP und HTTPS veröffentlicht. SSH, FTP und SQL wird nur über verschlüsseltes VPN genutzt.

apt-get install proftp

Datei /etc/proftpd/conf.d/custom.conf erstellen (bei benutzername bitte den Namen des Zugriffkontos eintragen, nicht root):

<Global>
 RequireValidShell off
</Global>
# If desired turn off IPv6
UseIPv6 off
# Default directory is ftpusers home
DefaultRoot /var/www benutzername
# Limit login to the ftpuser group
<Limit LOGIN>
 DenyGroup !ftpuser
</Limit>

Gruppe ftpuser und www-data hinzufügen, Benutzer hinzufügen und Dienst neustarten:

addgroup ftpuser

usermod -a -G ftpuser benutzername

usermod -a -G www-data benutzername

systemctl restart proftpd

Solltet ihr Dateien nicht löschen oder ändern können, so kontrolliert bitte die Rechte und passt diese gegebenenfalls an mit:

chown -R benutzername /var/www/ordnername

chmod -R 755 /etc/www/ordnername

Somit ist der Server bereitgestellt und einsatzbereit.

Erweiterung: Python installation

Kontrollieren Sie ob Python installiert ist und in welcher Version:

python3 --version

Installieren Sie noch PIP und binden Sie Python in Apache ein:

apt-get install python3-pip

pip3 install mod_wsgi

apt-get install libapache2-mod-python

Nun muss noch der Publisher Handler eingerichtet werden – diese werden wieder in den Sitekonfigurationen erstellt – erweitert dazu die 000-default.conf und default-ssl.conf unterhalb des bestehenden der:

<Directory /var/www/seite1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>

Anschließend wieder die Sites und Apache neu laden:

a2dissite 000-default.conf

a2dissite default-ssl.conf

a2ensite 000-default.conf

a2ensite default-ssl.conf

systemctl reload apache2

Weitere Schritte folgen noch …

 

 


Windows Server 2016: Mehrere SSL Zertifikate auf einer IP

Mehrere SSL Zertifikate mit mehreren verschiedenen Namen und Zertifikaten auf der selben Seite zu verwenden (statt z.B. einem SAN Zertifikat für Exchange Server) kann man in dem Windows Server 2016 bequem über den Internetinformationdienste (IIS) – Manager einrichten.

Dazu gehen Sie wie folgt vor:

  • Starten Sie den Internetinformationdienste (IIS) – Manager.
  • Gehen Sie links auf den Servernamen.
  • Rechts klicken Sie auf Serverzertifikate und rechts dann auf Zertifikatsanforderungen.
  • Besorgen Sie sich nun ein Serverzertifkat (z.B. PSW.net oder SSLs.com) und spielen Sie dies ein.
  • Gehen Sie nun links auf die entsprechende Site mit der rechten Maustaste und wählen Bindungen aus.
  • Gehen Sie nun auf Hinzufügen und wählen Sie https aus, geben die neue URL ein, Port 443 und das entsprechende Zertifikat, bitte unbedingt auch den Haken bei SNI setzen.
  • Speichern Sie nun die Einstellungen und testen Sie diese, sollte es nicht klappen können Sie den IIS mit iisreset in einer privilegierten CMD Console neustarten .