CentOS configuration lan/lab de RPIs

Après avoir créer les images custom des RPI il va falloir les connecter entre eux.  Pour cela on va créer un lan qui va les accueillir avec :

  • Un linux qui fera passerelle
  • Un dhcp local
  • Un dns local
  • Une route vers le net

Centos 7 et ses noms d’interfaces …

Commençons par cibler les interfaces en jeu:

  • le lan RPI sera de type câble Ethernet (eth0)
  • internet viendra du Wifi (wlan0)

Pour lister les interfaces de la machine :

[root@CentOS#]ip addr show

Oups, pas d’interface eth0 comme attendu mais un ifcfg-enp0s31f6 .

On va donc renommer l’interface et pour cela il faut avoir l’adresse MAC de la carte réseau visible avec la précédente commande et du genre : link/ether xx:xx:xx:xx:xx:xx
Continue reading

Faire une image Raspbian custom pour son Raspberry en full headless

Retour aux sources pour le Raspberry pi !

J’ai enfin craqué pour un RPI3 pour qu’il trouve sa place à coté du RPI1 et du RP2 avec un changement d’image aussi pour passer à Raspbian Pixel en mode light.

Contexte:

Voilà le problème: je souhaite éviter de brancher câble, écran et tout le toutim sur les 3 RPI. Mais aussi je veux une image contenant déjà une connexion ssh activée parce que, dans le cadre de mon futur lab RPI, je vais redescendre les images régulièrement.

Depuis la fin de l’année 2016, Raspbian a désactivé le ssh et il faut rajouter un fichier dans le répertoire de /boot mais je vais vous proposer une autre solution.

Materiel:

Tout ce qu’il vous faut : une image Raspbian … et un Linux  (ici CentOS 7)

Continue reading

Piloter son android avec Raspberry Pi et adb

Une bonne nouvelle, grâce a AdamOutler du forum XDA il est possible d’utiliser le Android Debug Bridge (adb) sur le Raspberry Pi très facilement.

Voila comment procéder :

Récupération de l’archive

apt-get install p7zip
wget 'http://forum.xda-developers.com/attachment.php?attachmentid=1392336&d=1349930509' -O adb.7z
7zr x adb.7z 
cp mypart/adb /usr/local/bin/

Et on test le binaire :

adb version
Android Debug Bridge version 1.0.29

Communication avec le smartphone

* En premier lieu il faut autoriser le debugage Android sur le smartphone
Paramètres / Options Devellopeur / Debogage Android

adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
SH1BVTRXXX	device

Installation des applications par défaut sur la carte SD

* On vérifie le setting actuel [0/auto] [1/internal] [2/external]

adb shell pm getInstallLocation
0[auto]

* On force le setting a external (si l’application est compatible)

adb shell pm setInstallLocation 2

Avoir un shell sur Android

adb shell
shell@android:/ $ ls   
acct
app-cache
cache
config
d
data
default.prop
dev
etc
init
init.cm.rc
init.goldfish.rc
init.marvel.rc
init.msm7x27.usb.rc
init.rc
init.trace.rc
init.usb.rc
mnt
proc
root
sbin
sd-ext
sdcard
storage
sys
system
ueventd.goldfish.rc
ueventd.marvel.rc
ueventd.rc
vendor

Transfert de fichiers sur/de la carte SD

* Download

adb pull /mnt/sdcard/BLU\ MOD\ V1.1.zip /root/
1544 KB/s (149377165 bytes in 94.433s)

* Upload

adb push /home/pi/test.txt /mnt/sdcard/

RaspMap un analyseur de réseau ethernet/bluetooth/wifi sur Raspbian

Apres avoir dégrossi le hardware et les differentes méthodes d’accès et de performance du Raspberry voila le 1er lab grandeur nature : il s’agit de Raspmap dont les sources sont disponibles sur mon github.

Pour faire simple c’est un script qui permet de faire du wardriving wifi et bluetooth ainsi que du mapping de réseau ethernet. Toujours pratique pour un admin réseau en ballade :)

Pour ce lab il faut :

  • Raspberry Pi
  • Raspbian
  • Dongle Bluetooth
  • Antenne Wifi (monitor mode)
  • RJ45
  • USB power

20130705_132329

Une fois ce materiel assemblé on obtient un montage compact si on n’utilise pas de hub usb.

20130703_182345

Pour commencer il faut installer Raspmap sur la Raspbian avec les sources sur Github

git clone https://github.com/zephilou/raspmap.git
cd raspmap
./install.sh

Et vous devriez voir ca si votre ssmtp est bien configuré :

./install.sh 
 SSMTP ok 
 Nmap  ok 
 xsltproc  ok 
 mtr  ok 
 nbtscan  ok 

 Choose a destination email  
Email :  email@exemple.com

 Sending .... 
 Check your email email@exemple.com ... have you got it ? (y/n)  
y or n : y

 Email  ok 

Si vous n’avez pas reçu l’email, vérifiez votre configuration /etc/ssmtp/ssmtp.conf

Une fois que l’email confirmant l’installation de RaspMap reçu, coupez le jus et on est prêt.

Voila comment ce déroulera le prochain boot:

  • Récupération d’une IP locale via DHCP
  • Récupération de l’ip publique
  • Listing des interfaces réseau
  • Extraction de la plage réseau en CIDR
  • Extraction des informations du périphérique Bluetooth
  • Scan des périphériques Bluetooth environnant
  • Extraction des informations du périphérique Wifi
  • Scan des Access Point Wifi environnant
  • MyTraceRoute jusqu’à Google
  • Correspondance IP nom de machine
  • Scan de toute la plage réseau
  • Envoi du rapport a l’email configuré a l’installation

