pmacct - wie konfigurieren, starten, loggen?

ummeegge
Community Developer
Community Developer
Posts: 4981
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 21st, 2019, 10:57 am

OK, nächste Version mit GeoIPv2 und RabbitMQ Unterstützung aber ohne DB DEP. Paket ist hier --> https://people.ipfire.org/~ummeegge/pmacct/ zufinden.

Was wurde geändert:
- /var/pmacct gibt es mittlerweile nicht mehr da durch /var/spool/pmacct ersetzt.
- install.sh startet pmacctd auch gleich mit.
- Es gibt ein GeoIP Updater unter /etc/fcron.daily der auch von install.sh ausgeführt wird damit das auch mit der Konfig hinhaut allerdings nur wenn pmacctd auch läuft. Die GeoIPv2 Database wird täglich upgedatet. Location für die GeoIP DB ist /usr/share/pmacct/geoip .
- /etc/pmacct/pmacct.conf: wurde entsprechend angepasst aber GeoIP detection wurde noch nicht aktiviert (aus- und einkommentieren mit '!') [EDIT] GeoIP startet gleich mit Installation.[/EDIT] Es gibt Kommentare in der Config die das bisschen erklären, bei Fragen einfach Fragen.
- /etc/pmacct/pmacct.conf: Derzeit noch auskommentierte aggregation lässt derzeit all GeoIPv2 tags zu die gehen -->

Code: Select all

aggregate[plugin1]: src_host, src_port, dst_host, dst_port, src_host_country, dst_host_country, src_host_coords, dst_host_coords
kann aber nach belieben angepasst werden.
[EDIT]- Eine interfaces.map um mehrere Interfaces anzubinden (IPFire Beispiele sind schon vorhanden) ist nun auch unter /etc/pmacct zu finden und entsprechend in der pmacct.conf vorhanden muss aber noch auskommentiert werden sofern gewollt. Ansonsten greift Pcap nur green0 ab.[/EDIT]

Beispiel sieht dann in etwa so aus:

Code: Select all

$ pmacct -p /var/spool/pmacct/plugin1.pipe -s 
SRC_IP                                         DST_IP                                         SRC_PORT  DST_PORT  SH_COUNTRY  DH_COUNTRY  SH_LAT        SH_LON        DH_LAT        DH_LON        PACKETS               BYTES
192.168.xx.xx                                   8.8.8.8                                        0         0         O1          US          0.000000      0.000000      37.751000     -97.822000    19                    1596
8.8.8.8                                        192.168.xx.xx                                   0         0         US          O1          37.751000     -97.822000    0.000000      0.000000      19                    1596
192.168.xx.xx                                    224.0.0.1                                      0         0         O1          O1          0.000000      0.000000      0.000000      0.000000      1                     36
192.168.xx.xx                                    224.0.0.22                                     0         0         O1          O1          0.000000      0.000000      0.000000      0.000000      1                     72
192.168.xx.xx                                   192.168.xx.xx                                    0         0         O1          O1          0.000000      0.000000      0.000000      0.000000      1                     104
192.168.xx.xx                                    239.255.255.250                                56381     1900      O1          O1          0.000000      0.000000      0.000000      0.000000      5                     755
192.168.xx.xx                                    192.168.xx.xx                                   0         0         O1          O1          0.000000      0.000000      0.000000      0.000000      1                     104

For a total of: 7 entries
Hint: Da wo Port = 0, ist das ping oder Multicast ; O1 = LAN Adressen haben keine Länderkennung für *-LON oder *-LAN. Hier wurden die POCODES (postal codes) aus der Konfig genommen, die derzeitige pmacct.conf hat sie aber drinne (kann manuell ja geändert werden nach belieben eben).

/var/log/messages sollte nach dem Start von Pmacctd sowas in der Art anzeigen:

Code: Select all

