Guide

Nouvelles mises à jour et améliorations de Roundfleet.

Avis important

Les exemples de code et scripts fournis dans ces tutoriels sont uniquement à des fins éducatives. Roundfleet n'est pas responsable des problèmes, dommages ou vulnérabilités de sécurité qui pourraient survenir lors de l'utilisation, modification ou implémentation de ces exemples. Toujours vérifier et tester le code dans un environnement sécurisé avant de l'utiliser dans des systèmes de production.

Récupérer les Informations Réseau sur macOS

Collectez des informations réseau détaillées de vos appareils Roundfleet en utilisant des outils en ligne de commande. Ce tutoriel couvre la découverte d'adresses MAC, la configuration IP, la surveillance des ports et les diagnostics réseau pour une gestion complète de flotte.

Comprendre les Informations Réseau macOS

macOS fournit plusieurs utilitaires en ligne de commande pour la collecte d'informations réseau :

  • networksetup - Gestion des ports matériels et configuration réseau
  • ifconfig - Configuration et statut des interfaces réseau
  • netstat - Connexions réseau et informations de ports
  • arp - Gestion de la table du protocole de résolution d'adresse
  • ipconfig - Configuration des adresses IP et DHCP

Récupérer les Adresses MAC

Lister Tous les Ports Matériels

#!/bin/bash

# Afficher tous les ports matériels réseau et leurs adresses MAC
networksetup -listallhardwareports

echo "Informations des ports matériels récupérées avec succès"

Obtenir l'Adresse MAC d'une Interface Spécifique

#!/bin/bash

# Obtenir l'adresse MAC pour une interface spécifique (Wi-Fi)
echo "Adresse MAC de l'Interface Wi-Fi (en0) :"
networksetup -getmacaddress en0

echo -e "\nAdresse MAC de l'Interface Ethernet (en1) :"
networksetup -getmacaddress en1

echo -e "\nAdresse MAC du Pont Thunderbolt (bridge0) :"
networksetup -getmacaddress bridge0 2>/dev/null || echo "Pont Thunderbolt non disponible"

Rapport Complet d'Adresses MAC

#!/bin/bash

# Générer un rapport détaillé d'adresses MAC
echo "=== Rapport Matériel Réseau Roundfleet ==="
echo "Appareil : $(hostname)"
echo "Date : $(date)"
echo "========================================="

# Obtenir tous les ports matériels
echo -e "\n📡 Inventaire Matériel Réseau :"
networksetup -listallhardwareports

echo -e "\n🔍 Détails des Interfaces Principales :"
echo "Wi-Fi (en0) : $(networksetup -getmacaddress en0 | awk '{print $3}')"
echo "Ethernet (en1) : $(networksetup -getmacaddress en1 | awk '{print $3}' 2>/dev/null || echo 'Non disponible')"

# Vérifier les interfaces supplémentaires
echo -e "\n🌐 Interfaces Supplémentaires :"
for i in {2..5}; do
    mac_addr=$(networksetup -getmacaddress en$i 2>/dev/null | awk '{print $3}')
    if [[ -n "$mac_addr" && "$mac_addr" != "not" ]]; then
        echo "en$i : $mac_addr"
    fi
done

Découvrir les Adresses IP

Récupération Basique d'Adresses IP

#!/bin/bash

# Obtenir l'adresse IP pour l'interface Wi-Fi
WIFI_IP=$(ipconfig getifaddr en0 2>/dev/null)
ETHERNET_IP=$(ipconfig getifaddr en1 2>/dev/null)

echo "Adresses IP Réseau :"
echo "Wi-Fi (en0) : ${WIFI_IP:-Non connecté}"
echo "Ethernet (en1) : ${ETHERNET_IP:-Non connecté}"

Configuration IP Complète

#!/bin/bash

# Rapport détaillé de configuration IP
echo "=== Rapport de Configuration IP Roundfleet ==="
echo "Appareil : $(hostname)"
echo "Horodatage : $(date)"
echo "========================================"

# Interfaces réseau actives
echo -e "\n🌐 Interfaces Réseau Actives :"
for interface in en0 en1 en2 en3; do
    ip_addr=$(ipconfig getifaddr $interface 2>/dev/null)
    if [[ -n "$ip_addr" ]]; then
        echo "$interface : $ip_addr"
        
        # Obtenir des détails supplémentaires pour les interfaces actives
        subnet_mask=$(ipconfig getoption $interface subnet_mask 2>/dev/null)
        router=$(ipconfig getoption $interface router 2>/dev/null)
        dns_servers=$(ipconfig getoption $interface domain_name_server 2>/dev/null)
        
        echo "  Sous-réseau : ${subnet_mask:-N/A}"
        echo "  Passerelle : ${router:-N/A}"
        echo "  DNS : ${dns_servers:-N/A}"
        echo ""
    fi
