Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:arpwatch_archlinux

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:arpwatch_archlinux [2021/09/19 09:08] klaustachtler:arpwatch_archlinux [2022/03/31 05:35] (aktuell) – [Installation] klaus
Zeile 2: Zeile 2:
  
 [[https://ee.lbl.gov/|ARPwatch]] kann __**nicht**__ zu den vollwertigen IDS (Intrusion Detection System) Systemen gezählt werden, jedoch zur der Software, die sich auf eine spezielle Art von Angriffen spezialisiert haben. So ist [[https://ee.lbl.gov/|ARPwatch]] nur in der Lage solche Angriffe zu erkennen, die durch eine Manipulation des ARP Protokolls durchgeführt werden. Zu solchen Angriffen zählt zum Beispiel //[[http://de.wikipedia.org/wiki/ARP-Spoofing|ARP-Spoofing]]//. [[https://ee.lbl.gov/|ARPwatch]] kann __**nicht**__ zu den vollwertigen IDS (Intrusion Detection System) Systemen gezählt werden, jedoch zur der Software, die sich auf eine spezielle Art von Angriffen spezialisiert haben. So ist [[https://ee.lbl.gov/|ARPwatch]] nur in der Lage solche Angriffe zu erkennen, die durch eine Manipulation des ARP Protokolls durchgeführt werden. Zu solchen Angriffen zählt zum Beispiel //[[http://de.wikipedia.org/wiki/ARP-Spoofing|ARP-Spoofing]]//.
 +
 +^ Beschreibung      ^ Externer Link                                                                       ^
 +| Homepage          | [[https://ee.lbl.gov/]]                                                             |
 +| Dokumentation     | ''man-page''                                                                        |
 +===== Funktionsweise =====
 +
 +Folgende Ereignisse werden von ARPwatch überwacht:
 +
 +^ Ereignis                    ^ Beschreibung                                                                                          ^
 +| new activity                | Dieses Ethernet/IP Adresspaar wurde das erste mal (wieder) in den letzten sechs Monaten genutzt       |
 +| new station                 | Diese Ethernet Adresse wurde zum ersten mal genutzt                                                   |
 +| flip flop                   | Die Ethernet Adresse hat sich zu einer schon mal verwendeten Ethernet Adresse geändert                | 
 +| changed ethernet address    | Die Ethernet Adresse hat sich geändert                                                                |
 +
 +Folgende ''journald''-Nachrichten werden mindestens protokolliert:
 +
 +^ Nachricht                   ^ Beschreibung                                                                                          ^
 +| ethernet broadcast          | Die MAC Ethernet Adresse des Geräts ist eine ''broadcast'' Adresse                                    |
 +| ip broadcast                | Die IP Adresse des Geräts ist eine ''broadcast'' Adresse                                              |
 +| bogon                       | Die Quell-IP-Adresse ist keine Adresse eines lokalen ''subnets''                                      |
 +| ethernet broadcast          | Die Quell-MAC-Adresse oder die ARP-Ethernet-Adresse besteht nur aus gleichen Teilen oder Nullen       |
 +| ethernet mismatch           | Die Quell-MAC-Ethernet Adresse stimmt nicht mit der Adresse im ARP-Paket überein                      |
 +| reused old ethernet address | Die Ethernet Adresse wurde in eine bereits vorher oder weit vorher gesehene Adresse geändert          |
 +| suppreddes DECnet flip flop | Ein "flip flop" Report wurde ausgelöst da eine der beiden gesehenen Adressen eine DECnet Addresse ist |
 +
 +:!: **HINWEIS** - Informationen zu DECnet-Adressen sind hier zu finden [[http://de.wikipedia.org/wiki/DECnet|Wiki DECnet Adressen]]
  
 ===== Installation ===== ===== Installation =====
Zeile 18: Zeile 44:
  
 Folgender Befehl ist zur Installation auszuführen: Folgender Befehl ist zur Installation auszuführen:
 +<code>
 +# pacman -S arpwatch
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pacman -S arpwatch # pacman -S arpwatch
Zeile 72: Zeile 102:
 ==> root: 27 ==> root: 27
 </code> </code>
 +++++
  
 Mit nachfolgendem Befehl kann überprüft werden, was der Inhalt des Pakets ''arpwatch'' war und was und vorallem wo installiert wurde: Mit nachfolgendem Befehl kann überprüft werden, was der Inhalt des Pakets ''arpwatch'' war und was und vorallem wo installiert wurde:
 +<code>
 +# pacman -Qil arpwatch
 +</code> 
 +++++ Installierte Dateien |
 <code> <code>
 # pacman -Qil arpwatch # pacman -Qil arpwatch
Zeile 119: Zeile 154:
 arpwatch /var/lib/arpwatch/ethercodes.dat arpwatch /var/lib/arpwatch/ethercodes.dat
 </code> </code>
 +++++
  
 ===== Konfiguration ===== ===== Konfiguration =====
Zeile 140: Zeile 176:
 # Tachtler # Tachtler
 # default: After=network.target # default: After=network.target
-After=network.target postfix.service+After=network.target network-online.target postfix.service 
 +# Tachtler - new - 
 +Wants=network-online.target
  
 [Service] [Service]
Zeile 158: Zeile 196:
 Nachfolgende Parameter wurden zum Aufruf von ''/usr/bin/arpwatch'' hinzugefügt: Nachfolgende Parameter wurden zum Aufruf von ''/usr/bin/arpwatch'' hinzugefügt:
  
-  * <code ini>After=network.target postfix.service</code>+  * <code ini>After=network.target network-online.target postfix.service 
 +Wants=network-online.target 
 +</code>
  
-Der Service soll nicht nur nach dem Start des Netzwerkes, sondern auch erst nach dem Start des Dienstes [[http://www.postfix.org/|Postfix]] gestartet werden.+Der Service soll nicht nur nach dem Start des Netzwerkes, sondern auch erst nach dem das Netzwerk ativ ist und nach dem Start des Dienstes [[http://www.postfix.org/|Postfix]] gestartet werden.
  
   * <code ini>-D /var/lib/arpwatch</code>   * <code ini>-D /var/lib/arpwatch</code>
Zeile 184: Zeile 224:
  
 :!: **HINWEIS** - Keine Ausgabe bedeutet eine korrekte Ausführung des Befehls! :!: **HINWEIS** - Keine Ausgabe bedeutet eine korrekte Ausführung des Befehls!
 +
 +===== ARPwatch starten =====
 +
 +==== Dienst: postfix.service einrichten ====
 +
 +:!: **WICHTIG** - **Auf die Konfiguration von [[http://www.postfix.org|Postfix]] wird hier __NICHT__ speziell eingegangen!**
 +
 +Bevor [[https://ee.lbl.gov/|ARPwatch]] gestartet werden kann, muss sichergestellt sein, das auch der Dienst **''postfix.service''** bereits gestartet ist.
 +
 +Falls dies nicht der Fall sein sollte, muss dies ebenfalls noch wie folgt eingerichtet werden, was mit nachfolgenden Befehlen erfolgen kann
 +
 +Um das Starten von [[http://www.postfix.org|Postfix]] auch nach einem System-(re)-start zukünftig und dauerhaft zu realisieren, kann folgender Befehl genutzt werden:
 +<code>
 +# systemctl enable postfix.service
 +Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
 +</code>
 +
 +Ein Überprüfung, ob [[http://www.postfix.org|Postfix]] Dienst/Daemon des Betriebssystems bei einem System-(re)-start mit gestartet wird, kann mit folgenden Befehlen ermittelt werden:
 +<code>
 +# systemctl list-unit-files --type=service | grep postfix
 +postfix.service                            enabled         disabled
 +</code>
 +bzw.
 +<code>
 +# systemctl is-enabled postfix.service
 +enabled
 +</code>
 +
 +==== Dienst: postfix.service starten ====
 +
 +Um [[http://www.postfix.org|Postfix]] zu starten, kann folgender Befehl ausgeführt werden:
 +<code>
 +# systemctl start postfix.service
 +</code>
 +
 +Nachfolgender Befehl gibt den Status des [[http://www.postfix.org|Postfix]]-Daemon/Dienstes auf dem Bildschirm aus:
 +<code>
 +# systemctl status postfix.service 
 +● postfix.service - Postfix Mail Transport Agent
 +     Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor p>
 +     Active: active (running) since Sun 2021-09-19 09:33:16 CEST; 35s ago
 +    Process: 64247 ExecStart=/usr/bin/postfix start (code=exited, status=0/SUCC>
 +   Main PID: 64315 (master)
 +      Tasks: 3 (limit: 2347)
 +     Memory: 13.2M
 +        CPU: 245ms
 +     CGroup: /system.slice/postfix.service
 +             ├─64315 /usr/lib/postfix/bin/master -w
 +             ├─64316 pickup -l -t unix -u
 +             └─64317 qmgr -l -t unix -u
 +
 +Sep 19 09:33:16 server systemd[1]: Starting Postfix Mail Transport Agent...
 +Sep 19 09:33:16 server postfix/postfix-script[64313]: starting the Postfix mail>
 +Sep 19 09:33:16 server postfix/master[64315]: daemon started -- version 3.6.2, >
 +Sep 19 09:33:16 server systemd[1]: Started Postfix Mail Transport Agent.
 +</code>
 +
 +Im ''journald'' sind dann ggf. entsprechend nachfolgende Meldungen zu sehen (**nur relevanter Ausschnitt**):
 +<code>
 +# journalctl -u postfix
 +-- Journal begins at Fri 2021-09-17 06:22:32 CEST, ends at Sun 2021-09-19 09:33>
 +Sep 19 09:33:16 server systemd[1]: Starting Postfix Mail Transport Agent...
 +Sep 19 09:33:16 server postfix/postfix-script[64313]: starting the Postfix mail>
 +Sep 19 09:33:16 server postfix/master[64315]: daemon started -- version 3.6.2, >
 +Sep 19 09:33:16 server systemd[1]: Started Postfix Mail Transport Agent.
 +</code>
 +
 +==== Dienst: arpwatch@[interface].service einrichten ====
 +
 +Um das Starten von [[https://ee.lbl.gov/|ARPwatch]] auch nach einem System-(re)-start zukünftig und dauerhaft zu realisieren, kann folgender Befehl genutzt werden:
 +<code>
 +# systemctl enable arpwatch@eth0.service
 +Created symlink /etc/systemd/system/multi-user.target.wants/arpwatch@eth0.service → /etc/systemd/system/arpwatch@.service.
 +</code>
 +Bei **__mehreren__ Netzwerk-Interfaces** muss der Befehl pro Interface einfach wiederholt werden, wie nachfolgend dargestellt:
 +<code>
 +# systemctl enable arpwatch@eth1.service
 +Created symlink /etc/systemd/system/multi-user.target.wants/arpwatch@eth1.service → /etc/systemd/system/arpwatch@.service.
 +</code>
 +
 +Ein Überprüfung, ob [[https://ee.lbl.gov/|ARPwatch]] Dienst/Daemon des Betriebssystems bei einem System-(re)-start mit gestartet wird, kann mit folgenden Befehlen ermittelt werden:
 +<code>
 +# systemctl --state=loaded | grep arpwatch@
 +  arpwatch@eth0.service                     loaded inactive dead      Watch ARP on interface net0
 +  arpwatch@eth1.service                     loaded inactive dead      Watch ARP on interface net1
 +</code>
 +bzw.
 +<code>
 +# systemctl is-enabled arpwatch@eth0.service
 +enabled
 +</code>
 +und bei **__mehreren__ Netzwerk-Interfaces** muss der Befehl pro Interface einfach wiederholt werden, wie nachfolgend dargestellt:
 +<code>
 +# systemctl is-enabled arpwatch@eth1.service
 +enabled
 +</code>
 +
 +==== Dienst: arpwatch@[interface].service starten ====
 +
 +Um [[https://ee.lbl.gov/|ARPwatch]] zu starten, kann folgender Befehl ausgeführt werden:
 +<code>
 +systemctl start arpwatch@eth0.service
 +</code>
 +und bei **__mehreren__ Netzwerk-Interfaces** muss der Befehl pro Interface einfach wiederholt werden, wie nachfolgend dargestellt:
 +<code>
 +# systemctl start arpwatch@eth1.service
 +</code>
 +
 +Nachfolgender Befehl gibt den Status des [[https://ee.lbl.gov/|ARPwatch]]-Daemon/Dienstes auf dem Bildschirm aus:
 +<code>
 +# systemctl status arpwatch@eth0.service
 +● arpwatch@eth0.service - Watch ARP on interface eth0
 +     Loaded: loaded (/etc/systemd/system/arpwatch@.service; enabled; vendor pre>
 +     Active: active (running) since Sun 2021-09-19 09:36:18 CEST; 5s ago
 +    Process: 64339 ExecStartPre=/usr/bin/touch /var/lib/arpwatch/eth0.dat (code>
 +    Process: 64340 ExecStart=/usr/bin/arpwatch -D /var/lib/arpwatch -f /var/lib>
 +   Main PID: 64341 (arpwatch)
 +      Tasks: 1 (limit: 2347)
 +     Memory: 2.0M
 +        CPU: 24ms
 +     CGroup: /system.slice/system-arpwatch.slice/arpwatch@eth0.service
 +             └─64341 /usr/bin/arpwatch -D /var/lib/arpwatch -f /var/lib/arpwatc>
 +
 +Sep 19 09:36:18 server systemd[1]: Starting Watch ARP on interface eth0...
 +Sep 19 09:36:18 server systemd[1]: Started Watch ARP on interface eth0.
 +Sep 19 09:36:18 server arpwatch[64341]: listening on eth0
 +</code>
 +und bei **__mehreren__ Netzwerk-Interfaces** muss der Befehl pro Daemon/Dienst des Interfaces einfach wiederholt werden, wie nachfolgend dargestellt:
 +<code>
 + systemctl status arpwatch@eth1.service
 +● arpwatch@net1.service - Watch ARP on interface net1
 +     Loaded: loaded (/etc/systemd/system/arpwatch@.service; enabled; vendor pre>
 +     Active: active (running) since Sun 2021-09-19 09:41:54 CEST; 7s ago
 +    Process: 64361 ExecStartPre=/usr/bin/touch /var/lib/arpwatch/eth1.dat (code>
 +    Process: 64362 ExecStart=/usr/bin/arpwatch -D /var/lib/arpwatch -f /var/lib>
 +   Main PID: 64363 (arpwatch)
 +      Tasks: 1 (limit: 2347)
 +     Memory: 1.5M
 +        CPU: 23ms
 +     CGroup: /system.slice/system-arpwatch.slice/arpwatch@eth1.service
 +             └─64363 /usr/bin/arpwatch -D /var/lib/arpwatch -f /var/lib/arpwatc>
 +
 +Sep 19 09:41:54 server systemd[1]: Starting Watch ARP on interface eth1...
 +Sep 19 09:41:54 server systemd[1]: Started Watch ARP on interface eth1.
 +Sep 19 09:41:54 server arpwatch[64363]: listening on eth1
 +</code>
 +
 +Im ''journald'' sind dann ggf. entsprechend nachfolgende Meldungen zu sehen (**nur relevanter Ausschnitt**):
 +<code>
 +# journalctl -u arpwatch*
 +-- Journal begins at Fri 2021-09-17 06:22:32 CEST, ends at Sun 2021-09-19 09:41>
 +Sep 19 09:36:18 server systemd[1]: Starting Watch ARP on interface eth0...
 +Sep 19 09:36:18 server systemd[1]: Started Watch ARP on interface eth0.
 +Sep 19 09:36:18 server arpwatch[64341]: listening on eth0
 +Sep 19 09:41:54 server systemd[1]: Starting Watch ARP on interface eth1...
 +Sep 19 09:41:54 server systemd[1]: Started Watch ARP on interface eth1.
 +Sep 19 09:41:54 server arpwatch[64363]: listening on eth1
 +</code>
 +
 +===== ARPWatch überprüfen =====
 +
 +==== ARPWatch: /var/lib/arpwatch/[interface].dat ====
 +
 +In der Datei, hier z.B. 
 +  * ''/var/lib/arpwatch/eth0.dat'' bzw. 
 +  * ''/var/lib/arpwatch/eth1.dat''
 +werden standardmäßig alle Ethernet-MAC/IP-Adressen-Paare und zusätzliche Informationen wie ''unix''-Zeitstempel und ''hostname'' des Rechners abgelegt, hier ein Auszug daraus:
 +<code ini>
 +52:54:00:00:00:10 192.168.0.10 1632037980 server
 +52:54:00:3d:4c:3e 192.168.0.1 1632037980      _gateway
 +</code>
 +
 +==== ARPwatch: E-Mail ====
 +
 +Ein e-Mail-Benachrichtigung könnte wie folgt aussehen:
 +<code>
 +   Date: Sun, 19 Sep 2021 09:47:35 +0200 (CEST)
 +   From: arpwatch@tachtler.net (Arpwatch)
 +     To: root@tachtler.net
 +Subject: new station (server.tachtler.net)
 +
 +            hostname: server.tachtler.net
 +          ip address: 192.168.0.10
 +    ethernet address: 52:54:00:01:00:10
 +     ethernet vendor: Fujitsu Siemens Computers
 +           timestamp: Sunday, September 19, 2021 9:47:35 +0200
 +</code>
 +
 +==== ARPwatch: journald ====
 +
 +Meldungen im ''journald'' könnten wie folgt aussehen: (**nur relevanter Ausschnitt**)
 +<code>
 +# journalctl -u arpwatch*
 +...
 +Sep 19 09:53:01 server arpwatch[64341]: new station 192.168.0.10 52:54:00:00:00:10
 +Sep 19 09:53:01 server arpwatch[64341]: new station 192.168.0.1 52:54:00:3d:4c:3e
 +</code>
 +
tachtler/arpwatch_archlinux.1632035320.txt.gz · Zuletzt geändert: 2021/09/19 09:08 von klaus