Archives de catégorie : Config OS

Poser un certificat SSL pour SSHD

Ne jamais utiliser de mot de passe ! Lisez cet article, il est édifiant : Kill the Password: Why a String of Characters Can’t Protect Us Anymore – Wired.com.

Et maintenant comment fait-on ? C’est simple, on va générer une paire de clés publique/privée, déposer la clé publique sur le Rasp et la lier au compte pi puis configurer Putty pour qu’il lance la session en utilisant (pas en transmettant) la clé privée locale.

Créer une paire de clés

puttygen« Moi, je suis PC et Windows 7,c’était MON idée », tout ça pour dire que je fais tout depuis Windows avec des utilitaires Windows.
J’ai déjà Putty et je viens de charger PuttyGen depuis http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Lancer PuTTY Key Generator
Vérifier 1 & 2 et cliquer sur 3
Vérifier 1 (type clé) & 2 (longueur de la clé) et cliquer sur 3.

Passer la souris au-dessus de la zone
Passer la souris au-dessus de la zone vide afin de faire progresser la barre jusqu’à son extrémité.

Copier le texte sélectionner en  1, cliquer 2 et sauvegarder avec une extension .pub, cliquer sur 3 et sauvegarder avec une extension .ppk

  • Copier le texte sélectionner en 1 (Ctrl-C),
  • cliquer sur 2 et sauvegarder avec une extension .pub,
  • cliquer sur 3 et sauvegarder avec une extension .ppk

Lancer Putty cette fois avec vos paramètres habituels. Une fois connecté avec votre compte à automatiser (pi dans mon cas), aller dans le sous-répertoire .ssh,

pi@raspberrypi ~ $ cd .ssh
pi@raspberrypi ~/.ssh $

ou taper la commande de création du répertoire s’il n’existe pas :

pi@raspberrypi ~ $ mkdir .ssh
pi@raspberrypi ~ $ cd .ssh
pi@raspberrypi ~/.ssh $

puis taper la commande d’ajout d’une chaîne à un fichier (existant ou pas) :

pi@raspberrypi ~ $ cat >> authorized_keys

enfin, coller le contenu de la clé publique (copié précédemment) avec le clic-droit de la souris sur l’écran Putty. Terminer avec un Ctrl-Z qui vous rendra l’invite de commande.

Vous pouvez fermer l’écran de Putty avec une commande exit.

Puis le relancer immédiatement. Après avoir renseigné les paramètres habituels (IP / adresse),

putty1

aller dans le menu Data et saisir le compte de connexion : pi dans mon cas.

putty2

Puis dans le menu Auth, saisir le chemin où est stocké la clé privée.

Sauvegarder votre session, puis lancer là. La connexion doit être entièrement automatique jusqu’à l’apparition de l’invite de commande.

putty3

Pour terminer, il faut configurer SSHD pour ne plus accepter les connexions avec validation par mot de passe, sinon tout cela n’a servit à rien d’autre qu’à automatiser la connexion, pas à augmenter la sécurité d’accès.

Voilà les lignes modifiées du fichier /etc/ssh/sshd_config :

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

...

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

...

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Avant de fermer la fenetre existante, on relance le daemon sshd :

pi@raspberrypi ~ $ sudo /etc/init.d/ssh restart
[ ok ] Restarting OpenBSD Secure Shell server: sshd.

Puis on réessaie de se connecter avec son certificat, puis sans (ce qui ne doit pas fonctionner), et enfin on peut fermer la session initiale.

Note : on ne copie/manipule jamais la clé privée. Elle doit rester sur le poste où elle a été créée.

Note 2 : pour être encore plus parano, on peut ajouter des mots de passe à ses clés privées et les gérer avec un utilitaire qui évite de les laisser en clair sur le poste client.

Références

Reflasher sa SD avec la Raspbian “wheezy”

Constat

Il vient d’arrivé et vous l’avez déjà connecté. Mais…

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.1.9+ #272 PREEMPT Tue Aug 7 22:51:44 BST 2012 armv6l GNU/Linux

