PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Morot : Astuces Puppet

dimanche 14 juillet 2019 à 23:13

Tests

Dry run :

puppet agent -t --noop

Valider la sytaxe d’un manifest :

puppet parser validate manifest.pp

Valider un template :

erb -x -T '-' 

ERB

Insérer une valeur :


Simple code ruby cmme une boucle :


Un commentaire :

>

Afficher une variable :

 

Afficher une variable de portée globale :

 

CLI Puppet agent

Configurer le serveur :

puppet config set server puppet.lab.morot.fr --section agent

Lancer l’agent avec un serveur spécifique :

puppet agent -t --server 

Facter

Lister les facts :

facter

Obtenir un facts en particulier :

facter os.distro.description

Sortie JSON

facter -j

Sortie YAML :

facter -y

Désactiver l’agent :

puppet agent --disable

Activer l’agent :

puppet agent --enable

Modules

Gérer les modules :

puppet module list
puppet module search NOM
puppet module install NOM
puppet module uninstall NOM
puppet module upgrade NOM

Catalogues

Listes les classes appliquées :

cat /opt/puppetlabs/puppet/cache/state/classes.txt

Certificats

Re-créer la CA

puppetserver ca setup 

Vérifier la CA :

puppetserver ca list --all 

Signer une demande de certificat :

puppet cert sign NOM

Signer toutes les demandes :

puppet cert sign --all

Ressources

Un utilisateur :

puppet resource user julien 

Un paquet :

puppet resource package screen

Un point de montage :

puppet resource mount /

Gravatar de Morot
Original post of Morot.Votez pour ce billet sur Planet Libre.

antistress : Mon super abonnement Internet à 30,99€/mois

dimanche 14 juillet 2019 à 15:28

Graphique en camembert de répartition du prix de mon abonnement

J'ai évolué ces derniers temps dans ma façon de réaliser des dons aux projets en lien avec les libertés numériques (que ce soit des associations d'aide ou de lobbying, ou des projets de logiciels ou autres ressources libres).

Auparavant j'effectuais des dons ponctuels, lorsque j'y pensais. J'en ai fait parfois état sur ce blogue.

En octobre 2017, je décidais de passer à une formule de don mensuel pour Wikipédia (Wikimédia France, pour être précis). En février 2018, je passais le même cap en faveur de Framasoft. Et il y a quelques jours, je viens de faire de même pour La Quadrature du Net (dont j'adore la chaîne vidéo à laquelle je suis abonné par flux RSS : c'est d'une grande richesse intellectuelle, je vous la recommande).

Mes dons mensuels

Mes dépenses mensuelles pour mon usage d'Internet et du Web sont donc actuellement les suivantes :

Le tout est matérialisé graphiquement dans le magnifique camembert en tête de ce billet (réalisé avec LibreOffice).

En réalité cela me coûte réellement 24,32€ par mois (et non 30,99€) car, en tant que résident fiscal français, je bénéficie d'un crédit d'impôt de 66% sur mes dons à Wikipédia et Framasoft (ainsi les 5€x12mois=60€ que je donne annuellement à chacun d'entre Wikipédia et Framasoft ne me coûtent en fait que 20€). Cela ne marche pas avec toutes les organisations toutefois.

C'est à peu près mes seules dépenses budgétisées, car je ne me suis pas encore résolu à payer pour bénéficier des services d'un fournisseur de courriels éthique (je suis chez laposte.net…), et je suis resté sur des dons ponctuels à Toile Libre, l'hébergeur à prix libre de ce blogue.

Mes dons ponctuels

Je n'ai pas abandonné la formule des dons ponctuels pour autant ; mes derniers dons ponctuels (depuis mon dernier billet en la matière) ont été pour :

Actualités afférentes

Je profite de ce billet pour mettre en lumière les contributions de grandes organisations, comme l'union européenne qui donne/rend aux logiciels libres, Mozilla qui fait de même avec son projet MOSS lancé en 2015, ou encore DuckDuckGo qui finance des projets de défense de la vie privée. Même les GAFAM contribuent

Gravatar de antistress
Original post of antistress.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Utiliser un lecteur RFID avec la Raspberry Pi.

jeudi 11 juillet 2019 à 18:05
Lire badge RFID

Ce tutoriel est la seconde partie d’un dossier consacré à la découverte de l’électronique avec la Raspberry Pi. Si vous ne l’avez pas lu, je vous conseils de consulter le premier tutoriel pour contrôler une LED avec la Raspberry Pi.

Que ce soit pour des systèmes d’identification, de gestion d’inventaire, de paiement, ou pour de la domotique, les puces RFID sont de plus en plus utilisées.

Dans ce tutoriel nous allons voir comment lire des cartes RFID avec la Raspberry Pi et un lecteur RFID RC522.

À la fin du tutoriel, vous serez capable de lire un badge RFID, vérifier si c’est bien celui attendu, et allumer une LED verte ou rouge, selon le résultat. Il ne vous restera plus qu’à adapter cet exemple de base pour le projet de votre choix !

Le matériel nécessaire

Pour réaliser ce tutoriel, vous aurez besoin du matériel suivant :

Assembler le lecteur RFID RC522

Quand vous recevez le module RFID RC522, vous pouvez constater qu’il est livré avec un jeu de 2 fois 8 pins. La première étape va donc être de souder 8 de ces pins sur le lecteur RFID. Pas de panique, souder c’est très facile !

Vous devez donc insérer les PINs dans les emplacements prévus sur la carte RFID et les souder avec votre fer.

Module RFID RC522 soudé
Vous trouverez probablement des connecteurs droits et courbés. Je vous conseil d’utiliser les courbés, plus pratiques.

Si vous n’avez jamais soudé, je vous conseil cet excellent guide pour apprendre à souder de François de chez framboise314.fr.

Connecter le lecteur RFID et les LED à la Raspberry Pi

Avant de passer à l’écriture du code qui nous permettra de lire des badges RFID et de contrôler les LEDs, nous devons en premier lieu connecter tout les composants à la Raspberry Pi.

Pour rappel, le fait de brancher et débrancher des composants doit toujours se faire Raspberry Pi éteinte.

Brancher le lecteur RFID RC522 sur la Raspberry Pi

Le premier composant que nous allons brancher est le lecteur RFID.

Pour contrôler le lecteur RFID nous allons utiliser une bibliothèque externe. Hélas, celle-ci est écrite avec les ports GPIOs directement renseignés dans le code. Cela signifie que nous ne pouvons pas les configurer différemment et que nous sommes donc contraints d’utiliser exactement les mêmes ports que ceux prévus dans la librairie.

Voici un tableau listant les ports du lecteur et le port GPIO de la raspberry pi auquel vous devrez le relier.

Correspondance ports GPIO/ports RC522
Reliez les ports du RC522 aux ports correspondants sur la Raspberry Pi.

Pour rappel, vous trouverez une carte des ports GPIO de la Raspberry Pi dans le premier tutoriel de cette série.

Brancher les LEDs

Après le lecteur RFID, connectons les LEDs à la Raspberry Pi.

Nous allons faire un montage très simple. Chaque LED aura son anode (la patte allongée) reliée à un port GPIO et les deux LEDs auront leur anode reliée à la même résistance, elle même reliée à un port GPIO de type Ground de la Raspberry Pi.

Ainsi, nous utilisons une seule résistance pour deux LEDs, et on limite le nombre de câbles.

Au final, une fois la carte RFID et les LEDs reliées à la Pi, vous devriez avoir un montage ressemblant à celui-ci.

À noter, vous pouvez aussi brancher la RC522 en direct sur la Raspberry Pi sans utiliser de breadbord.

Écrire le programme pour lire un badge RFID.

Nous avons un circuit fonctionnel, il ne nous reste plus qu’à activer les ports SPI de la raspberry pi, nécessaires pour utiliser le lecteur RFID, et écrire le programme qui permettra de lire un badge RFID.

Comme dans le tutoriel précédent, le programme sera écrit en Python. Ce tutoriel n’est pas un cours de Python, et nous ne ferons qu’expliquer de façon sommaire le programme. Si vous voulez en apprendre plus sur Python, nous avons publié un cours d’introduction à la programmation avec Python.

Activer le protocole SPI de la Raspberry Pi

Avant d’écrire le programme, activons le protocole SPI sur notre Raspberry Pi afin de pouvoir utiliser le module RFID.

Pour l’activer, il vous suffit de lancer la commande sudo raspi-config, sur votre raspberry, puis de choisir Interfacing Options, SPI, Yes et enfin Finish.

Installer la librairie pi-rc522

Dernière pré-requis, nous allons installer la librairie Python3 « pi-rc522 » qui permet de contrôler le lecteur RC522.

Nous allons utiliser Pip3, un gestionnaire de librairie pour Python.

Il vous suffit de lancer la commande :

sudo pip3 install pi-rc522

Écrire le programme pour lire l’identifiant d’un badge RFID

Chaque badge RFID possède un identifiant unique. C’est en lisant cet identifiant et en le comparant à une liste d’identifiants autorisés que l’on peut savoir si un badge est autorisé.

Nous allons donc écrire un programme nous permettant de lire un l’identifiant unique d’un badge RFID.

Comme nous l’avions fait dans le tutoriel précédent, nous allons écrire le programme dans le dossier /home/pi/electronic (si vous ne l’avez pas déjà fait, créez le dossier).

Dans ce dossier, créez un fichier read_rfid_uid.py et mettez-y le code suivant :

#!/usr/bin/env python3.5
#-- coding: utf-8 --

import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs
from pirc522 import RFID
import time


GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte

rc522 = RFID() #On instancie la lib

print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge

#On va faire une boucle infinie pour lire en boucle
while True :
    rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée
    (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos

    if not error : #Si on a pas d'erreur
        (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps

        if not error : #Si on a réussi à nettoyer
            print('Vous avez passé le badge avec l\\'id : {}'.format(uid)) #On affiche l'identifiant unique du badge RFID
            time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Une fois le fichier enregistré, on en autorise l’exécution avec la commande :

sudo chmod +x /home/pi/electronic/read_rfid_uid.py

Nous pouvons maintenant démarrer le programme en l’appelant avec la commande :

/home/pi/electronic/read_rfid_uid.py

À chaque fois que vous passerez un badge RFID devant le lecteur, son identifiant unique sera affiché !

Écrire un programme qui permet d’afficher si un badge est valide ou non.

Maintenant que nous pouvons lire l’identifiant unique d’un badge, il ne nous reste plus qu’à adapter le code précédent pour comparer l’identifiant lu à un identifiant écrit dans le programme.

Nous allons donc modifier un peu le programme précédent pour qu’il compare l’uid lu à celui écris dans le programme, et allumer la led rouge ou verte selon le résultat.

Copiez donc le fichier précédent, dans un nouveau fichier verify_rfid.py et modifier le pour le code ci-dessous :

Modifiez la ligne RFID_UID pour mettre l’identifiant de votre tag RFID !

#!/usr/bin/env python3.5
#-- coding: utf-8 --

import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs
from pirc522 import RFID
import time


GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte

LED_RED = 3 #Définit le numéro du port GPIO qui alimente la led rouge
LED_GREEN = 5 #Définit le numéro du port GPIO qui alimente la led verte
RFID_UID = [21, 35, 5, 43, 57] #Définit l'UID du badge RFID

#Définit la fonction permettant d'allumer une led
def turn_led_on (led) :
    GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO
    GPIO.output(led, GPIO.HIGH) #Allume la led

#Définit la fonction permettant d'éteindre une led
def turn_led_off (led) :
    GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO
    GPIO.output(led, GPIO.LOW) #Eteind la led

#Définit la fonction permettant d'allumer la rouge et éteindre la verte
def turn_red_on () :
    turn_led_off(LED_GREEN) #Eteind la led verte
    turn_led_on(LED_RED) #Allume la led rouge

#Définit la fonction permettant d'allumer la verte et éteindre la rouge
def turn_green_on () :
    turn_led_off(LED_RED) #Eteind la led rouge
    turn_led_on(LED_GREEN) #Allume la led verte


rc522 = RFID() #On instancie la lib

print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge

#On va faire une boucle infinie pour lire en boucle
while True :
    rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée
    (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos

    if not error : #Si on a pas d'erreur
        (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps

        if not error : #Si on a réussi à nettoyer
            if RFID_UID == uid :
                print('Badge {} autorisé !'.format(uid))
                turn_green_on()
            else :
                print('Badge {} interdit !'.format(uid))
                turn_red_on()

            time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Il ne vous reste plus qu’à lancer le programme et tester !

Vous pouvez ensuite adapter le code pour vos propres projets, comme créer un serrure connectée, ou encore un jukebox utilisant des tags RFID !

Pour info, vous pouvez récupérer l’ensemble du code de ce tutoriel sur le Github de Raspbian France.

Dans le prochain tutoriel, nous verrons comment contrôler un servo-moteur avec la Raspberry Pi !

Lire l'article complet : Utiliser un lecteur RFID avec la Raspberry Pi.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Utiliser un lecteur RFID avec la Raspberry Pi.

jeudi 11 juillet 2019 à 18:05
Lire badge RFID

Ce tutoriel est la seconde partie d’un dossier consacré à la découverte de l’électronique avec la Raspberry Pi. Si vous ne l’avez pas lu, je vous conseils de consulter le premier tutoriel pour contrôler une LED avec la Raspberry Pi.

Que ce soit pour des systèmes d’identification, de gestion d’inventaire, de paiement, ou pour de la domotique, les puces RFID sont de plus en plus utilisées.

Dans ce tutoriel nous allons voir comment lire des cartes RFID avec la Raspberry Pi et un lecteur RFID RC522.

À la fin du tutoriel, vous serez capable de lire un badge RFID, vérifier si c’est bien celui attendu, et allumer une LED verte ou rouge, selon le résultat. Il ne vous restera plus qu’à adapter cet exemple de base pour le projet de votre choix !

Le matériel nécessaire

Pour réaliser ce tutoriel, vous aurez besoin du matériel suivant :

Assembler le lecteur RFID RC522

Quand vous recevez le module RFID RC522, vous pouvez constater qu’il est livré avec un jeu de 2 fois 8 pins. La première étape va donc être de souder 8 de ces pins sur le lecteur RFID. Pas de panique, souder c’est très facile !

Vous devez donc insérer les PINs dans les emplacements prévus sur la carte RFID et les souder avec votre fer.

Module RFID RC522 soudé
Vous trouverez probablement des connecteurs droits et courbés. Je vous conseil d’utiliser les courbés, plus pratiques.

Si vous n’avez jamais soudé, je vous conseil cet excellent guide pour apprendre à souder de François de chez framboise314.fr.

Connecter le lecteur RFID et les LED à la Raspberry Pi

Avant de passer à l’écriture du code qui nous permettra de lire des badges RFID et de contrôler les LEDs, nous devons en premier lieu connecter tout les composants à la Raspberry Pi.

Pour rappel, le fait de brancher et débrancher des composants doit toujours se faire Raspberry Pi éteinte.

Brancher le lecteur RFID RC522 sur la Raspberry Pi

Le premier composant que nous allons brancher est le lecteur RFID.

Pour contrôler le lecteur RFID nous allons utiliser une bibliothèque externe. Hélas, celle-ci est écrite avec les ports GPIOs directement renseignés dans le code. Cela signifie que nous ne pouvons pas les configurer différemment et que nous sommes donc contraints d’utiliser exactement les mêmes ports que ceux prévus dans la librairie.

Voici un tableau listant les ports du lecteur et le port GPIO de la raspberry pi auquel vous devrez le relier.

Correspondance ports GPIO/ports RC522
Reliez les ports du RC522 aux ports correspondants sur la Raspberry Pi.

Pour rappel, vous trouverez une carte des ports GPIO de la Raspberry Pi dans le premier tutoriel de cette série.

Brancher les LEDs

Après le lecteur RFID, connectons les LEDs à la Raspberry Pi.

Nous allons faire un montage très simple. Chaque LED aura son anode (la patte allongée) reliée à un port GPIO et les deux LEDs auront leur anode reliée à la même résistance, elle même reliée à un port GPIO de type Ground de la Raspberry Pi.

Ainsi, nous utilisons une seule résistance pour deux LEDs, et on limite le nombre de câbles.

Au final, une fois la carte RFID et les LEDs reliées à la Pi, vous devriez avoir un montage ressemblant à celui-ci.

À noter, vous pouvez aussi brancher la RC522 en direct sur la Raspberry Pi sans utiliser de breadbord.

Écrire le programme pour lire un badge RFID.

Nous avons un circuit fonctionnel, il ne nous reste plus qu’à activer les ports SPI de la raspberry pi, nécessaires pour utiliser le lecteur RFID, et écrire le programme qui permettra de lire un badge RFID.

Comme dans le tutoriel précédent, le programme sera écrit en Python. Ce tutoriel n’est pas un cours de Python, et nous ne ferons qu’expliquer de façon sommaire le programme. Si vous voulez en apprendre plus sur Python, nous avons publié un cours d’introduction à la programmation avec Python.

Activer le protocole SPI de la Raspberry Pi

Avant d’écrire le programme, activons le protocole SPI sur notre Raspberry Pi afin de pouvoir utiliser le module RFID.

Pour l’activer, il vous suffit de lancer la commande sudo raspi-config, sur votre raspberry, puis de choisir Interfacing Options, SPI, Yes et enfin Finish.

Installer la librairie pi-rc522

Dernière pré-requis, nous allons installer la librairie Python3 « pi-rc522 » qui permet de contrôler le lecteur RC522.

Nous allons utiliser Pip3, un gestionnaire de librairie pour Python.

Il vous suffit de lancer la commande :

sudo pip3 install pi-rc522

Écrire le programme pour lire l’identifiant d’un badge RFID

Chaque badge RFID possède un identifiant unique. C’est en lisant cet identifiant et en le comparant à une liste d’identifiants autorisés que l’on peut savoir si un badge est autorisé.

Nous allons donc écrire un programme nous permettant de lire un l’identifiant unique d’un badge RFID.

Comme nous l’avions fait dans le tutoriel précédent, nous allons écrire le programme dans le dossier /home/pi/electronic (si vous ne l’avez pas déjà fait, créez le dossier).

Dans ce dossier, créez un fichier read_rfid_uid.py et mettez-y le code suivant :

#!/usr/bin/env python3.5
#-- coding: utf-8 --

import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs
from pirc522 import RFID
import time


GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte

rc522 = RFID() #On instancie la lib

print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge

#On va faire une boucle infinie pour lire en boucle
while True :
    rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée
    (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos

    if not error : #Si on a pas d'erreur
        (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps

        if not error : #Si on a réussi à nettoyer
            print('Vous avez passé le badge avec l\\'id : {}'.format(uid)) #On affiche l'identifiant unique du badge RFID
            time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Une fois le fichier enregistré, on en autorise l’exécution avec la commande :

sudo chmod +x /home/pi/electronic/read_rfid_uid.py

Nous pouvons maintenant démarrer le programme en l’appelant avec la commande :

/home/pi/electronic/read_rfid_uid.py

À chaque fois que vous passerez un badge RFID devant le lecteur, son identifiant unique sera affiché !

Écrire un programme qui permet d’afficher si un badge est valide ou non.

Maintenant que nous pouvons lire l’identifiant unique d’un badge, il ne nous reste plus qu’à adapter le code précédent pour comparer l’identifiant lu à un identifiant écrit dans le programme.

Nous allons donc modifier un peu le programme précédent pour qu’il compare l’uid lu à celui écris dans le programme, et allumer la led rouge ou verte selon le résultat.

Copiez donc le fichier précédent, dans un nouveau fichier verify_rfid.py et modifier le pour le code ci-dessous :

Modifiez la ligne RFID_UID pour mettre l’identifiant de votre tag RFID !

#!/usr/bin/env python3.5
#-- coding: utf-8 --

import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs
from pirc522 import RFID
import time


GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte

LED_RED = 3 #Définit le numéro du port GPIO qui alimente la led rouge
LED_GREEN = 5 #Définit le numéro du port GPIO qui alimente la led verte
RFID_UID = [21, 35, 5, 43, 57] #Définit l'UID du badge RFID

#Définit la fonction permettant d'allumer une led
def turn_led_on (led) :
    GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO
    GPIO.output(led, GPIO.HIGH) #Allume la led

#Définit la fonction permettant d'éteindre une led
def turn_led_off (led) :
    GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO
    GPIO.output(led, GPIO.LOW) #Eteind la led

#Définit la fonction permettant d'allumer la rouge et éteindre la verte
def turn_red_on () :
    turn_led_off(LED_GREEN) #Eteind la led verte
    turn_led_on(LED_RED) #Allume la led rouge

#Définit la fonction permettant d'allumer la verte et éteindre la rouge
def turn_green_on () :
    turn_led_off(LED_RED) #Eteind la led rouge
    turn_led_on(LED_GREEN) #Allume la led verte


rc522 = RFID() #On instancie la lib

print('En attente d\\'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge

#On va faire une boucle infinie pour lire en boucle
while True :
    rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée
    (error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos

    if not error : #Si on a pas d'erreur
        (error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps

        if not error : #Si on a réussi à nettoyer
            if RFID_UID == uid :
                print('Badge {} autorisé !'.format(uid))
                turn_green_on()
            else :
                print('Badge {} interdit !'.format(uid))
                turn_red_on()

            time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes

Il ne vous reste plus qu’à lancer le programme et tester !

Vous pouvez ensuite adapter le code pour vos propres projets, comme créer un serrure connectée, ou encore un jukebox utilisant des tags RFID !

Pour info, vous pouvez récupérer l’ensemble du code de ce tutoriel sur le Github de Raspbian France.

Dans le prochain tutoriel, nous verrons comment contrôler un servo-moteur avec la Raspberry Pi !

Lire l'article complet : Utiliser un lecteur RFID avec la Raspberry Pi.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Bartounet : IP FAILOVER MULTIPLES - DEDIBOX - PFSENSE - ESXi

jeudi 11 juillet 2019 à 11:45
logo pfsense              logo online    


                                                                 logovmware

Depuis quelques années j'utilise une Dédibox pour héberger mes machines virtuelles sous VMWare ESXi6.5

J'ai deux types de VM

- Des VM portant directement une IP Failover Online
- Des VM portant une IP dans un réseau Privé derrière un Firewall PFSense ( aussi une VM)

Cela est assez pratiques, les VM portant des IP Failover sont des serveurs accessibles en direct
sur Internet portant des services Open.
 
L'avantage est que je peux porter des multiples services Web sur les port 80 et 443 sans faire du NAT

Sauf que le problème est que ces VM sont très peu protégées ( seulement le pare feu Linux)
A contrario des VM derrière le PFSense qui bénéficie de toutes les protections.

Actuellement

pfsense avant



J'ai donc étudié la possibilité de pouvoir passer toutes mes VM derrière le PFSENSE

Cela permettra d'avoir un filtrage Fin et de bénéficier de tous les services PFSENSE ( IPS par exemple)

Pour Cela plusieurs prérequis qui'il a fallut lever:

- Comment porter plusieurs IP Failover sur une seule interface de mon PFSENSE???
- Comment porter 1 seul adresse MAC avec plusieurs IP Failover
- Comment paramétrer PFSENSE  pour assigner des IP Failover à certaines VM et pas d'autres.



La Cible
pfsense après


 Modifier l'adresse MAC de votre IP Failover pour utiliser une MAC Partagée qui sera porté par une VM



- Eteindre votre VM
- Se connecter sur l'interface Online
- Editer votre mac adress actuelle



maconline2
- Supprimer votre Mac address

mac3

- Une fois suprimée et mise à jour
- Editer la mac et choisissez "Utiliser une Adresse Mac Existante

mac4

- Chosir la mac adresse qui porte déjà la patte WAN de votre VM PFSENSE

mac5

macgroupee

A partir de là tous paquet à destination de votre IP Failover sera dirigé vers l'adresse MAC partagée portée par votre VM PFSENSE.



Sur PFSENSE:

-
Ajouter une IP Virtuelle de type IP Alias ( Votre IP Faiolver que vous voulez migrer) en /32
  sur le WAN
virtualip



 - On voit ici 2 IP failover portées par mon pfsense  ( en plus de l'ip failover assignée à l'interface WAN)
ipfaiolverpfsense



Occupons nous du NAT :
- Notre VM ne portera plus directement l'IP Failover mais une ip Privée dans le réseau LAN PRIV ( 192.168.100.0/24)
- Nous allons choisir l'adresse IP 192.168.100.130

NAT ENTRANT
Pour cela nous allons dire à PFSENSE que tout ce qui arrive à destination de l'IP Failover sera redirigé vers 192.168.100.130
- Dans Firewall / NAT / 1:1

natentrant
 
natentrant

NAT SORTANT
Pour cela nous allons dire à PFSENSE que tout ce qui sort depuis 192.168.100.130 est natté avec l'IP Failover
- Dans Firewall / NAT / Outbound

natoutbound

Ici on voit que 192.168.100.130 et 192.168.100.110 sortiront avec 2 ip failover différentes
Le reste sortira avec l'adresse WAN par défaut ( qui est aussi une failover)

outboun2


Le Filtrage


Pour commencer faire une règle de filtrage Simple qui ouvre tout sur l'IP privée de la VM

filtrage


Sur la Machine Virtuelle qui portait auparavant l'ip Failover

- Sur votre VM qui portait auparavant votre IP Failover.
- Modifier son paramétrage pour etre dans le réseau Privé et ne plus utiliser le Vswitch public

vm lan


- Redemarrer la VM
- Modifier ces paramètres IP pour ne plus porter l'IP failover mais une IP Privée 192.168.100.130

- Avant

ipavant
 
- Après

ipapres

-Redémarrer la VM
- Après le reboot tout ping aussi bien l'adresse Pivée que Publique  ( failover)

ping

- On peut même tester le NAT Unbound

Exemple d'un wget sur un serveur apache externe, on voit bien notre ip publique failover s'afficher dans les logs

wget


Voilà , il vous reste à affiner vos règle de filtrages ( souvenez vous nous avions tout ouvert !! )
N'ouvrez que le necessaire. ( pour ma part par exemple SSH et HTTP)

Je vous conseille d'utiliser les ALIAS qui permettent de relier un objet à une adresse IP
Pratique, pas besoin de se rappeler des IP

rule alias

Gravatar de Bartounet
Original post of Bartounet.Votez pour ce billet sur Planet Libre.

Articles similaires