Oct 21 12:12:51 ipfire pmacctd[16638]: INFO ( default/core ): Start logging ...
Oct 21 12:12:51 ipfire pmacctd[16639]: INFO ( default/core ): Promiscuous Mode Accounting Daemon, pmacctd 1.7.3-git (20190418-00+c4)
Oct 21 12:12:51 ipfire pmacctd[16639]: INFO ( default/core ):  '--prefix=/usr' '--sysconfdir=/etc/pmacct' '--enable-static=no' '--enable-sqlite3' '--enable-l2' '--enable-plabel' '--enable-rabbitmq' '--enable-geoipv2' '--enable-jansson' 'CFLAGS=-O2 -pipe -Wall -fexceptions -fPIC -m64 -mindirect-branch=thunk -mfunction-return=thunk -mtune=generic -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong' '--enable-64bit' '--enable-traf
Oct 21 12:12:51 ipfire pmacctd[16639]: INFO ( default/core ): Reading configuration file '/etc/pmacct/pmacct.conf'.
Oct 21 12:12:51 ipfire pmacct: GeoIP database has been updated
Oct 21 12:12:51 ipfire pmacctd[16642]: OK ( plugin1/memory ): waiting for data on: '/var/spool/pmacct/plugin1.pipe'
Oct 21 12:12:52 ipfire pmacctd[16639]: INFO ( default/core ): [red0,0] link type is: 1
Oct 21 12:13:30 ipfire pmacctd[16639]: WARN ( default/core ): connection lost to 'plugin1-memory'; closing connection.
Oct 21 12:13:30 ipfire pmacctd[16639]: WARN ( default/core ): no more plugins active. Shutting down.
Oct 21 12:13:33 ipfire pmacctd[16782]: INFO ( default/core ): Start logging ...
Oct 21 12:13:33 ipfire pmacctd[16783]: INFO ( default/core ): Promiscuous Mode Accounting Daemon, pmacctd 1.7.3-git (20190418-00+c4)
Oct 21 12:13:33 ipfire pmacctd[16783]: INFO ( default/core ):  '--prefix=/usr' '--sysconfdir=/etc/pmacct' '--enable-static=no' '--enable-sqlite3' '--enable-l2' '--enable-plabel' '--enable-rabbitmq' '--enable-geoipv2' '--enable-jansson' 'CFLAGS=-O2 -pipe -Wall -fexceptions -fPIC -m64 -mindirect-branch=thunk -mfunction-return=thunk -mtune=generic -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong' '--enable-64bit' '--enable-traf
Oct 21 12:13:33 ipfire pmacctd[16783]: INFO ( default/core ): Reading configuration file '/etc/pmacct/pmacct.conf'.
Oct 21 12:13:33 ipfire pmacctd[16786]: OK ( plugin1/memory ): waiting for data on: '/var/spool/pmacct/plugin1.pipe'
Oct 21 12:13:33 ipfire pmacctd[16783]: INFO ( default/core ): [red0,0] link type is: 1
Oct 21 12:13:33 ipfire pmacctd[16783]: INFO ( default/core ): geoipv2_file database /usr/share/pmacct/geoip/GeoLite2-City.mmdb loaded
wenn denn alles läuft.

Glaube das war´s erstmal soweit.

Grüße,

UE

EDIT: red0 als Interface wieder auf green0 gesetzt aber auch IPFire spezifische interface.map nach /etc/pmacct hinzugefügt.
Image
Image

Hellfire
Posts: 694
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 21st, 2019, 2:39 pm

Wow! Das wird ja immer runder! Danke für die neue Version und die ausführlichen Informationen!

Zum Update der GeoIP Datenbank noch eine Frage: Ipfire bringt doch meines Wissens auch schon eine solche DB mit, oder? Ist diese jetzt identisch mit der für pmacct hinzugekommenen DB, oder ist das ganz was anderes?

Grüße,
Michael
Image

ummeegge
Community Developer
Community Developer
Posts: 4981
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 21st, 2019, 3:37 pm

Hi Michael,
Hellfire wrote:
October 21st, 2019, 2:39 pm
Zum Update der GeoIP Datenbank noch eine Frage: Ipfire bringt doch meines Wissens auch schon eine solche DB mit, oder? Ist diese jetzt identisch mit der für pmacct hinzugekommenen DB, oder ist das ganz was anderes?
das ist die GeoLite2 DB allerdings für Country und ausserdem im .csv Format --> https://git.ipfire.org/?p=ipfire-2.x.gi ... s/next#l24 . Für die Positionsbestimmung von Latitude und Longitude (bzw. die postal codes) braucht´s die GeoLite2-City und das im binary format (.mmdb). Zur Übersicht --> https://dev.maxmind.com/geoip/geoip2/geolite2/ .

Bin gerade noch am Änderungen einbauen.
- Die GeoIP config ist dann gleich scharf geschaltet.
- Das Interface läuft per Default wieder auf green0 aber es wird noch zusätzlich eine 'interfaces.map' unter /etc/pmacct/ geben damit man auch andere Interfaces über Pcap abgreifen kann. Früher ging auch 'interfaces: all' in der pmacct.conf das geht mittlerweile nicht mehr sondern das wird über eine Map --> https://github.com/pmacct/pmacct/blob/m ... example#L2 geregelt. Wenn das gebraucht wird dann muss der Pfad zur Map in der pmacct.conf nur einkommentiert werden und die Map, sofern mehrere Interfaces abzugreifen sind, entsprechend angepasst werden.

Build ist in 1 1/2 Stunden durch und UP.