done

# Adresse IP publique
echo "🌍 Adresse IP Externe :"
curl -s ifconfig.me 2>/dev/null || echo "Impossible de récupérer l'IP externe"

Statut des Interfaces Réseau

#!/bin/bash

# Surveiller le statut des interfaces réseau
echo "=== Surveillance du Statut des Interfaces Réseau ==="

# Obtenir les statistiques d'interface
echo -e "\n📊 Statistiques des Interfaces :"
ifconfig | grep -E "(en[0-9]:|inet |status:|media:)" | while read line; do
    echo "$line"
done

echo -e "\n🔄 Informations de Bail DHCP :"
for interface in en0 en1; do
    lease_info=$(ipconfig getpacket $interface 2>/dev/null)
    if [[ -n "$lease_info" ]]; then
        echo "Interface $interface :"
        echo "$lease_info" | grep -E "(lease_time|server_identifier|domain_name)"
        echo ""
    fi
done

Analyser la Configuration Réseau

Vue d'Ensemble Réseau Complète

#!/bin/bash

# Analyse complète de la configuration réseau
echo "=== Vue d'Ensemble Réseau Complète ==="
ifconfig

echo -e "\n🔍 Résumé Réseau :"
ifconfig | grep -E "^[a-z]" | while read line; do
    interface=$(echo $line | cut -d: -f1)
    status=$(ifconfig $interface | grep "status:" | cut -d' ' -f2-)
    echo "$interface : ${status:-actif}"
done

Services Réseau et DNS

#!/bin/bash

# Configuration des services réseau et DNS
echo "=== Configuration des Services Réseau ==="

echo "🌐 Configuration DNS :"
echo "Serveurs DNS Système :"
scutil --dns | grep "nameserver" | head -5

echo -e "\n📡 Services Réseau :"
networksetup -listallnetworkservices

echo -e "\n🔍 Détails du Service Réseau Actif :"
active_service=$(networksetup -listallnetworkservices | grep -v "asterisk" | head -2 | tail -1)
if [[ -n "$active_service" ]]; then
    echo "Service : $active_service"
    networksetup -getinfo "$active_service"
fi

Informations de Sous-réseau et Routage

#!/bin/bash

# Informations de masque de sous-réseau et routage
echo "=== Informations de Routage et Sous-réseau ==="

echo "🛣️  Table de Routage :"
netstat -rn | head -10

echo -e "\n🔍 Détails de Sous-réseau d'Interface :"
for interface in en0 en1; do
    ip_addr=$(ipconfig getifaddr $interface 2>/dev/null)
    if [[ -n "$ip_addr" ]]; then
        subnet_mask=$(ipconfig getoption $interface subnet_mask 2>/dev/null)
        echo "$interface : $ip_addr/${subnet_mask:-inconnu}"
    fi
done

Surveiller les Informations de Ports

Connexions TCP Actives

#!/bin/bash

# Afficher les connexions TCP actives
echo "=== Connexions TCP Actives ==="
netstat -ap TCP

echo -e "\n📊 Résumé des Connexions :"
echo "Total connexions : $(netstat -ap TCP | grep -c ESTABLISHED)"
echo "Ports en écoute : $(netstat -ap TCP | grep -c LISTEN)"
echo "Connexions time-wait : $(netstat -ap TCP | grep -c TIME_WAIT)"

Analyse des Ports en Écoute

#!/bin/bash

# Analyser les ports en écoute
echo "=== Analyse des Ports en Écoute ==="

echo "🔍 Tous les Ports en Écoute :"
netstat -a | grep -i "LISTEN"

echo -e "\n📋 Résumé des Ports en Écoute :"
netstat -a | grep -i "LISTEN" | awk '{print $4}' | cut -d. -f2 | sort -n | uniq -c | sort -nr

echo -e "\n🔒 Ports Pertinents pour la Sécurité :"
netstat -a | grep -i "LISTEN" | grep -E ":(22|80|443|993|995|587|25|53|21|23) "

Script de Surveillance des Ports

#!/bin/bash

# Surveillance complète des ports
LOG_FILE="/var/log/roundfleet_ports.log"

