Je souhaite collecter les journaux de toutes les communications réseau entre mes appareils domestiques (ordinateurs portables, téléphones, etc.) et le monde extérieur dans ce format :
Timestamp / Device MAC Address / Source IP:Port / Destination IP:Port / Protocol (Internet/Transport Layers) / Amount of data in bytes
L'idée est de configurer une machine Linux physique ("Logging Server") juste pour la journalisation et d'exécuter tcpdump
dessus :
Internet ⟺ Logging Server ⟺ Wi-Fi/Ethernet Switch ⟺ Devices
(la box aura deux interfaces Ethernet — pour la connexion Internet et pour le commutateur local).
En supposant que je m'occupe de la gestion des fichiers journaux (rotation, analyse, alimentation des outils de création de rapports), comment le tcpdump
la commande ressemblera ?
Pour être clair, je sais que cette question peut très probablement être répondue en creusant la page de manuel; Je voudrais juste profiter de la vaste expérience de quelqu'un avec tcpdump
pour gagner du temps, éviter les erreurs courantes etc.
P. S. L'objectif principal de ceci est de surveiller/enquêter sur les portes dérobées potentiellement existantes ou sur toute autre activité réseau indésirable/inattendue.
Réponse acceptée :
tcpdump -n -e -q -i any
Avec :
-n
:Ne convertit pas les adresses en noms (ceci empêche notammenttcpdump
de faire des recherches DNS inversées)-e
:Affiche l'en-tête au niveau du lien sur chaque ligne de vidage (notamment l'adresse mac). Utilisez ceci en coordination avec-i any
, vous en aurez besoin pour déterminer à nouveau l'interface réseau entrante/sortante.-q
:Imprimer moins d'informations de protocole afin que les lignes de sortie soient plus courtes-i any
:leany
le mot-clé peut être utilisé pour capturer les paquets de toutes les interfaces
Notez que la longueur donnée par la commande ci-dessus est la longueur de la charge utile. Si vous voulez également la longueur du paquet, supprimez l'option '-q'.