How many Raspberry Pis do you have at home? Actually I’ve got two Raspbeery Pis running raspbian (no UI), with many many managment scripts running on them! But not only management scripts; also sendmail, DLNA servers and much more…
Now, think to have such a system always available: everytime, everywhere! And now open your eyes and go to cloudrino.net!
They are offering free alpha plans (free for life!) for those that reach the top of the queue!
And guess what! Today I’m staring at my brand new little cluod server!!! Wow!
So It’s true… your dreams can come true!
Gr8 work guys! I see so much possibilities with my new little cloud server!
# Reputation preprocessor. For more information see README.reputation
preprocessor reputation: \
memcap 500, \
priority whitelist, \
nested_ip inner, \
whitelist $WHITE_LIST_PATH/whitelist.rule, \
blacklist $BLACK_LIST_PATH/blacklist.rule
portarsi nella directory
/etc/snort/rules/etc
e lanciare il comando
snort -d -h 192.168.0.0/24 -l ./log -c snort.conf
I parametri dipendono ovviamente dal tipo di LAN che volete monitorare.
Per i dettagli leggere il manuale di Snort su Snort.org.
A questo punto per testarlo andiamo a mettere in
/etc/snort/rules/local.rules
la seguente regola
# $Id: local.rules,v 1.11 2004/07/23 20:15:44 bmc Exp $
# ----------------
# LOCAL RULES
# ----------------
# This file intentionally does not come with signatures. Put your local
# additions here.
# Test ping
#alert ip any any -> any any (msg: "IP Packet detected"; sid: 8888888)
alert icmp any any -> any any (msg: "TEST PING *** ^^ *** ICMP Packet found"; sid: 888888)
Che testa anche il PING essendo una richiesta echo ICMP.
Lanciamo snort e pinghiamo il nostro gateway:
ping 192.168.0.1
andiamo quindi ad analizzare i nostri alert
more ./log/alert
e vediamo che la nostra regola ha fatto scattare l’allarme!!! 😀
In questo articolo vedremo come installare un software per l’intrusion detection della nostra rete sul nostro Raspberry Pi.
Per prima cosa ci serve un sistema operativo opportuno da installare sul nostro Raspberry PI. Per questo tipo di applicazione ho scelto Kali linux il successore della distro linux BackTrack, famosissima nel campo della sicurezza IT.
Scarichiamo quindi l’immagine per processore ARM dal sito ufficiale:
Una volta scaricato occorre copiare l’immagine sull’SD card che volete utilizzare sul Raspberry con i comandi che trovare anche sull’articolo in questo blog relativo al backup e ripristino del vostro Raspberry PI.
Riporto qui i passi fatti sul mio MacBook Air:
Fabios-MacBook-Air:~ shadowsheep$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 75.0 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
4: Microsoft Basic Data BOOTCAMP 45.5 GB disk0s4
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *8.1 GB disk1
1: DOS_FAT_32 CHIAVINA 8.1 GB disk1s1
Fabios-MacBook-Air:~ shadowsheep$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
Fabios-MacBook-Air:~ shadowsheep$ cd Downloads/
Fabios-MacBook-Air:Downloads shadowsheep$ xz -d kali-1.1.0-rpi.img.xz
Fabios-MacBook-Air:Downloads shadowsheep$ sudo dd bs=1m if=kali-1.1.0-rpi.img of=/dev/disk1
Password:
3000+0 records in
3000+0 records out
3145728000 bytes transferred in 2055.895717 secs (1530101 bytes/sec)
Fabios-MacBook-Air:Downloads shadowsheep$
Il comando dd ci metterà un po’ a terminare. Una volta terminato avremo la nostra immagine installata sull’SD.
Una volta installata la nostra distro possiamo inseriamo l’SD card sul Raspberry e accendiamolo.
In questo tutorial io accederò al nostro Raspberry Pi solamente tramite SSH.
Ma prima occorre verificare che la dietro abbia ottenuto un IP valido e inoltre voglio ricreare una signature SSH differente da quella standard.
Per utilizzare il mio nuovo Raspberry Pi con Kali quindi attacchiamo una tastiera USB e un monitor che abbia l’ingresso HDMI.
L’utente root ha password “toor”. Cambiamola subito con “passwd”
root@kali:~# passwd
Enter new UNIX password:
Rigeneriamo quindi anche le chiave per l’SSH server
root@kali:~# cd /etc/ssh
root@kali:/etc/ssh# mkdir ssh_default_keys
root@kali:/etc/ssh# mv ssh_host* ssh_default_keys/
root@kali:/etc/ssh# dpkg-reconfigure openssh-server
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
[ ok ] Restarting OpenBSD Secure Shell server: sshd.
root@kali:/etc/ssh#
Da adesso possiamo collegarci tramite SSH.
Non avendo installato una versione di linux apposta per il Raspberry ci viene a mancare la comoda utility raspi-config. Andiamo quindi ad aggiungerla manualmente alla nostra installazione di Kali linux.
Una volta installato lanciamolo per espandere il nostro filesystem. Infatti l’immagine di Kali linux installata è stata fatta per essere ospitata da una SD da 4GB e quindi se ne abbiamo una più grande (come nel mio caso 8GB) dobbiamo appropriarci dello spazio mancante! 🙂
Se voltete installare l’ultima versione di Snort a partire dai sorgenti ufficiali sul sito potete seguire le istruzioni sul sito snort.org:
Se la configurazione del daq vi da errore perché manca la libreria libpcap allora dovete installarla:
apt-get install libpcap-dev
Al termine della compilazione e installazione del daq dovreste vedere un report simile a questo.
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/daq
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Se la configurazione di snort vi da errore perché non trova le librerie libpcre e libante allora installatele con il comando:
Al termine invece di snort dovreste vedere un report simile a questo assieme a molte altre cose (tante!)
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/snort/dynamic_output
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
A questo punto avete il vostro Snort installato!
root@kali:~/tmp/snort-2.9.7.2# snort -V
,,_ -*> Snort! <*-
o" )~ Version 2.9.7.2 GRE (Build 177)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.3.0
Using PCRE version: 8.30 2012-02-04
Using ZLIB version: 1.2.7
Questa guida insegna come fare il backup e un eventuale ripristino della sdcard del sistema operativo del proprio Raspberry Pi tramite Mac OSX.
BACKUP: Inseriamo l’sdcard nel nostro Mac e apriamo il Terminale.
Per prima cosa controlliamo che la scheda sdcard sia stata riconosciuta con il comando
diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 75.0 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
4: Microsoft Basic Data BOOTCAMP 45.5 GB disk0s4 /dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *4.0 GB disk1
1: DOS_FAT_32 NO NAME 78.6 MB disk1s1
2: Linux_Swap 255.9 MB disk1s2
3: Linux 3.7 GB disk1s3
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *1.0 TB disk2
1: Windows_NTFS Elements 1.0 TB disk2s1
La nostra sdcard è stata vista ed è montata sotto il volume /dev/disk. Andiamo quindi a fare l’unmount del device con il comando
diskutil unmountDisk /dev/disk1
Una volta fatto l’unmount del volume andiamo ad eseguire un disk dump con il comando dd e mettiamo tutto in pipe con gzip in modo da creare un archivio compresso. In questo caso l’ho messo nel volume /Volumes/Elements (un hd western digital usb) all’interno della directory /raspi/ chiamando l’archivio con il nome image_20141130.gz NOTA: se bs=4m non dovesse funzionare (da errore) provare con bs=4M.
sudo dd bs=4m if=/dev/disk1 | gzip > /Volumes/Elements/raspi/image_20141130.gz
959+1 records in
959+1 records out
4025483264 bytes transferred in 1691.089930 secs (2380408 bytes/sec)
Aspettiamo il termine del comando e avremo il nostro file image_20141130.gz pronto per essere archiviato al sicuro.
RESTORE
Per fare il restore invece andiamo ad inserire sempre la nostra sdcard all’interno del nostro MAC e ne facciamo sempre l’unmount con il comando
diskutil unmountDisk /dev/disk1
Lanciamo quindi il comando per decomprimere l’archivio e mettiamo tutto in pipe con il comando disk dump (dd) questa volta dall’archivio verso l’sdcard.
A questo punto al termine del comando avremo nella nostra sdcard il ripristino del sistema operativo del nostro Raspberry Pi relativo all’archivio gzip selezionato.
Se vi si presenta il messaggio:
dd: /dev/disk1: Permission Denied
allora dovete formattare la scheda SD:
Fabios-MacBook-Air:~ shadowsheep$ diskutil unmount /dev/disk1
disk1 was already unmounted or it has a partitioning scheme so use “diskutil unmountDisk” instead
Fabios-MacBook-Air:~ shadowsheep$ diskutil unmountDisk /dev/disk1
Unmount of all volumes on disk1 was successful
Fabios-MacBook-Air:~ shadowsheep$ diskutil partitionDisk /dev/disk1 1 MBR “Free Space” “%noformat%” 100%
Started partitioning on disk1
Unmounting disk
Creating the partition map
Waiting for the disks to reappear
Finished partitioning on disk1
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: *31.0 GB disk1
Fabios-MacBook-Air:~ shadowsheep$
Mi raccomando, fate in modo che il vostro Mac o PC non vada in sospensione durante le copie altrimenti il comando potrebbe non terminare correttamente! 🙂
Ripristinate poi la configurazione come meglio credete al termine del backup o del ripristino.
Istruzioni dettagliate per installare la prima volta una immagine sull’SD del vostro Raspberry Pi le potete trovare direttamente sul sito raspberry.org!