RPi à partir de rien : Configuration avancée

RPi à partir de rien : Configuration avancée.

I) Utilisateurs.

1) Ajouter l’utilisateur root :

/ # echo "root:0:0:root:/root:/sbin/sh" > /etc/passwd
/ # echo "root:x:0:" > /etc/group

2) Changer le mot de passe

/ # passwd

3) Ajouter un utilisateur normal :

/ # adduser rpi

4) Vérification :

/ # ls -l /home
root@RaspberryPi [/root]# ls -l /home
total 8
drwxr-sr-x    2 rpi      rpi           4096 Jan  1 00:05 rpi
/ # cat /etc/passwd
root:a1U/7iVM41kGs:0:0:root:/root:/bin/sh
rpi:gCvrT9cfEydko:1000:1000:Linux User,,,:/home/rpi:/bin/sh

II) Configuration du login :

– Fichier « inittab » :

Ouvrir :

/etc/inittab

Remplacer tout par :

::sysinit:/etc/init.d/rcS

tty1::respawn:/sbin/getty 0 /dev/tty1
tty2::respawn:/sbin/getty 0 /dev/tty2
tty3::respawn:/sbin/getty 0 /dev/tty3
tty4::respawn:/sbin/getty 0 /dev/tty4

ttyAMA0::respawn:/sbin/getty 115200 /dev/ttyAMA0

– Fichier « hostname » :

Ouvrir :

/etc/hostname

Ajouter :

RaspberryPi

– Fichier de démarrage :

Ouvrir :


/etc/init.d/rcS

Ajouter :

hostname -F /etc/hostname

– Fichier « profile » :

Ouvrir :

/etc/profile

Ajouter :

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
PS1="\u@\h [\W]"
if [ $(id -u) -eq 0 ]
then
	PS1=${PS1}"# "
else
	PS1=${PS1}"$ "
fi

II) Réseau :

– Configuration des fichiers réseaux :

Ouvrir :

/etc/resolv.conf

Ajouter :

nameserver 80.10.246.2

Ouvrir :

/etc/init.d/rcS

Ajouter :

/etc/init.d/rc.network &

Ouvrir :

/etc/init.d/rc.network

Ajouter :

#!/bin/sh

/sbin/ifconfig lo   127.0.0.1
while ! /sbin/ifconfig -a | grep eth0 >/dev/null
do
  sleep 1
done

/bin/ifplugd -i eth0

– Configuration de l’adresse ip statique :

action :

chmod 777 /etc/init.d/rc.network

Ouvrir :

/etc/ifplugd/ifplugd.action-statique

Ajouter :

#!/bin/sh

if [ "$1" = "eth0" ] ; then

  IP_HOST=192.168.1.11
  NETMASK=255.255.255.0
  GATEWAY=192.168.1.1
  IP_DNS=80.10.246.2

  if [ "$2" = "up" ] ; then

    /sbin/ifconfig eth0 ${IP_HOST} netmask ${NETMASK}
    if [ "${GATEWAY}" != "" ] ; then
      /sbin/route  add  default  gw "${GATEWAY}"
    fi
    if [ "${IP_DNS}" != "" ] ; then
      echo "nameserver ${IP_DNS}" > /etc/resolv.conf
    fi
  fi
fi

return 0

Action :

/etc/ifplugd/ # ln -s ifplugd.action-statique ifplugd.action
/etc/ifplugd/ # chmod 777 ./ifplugd.action*

– Brancher un câble réseau.

– Connexion manuel :

root@RaspberryPi [/root]# ifconfig eth0 192.168.1.11 netmask 255.255.255.0
root@RaspberryPi [/root]# route  add  default  gw 192.168.1.1

– Teste à partir d’un autre ordinateur du réseau :


[~] ➔ ping 192.168.1.11 -c 3
PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data.
64 bytes from 192.168.1.11: icmp_req=1 ttl=64 time=0.470 ms
64 bytes from 192.168.1.11: icmp_req=2 ttl=64 time=0.489 ms
64 bytes from 192.168.1.11: icmp_req=3 ttl=64 time=0.567 ms

--- 192.168.1.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.470/0.508/0.567/0.049 ms

– A partir du RPi

