Retour aux projets
SYSTÈMES & AUTOMATISATION Python Security Automation

Python IP Automation

Développement d’un script Python permettant d’automatiser la gestion d’une liste d’adresses IP autorisées : lecture du fichier, transformation des données, identification des IP à retirer, filtrage puis mise à jour automatique de la liste utilisée pour contrôler les accès.

LANGAGE Python
DOMAINE Security Automation
OBJECTIF Access Management
ip_access_manager.py PYTHON
Py
ip_access_manager.py
01 import_file = "allow_list.txt"
02
03 with open(import_file, "r") as file:
04 ip_addresses = file.read()
05
06 ip_addresses = ip_addresses.split()
07
08 for ip in remove_list:
09 if ip in ip_addresses:
10 ip_addresses.remove(ip)
11
12 ip_addresses = "\n".join(ip_addresses)
Access list updated
Python 3
INPUT Lecture du fichier
PROCESS Filtrage des IP
OUTPUT Mise à jour automatique
SECURITY Contrôle des accès
01 — VUE D’ENSEMBLE

Automatiser une tâche de sécurité répétitive.

Une liste d’autorisation IP peut servir à déterminer quelles adresses sont autorisées à accéder à une ressource ou à un environnement donné.

Lorsqu’une organisation utilise une liste d’adresses IP autorisées, cette liste doit rester cohérente avec les droits réellement accordés. Une adresse qui ne doit plus disposer d’un accès doit être retirée rapidement.

Effectuer manuellement cette opération à répétition augmente le risque d’erreur et consomme inutilement du temps. Le projet utilise donc Python pour transformer cette procédure en un processus reproductible.

Le script lit la liste actuelle, la transforme dans un format exploitable, compare son contenu aux IP devant être retirées puis réécrit une version actualisée du fichier.

02 — PROBLÉMATIQUE

Garder la liste à jour.

Une liste d’accès devient inefficace lorsque les autorisations qu’elle contient ne correspondent plus aux besoins actuels.

01
ACCESS LIST

Liste d’IP autorisées

Un fichier contient les adresses autorisées à accéder à la ressource concernée.

02
REMOVE LIST

Accès à révoquer

Certaines adresses ne doivent plus apparaître dans la liste des accès autorisés.

03
AUTOMATION

Éviter la modification manuelle

Python permet d’exécuter automatiquement les vérifications et modifications nécessaires.

04
SECURITY

Réduire les accès obsolètes

La liste finale conserve uniquement les entrées qui doivent toujours disposer de l’autorisation correspondante.

03 — WORKFLOW

Du fichier initial à la liste mise à jour.

01
READ

Lire le fichier

Python ouvre le fichier contenant les IP autorisées et récupère son contenu.

02
PARSE

Transformer les données

Le contenu texte est converti en une collection d’adresses IP manipulable par le programme.

03
FILTER

Filtrer les IP

Le script recherche les adresses dont l’autorisation doit être supprimée et les retire de la collection.

04
WRITE

Réécrire la liste

La liste nettoyée est reconvertie en texte puis enregistrée dans le fichier d’autorisation.

04 — CODE WALKTHROUGH

Décomposer l’algorithme.

Chaque étape du script répond à une fonction précise dans le processus de mise à jour.

01 READ

Ouvrir et lire

Le gestionnaire de contexte with permet d’ouvrir le fichier proprement.

with open(import_file, "r") as file:
    ip_addresses = file.read()
02 PARSE

Convertir en liste

La méthode split() transforme le texte en éléments individuels.

ip_addresses = ip_addresses.split()
03 FILTER

Retirer les accès

Une boucle parcourt les IP devant être supprimées et contrôle leur présence.

for ip in remove_list:
    if ip in ip_addresses:
        ip_addresses.remove(ip)
04 WRITE

Enregistrer le résultat

Les éléments sont assemblés avant la réécriture du fichier.

ip_addresses = "\n".join(ip_addresses)