Et là, c’est le drame ! Vous avez une Debian pour ARMv6 alors que votre Rasp est un ARMV7-A avec plein de bons morceaux de fruit dedans comme un processeur de calcul en virgule flottante et d’autres options qui permettent à votre Rasp de fonctionner plus efficacement (programmes plus rapides à la même fréquence).

Télécharger la distribution

Pas de problème tout est expliqué ici : http://www.raspberrypi.org/downloads. On charge et on dézippe localement.

Flasher

Pour flasher ma SD, j’ai eu un soucis avec l’outil fenétré Win32ImageWriter qui n’a pas reconnu le port SD de mon PC, bien que la carte ait été formatée localement (fat) et qu’elle ait bien reçu une lettre. Pas grave, je suis passé en ligne de commande avec l’utilitaire flashnul. Là, cela s’est bien passé. On commence par demander les supports détectés par :

C:/flashnul/flashnul.exe -p
Available physical drives:
0       size = 250059350016 (232 Gb)
1       size = 1990197248 (1898 Mb)

Available logical disks:
C:
D:
F:
G:
H:

Press ENTER to exit.

Attention, le support 0, c’est le disque physique du PC ! Et ici la SD a l’identifiant 1 comme le confirme sa capacité (2 Go).

Ensuite, on lance l’écriture :

C:/flashnul/flashnul.exe 1 -L C:/2012-10-28-wheezy-raspbian.img

On remet la SD dans le Rasp (et-il nécessaire de le préciser) et on le remet sous tension.

Configuration de base

Quand on a réussi à booter et à se connecter au Rasp, on peut définir un certain nombre de paramètres de configuration grâce à l’utilitaire intégré :

pi@raspberry ~ $ sudo raspi-config

Profitez-en pour :

  • Étendre la taille du rootfs à la totalité de la SD (2 Go par défaut seulement) : expand_rootfs ;
  • Définir la langue utilisée par défaut : change_locale ;
  • Définir le fuseau horaire par défaut : change_timezone (à noter que le Rasp n’a pas de système de maintient de l’heure en cas de coupure d’alimentation et donc qu’il ne peut retrouver l’heure que s’il a accès à internet via le protocole ntp ou via une commande date lancée par l’utilisateur) ;
  • Mettre à jour la config : update qui ne fonctionne évidemment qu’avec un accès internet.

Références

Passer en IP Fixe

Le Raspberry PI est arrivé configuré en DHCP. C’est bien pour le connecter sur un réseau local qui possède un serveur, mais pas pour une connexion directe via un câble Ethernet de PC à Rasp.

Pour le configurer en IP fixe, c’est finalement assez simple :

  1. Mettre un clavier USB et un écran sur le port HDMI ;
  2. Se loguer pi / raspberry ;
  3. Éditer le fichier /etc/network/interfaces pour lui donner l’aspect suivant :
    pi@raspberrypi ~ $ sudo nano /etc/network/interfaces
    iface eth0 inet static     # (pour remplacer dhcp)
    address 192.168.1.4
    netmask 255.255.255.0
    gateway 192.168.1.1

    On enregistre en quittant (Ctrl-X) en confirmant les modifications et le nom du fichier.

  4. On reboot le Rasp
    pi@raspberrypi ~ $ sudo reboot

On configure alors simplement son PC en IP fixe lui aussi dans le même réseau (ici 192.168.0.2) et :

C:Usersmarc>ping 192.168.0.5

Envoi d'une requête 'Ping'  192.168.0.5 avec 32 octets de données :
Réponse de 192.168.0.5 : octets=32 temps=1 ms TTL=64
Réponse de 192.168.0.5 : octets=32 temps<1ms TTL=64
Réponse de 192.168.0.5 : octets=32 temps<1ms TTL=64
Réponse de 192.168.0.5 : octets=32 temps<1ms TTL=64

Statistiques Ping pour 192.168.0.5:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 0ms, Maximum = 1ms, Moyenne = 0ms