root@RaspberryPi [/root]# ifconfig
eth0      Link encap:Ethernet  HWaddr B8:27:EB:E7:1A:95  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ba27:ebff:fee7:1a95/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:323 errors:0 dropped:0 overruns:0 frame:0
          TX packets:212 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:29034 (28.3 KiB)  TX bytes:24800 (24.2 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
root@RaspberryPi [/root]# ping 192.168.1.1 -c 3
root@RaspberryPi [/root]# ping google.fr

III) Service d’un serveur internet :

– Fichier de configuration :

Ouvrir :

/etc/init.d/rcS

Ajouter :

/etc/init.d/rc.services &

Ouvrir :

/etc/init.d/rc.services

Ajouter :

#!/bin/sh

/sbin/telnetd 

/sbin/httpd -h /home/httpd 

– Lancement manuel du serveur web :

root@RaspberryPi [/root]# /sbin/httpd -h /home/httpd 

– Page web :

Ouvrir :

/home/httpd/index.html

Ajouter :


    
        Raspberry Pi from scratch
    
    
        

Framboise Pi

Cette page s'affiche depuis un petit serveur http embarqué sur mon Raspberry Pi.

Action :

root@RaspberryPi [/root]# httpd -h /home/httpd

– Afficher la page web :

Dans un navigateur, taper l’adresse : http://192.168.1.11

IV) Script d’arrêt :

Ouvrir :

/root/arreter.sh

Ajouter :

#!/bin/sh

mount / -o ro,remount
halt

V) Accés sécurisé :

1) Compilation de dropbear :

A partir de l’ordinateur de développement :

– Répertoire de travail :

[~] ➔ cd RaspberryPi/

– Téléchargement et décompression :

[~/RaspberryPi] ➔ wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2012.55.tar.gz
[~/RaspberryPi] ➔ tar xvfz dropbear-2012.55.tar.gz
[~/RaspberryPi] ➔ cd dropbear-2012.55/

– Configuration du compilateur arm :

[~/RaspberryPi/dropbear-2012.55] ➔ PATH=$PATH:/usr/local/cross-rpi/usr/bin/
[~/RaspberryPi/dropbear-2012.55] ➔ ./configure --host=arm-linux --disable-zlib

– Compilation :

[~/RaspberryPi/dropbear-2012.55] ➔ make
[~/RaspberryPi/dropbear-2012.55] ➔ make scp

– Copier les binaires sur la carte mémoire :

[~/RaspberryPi/dropbear-2012.55] ➔ sudo scp dropbear dropbearkey scp /media/Root/usr/bin/

A partir du RPi :

Ouvrir :

/etc/init.d/rc.services

Ajouter :

if[! -f /etc/dropbearkey.rsa]; then
  /usr/bin/dropbearkey -t rsa -f /etc/dropbearkey.rsa
fi

/usr/bin/dropbear -r /etc/dropbearkey.rsa

– Teste :

A partir de l’ordinateur de développement:

[~] ➔ ssh root@192.168.1.11
The authenticity of host '192.168.1.11 (192.168.1.11)' can't be established.
RSA key fingerprint is 7c:e8:9b:f4:9c:ba:31:a0:1a:a5:40:b3:4a:84:93:92.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.11' (RSA) to the list of known hosts.
root@192.168.1.11's password: 
root@RaspberryPi [/root]#

Erreur :

[~] ➔ ssh root@192.168.1.11
root@192.168.1.11's password: 
PTY allocation request failed on channel 0
shell request failed on channel 0

Solution :

root@RaspberryPi [/root]# mkdir /dev/pts
root@RaspberryPi [/root]# echo "none /dev/pts devpts defaults 0 0" >> /etc/fstab
root@RaspberryPi [/root]# mount /dev/pts

VI) Script d’initialisation du réseau et des services réseaux.

Ouvrir :

/root/reseau.sh

Ajouter :

#!/bin/sh

ifconfig eth0 192.168.1.11 netmask 255.255.255.0
route add default gw 192.168.1.1

sleep 3

/sbin/telnetd

/sbin/httpd -h /home/httpd

/usr/bin/dropbear -r /etc/dropbearkey.rsa

mkdir /dev/pts
mount /dev/pts

VII) Remarques :

– Espace disque utilisé :

root@RaspberryPi [/root]# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 3.5G     42.7M      3.3G   1% /
devtmpfs                226.9M         0    226.9M   0% /dev

VIII) Liens :

http://www.blaess.fr/christophe/2013/02/28/linux-mag-158-raspberry-pi-from-scratch/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *