Kategorien
Firewall IT Security Server Sophos

Pre-Authentication Sophos UTM Webserver Protection

Auswahl des Authentifizierungsprofiles

Grundsätzlich stehen 2 Default-Profile zur Verfügung. Basic und das Advanced Form. Basic ist die Standard Authentifizierung des Browsers. Im Google Chrome sieht das Formular folgendermaßen aus:

Das Form kann Frei angepasst werden und sieht im Default wie folgt aus:

Zuweisen des Authentifizierungsprofiles

Im Site-Path Routing die Route für den richtigen Virtuellen Webserver auswählen und auf Editieren klicken.

An dieser Stelle kann das Authentifizierungsprofil ausgewählt werden.

Es ist außerdem möglich eine Passthrough-Authentifizierung einzurichten, sodass nur ein einmaliges Anmelden nötig ist.

Kategorien
Firewall IT Security Server Sophos

Sophos Webserver Protection | Reverse Proxy | Web Application Firewall

Anlegen des echten Webservers

Hier muss der echte Webserver angegeben werden, der veröffentlicht werden soll. Ich habe hier zur Demo meinen CheckMK Server verwendet. Dieser ist auf Port 443 erreichbar. Um den Server von extern via https erreichen zu können ist das an dieser Stelle aber noch nicht zwingend notwendig. Hier reicht http aus.

Anlegen Virtueller Webserver

Hier muss bei Interface das Interface gewählt werden über das der Virtuelle Webserver erreichbar sein soll. In meinem Fall das WAN-Interface. Bei Typ kannst du entscheiden, ob du http oder https verwenden möchtest. Ich empfehle hier https mit Umleitung von http.

Als Port kannst du hier ganz frei wählen. Wenn du noch weitere Anwendungen veröffentlichen willst und nur eine Domain zur verfügung hast macht es Sinn hier den Port anzupassen. Sonst kannst du alles auf 443 laufen lassen und über die Domäne erkennt die Sophos welcher Webserver angesprochen wurde. Auch, wenn alle auf die gleiche IP-Adresse zeigen.

Ein Zertifikat ist für https erforderlich. Hier kannst du ein selbst signiertes nehmen, eins hochladen oder einfach eins über Let’s Encrypt ausstellen. https://tech-base.club/ausstellen-von-lets-encrypt-zertifikaten-in-sophos-utm-9

Die Domain in dem Zertifikat bestimmt automatisch, welche Domain auf den Webserver zeigt.

Nun den echten Webserver auswählen.

Firewall Profile werden von Sophos viele als Presets vorgegeben. von Basic und Advanced Protection bis hin zu Profilen für MS Exchnageserver owa und Autodiscover.

Für CheckMK ist ein eigenes Profil erforderlich. Die Konfiguration sieht folgendermaßen aus:

Das wars auch schon, nun ist der Webserver über die Sophos abgesichert erreichbar.

Kategorien
Firewall IT Security Let's Encrypt Sophos

Ausstellen von Let’s Encrypt Zertifikaten in Sophos UTM 9

Vorbereitung

Als erstes das verwenden von Let’s Encrypt zulassen:

Ausstellen des Zertifikates

Anschließend in der Zertifikatsverwaltung unter Zertifikate ein neues Zertifikat erstellen:

Hier ist bei Methode Let’s Encrypt auszuwählen. Bei Schnittstelle muss das Interface der Sophos verwendet werden, das über das Internet erreichbar ist und auf das die DNS-Einträge der Domäne zeigen auf die du das Zertifikat ausstellen möchten.

Die Domäne oder bei Bedarf auch mehrere können im Reiter Domänen hinzugefügt werden. Wichtig ist, dass die IP-Adressen auf die die Domänen verweisen via Port 80 auf die Sophos zeigen. Sonst kann kein Zertifikat ausgestellt werden.

Häufiger Fehler

Ein häufiger Fehler ist, dass das Ausstellen des Zertifikates fehlschlägt da Country Blocking für eingehende Anfragen aktiviert ist. Dieses blockt natürlich dann auch die Let’s Encrypt Server, da diese zur Zeit noch nicht in Europa stehen.

Erneuern des Zertifikates

Grundsätzlich verlängert sich das Zertifikat automatisch. Falls dies fehlschlägt wird das Verlängern nach 24 Stunden erneut versucht. Du kannst das Erneuern des Zertifikates aber auch jederzeit selber anstoßen:

Kategorien
IT Security Linux Server Ubuntu VPN

OpenVPN-Client Linux OS mit Autostart

Installation des OpenVPN-Clients:

# Pakete aktualisieren

apt update

# OpenVPN-Client aktualisieren

apt install openvpn

Nun muss die Konfigurations-Datei heruntergeladen werden. Diese kannst du via FTP oder SCP auf das System kopieren oder direkt mit wget oder curl auf dem System herunterladen.

