PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables logging



Huhn Hur Tu
31.07.14, 08:47
Hi,

ich versuche die Netzwerkkommunikation eines Servers dauerhaft zu ueberwachen.
Ich benoetige folgende Informationen

- Von IP Nach IP:PORT (Ausgehend, Eingehend)

Am Ende des Tages will ich ein Reporting darueber laufen lassen, das folgende Informationen beinhaltet

- Anzahl der Aufrufe fuer IP nach IP:PORT (Ausgehend, Eingehend) - (uniq -c or else)
- Neu hinzugekommene IPs
- IPs die seit einigen Wochen den Server nicht mehr aufgerufen haben

Mein Gedanke war das mit iptables logging zu machen, da ich mir hier die geringste Payload verspreche.

Was ist euer Vorschlag?
Wie logge ich das mit iptables so sauber raus, bisher habe ich nur loglevel gefunden, aber noch nicht genauer angeschaut.

Gruss Stefan

marce
31.07.14, 09:08
nebensächliche Frage: Pakete oder Verbindungen?

... und - welchen Netzwerkdurchsatz hat die Kiste denn so pro Tag?

Huhn Hur Tu
31.07.14, 09:17
Nur Verbindungen, Netzwerkdurchsatz ca. 50GB

marce
31.07.14, 09:34
tcpdump und iptables sind sicher eine Möglichkeit, ggf. auf iptraf - lohnenswert scheint mir aber ein Blick auf http://security.blogoverflow.com/2013/01/a-brief-introduction-to-auditd/

Huhn Hur Tu
31.07.14, 10:31
Hi Marce,

danke fuer den Hinweis auf auditd, dieser scheint mir doch einige Layer zu tief zu sitzen;) Systemcalls sind nicht zwingend das was ich suche.

Zurueck zu iptables, wie logge ich from ip to ip:port raus

Gruss Stefan

Huhn Hur Tu
31.07.14, 13:58
Aus interesse habe ich mir mal folgendes gebastelt

Daten sammeln


/usr/sbin/tcpdump -f -K -n -tttt -i eth0 not arp and not rarp and not ip6 | egrep ">|<" | grep -v IP6 | awk '{print $4 " "$5 " "$6}' > dump


Ergibt das hier


95.112.169.130.443 > 172.17.13.72.41841:
172.17.13.72.41841 > 95.112.169.130.443:
172.17.13.72.41841 > 95.112.169.130.443:
95.112.169.130.443 > 172.17.13.72.41843:
172.17.13.72.41843 > 95.112.169.130.443:
172.17.13.72.41843 > 95.112.169.130.443:


Bereited Daten auf


cat dump | sort | sed 's/\://g' | sed 's/ > /./g' | awk -F "." '{print $1"."$2"."$3"."$4" "$5" "$6"."$7"."$8"."$9" "$10}' | awk '{print "'"'"'"$1"'"'"' "$2" '"'"'"$3"'"'"' "$4" "}' |uniq -c | grep -v "\.\.\."


Ergibt folgendes (quoted fuer mysql import)


Anzahl Aufrufe, QuellIP, Quellport, ZielIP, Zielport
97 '95.112.169.130' 443 '172.17.13.72' 41838
182 '95.112.169.130' 443 '172.17.13.72' 41840
56 '95.112.169.130' 443 '172.17.13.72' 41841
71 '95.112.169.130' 443 '172.17.13.72' 41842
17 '95.112.169.130' 443 '172.17.13.72' 41843
70 '95.112.169.130' 443 '172.17.13.72' 41844

Huhn Hur Tu
12.08.14, 12:27
Hi,

ich wurde gebeten das ganze doch in iptables zu probieren.

nachein wenig suchen habe ich jetzt folgendes gefunden



iptables -I INPUT -m state --state ESTABLISHED -j LOG
iptables -I OUTPUT -m state --state ESTABLISHED -j LOG


wobei ich nun nicht ganz weiss wie ich den Logoutput jetzt in ein dediziertes log bekomme
Fuer Ideen bin ich offen
Gruss Stefan

nopes
12.08.14, 14:05
by default, the iptables will use /var/log/messages to log all the message. If you want to change this to your own custom log file add the following line to /etc/syslog.conf

kern.warning /var/log/custom.logHier (http://www.thegeekstuff.com/2012/08/iptables-log-packets/) gefunden.

Huhn Hur Tu
12.08.14, 15:12
Danke,

ich habe versucht zu ignorieren dass IPtables Kernelausgaben produziert und man dem Log nicht einfach sagen kann schreib hierhin, sondern muss den Output filtern und wegpacken.
Das mit dem verdraengen klappt heute auch gar nicht;)