monitor_ports() {
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    {
        echo "=== Rapport de Surveillance des Ports ==="
        echo "Horodatage : $timestamp"
        echo "Appareil : $(hostname)"
        echo "================================"
        
        echo -e "\n🔍 Ports en Écoute Actuels :"
        netstat -a | grep -i "LISTEN" | head -20
        
        echo -e "\n📊 Statistiques de Connexion :"
        echo "ESTABLISHED : $(netstat -ap TCP | grep -c ESTABLISHED)"
        echo "LISTEN : $(netstat -ap TCP | grep -c LISTEN)"
        echo "TIME_WAIT : $(netstat -ap TCP | grep -c TIME_WAIT)"
        echo "CLOSE_WAIT : $(netstat -ap TCP | grep -c CLOSE_WAIT)"
        
        echo -e "\n🚨 Connexions Suspectes :"
        netstat -ap TCP | grep -E ":(6667|6697|8080|9050|4444|31337)" || echo "Aucune détectée"
        
    } | tee -a "$LOG_FILE"
}

# Exécuter la surveillance
monitor_ports

Afficher la Table ARP

Informations ARP Basiques

#!/bin/bash

# Afficher la table du protocole de résolution d'adresse
arp -a

echo "Table ARP récupérée avec succès"

Analyse Détaillée ARP

#!/bin/bash

# Analyse complète de la table ARP
echo "=== Analyse de la Table ARP ==="
echo "Appareil : $(hostname)"
echo "Date : $(date)"
echo "=========================="

echo -e "\n🔍 Table ARP Complète :"
arp -a

echo -e "\n📊 Statistiques ARP :"
total_entries=$(arp -a | wc -l)
incomplete_entries=$(arp -a | grep -c "incomplete")
complete_entries=$((total_entries - incomplete_entries))

echo "Total entrées ARP : $total_entries"
echo "Entrées complètes : $complete_entries"
echo "Entrées incomplètes : $incomplete_entries"

echo -e "\n🌐 Voisins Réseau :"
arp -a | head -10 | while read line; do
    hostname=$(echo $line | cut -d' ' -f1)
    ip=$(echo $line | cut -d'(' -f2 | cut -d')' -f1)
    mac=$(echo $line | cut -d' ' -f4)
    echo "$ip -> $mac ($hostname)"
done

Vérification de Sécurité ARP

#!/bin/bash

# Analyse de sécurité de la table ARP
echo "=== Analyse de Sécurité ARP ==="

# Vérifier les adresses MAC dupliquées (potentiel ARP spoofing)
echo "🔒 Vérification des Adresses MAC Dupliquées :"
arp -a | awk '{print $4}' | sort | uniq -d | while read mac; do
    if [[ -n "$mac" ]]; then
        echo "⚠️  MAC dupliquée détectée : $mac"
        arp -a | grep "$mac"
    fi
done

# Vérifier les modèles suspects
echo -e "\n🚨 Alertes de Sécurité :"
suspicious_count=$(arp -a | grep -c "incomplete")
if [[ $suspicious_count -gt 10 ]]; then
    echo "⚠️  Nombre élevé d'entrées ARP incomplètes : $suspicious_count"
fi

# Analyse des fournisseurs réseau
echo -e "\n🏢 Analyse des Fournisseurs Réseau :"
arp -a | grep -E "([0-9a-f]{2}:){5}[0-9a-f]{2}" | awk '{print $4}' | cut -d: -f1-3 | sort | uniq -c | sort -nr | head -5

Script de Surveillance Réseau d'Entreprise

#!/bin/bash

# Suite de Surveillance Réseau d'Entreprise Roundfleet
LOG_FILE="/var/log/roundfleet_network.log"
REPORT_FILE="/tmp/network_report_$(date +%Y%m%d_%H%M%S).txt"

# Fonction de journalisation
log_action() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}

