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!