Verschieben der Konfigurations-Datei:

cp /pfad/zu/deiner/config.ovpn /etc/openvpn/client.conf

Eine Datei erstellen die den Benutzername und das Passwort des VPN-Benutzers enthält:

nano /etc/openvpn/creds

# Beispiel des Inhalts:

peter
Dhsu/ast/2!7Ish

Nun die client.conf Datei bearbeiten und angeben das die Zugangsdaten aus der grade angelegten Datei verwendet werden sollen:

 nano /etc/openvpn/client.conf

# Die Zeile "auth-user-pass" muss in "auth-user-pass creds" geändert werden.

Um die Zugangsdaten in der Datei zu schützen müssen die Berechtigungen angepasst werden:

chmod 400 /etc/openvpn/creds

Aktivieren vom Autostart des VPN-Clients:

nano /etc/default/openvpn

# Hier den Hashtag(#) vor 'AUTOSTART="all"' entfernen.

Nun den Dienst aktivieren und starten:

systemctl enable openvpn@client.service
systemctl daemon-reload
service openvpn@client start

Nun sollte der VPN-Client gestartet sein und eine VPN-Verbindung hergestellt worden sein. Diese baut sich automatisch nach jedem Systemstart wieder auf.

Der status des VPN-Clients kann mit folgendem Befehl abgerufen werden:

service openvpn@client status
Kategorien
IT Security Linux Nextcloud Server Ubuntu

Absichern einer Apache2 Linux Installation

Wir sichern unseren Apache2 Webserver ab in dem wir folgende Einstellungen anpassen:

  • Apache Haeder
  • Apache Signatur
  • Trace

Diese Funktionen geben Informationen des Webservers preis die nicht im Internet bekannt sein müssen, wie beispielsweise die Server Version. Wenn diese Informationen öffentlich verfügbar sind, sind Sicherheitslücken einfacher auszunutzen.

Folgende Änderungen müssen an der Konfiguration gemacht werden:

nano /etc/apache2/apache2.conf

#Folgende Werte an des Ende der Konfiguration anfügen:

Servertoken Prod
ServerSignature off
TraceEnable off
Kategorien
Linux Raspberry Pi Server Ubuntu

Installation OpenVPN Access Server auf Ubuntu

Um einen OpenVPN Access Server auf Ubuntu zu installieren sind folgende Schritte nötig:

apt update && apt -y install ca-certificates wget net-tools gnupg

wget -qO - https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add -

echo "deb http://as-repository.openvpn.net/as/debian focal main">/etc/apt/sources.list.d/openvpn-as-repo.list

apt update && apt -y install openvpn-as

Nun das Passwort des default Benutzers zurücksetzten:

passwd openvpn 

Nun ist die Weboberfläche deines OpenVPN Access Servers erreichbar. Wenn du „/admin“ in der Adresse des Servers ergänzt kannst du auf das Admin-Portal zugreifen und die Konfiguration vornehmen.

Kategorien
Nextcloud Raspberry Pi Server

Nextcloud Wartungsmodus einstellen

Der Wartungsmodus der Nextcloud dient dazu, dem Administrator freies Feld zu schaffen. Beispielsweise zur Installation von Updates. Wenn der Wartungsmodus aktiviert ist können sich keine User mehr anmelden. Auch Protokolle zur Datenübertragung wie WebDAV lassen keine Verbindungen mehr zu.

Der Wartungsmodus lässt sich in der Nextcloud – Konfiguration aktivieren und deaktivieren. Das geht einfach mit einem beliebigen Text-Editor:

# der Pfad der Datei kann in eurer Installation anders aussehen.
# Wenn ihr die Installation nach meiner Anleitung gemacht habt sollte es keine Probleme geben.

nano /var/www/nextcloud/config/config.php

# Oder

vi /var/www/nextcloud/config/config.php

In der Datei findet ihr relativ weit unten den Punkt, den Wartungs bzw. maintenance Modus auf true und false zu setzen:

Wenn diese Option auf true gesetzt ist, sieht die Website folgendermaßen aus:

Kategorien
IT Security Let's Encrypt Linux Nextcloud Raspberry Pi

Nextcloud mit kostenfreien Let’s Encrypt Zertifikat

Um unsere Nexcloud noch besser zu schützen können wir den „http“-Traffic verschlüsseln. Dafür bedarf es nicht mehr als ein paar befehlen und einer Einstellung.

Grundsätzlich benötigst du für die SSL Absicherung deiner Nextcloud nur eine Domain, dessen A und/oder AAA Record auf die IP-Adresse deiner Nextcloud zeigt. Sonst wird das nichts 😉

## Certbot installieren
apt-get install certbot python3-certbot-apache

## Certbot konfigurieren (Hier fragt er nur ein paar werte ab, ob ihr ein redirect von http auf https wollt, auf welche Domain das Zertifikat laufen soll, wie der web admin erreichbar ist usw.)