# Générer un rapport réseau complet
generate_network_report() {
    {
        echo "Rapport d'Évaluation Réseau Roundfleet"
        echo "Généré : $(date)"
        echo "Appareil : $(hostname)"
        echo "Utilisateur : $(whoami)"
        echo "Version OS : $(sw_vers -productVersion)"
        echo "=========================================="
        echo ""
        
        # Inventaire matériel
        echo "🔧 Matériel Réseau :"
        networksetup -listallhardwareports
        echo ""
        
        # Configuration IP
        echo "🌐 Configuration IP :"
        for interface in en0 en1 en2; do
            ip_addr=$(ipconfig getifaddr $interface 2>/dev/null)
            if [[ -n "$ip_addr" ]]; then
                echo "$interface : $ip_addr"
                mac_addr=$(networksetup -getmacaddress $interface | awk '{print $3}')
                echo "  MAC : $mac_addr"
                
                subnet=$(ipconfig getoption $interface subnet_mask 2>/dev/null)
                router=$(ipconfig getoption $interface router 2>/dev/null)
                echo "  Sous-réseau : ${subnet:-N/A}"
                echo "  Passerelle : ${router:-N/A}"
                echo ""
            fi
        done
        
        # Services réseau
        echo "📡 Services Réseau :"
        networksetup -listallnetworkservices | grep -v "asterisk"
        echo ""
        
        # Configuration DNS
        echo "🔍 Configuration DNS :"
        scutil --dns | grep "nameserver" | head -3
        echo ""
        
        # Évaluation de sécurité
        echo "🔒 Évaluation de Sécurité :"
        listening_ports=$(netstat -a | grep -c "LISTEN")
        established_connections=$(netstat -ap TCP | grep -c ESTABLISHED)
        echo "Ports en écoute : $listening_ports"
        echo "Connexions actives : $established_connections"
        
        # Vérifier les ports de sécurité courants
        security_ports=$(netstat -a | grep -i "LISTEN" | grep -E ":(22|80|443|993|995)" | wc -l)
        echo "Ports pertinents pour la sécurité : $security_ports"
        
        echo ""
        echo "Rapport terminé à : $(date)"
        
    } > "$REPORT_FILE"
    
    echo "📊 Rapport réseau généré : $REPORT_FILE"
}

# Test de connectivité réseau
test_connectivity() {
    echo "=== Test de Connectivité Réseau ==="
    
    # Test de résolution DNS
    if nslookup google.com > /dev/null 2>&1; then
        echo "✅ Résolution DNS : Fonctionnelle"
    else
        echo "❌ Résolution DNS : Échec"
    fi
    
    # Test de connectivité internet
    if ping -c 1 8.8.8.8 > /dev/null 2>&1; then
        echo "✅ Connectivité internet : Fonctionnelle"
    else
        echo "❌ Connectivité internet : Échec"
    fi
    
    # Test de passerelle locale
    gateway=$(route -n get default | grep gateway | awk '{print $2}')
    if [[ -n "$gateway" ]] && ping -c 1 "$gateway" > /dev/null 2>&1; then
        echo "✅ Connectivité passerelle : Fonctionnelle ($gateway)"
    else
        echo "❌ Connectivité passerelle : Échec"
    fi
}

# Exécution principale
main() {
    log_action "=== Surveillance Réseau Roundfleet Démarrée ==="
    
    generate_network_report
    echo ""
    test_connectivity
    
    log_action "Surveillance réseau terminée. Rapport : $REPORT_FILE"
}

# Exécuter la fonction principale
main "$@"

Référence des Informations Réseau

Interfaces Réseau Courantes

InterfaceDescriptionUsage Courant
en0Interface réseau principaleConnexion Wi-Fi
en1Interface secondaireConnexion Ethernet
en2-en5Interfaces supplémentairesAdaptateurs USB, Thunderbolt
lo0Interface de bouclageCommunication système locale
bridge0Pont ThunderboltConnexions appareil-à-appareil
utun0-utun3Interfaces tunnelConnexions VPN

Référence Rapide des Commandes Réseau

# Obtenir l'IP d'interface
ipconfig getifaddr en0

# Obtenir la configuration d'interface
ipconfig getoption en0 subnet_mask
ipconfig getoption en0 router
ipconfig getoption en0 domain_name_server

# Matériel réseau
networksetup -listallhardwareports
networksetup -getmacaddress en0

# Statut d'interface
ifconfig en0
ifconfig -a

# Connexions réseau
netstat -rn          # Table de routage
netstat -i           # Statistiques d'interface
netstat -ap TCP      # Connexions TCP

# Opérations ARP
arp -a               # Afficher la table ARP
arp -d hostname      # Supprimer l'entrée ARP

Diagnostics Réseau Avancés

Test de Performance Réseau

#!/bin/bash

# Diagnostics de performance réseau
echo "=== Diagnostics de Performance Réseau ==="

# Statistiques d'interface
echo "📊 Statistiques d'Interface :"
netstat -i

# Surveillance de bande passante
echo -e "\n🚀 Activité Réseau (10 secondes) :"
if command -v nettop >/dev/null 2>&1; then
    timeout 10 nettop -l 1 -J bytes_in,bytes_out -P
else
    echo "nettop non disponible, utilisation de netstat"
    netstat -i
fi

# Test de latence
echo -e "\n⏱️  Tests de Latence :"
echo "DNS Google (8.8.8.8) :"
ping -c 3 8.8.8.8 | tail -1

