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.
import_file
=
"allow_list.txt"
with
open(import_file,
"r")
as
file:
ip_addresses
=
file.read()
ip_addresses
=
ip_addresses.split()
for
ip
in
remove_list:
if
ip
in
ip_addresses:
ip_addresses.remove(ip)
ip_addresses
=
"\n".join(ip_addresses)
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.
Garder la liste à jour.
Une liste d’accès devient inefficace lorsque les autorisations qu’elle contient ne correspondent plus aux besoins actuels.
Liste d’IP autorisées
Un fichier contient les adresses autorisées à accéder à la ressource concernée.
Accès à révoquer
Certaines adresses ne doivent plus apparaître dans la liste des accès autorisés.
Éviter la modification manuelle
Python permet d’exécuter automatiquement les vérifications et modifications nécessaires.
Réduire les accès obsolètes
La liste finale conserve uniquement les entrées qui doivent toujours disposer de l’autorisation correspondante.
Du fichier initial à la liste mise à jour.
Lire le fichier
Python ouvre le fichier contenant les IP autorisées et récupère son contenu.
Transformer les données
Le contenu texte est converti en une collection d’adresses IP manipulable par le programme.
Filtrer les IP
Le script recherche les adresses dont l’autorisation doit être supprimée et les retire de la collection.
Réécrire la liste
La liste nettoyée est reconvertie en texte puis enregistrée dans le fichier d’autorisation.
Décomposer l’algorithme.
Chaque étape du script répond à une fonction précise dans le processus de mise à jour.
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()
Convertir en liste
La méthode split()
transforme le texte en éléments
individuels.
ip_addresses = ip_addresses.split()
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)
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)
Les éléments de Python mobilisés.
Gestion de fichiers
Lecture et écriture des données stockées dans le fichier utilisé par le processus.
Transformation
Conversion d’une chaîne de caractères en collection d’éléments pouvant être parcourus individuellement.
Itération
Parcours automatique des adresses à examiner ou à retirer.
Condition
Vérification de la présence d’une adresse avant d’exécuter une modification.
Filtrage
Suppression des éléments qui ne doivent plus apparaître dans la liste d’accès.
Reconstruction
Conversion de la liste finale vers une chaîne prête à être réenregistrée.
Visualiser le résultat.
Le principe consiste à comparer la liste initiale aux adresses dont l’accès doit être retiré.
Allow list initiale
Allow list mise à jour
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.
Cohérence
La même procédure est appliquée automatiquement à chaque exécution.
Réduction des erreurs
Le traitement automatisé limite certaines erreurs liées aux modifications manuelles.
Rapidité
Plusieurs entrées peuvent être vérifiées et traitées sans les modifier une par une.
Révocabilité
Les entrées devenues non autorisées peuvent être retirées de manière structurée.
Scalabilité
La logique peut être adaptée à des listes plus importantes ou à d’autres workflows.
Sécurité
Le processus contribue à maintenir uniquement les accès qui doivent rester autorisés.
La logique complète en quelques lignes.
# 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)
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.
Lire et modifier des fichiers depuis un script Python.
Transformer du texte en structures exploitables par un programme.
Utiliser boucles et conditions pour automatiser un filtrage.
Mettre à jour une liste d’accès de manière reproductible.
Relier la programmation Python à une problématique de sécurité.
Compétences mobilisées.
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.