HowTo: FHEM - Beveiligde toegang tot de configuratie-interface

Uiterlijk nadat u de eerste configuraties in uw FHEM-interface hebt gemaakt, moet u ook het beveiligingsprobleem behandelen. Het is echt vervelend als je de zorgvuldig samengestelde en netjes geprogrammeerde functies van je SmartHome-systeem kwijtraakt. Of het nu gaat om gegevensverlies of omdat andere mensen zich onbevoegd toegang tot uw systeem hebben verschaft.

De mogelijke toegang door onbevoegden mag niet worden verwaarloosd. In het ergste geval kan met deze toegang meer kwaad worden gedaan dan alleen een lamp aan- en uitzetten.

In het volgende artikel wordt uitgelegd hoe u uw FHEM-instantie kunt beveiligen en beschermen tegen gegevensverlies.


Veiligheidsinstructies

Ik weet dat de volgende tips altijd vervelend zijn en onnodig lijken. Maar helaas hebben veel mensen die "beter" wisten al ogen, vingers of andere zaken verloren of zich door onvoorzichtigheid verwond. In vergelijking daarmee is een verlies van gegevens nauwelijks het vermelden waard, maar zelfs die kunnen heel vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Want zelfs het coolste project is geen letsel of andere problemen waard.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate links. Als u op zo'n affiliate link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende webwinkel of aanbieder. De prijs verandert niet voor jou. Als u uw aankopen doet via deze links, steunt u Nerdiy.de om in de toekomst nog meer nuttige projecten te kunnen aanbieden. 🙂 


Eisen

Voordat je aan dit artikel begint, moet je de RaspberryPi zo hebben voorbereid dat deze via het netwerk bereikbaar en via SSH te bedienen is.

In de volgende drie artikelen wordt beschreven wat er moet gebeuren om de RaspberryPi voor te bereiden:
RaspberryPi - Instellingen voor Nerdiys!
RaspberryPi – De eerste configuratie!
RaspberryPi - De RaspberryPi besturen via SSH
FHEM – Installatie op de RaspberryPi

Benodigd gereedschap:
-Nee-

Benodigde materialen:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.


Wijzig eventuele bestaande (standaard) toegangswachtwoorden

De belangrijkste - omdat de meest misbruikte - beveiligingsmaatregel is het wijzigen van bestaande standaardwachtwoorden. Als u bijvoorbeeld een RaspberryPi als hosthardware voor de FHEM-server gebruikt, is het belangrijk dat u de standaard inloggegevens wijzigt. De standaard inloggegevens "pi" en "raspberry" zijn bekend bij iedereen die half geïnteresseerd is in technologie. Als je hier net je RaspberryPi-inloggegevens hebt gelezen, is het hoog tijd om deze te wijzigen.

Hoe u dit kunt wijzigen, staat in het artikel RaspberryPi – De eerste configuratie! beschreven.


Maak een HTACCESS-gebruikerslogin aan

De volgende beveiligingsmaatregel tegen ongeautoriseerde toegang tot uw FHEM-interface is toegangsbeveiliging via HTACCESS. Zodra dit is ingesteld, wordt u gevraagd om de bijbehorende inloggegevens in te voeren telkens wanneer u toegang probeert te krijgen tot uw FHEM-instantie.

Om deze toegangsbeveiliging in te stellen, moet u eerst uw gebruikersnaam/wachtwoord-combinatie coderen met behulp van base64. Dit werkt op Linux met een ingebouwde opdracht. Om uw combinatie van gebruikersnaam en wachtwoord te coderen, hoeft u alleen maar de volgende opdracht in de console in te voeren. Daarvoor moet je natuurlijk eerst geweldige gebruikersnaam met uw gebruikersnaam en geweldig wachtwoord vervang het door uw wachtwoord.

Voer de volgende opdracht in de console van uw RaspberryPi in om uw inloggegevens te coderen.
echo -n greatusername:greatpassword | basis64
U ontvangt dan een base64-gecodeerde reeks van uw inloggegevens. U moet dit kopiëren om het later te kunnen gebruiken.

