2014-2015 Beveiligingsmodule GIP 2014-2015 Niels Van Damme VTI-LOKEREN Inhoud Voorwoord .............................................................................................................................................. 2 Doel ......................................................................................................................................................... 3 Werking ................................................................................................................................................... 3 Benodigdheden ....................................................................................................................................... 3 Raspberry Pi............................................................................................................................................. 4 Specificaties : ....................................................................................................................................... 4 Programmeren : .................................................................................................................................. 4 HC-SR501 ................................................................................................................................................. 5 Specificaties: ........................................................................................................................................ 5 Aanpassingen: ..................................................................................................................................... 5 Toepassingen: ...................................................................................................................................... 5 Inwendig schema:................................................................................................................................ 6 Onderkant module: ............................................................................................................................. 6 Python-code: ........................................................................................................................................... 7 Flowchart ............................................................................................................................................. 7 Testen van de sensor ........................................................................................................................... 9 Installeren van de Apache-server op de PI ............................................................................................ 10 Wat is een apache server : ................................................................................................................ 10 Het installeren van de apache webserver op de Raspberry Pi : ........................................................ 10 De default-pagina veranderen : ........................................................................................................ 10 Het beveiligen van de Apache webserver : ....................................................................................... 11 Database ................................................................................................................................................ 15 Wat is een database : ........................................................................................................................ 15 Hoe installeer ik PHPMyAdmin : ....................................................................................................... 15 Telnet..................................................................................................................................................... 18 Wat is een Telnet :............................................................................................................................. 18 Toepassingen van Telnet en het gebruik van poorten : .................................................................... 18 Voorwoord Als eindproject koos ik voor een beveiligingsmodule die werkt met een bewegingssensor. Door middel van die bewegingssensor zal er beweging worden waargenomen. De meting zal aangestuurd worden vanuit een microcontroller. Als er beweging wordt waargenomen zal de microcontroller ook een camera aansturen, deze zal foto’s opslaan op het net. Deze foto’s zullen te raadplegen zijn op de webserver die draait op de Raspberry Pi. Ik wil graag mijn vakleerkrachten de heer Hoof, de heer Baert en de heer Van Crombrugge bedanken. Ook wil ik de school bedanken voor al het materiaal dat ze ter beschikking hebben gesteld. Niels Van Damme juni 2015 Doel Het beveiligen van een plaats door middel van een bewegingssensor en een cameramodule die aangestuurd wordt door de Raspberry Pi. Werking Door middel van een bewegingssensor zal er beweging worden waargenomen. De meting zal aangestuurd worden vanuit een microcontroller. Als er beweging wordt waargenomen zal de microcontroller ook een camera aansturen, deze zal foto’s opslaan op een webserver die draait op de Raspberry Pi. Benodigdheden - Raspberry Pi Cameramodule Raspberry Pi model b PIR sensor HC-SR501 Python programma om de bewegingsmodule correct te gebruiken Apache webserver draaiend op de Raspberry Pi SQL-server (op PHPMyAdmin) Raspberry Pi Specificaties : Voltage: CPU 5V d.m.v. MicroUSB of door de GPIO-header 700 MHz Low Power ARM1176JZFS Applications Processor GPU Broadcom VideoCore IV @250MHz Memory (RAM) 512MB SDRAM Operating System B Raspbian Pins 26 GPIO pin Audio output 3.5mm jack // HDMI Netwerk Adapter 10/100 Ethernet (8P8C) USB-adapter on the third port of the USB hub Afmetingen 85.60mm X 53.98mm Programmeren : De standaardtaal om te programmeren op de Raspberry Pi is Python. Het is desondanks wel mogelijk om in elke taal te programmeren. Dit gaande van C, C++, Java, … Er zijn verschillende programmeeromgevingen waarin gewerkt kan worden, voorbeelden hiervan zijn Geany, Leadpad, ... HC-SR501 Specificaties: Product Type Operating Voltage Range Quiescent Current Level output Trigger Delay time Block time Angle Sensor Operation Temp. HC--SR501 Body Sensor Module 5-20VDC <50uA High 3.3 V /Low 0V L can not be repeated trigger/H can be repeated trigger(Default repeated trigger) 5-300S( adjustable) Range (approximately .3Sec -5Min) 2.5S(default)Can be made a range(0.xx to tens of seconds <110 ° cone angle -15-+70 degrees Aanpassingen: ◦ Als je aan de afstandspotentiometer met de klok meedraait, dan vergroot je het bereik van de sensor (van 3 meter als minimum tot 7,7 meter als maximum). ◦ Als je aan de afstandspotentiometer met de klok meedraait, zal de delay groter worden (van 5s als minimum tot 300s als maximum). Toepassingen: - - Beveiligingsmodule: Camera laten aansturen Alarm in werking laten treden Eigenaar verwittigen Lichten automatisch laten aangaan bij beweging Inwendig schema: Onderkant module: Python-code: Flowchart Testen van de sensor Installeren van de Apache-server op de PI Wat is een apache server : Een apache webserver is een webserver-applicatie. Een webserver-applicatie helpt om data te leveren die geraadpleegd kan worden door middel van het internet. Een Apache webserver wordt meestal vernoemd als een Apache server. Het is oorspronkelijk gebaseerd op een NCSA HTTPd server*. Het is een software veelal gebruikt op Unix-systemen. In dit geval is software van de apache is te vinden op de Raspberry Pi. Het installeren van de apache webserver op de Raspberry Pi : Het installeren van de apache webserver op de Raspberry Pi is zeer eenvoudig, het enige wat je doet is het invoeren van volgend command in de LXTerminal. sudo apt-get install apache2 -y Bij het invoeren van dit command zal de Raspberry zelf alle nodige software downloaden en installeren op het systeem. Als alles correct is gegaan zal er een nu een html-bestand in de webfolder staan. Je kan dit html-bestand bekijken door in je webbrowser je eigen IP-adres in typen of gewoonweg ‘http://localhost/’, wat je ook naar dit bestand zal brengen. Je kan je eigen IP-adres vinden door in de LXTerminal volgend command in te voeren: ‘hostname –I’. Wanneer je dit alles dus gedaan hebt zal je volgend scherm te zien krijgen. De default-pagina veranderen : Je kan de standaardwebpagina natuurlijk ook veranderen, maar om dit te doen heb je toestemming nodig om dingen in dat bestand te veranderen. Maar het is dan natuurlijk slimmer om gewoon toestemming te krijgen om alles te veranderen in de gehele map. Dit krijg je door volgend command in te voeren in de terminal. sudo chown -X root: USERNAME(naam de Raspberry Pi)/var/www/ Wanneer je dit gedaan hebt, zal je alles kunnen veranderen naar behoren. Het beveiligen van de Apache webserver : Om de website te beveiligen gaan we gebruik maken van de HTTP/Apache Authentication method. De eerste stap is het aanmaken van een index.php file in de admin map waarnaar mensen worden doorgewezen wanneer ze je site bezoeken. De volgende stap is om een HTpaswoord te genereren dat zal geëncrypteerd zal worden. Je zal de mogelijkheid hebben om een paswoord in te voegen, maar wat je typt zal je niet te zien krijgen. Wees dus zeker van wat je typt. Je zal nu te zien krijgen dat je paswoord bevestigd is. Dit zal bij jou niet Cixtor zijn, maar de naam van je Raspberry Pi. Je kan je paswoord geëncrypteerd zien door volgend command in te voeren in de terminal. De volgende stap is het configureren van de HTAcces settings. Je gaat dit doen door een .htaccesfile te maken. In dit bestand moeten volgende regels tekst komen. De derde regel moet wel aangepast worden, want jouw doelmap is niet /home/cixtor, maar standaard /home/pi. Dit kan voor iedereen verschillen, dat hangt af van hoe je het zelf hebt ingesteld. Nu gaan we kijken of onze AllowOverride op All staat, indien dit niet zo is moet je het veranderen. Dit is de laatste controle alvorens je site goed beveiligd is. Database Wat is een database : Een database, ook wel een gegevensbank of een databank genoemd, is een digitaal opgeslagen archief. Programma’s als MySQL en PHPMyAdmin maken het de gebruiker eenvoudig om te communiceren met de database. Dit betreft zowel het schrijven naar als het lezen van de database. In dit project gebruik ik PHPMyAdmin. Hoe installeer ik PHPMyAdmin : Voor je PHPMyAdmin kan installeren, moet je eerst een MySQL-server aanmaken op de Raspberry Pi. Dit gaat door volgend command in te voeren in de LXTerminal. apt-get install mysql-server mysql-client Je zal een root-paswoord moeten ingeven, onthoud dit paswoord goed, want je hebt het nodig om PHPMyAdmin te gebruiken. Het installeren van PHPMyAdmin op de Raspberry Pi is zeer eenvoudig, het enige wat je doet is het invoeren van volgend command in de LXTerminal. apt-get install phpmyadmin Wanneer de software aan het installeren is zal het systeem de vraag stellen welke webserver geïnstalleerd is. In dit geval is dat Apache2. Je zal vervolgens dit te zien krijgen. Wanneer je op yes drukt, zal hij vragen naar het paswoord dat je heb ingevoerd bij het installeren van de MySQL-server. Vervolgens moet je een paswoord voor PHPMyAdmin ingeven, dit is vrij te kiezen. Nu is PHPMyAdmin geïnstalleerd. Je kan dit raadplegen via volgende link: http://your.raspberrypi.domain/phpmyadmin De volgende stap in dit proces is ervoor zorgen dat PHPMyAdmin kan werken met de Apache – Webserver. Het configuratiebestand zal nu geopend worden in Leafpad. nano /etc/apache2/apache2.conf In dit bestand scrol je vervolgens helemaal naar beneden en voeg je volgende zin toe. Include /etc/phpmyadmin/apache.conf Sla het bestand op (ctrl + x en druk op y om te bevestigen). Herstart nu de Apache met volgend command. /etc/init.d/apache2 restart Bron : http://www.raspipress.com/2012/09/tutorial-install-phpmyadmin-on-your-raspberry-pi/ Telnet Wat is een Telnet : Telnet is een eenvoudig, op tekst gebaseerd programma waarmee u via internet een verbinding kunt maken met een andere computer. Als de eigenaar of beheerder van de andere computer u heeft gemachtigd om een verbinding met die computer te maken, kunt u via Telnet opdrachten invoeren waarmee u toegang krijgt tot programma's en services op de computer op afstand, net alsof u achter die computer zou zitten. Via Telnet kunt u toegang krijgen tot bijvoorbeeld e-mail, databases en bestanden. Toepassingen van Telnet en het gebruik van poorten : Port 25: Het gebruiken van Telnet als een SMTP mailserver. (Unsecure TLS) Port 587: Het gebruiken van Telnet als een SMTP mailserver. (Secure TLSi) Port 80: Communiceren met webpagina’s van buitenaf. (HTTP) Port 995: binnenkomende Mail (POP) Server (heeft SSLii nodig) Port 465: Uitgaande Mail (SMTP) Server (Heeft TLS nodig) i Transport Layer Security ii Secure Socket Layer