Grüße,

UE
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 4981
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 21st, 2019, 5:04 pm

OK obige Änderungen sind oben (altes Verzeichnis).

Warum eine DNS Resolution in Pmacct selber keine gute Idee ist aber was eine andere Idee wäre ist u.a. hier --> https://www.mail-archive.com/pmacct-dis ... 03270.html auch noch mal zufinden. Das sollte event. auch das Python Skript machen können, hier z.b. --> https://gitlab.com/thart/flowanalyzer/b ... low.py#L53 wird das bei einem Flowanalyzer für sflow gemacht, ist event auch eine Idee für dich dabei ?!

Grüße,

UE
Image
Image

Hellfire
Posts: 694
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 22nd, 2019, 5:46 pm

ummeegge wrote:
October 21st, 2019, 10:57 am
OK, nächste Version mit GeoIPv2 und RabbitMQ Unterstützung aber ohne DB DEP. Paket ist hier --> https://people.ipfire.org/~ummeegge/pmacct/ zufinden.
Hi UE,

wollte gerade die Datei https://people.ipfire.org/~ummeegge/pma ... tmq.tar.gz entpacken, jedoch erhalte ich sowohl auf der IPFire als auch unter Windows einen Fehler, dass die Datei kein gültiges Archiv ist. Die Checksumme passt hier leider auch nicht.

Kannst du dir das bitte Mal ansehen?

Danke,
Michael
Image

ummeegge
Community Developer
Community Developer
Posts: 4981
Joined: October 9th, 2010, 10:00 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by ummeegge » October 23rd, 2019, 4:40 am

Moin Michael,
hab ich gerade getestet und hier passt das mit der Prüfsumme.

Code: Select all

64027ba0cbd22134aac4f1cbe252e83c65b9ac32c492bae8ed3501c97b651d93  pmacct-1.7.3+libmaxminddb+rabbitmq.tar.gz
Hast du dir das Paket mittels wget oder curl gezogen oder anderweitig ?

Ich hab dennoch mal jetzt alle (*.ipfire) Pakete einzeln hochgeladen und die tar.gz rausgenommen ist alles hier --> https://people.ipfire.org/~ummeegge/pma ... tmq+GeoIP/ zufinden.

Kannst ja nochmal schauen ob es so hinhaut.

Grüße,

UE
Image
Image

Hellfire
Posts: 694
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » October 23rd, 2019, 10:20 am

ummeegge wrote:
October 23rd, 2019, 4:40 am
Hast du dir das Paket mittels wget oder curl gezogen oder anderweitig ?
Auf dem IPFire mittels wget und im Windows Fall, schlichtweg über Firefox. Aber ich werd's mir heute Abend nochmals ansehen, sofern ich nicht frühzeitig wegen Erkältung vorher zusammenklappe ::)

Danke abermals,
Michael
Image

Hellfire
Posts: 694
Joined: November 8th, 2015, 8:54 am

Re: pmacct - wie konfigurieren, starten, loggen?

Post by Hellfire » November 5th, 2019, 7:39 pm

Hi,

hatte gerade Mal wieder Zeit mich pmacct zu widmen... Installation hat dieses Mal perfekt geklappt! Danke dir tausend Mal!

Ein paar Fragen im Zusammenhang mit pmacct und dem Webproxy: Wenn ich mir die Daten von Source und Destination aus der von pmacctd erzeugten Pipe genauer ansehe, dann stelle ich fest, dass eigentlich so gut wie fast keine externe IP dabei ist. In der Regel ist sehr häufig die IP-Adresse des IPFire selbst in den beiden genannten Spalten, die ausgegeben werden, zu sehen.

Ich denke, dies hat den Grund, dass ich den Web-Proxy einsetze und zwar auch als transparenten Proxy. Liege ich da mit meiner Vermutung richtigt?

Dies bedeutet wohl aber auch, dass selbst wenn ich red0 ebenfalls oder ausschließlich monitoren würde, ich trotzdem keine aussagefähigere Werte bekommen würde, denn ich gehe davon aus, dass mir in diesem Fall die lokalen IP-Adressen fehlen und wiederum am häufigsten die IP-Adresse des IPFire zu sehen ist.

Noch eine Ergänzung: wenn ich wie hier viewtopic.php?p=128097#p128095 geschrieben, sowohl red0 als auch green0 monitore, Map-Datei:

Code: Select all

ifindex=100 ifname=green0 direction=out
ifindex=200 ifname=red0   direction=in
Wie kann ich die beiden Interfaces dann in meiner späteren Pipe erkennen? Gibt es da auch irgendeine Spalte, die ich momentan noch nicht kenne?

Michael
Image

Post Reply