Zonder Linux, een online Base64-encoder zoals www.base64online.com . Voer eenvoudig uw combinatie van gebruikersnaam en wachtwoord in volgens het patroon Gebruikersnaam wachtwoord en klik op coderen (DECODE).

Om de login met de ingestelde logingegevens te activeren, dient u het volgende te doen.

Eerst moet je de module "allowedWEB" aanmaken met het volgende commando.
definieer toegestaanWEB toegestaan

Nu moet u uw gekopieerde inloggegevens koppelen aan deze module door een geschikt attribuut in te stellen. Dit kan met het volgende commando.

attr toegestaanWEB basicAuth dG9sbGVyQmVudXR6ZXJuYW1lOnRvbGxlc1Bhc3N3b3J0
In de laatste stap moet u nog configureren op welke login-interfaces de login moet worden opgevraagd. In dit geval activeren we de inlogvraag voor "WEB", "WEBPhone" en "WEBtablet" met het volgende commando. Als u andere namen voor de login-interfaces heeft gegeven, moeten deze natuurlijk dienovereenkomstig worden aangepast.
attr toegestaanWEB geldigVoor WEB,WEBphone,WEBtablet

Dat is het al. Herstart nu FHEM door de volgende opdracht in te voeren

afsluiten opnieuw opstarten
Nu kunt u de login testen. Ga hiervoor opnieuw naar de URL van uw FHEM-instantie. Deze keer zou er een inlogvenster moeten verschijnen waarin u wordt gevraagd de juiste inloggegevens in te voeren.
Voer nu de gebruikersnaam en het wachtwoord in die u eerder hebt opgegeven.
Als u de juiste inloggegevens heeft ingevoerd, wordt u doorgestuurd naar de startpagina van uw FHEM-instantie. Uw configuratie-interface is nu beveiligd met een gebruikersnaam en wachtwoord.

Versleutel de verbinding met een SSL-certificaat

Nu u beveiligde toegang tot uw FHEM-interface heeft, is de volgende veiligheidsmaatregel om ervoor te zorgen dat uw communicatie ermee niet kan worden onderschept of gemanipuleerd. Hiervoor is nu een SSL-codering van de communicatiegegevens ingesteld. Hiervoor moet eerst een SSL-certificaat worden aangemaakt en vervolgens worden verbonden met FHEM.