certbot --apache

## Das wars schon mit dem Zertifikat, jetzt müsst Ihr nur noch in der Nextcloud Config erlauben das auf diese über die Domain zugegriffen werden darf

nano /var/www/nextcloud/config/config.php

## Das sieht dann so aus:

 'trusted_domains' =>
  array (
    0 => '<Hier steht schon deine IP-Adresse des Servers>',
    1 => '<Hier muss deine Domain rein>',
  ),

## Das ganze noch speichern und dann bist du durch.
Kategorien
Linux Nextcloud Raspberry Pi Server

Nextcloud Installation auf Ubuntu 20.04

In dieser Anleitung erhältst du die komplette Befehl Abfolge zur Installation einer Nextcloud in Verbindung mit MariaDB und Apache Virtual Host auf Ubuntu 20.04.

## Dauerhafte Admin rechte als su(super user)
su

## Pakete aktualisieren
apt-get update

## Updates installieren
apt-get upgrade

## Installation Apache Webserver
apt install apache2

## Directory listing deaktivieren
sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

## Apache Dienst starten
systemctl start apache2.service

## Installation von MariaDB Server und Client
apt install mariadb-server mariadb-client

# Konfiguration des MariaDB Servers
mysql_secure_installation

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter <Hier kommt dein Passwort hin>
Re-enter new password: <Hier kommt dein Passwort hin>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

## MariaDB Server Dienst neustarten
systemctl restart mariadb.service

## Installation von PHP und Modulen
installing PHP 7.1

## Download Repository für PHP Module hinzufügen
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php

## Paketlisten updaten
apt update

## Finale Installation von PHP und dessen Modulen
apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip

# PHP.ini config-file anpassen
nano /etc/php/7.2/apache2/php.ini

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 80M
date.timezone = Europe/Berlin

## Konfiguration SQL Datenbank


## Verbindung zur SQL Datenbank herstellen
mysql -u root -p

## Nextcloud Datenbank erstellen
CREATE DATABASE nextcloud;

## Datenbank Benutzer erstellen
CREATE USER 'ncusr'@'localhost' IDENTIFIED BY '<Hier kommt dein Passwort rein>';

## Datenbank Berechtigungen für den grade angelegten User anpassen
GRANT ALL ON nextcloud.* TO 'ncusr'@'localhost' IDENTIFIED BY '<Hier kommt dein Passwort rein>' WITH GRANT OPTION;

## Änderungen abspeichern und MariaDB Konsole verlassen
FLUSH PRIVILEGES;
EXIT;

## unzip installieren
apt-get install unzip

## Neuste Version von Nextcloud herunterladen
cd /tmp && wget 
<Neuster Nextcloud download link>
unzip nextcloud
mv nextcloud /var/www/nextcloud/

## Apache Virtual Host konfigurieren

## Konfigurationsdatei erstellen
nano /etc/apache2/sites-available/nextcloud.conf

## Inhalt der Datei habe ich euch unten angehangen.

## Nextcloud Website und Apache Module aktivieren und zu Schluss neu starten

a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

systemctl restart apache2.service

## Datenspeicherort in das Homeverzeichnis verlagern und Rechte vergeben

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


## IP Adresse oder Domain die im Virtual Host hinterlegt ist und auf den Server zeigt an surfen.

Auf der Website kannst du zuerst den Nutzernamen des Administrators bestimmen. Ich würde „admin“ empfehlen und über den Benutzer die Cloud administrieren und keinem User (Auch nicht dir selbst) Admin rechte geben. Dann kannst du dir ein Passwort für den Benutzer ausdenken. Beim Datenverzeichnis müssen wir den von uns im Home Verzeichnis erstellten Ordner „data“ hinterlegen. Also füllst du in das Feld: „/home/data/“. Bei den Datenbank Einstellungen musst du den Datenbank Namen, Benutzer Namen, Benutzer Passwort und die Datenbank location angegeben werden. Wenn du diese nach dieser Anleitung eingerichtet hast ist der Datenbank Name „nextcloud“, der Benutzername „ncusr“, Passwort musst du selber wissen und bei der Datenbank location kannst du localhost stehen lassen da sich die Datenbank auf den gleichen Server befindet. Nun kannst du die Konfiguration abschließen und es sollte alles laufen.

## Vorlage zur VirtualHost Konfiguration
## E-mail, ServerName und Server Alias müssen angepasst werden (entweder wird hier die Ip-Adresse oder die Domain eingetragen)

<VirtualHost *:80>
     ServerAdmin master@domain.com
     DocumentRoot /var/www/nextcloud/
     ServerName demo.domain.com
     ServerAlias www.demo.domain.com
 
     Alias /nextcloud "/var/www/nextcloud/"
 
     <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
     </Directory>
 
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>