Au niveau utilisation rien de plus simple, on branche le RJ45 au switch/hub/routeur et mettez l’alimentation. Il ne reste plus qu’a attendre.

20130705_132706

Voila quelques screenshots du rapport email :

  • ifconfig
  • Raspmap-ifconfig

  • Bluetooth
  • Raspmap-bluetooth

  • iwconfig
  • Raspmap-iwconfig

  • mtr
  • Raspmap-mtr

  • hostname
  • Raspmap-hostname

  • nmap
  • Raspmap-nmap

    Le process prend moins de 5 minutes pour scanner et envoyer le rapport par email, et pour visualiser ceci j’ai monté un Arduino avec des LED de contrôles en fonction des différentes actions. Ce montage utilise raspmap-control qui fera l’objet d’un futur article dès que le projet sera un peu plus mature.

    20130704_123120

    A vos scans :)

    Prise en main du Raspberry Pi avec Raspbian en mode headless

    Huf huf huf y’avait un peu de poussiere sur les articles …

    Ca fait maintenant quelques semaines que j’ai acquis un Raspberry Pi model B commandé chez Element 14. Voici un petit tutorial pour l’installer avec Raspbian en mode headless c’est a dire sans écran … pour le fun.

    Pour bien démarrer il vous faut :

    • Raspberry Pi
    • Carte SD (classe 10)
    • Cable réseau
    • Cable Usb Micro B
    • Optionnel : Cable HDMI/RCA
    • Optionnel : Clavier/Souris
    • Optionnel : Boitier

    20130702_162755

    On commence par récupérer l’image de Raspbian et on prépare la carte SD ici sur Mac.

    * On commence par trouver la dénomination de la carte SD

    diskutil list 
    /dev/disk0
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *500.1 GB   disk0
       1:                        EFI                         209.7 MB   disk0s1
       2:                  Apple_HFS Lion HD                 499.2 GB   disk0s2
       3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
    /dev/disk2
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:     FDisk_partition_scheme                        *4.0 GB     disk2
       1:                 DOS_FAT_32 UNTITLED                4.0 GB     disk2s1
    

    * On démonte la carte (chez moi disk2s1)

    diskutil unmountDisk /dev/disk2s1
    

    * On ‘grave’ l’image sur la carte SD en rajoutant un r pour écrire en raw

    dd if=Downloads/2013-05-25-wheezy-raspbian.img  of=/dev/rdisk2 bs=1m 
    1850+0 records in
    1850+0 records out
    1939865600 bytes transferred in 1315.130117 secs (1475037 bytes/sec)
    

    A partir de la on met la carte SD dans le Raspberry et on branche le câble réseau et l’alimentation Usb.
    On devrait voir les led de contrôle du Raspberry s’illuminées.

    20130702_175124

    Maintenant il s’agit de trouver quelle adresse ip le Raspberry a récupérer sur le réseau local. Pour ça faites un tour sur votre box ou un petit coup de nmap en recherchant quelle MAC appartient a notre Raspberry.

    nmap -sS 10.1.1.0/24
    ...
    Nmap scan report for raspberrypi.home (10.1.1.13)
    Host is up (0.059s latency).
    Not shown: 999 closed ports
    PORT   STATE SERVICE
    22/tcp open  ssh
    MAC Address: XX:XX:XX:XX:XX:BB (Raspberry Pi Foundation)
    ...
    

    Maintenant on se connecte en ssh sur raspbian (ici sur l’ip 10.1.1.13) avec le user par défaut pi et son password par défaut raspberry

    ssh pi@10.1.1.13
    The authenticity of host '10.1.1.13 (10.1.1.13)' can't be established.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.1.1.13' (RSA) to the list of known hosts.
    pi@10.1.1.13's password: 
    Linux raspberrypi 3.6.11+ #456 PREEMPT Mon May 20 18:42:15 BST 2013 armv6l
    
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    
    NOTICE: the software on this Raspberry Pi has not been fully configured. Please run 'sudo raspi-config'
    
    pi@raspberrypi ~ $ 
    

    * La premiere chose a faire est de faire le resize de la carte SD en utilisant la commande suivante

    sudo raspi-config
    

    raspi-config

    Apres un reboot votre Raspberry Pi est presque prêt.

    Pour éviter de cramer la carte SD avec les écritures on peut bouger la partition root sur un autre support par usb (sda1 dans mon cas). Ca améliore aussi grandement les performances.

    umount /dev/sda1
    mkfs.ext4 /dev/sda1
    e2fsck /dev/sda1
    mount /dev/sda1 /media/usbstick
    dd if=/dev/root of=/dev/sda1 bs=4M
    resize2fs /dev/sda1
    

    On modifie le fstab

    nano /media/usbstick/etc/fstab
    proc            /proc           proc    defaults          0       0
    /dev/mmcblk0p1  /boot           vfat    defaults          0       2
    /dev/sda1       /               ext4    defaults,noatime  0       1
    

    Et on modifie le boot

    nano /boot/cmdline.txt
    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/sda1 rootfstype=ext4 elevator=deadline rootwait
    

    Et on reboot :)

    Voila it’s done ! Une debian sur un Raspberry Pi.