Om het SSL-certificaat aan te maken, moet u eerst twee pakketten installeren. Voer hiervoor de volgende opdracht uit.
sudo apt-get install libio-socket-ssl-perl && sudo apt-get install libwww-perl
Tijdens de installatie van de pakketten wordt u mogelijk gevraagd of u ermee akkoord gaat dat de installatie extra geheugen gebruikt. Bevestig dit met een "J" en "Enter".
Gebruik na het installeren van de pakketten de volgende opdracht om over te schakelen naar de map van uw FHEM-installatie.
cd /opt/fhem
Daar wordt met het volgende commando de map “certs” aangemaakt, waarin vervolgens de certificaten worden aangemaakt/opgeslagen.
sudo mkdir-certificaten
Schakel nu over naar de map "certs" die u zojuist hebt gemaakt.
cd /opt/fhem/certs
Om het SSL-certificaat aan te maken, moet u de volgende opdracht uitvoeren.
sudo openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem
Terwijl het certificaat wordt gegenereerd, wordt u om details voor dat certificaat gevraagd. Eerst vult u hier bijvoorbeeld de landcode in. Deze vermeldingen hoeven niet waar te zijn. Zodat je de juiste informatie kunt geven of...
... gebruik drie koppeltekens of andere tekens als tijdelijke aanduidingen, zoals weergegeven.
De volgende opdracht haalt het certificaat op en...
sudo chmod 644 /opt/fhem/certs/*.pem
... de certificaatmap nog steeds de juiste bestandsrechten heeft.
sudo chmod 711 /opt/fhem/certs
In de laatste twee stappen moet u nu HTTPS activeren voor de WEB-module...
attr WEB HTTPS
...en herstart FHEM om de wijzigingen door te voeren.
afsluiten opnieuw opstarten

Als u uw FHEM-server opnieuw hebt opgestart, hebt u er bijna zoals gewoonlijk toegang toe. Het enige verschil is dat u nu het adres van uw FHEM-server moet voorafgaan met HTTPS.

Aangezien u een zelfondertekend certificaat gebruikt, zullen bijna alle browsers u nu waarschuwen en hierop wijzen. Op het "gewone" internet zou dit een aanwijzing kunnen zijn voor een datalek. In dit geval hoeft u zich daar geen zorgen over te maken. U kunt de waarschuwing dus omzeilen. Klik op "Geavanceerd"...
...klik dan op "Doorgaan naar....(onzeker)" om de waarschuwing te omzeilen en toegang te krijgen tot uw FHEM-server.
Als u de gebruikerslogin heeft geactiveerd, wordt u nu om de inloggegevens gevraagd.
Zonder gebruikerslogin of als u de inloggegevens correct hebt ingevoerd, komt u zoals gewoonlijk op uw FHEM-homepage terecht.

Stel automatische back-up in voor elke update

Je bent nu grotendeels goed beschermd tegen de gevaren van slechte mensen en machines. Een andere handige instelling zijn de automatische back-ups voor elke update van de FHEM-omgeving. Zo ben je ook beschermd bij een foutieve update en hoef je niet de hele configuratie handmatig te herstellen.

Voer hiervoor de volgende opdrachten in de opdrachtregel van uw FHEM-instantie in.
attr globale updateInBackground 1
attr globale backup_before_update 1

Veilige Telnet-toegang

FHEM biedt onder meer de mogelijkheid om via een Telnet-verbinding opdrachten uit te voeren. Dit is niet standaard geïnstalleerd/geactiveerd. Als u hier echter gebruik van maakt, is het belangrijk dat u ook hier de toegang met een wachtwoord afschermt. Dit kan met het volgende commando. Natuurlijk moet je nog steeds het onderdeel doen geweldig wachtwoord vervang het door het door u gekozen wachtwoord. Mogelijk moet u hier ook het gedeelte "telnetPort" aanpassen. Dit is de naam van uw geconfigureerde telnet-module en moet overeenkomen met de naam die u gebruikt.

attr telnetPort-wachtwoord geweldig wachtwoord


FHEM-zekering

Je bent nu grotendeels goed beschermd tegen de gevaren van slechte mensen en machines. Maar nu moet je je wapenen tegen de grootste vijand: je eigen domheid. Vooral bij het uitproberen en uitproberen kan het snel gebeuren dat je het systeem, dat tot nu toe goed werkte, verkeerd configureert. Als het ergste echter het ergste wordt, kan een systeem dat niet meer start snel worden hersteld. Mits je een actuele back-up hebt, bij voorkeur op een externe datadrager. U kunt dus probleemloos de laatste werkstatus herstellen.

definieer regularBackup op *03:00:00 back-up

Met deze instelling wordt er elke dag om 03:00 een back-up gemaakt en opgeslagen in de map /opt/fhem/backup. De bestanden die hier zijn opgeslagen, moeten natuurlijk ook met een andere schijf worden gesynchroniseerd. Alleen zo zijn ze ook beveiligd in het geval van een fout met de schijf of de SD-kaart.


Extra informatie

https://de.wikipedia.org/wiki/Base64

https://wiki.fhem.de/wiki/Telnet


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn ook altijd welkom 🙂

P.S. Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik het omdat ik het leuk vind, maar als je het cool vindt dat ik de info erover met je deel, zou ik een kleine donatie aan het koffiefonds op prijs stellen 🙂 .

Koop Me a Coffee op ko-fi.com       

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert