Raspberry Pi - GIP Beveiligingsmodule

advertisement
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
Download