with open(import_file, "w") as file:
    file.write(ip_addresses)
05 — CONCEPTS PYTHON

Les éléments de Python mobilisés.

open()

Gestion de fichiers

Lecture et écriture des données stockées dans le fichier utilisé par le processus.

split()

Transformation

Conversion d’une chaîne de caractères en collection d’éléments pouvant être parcourus individuellement.

for

Itération

Parcours automatique des adresses à examiner ou à retirer.

if

Condition

Vérification de la présence d’une adresse avant d’exécuter une modification.

remove()

Filtrage

Suppression des éléments qui ne doivent plus apparaître dans la liste d’accès.

join()

Reconstruction

Conversion de la liste finale vers une chaîne prête à être réenregistrée.

06 — LOGIQUE DE FILTRAGE

Visualiser le résultat.

Le principe consiste à comparer la liste initiale aux adresses dont l’accès doit être retiré.

BEFORE

Allow list initiale

6 IP
192.168.10.21
192.168.10.34 REMOVE
192.168.10.48
192.168.10.56
192.168.10.71 REMOVE
192.168.10.89
Python
AFTER

Allow list mise à jour

4 IP
192.168.10.21
192.168.10.48
192.168.10.56
192.168.10.89
Access list synchronized
07 — SECURITY VALUE

Pourquoi automatiser le contrôle d’accès.

L’automatisation réduit les opérations manuelles et facilite une mise à jour cohérente des données utilisées dans le processus de contrôle.

01

Cohérence

La même procédure est appliquée automatiquement à chaque exécution.

02

Réduction des erreurs

Le traitement automatisé limite certaines erreurs liées aux modifications manuelles.

03

Rapidité

Plusieurs entrées peuvent être vérifiées et traitées sans les modifier une par une.

04

Révocabilité

Les entrées devenues non autorisées peuvent être retirées de manière structurée.

05

Scalabilité

La logique peut être adaptée à des listes plus importantes ou à d’autres workflows.

06

Sécurité

Le processus contribue à maintenir uniquement les accès qui doivent rester autorisés.

08 — ALGORITHME

La logique complète en quelques lignes.

ip_access_manager.py Python
# Fichier contenant les adresses IP autorisées
import_file = "allow_list.txt"

# Adresses dont l'accès doit être retiré
remove_list = [
    "192.168.10.34",
    "192.168.10.71"
]

# Lecture du fichier
with open(import_file, "r") as file:
    ip_addresses = file.read()

# Conversion du texte en liste
ip_addresses = ip_addresses.split()

# Suppression des IP non autorisées
for ip in remove_list:
    if ip in ip_addresses:
        ip_addresses.remove(ip)

# Reconstruction du contenu
ip_addresses = "\n".join(ip_addresses)

# Mise à jour du fichier
with open(import_file, "w") as file:
    file.write(ip_addresses)
09 — KEY LEARNINGS

Utiliser Python pour automatiser une opération de cybersécurité.

Ce projet relie programmation et contrôle d’accès. Il montre comment une procédure répétitive peut être transformée en algorithme simple, lisible et réutilisable.

01

Lire et modifier des fichiers depuis un script Python.

02

Transformer du texte en structures exploitables par un programme.

03

Utiliser boucles et conditions pour automatiser un filtrage.

04

Mettre à jour une liste d’accès de manière reproductible.

05

Relier la programmation Python à une problématique de sécurité.

10 — COMPÉTENCES

Compétences mobilisées.

Python Security Automation File Handling Access Control IP Management Lists Loops Conditional Logic open() read() split() remove() join() write() Algorithm Design
CONCLUSION

Automatiser pour rendre la sécurité plus cohérente.

Python permet ici de transformer une tâche manuelle de gestion des accès en un processus structuré : lire, analyser, filtrer et mettre à jour. Cette logique constitue une base utile pour développer des automatisations de sécurité plus avancées.

FIN DU PROJET

Continuer à explorer mes réalisations

Retour à la page Projets

Défiler vers le haut