echo "DNS Cloudflare (1.1.1.1) :"
ping -c 3 1.1.1.1 | tail -1

Informations Réseau Sans Fil

#!/bin/bash

# Informations détaillées du réseau sans fil
echo "=== Analyse du Réseau Sans Fil ==="

# Informations Wi-Fi actuelles
current_wifi=$(networksetup -getairportnetwork en0)
echo "Wi-Fi actuel : $current_wifi"

# Statut d'alimentation Wi-Fi
wifi_power=$(networksetup -getairportpower en0)
echo "Alimentation Wi-Fi : $wifi_power"

# Réseaux disponibles (nécessite des privilèges admin)
echo -e "\n📡 Réseaux Disponibles :"
if [[ $EUID -eq 0 ]]; then
    airport -s 2>/dev/null || echo "Utilitaire Airport non disponible"
else
    echo "Privilèges admin requis pour le scan réseau"
fi

# Détails de l'interface Wi-Fi
echo -e "\n🔍 Détails de l'Interface Wi-Fi :"
ifconfig en0 | grep -E "(inet|ether|status)"

Notes Importantes

  • Noms d'interface peuvent varier entre les versions macOS et le matériel
  • Privilèges administrateur requis pour certaines opérations réseau
  • Implications de sécurité - Surveiller régulièrement les ports ouverts et connexions
  • Impact sur les performances - Les scripts de surveillance réseau peuvent affecter les performances système
  • Considérations de confidentialité - Les tables ARP contiennent des informations sur les voisins réseau

Dépannage

Problèmes Réseau Courants

Pas d'Adresse IP :

# Renouveler le bail DHCP
sudo ipconfig set en0 DHCP

Problèmes de Résolution DNS :

# Vider le cache DNS
sudo dscacheutil -flushcache

Interface Non Responsive :

# Réinitialiser l'interface réseau
sudo ifconfig en0 down
sudo ifconfig en0 up

N'oubliez pas de tester ces scripts sur des appareils individuels avant de les déployer dans votre environnement Roundfleet.

Related Tutorials

Gestion de Réseau Wi-Fi sur macOS

Gérez les réseaux Wi-Fi, configurez les paramètres proxy, serveurs DNS et implémentez les politiques de réseau d'entreprise sur les appareils macOS en utilisant les commandes networksetup avancées et la gestion de flotte centralisée.

7 juil. 2025

Surveillance Réseau d'Entreprise sur macOS

Surveillez et analysez les applications et processus connectés au réseau sur les appareils macOS en utilisant la surveillance réseau avancée, l'analyse de bande passante et les contrôles de sécurité d'entreprise pour la gestion réseau organisationnelle.

7 juil. 2025

Contrôle Wi-Fi d'Entreprise sur macOS

Guide complet pour contrôler les paramètres Wi-Fi sur les appareils macOS en utilisant les commandes networksetup pour la gestion sans fil d'entreprise, les politiques de sécurité et l'optimisation énergétique dans les déploiements de flotte.

7 juil. 2025

Gestion d'Entreprise des Proxies sur macOS

Guide complet pour configurer et gérer les proxies web, web sécurisé, streaming, Gopher et SOCKS firewall sur les appareils macOS avec les commandes networksetup pour les environnements d'entreprise.

7 juil. 2025

Surveillance d'Applications Premier Plan d'Entreprise sur macOS

Apprenez à surveiller et gérer les applications au premier plan sur les appareils macOS en utilisant AppleScript avec sécurité de niveau entreprise, suivi de productivité, rapports de conformité et capacités de gestion de flotte.

7 juil. 2025

Gestion Entreprise du Client Itinérant Cisco Umbrella sur macOS

Guide complet pour le déploiement et la gestion du client itinérant Cisco Umbrella en entreprise sur les appareils Roundfleet avec protection DNS de sécurité automatisée, surveillance et contrôle centralisé.

7 juil. 2025

Gestion de Stockage d'Entreprise sur macOS

Surveillez l'utilisation du disque, implémentez les politiques de stockage et optimisez les performances de stockage sur les appareils macOS avec la gestion avancée de stockage, le nettoyage automatisé et l'analytique d'entreprise pour l'infrastructure de stockage organisationnelle.

7 juil. 2025

Configurer Stage Manager sur les appareils macOS

Apprenez à activer, désactiver et personnaliser les paramètres de Stage Manager sur les appareils macOS à l'aide de scripts shell pour la gestion de flotte Mac.

7 juil. 2025