Reverse Proxy

Einleitung

Anhand dieser Anleitung wird beschrieben, wie man unter „Raspbian GNU/Linux 9 (Stretch)“ einen Reverse-Proxy einrichtet. Der Reverse-Proxy ist für einen sicheren Zugang aus dem Internet zum eigenen Netzwerk notwendig.

Das Raspbian-Image muss zunächst auf eine microSD-Karte geschrieben werden. In diesem Fall wird das Tool: „Win32DiskImager“ verwendet. Es gibt natürlich auch alternativen um das Image auf die microSD-Karte zu schreiben.

Es wird davon ausgegangen, dass alle Befehle mit dem root User (sudo root) ausgeführt werden.

Einstellungen

Nach dem ersten Start sollen folgende Einstellungen mittels raspi-config durchgeführt werden:

  • Ein eigenes Passwort (aus Sicherheitsgründen unbedingt empfehlenswert!)
  • Hostname
  • Sprache, Zeitzone, Tastaturlayout
  • Land für WLAN-Adapter (wegen örtlichen Funkrichtlinien)
  • SSH ( 5 Interfacing Options — P2 SSH )

Vi – Editor

Tastenkürzel:

  • I  –>  Wechselt in den Insert-Modus
  • Esc –>  Deendet den Insert Modus
  • H –>  Bewegt den Cursor nach links
  • L  –>  Bewegt den Cursor nach rechst
  • J  –>  Bewegt den Cursor nach hinauf
  • K  –>  Bewegt den Cursor nach hinunter
  • X  –>  Löscht ein Zeichen
  • D D  –>  Löscht die aktuelle Zeile
  • P  –>  Fügt die gelöschte Zeile an der Cursorposition ein
  • U  –>  Macht die letzte Änderung rückgängig
  • :  –>  Wechselt in den Complex-Command-Modus
  • :w  –>  Speichert den Text unter einem neuen Namen
  • :wq  –>  Speichert und beendet den vi
  • :q!  –>  Beendet den vi, ohne zu speichern
  • :help  –>  Startet die Online-Hilfe

Updates

Das System auf den Letztsand bringen und folgende Pakete installieren.

aptitude update && aptitude dist-upgrade
aptitude install vim htop iftop iotop

Fixe IP-Adresse vergeben

Für die Konfiguration der Ethernet-Schnittstelle ist jetzt dhcpcd zuständig. Die Datei /etc/network/interfaces ist jetzt standardmäßig leer und bleibt dies auch nach einer WLAN-Konfiguration.

Prüfen welche IP-Adresse derzeit vergeben ist: ifconfig
Kontrolle ob die gewünschte IP-Adresse frei ist: ping 192.168.1.80

Kopie der zu editierenden Datei erstellen und danach editieren:

cp /etc/dhcpcd.conf /etc/dhcpcd.conf.orig
vi /etc/dhcpd.conf

Änderungen nach folgendem Muster vornehmen:

# Datei /etc/dhcpcd.conf
...
interface eth0
static ip_address=192.168.1.80/24
static routers=192.168.1.1
# static domain_name_servers=192.168.1.1 8.8.8.8

Damit die Änderungen wirksam werden folgenden Befehl ausführen:

systemctl restart dhcpcd

Alternativ kann der Rasbperry natürlich auch neu gestartet werden: reboot

Prüfen ob die richtige IP-Adresse vergeben wurde: ifconfig
Kontrolle ob man ins Netzwerk kommt. z.B.: ping google.at

Apache2 und alle Module installieren

aptitude install apache2 apache2-utils libapache2-mod-rpaf vim apache2-utils -y
a2enmod ssl headers rewrite proxy proxy_http
systemctl restart apache2
mkdir /etc/apache2/ssl

letsencrypt installieren und Zertifikat erstellen

aptitude install letsencrypt -y
aptitude install python-letsencrypt-apache
aptitude install python-certbot-apache
cd /etc/apache2/sites-available/
cp default-ssl.conf [dns-name.endung].conf
sudo vi [dns-name.endung].conf
a2enside [dns-name.endung].conf
systemctl reload apache2
apache2ctl -S
letsencrypt
crontab -e
/usr/bin/letsencrypt renew
crontab -l
htpasswd -c /etc/apache2/ssl/httpsusers [username]
service apache2 reload

default-ssl.conf editieren

In dieser Datei die Blöcke für den externen Zugriff einfügen.

vi /etc/apache2/sites-available/[dns-name.endung].conf
service apache2 restart

Im Anhang sind die Blöcke für „Rega“, „CCU“, „DS212“, „ioBroker“ und „VIS“ zu finden.

fail2ban installieren, editieren, testen

Fail2Ban ist ein in Python geschriebenes Programm, welches verschiedene Serverdienste gegen unbefugten Zugriff absichert.

Dieser Teil wurde noch nicht getestet und muss erst angepasst werden!

aptitude install fail2ban
vi /etc/fail2ban/jail.conf
fail2ban-testcases        (abgebrochne - für nix)
tail -f /var/log/fail2ban.log
vi /var/log/fail2ban.log
cd /etc/fail2ban/
ls
ls fail2ban.d/
ls action.d/
vi jail.conf
ls
vi jail.d/
vi fail2ban.conf
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
service fail2ban restart
vi /var/log/fail2ban.log
rm jail.local
vi jail.conf
vi jail.d/
service fail2ban restart
vi /var/log/fail2ban.log
vi /etc/fail2ban/jail.d/defaults-debian.conf
tail -f /var/log/fail2ban.log

Anhang

Alle Einträge in eckigen Klammern [ ] sind durch die eigenen Daten zu ersetzen!


Referenzen

raspbian-stretch
Fail2Ban