34
1 Monitoring sieci w systemach BSD Lukasz Bromirski [email protected]

Monitoring sieci w systemach BSD

Embed Size (px)

Citation preview

Page 1: Monitoring sieci w systemach BSD

111

Monitoring sieci w systemach BSD

Łukasz [email protected]

Page 2: Monitoring sieci w systemach BSD

222

Agenda

• Po co monitorować?

• Monitoring…

wykorzystania zasobów

anomalii sieciowych

• Gdy „wire” wcale nie jest „silent”…

• Q&A

Page 3: Monitoring sieci w systemach BSD

333

PO CO MONITORING?

333

Page 4: Monitoring sieci w systemach BSD

444

50% administratorów sieci nie wie, co dzieje się w ich sieci.

Pozostałe 50% nie wie, że jest tądrugą połową...

Page 5: Monitoring sieci w systemach BSD

555

Po co monitoring?

• Wiedza o normalnej pracy sieci

• Obserwowanie trendów

• Szybkie identyfikowanie anomalii – byćmoże jeszcze zanim staną się problemami

• Zdobywanie wiedzy na bieżąco

(niezależnie projekty a’la honeypot)

Page 6: Monitoring sieci w systemach BSD

666

Parę uwag praktycznych

• Jeśli zamierzasz utrzymywać dedykowane stacje nasłuchujące (sniffery) w swojej infrastrukturze…

…dobre karty sieciowe (Intel? Broadcom?)

…dobra płyta główna (dedykowany mostek lub dwa dla PCI/PCI-E)

…procesor i RAM jeśli dodatkowo serwer ma realizować jakąś pracę (SQL, analiza, raporty, etc.)

• Uwaga na ilość ruchu przy ‘SPAN/mirror-portach’

Page 7: Monitoring sieci w systemach BSD

777

MONITORING(WYKORZYSTANIA ZASOBÓW)

777

Page 8: Monitoring sieci w systemach BSD

888

Monitoring wykorzystania zasobówPodejście pierwsze – proste i całkiem skuteczne

• Tradycyjne „chce wykresy!”

odczyt liczników za pomocą SNMP lub skryptów i wizualizacja

liczniki nie tylko interfejsów – np. ilości zapytań do serwera HTTP, ilości połączeń do serwerów pocztowych na poszczególne porty, ilości trafień w konkretną regułkęw firewallu, praktycznie nie ma ograniczeń jeśli tylko cecha daje się zliczyć...

rrdtool

mrtg/Cacti/Nagios/etc.

Page 9: Monitoring sieci w systemach BSD

999

Przykład 1: Monitoring ruchu przez SNMP

System monitoringu

Co dany interwał, dla każdego routera odpytaj po SNMP o:- obciążenie CPU- zajętość RAM- ifBytes/outBytes na każdym interfejsie- inne dane (np. licznik trafień w regułę ipfw lub pf, etc.)

Page 10: Monitoring sieci w systemach BSD

101010

Monitoring wykorzystania zasobówNarzędzia w drzewie ports

• rrdtool 1.2.11

/usr/ports/net/rrdtool

• mrtg-2.12.2

/usr/ports/net-mgmt/mrtg

• net-snmp-5.2.1

/usr/ports/net-mgmt/net-snmp

• +inne skrypty, lub w ogólności – MIBy:

http://oss.oetiker.ch/mrtg/pub/contrib/FreeBSD-DF-IPFW-LOAD.txt

http://www.packetmischief.ca/openbsd/snmp/

Page 11: Monitoring sieci w systemach BSD

111111

Monitoring wykorzystania zasobówPrzykłady zbieranych informacji

* z http://oss.oetiker.ch/rrdtool/

Page 12: Monitoring sieci w systemach BSD

121212

Monitoring wykorzystania zasobówPodejście drugie, dokładniejsze

• Trochę bardziej zaawansowane – „chce wykresy z tym, tamtym i jeszcze z tym!”

mechanizmy wykorzystujące lub oparte o NetFlow

dużo dokładniejsze i dające „od razu” więcej informacji niż SNMP

• Mechanizm pozwala zerwać z interwałami czasowymi i ‘automatycznie’ rozbudowaćzakres wiedzy pozyskiwanej o ruchu

...działa w czasie rzeczywistym (lub prawie)

Page 13: Monitoring sieci w systemach BSD

131313

Przykład 2: Monitoring ruchu przez NetFlow

System monitoringu

Każdy router niezależnie, dla każdego przechodzącego przez niego potoku raportuje:- start i koniec sesji- ilość pakietów, ilość bajtów- informacje o IPSRC, IPDST, TCP/UDP SRC i DST

Page 14: Monitoring sieci w systemach BSD

141414

Monitoring wykorzystania zasobówFormat próbki NetFlow (v5)

Ruch od/do

Routing i peering

•Źródłowy port TCP/UDP• Docelowy port TCP/UDP

• Adres następnego węzła• Numer źródłowego AS• Numer docelowego AS• Maska prefiksu źródłowego• Maska prefiksu docelowego

• Wejściowy ifIndex• Wyjściowy ifIndex

• Ilość pakietów• Ilość bajtów

• Type of Service• Flagi TCP• Protokół

• sysUpTime początku• sysUpTime końca

•Źródłowy adres IP• Docelowy adres IP

Pola-klucze w NetFlow

Obciążenieportu

Ruch

QoS

Poradnia

Aplikacja

Page 15: Monitoring sieci w systemach BSD

151515

Monitoring wykorzystania zasobów Architektura systemu wykorzystującego NetFlow

pfflowd

ng_netflow

softflowd

Generator

flowdumper

ntop

cacti+flow plugin

Rozliczaniei billing

Planowanie sieci

Oprogramowanie

Statystyki ruchowe

Kolektor

Specjalizowanesondy

flow-capture

flowd

ntop(+MySQL/PostreSQL, etc...)

Page 16: Monitoring sieci w systemach BSD

161616

Monitoring wykorzystania zasobów Jak działa eksport danych przez NetFlow?

• SysUptime – aktualny czas z dokładnością do milisekund

CzasStart pierwszego

potoku(sysUpTime)

Koniec pierwszego

potoku (sysUpTime)

Router bootuje się(sysUpTime zaczyna sięzwiększać

Wygasa pierwszy potok

Start drugiego potoku

(sysUpTime)

Koniec drugiego potoku

(sysUpTime)Wygasa drugi

potok

15 sekund nieaktywności

15 sekund nieaktywności

Start trzeciego potoku

Wysłanie pakietu UDP zawierającego 30-50

próbek

Export

Export

Page 17: Monitoring sieci w systemach BSD

171717

MONITORING(ANOMALII SIECIOWYCH)

171717

Page 18: Monitoring sieci w systemach BSD

181818

Monitoring anomalii sieciowycharpwatch (/usr/ports/net-mgmt/arpwatch)

• arpwatch binduje się do interfejsu sieciowego i buduje sobie bazęwiedzy o mapowaniach MAC<>IP

• W przypadku pojawienia sięnowego mapowania, lub zmiany starego, informuje o tym (standardowo mailem)

jestem 000b.6a76.9065 i mam 192.168.0.156!

Page 19: Monitoring sieci w systemach BSD

191919

Monitoring anomalii sieciowychp0f (/usr/ports/net-mgmt/p0f/)

• p0f pozwala wykryć ‘dzielenie’łącza, oraz różnego rodzaju anomalie związane z różnicami w systemach operacyjnych

• posiada wiele innych ciekawych mechanizmów (tryby aktywne)

bsd# p0f -i em2 -M -l 192.168.0.62:3123 - Windows 2000 SP4, XP SP1+ -> a.a.a.a:7995 (distance 1, link: ethernet/modem)192.168.0.62:3122 - Windows 2000 SP4, XP SP1+ -> b.b.b.b:14524 (distance 1, link: ethernet/modem)192.168.0.62:3120 - Windows 2000 SP4, XP SP1+ -> c.c.c.c:6881 (distance 1, link: ethernet/modem)192.168.0.62:4293 - Windows 2000 SP4, XP SP1+ -> d.d.d.d:8877 (distance 2, link: ethernet/modem)>> Masquerade at 192.168.0.62: indicators at 76%.

Page 20: Monitoring sieci w systemach BSD

202020

Monitoring anomalii sieciowychNetFlow (nie ma niedzieli bez robaka…)

• Obserwowanie ‘normalnych’ trendów ruchowych

np. ~80% ruchu to TCP, 17% to UDP, pozostałe 3% to ICMP, GRE, ESP, etc.

nagły skok – udział np. UDP w ruchu, lub ruch TCP na dotychczas „słabo interesujący” port rośnie z sekundy na sekundę, pojedyncze pakiety…

Czy to jest normalne?

Page 21: Monitoring sieci w systemach BSD

212121

GDY DRUT WCALE…(…NIE JEST TAKI SILENT)

212121

Page 22: Monitoring sieci w systemach BSD

222222

Stos TCP/IP, model OSI

• L2/L3 – połączenia pomiędzy elementami tworzącymi infrastrukturę sieciową

L2 – Spanning Tree (BPDU), ARP/RARP, protokoły producenckie

L3 – IP i ICMP

• L4 – aplikacje i ich problemy

…głos po IP

Page 23: Monitoring sieci w systemach BSD

232323

Podstawowy zestaw narzędzitcpdstat (/usr/ports/net/tcpdstat)

bsd$ tcpdstat fxp0.dmp

DumpFile: fxp0.dmpFileSize: 241.63MBStartTime: Thu Nov 2 19:07:24 2006EndTime: Sat Nov 25 21:41:40 2006TotalTime: 1996455.68 secondsTotalCapSize: 232.20MB CapLen: 1500 bytes# of packets: 618160 (233.43MB)AvgRate: 1.74Kbps stddev:40.58K

### IP flow (unique src/dst pair) Information #### of flows: 984 (avg. 628.21 pkts/flow)Top 10 big flow size (bytes/total in %):18.2% 17.5% 13.9% 12.5% 12.0% 8.9% 4.0% 3.6% 1.2% 1.2%

### IP address Information #### of IPv4 addresses: 500Top 10 bandwidth usage (bytes/total in %):89.0% 42.3% 32.7% 24.1% 10.8% 0.2% 0.2% 0.2% 0.2% 0.1%

### Packet Size Distribution (including MAC headers) ###

Page 24: Monitoring sieci w systemach BSD

242424

Podstawowy zestaw narzędzitcpdstat (/usr/ports/net/tcpdstat)

### Protocol Breakdown ###protocol packets bytes bytes/pkt

-------------------------------------------------------------------------[0] total 618160 (100.00%) 244766009 (100.00%) 395.96[1] ip 373315 ( 60.39%) 230876523 ( 94.33%) 618.45[2] tcp 371000 ( 60.02%) 230384431 ( 94.12%) 620.98[3] http(s) 137 ( 0.02%) 8204 ( 0.00%) 59.88[3] http(c) 138 ( 0.02%) 8802 ( 0.00%) 63.78[3] squid 198 ( 0.03%) 12150 ( 0.00%) 61.36[3] smtp 44 ( 0.01%) 2684 ( 0.00%) 61.00[3] ftp 40 ( 0.01%) 2492 ( 0.00%) 62.30[3] pop3 20 ( 0.00%) 1212 ( 0.00%) 60.60[3] imap 10 ( 0.00%) 610 ( 0.00%) 61.00[3] telnet 829 ( 0.13%) 56106 ( 0.02%) 67.68[3] ssh 21562 ( 3.49%) 1430578 ( 0.58%) 66.35[3] bgp 346954 ( 56.13%) 228795761 ( 93.48%) 659.44[3] icecast 10 ( 0.00%) 618 ( 0.00%) 61.80[3] other 1002 ( 0.16%) 61854 ( 0.03%) 61.73[2] udp 861 ( 0.14%) 375668 ( 0.15%) 436.32[3] other 861 ( 0.14%) 375668 ( 0.15%) 436.32[2] icmp 1454 ( 0.24%) 116424 ( 0.05%) 80.07[2] frag 112 ( 0.02%) 88144 ( 0.04%) 787.00

Page 25: Monitoring sieci w systemach BSD

252525

Podstawowy zestaw narzędziargus (/usr/ports/net-mgmt/argus)

bsd$ argus -r fxp0.dmp -w fxp0.argus

bsd$ racount -ar fxp0.argusracount records total_pkts src_pkts dst_pkts total_bytes src_bytes dst_bytes

tcp 14158 371000 180124 190876 230256893 111280432 118976461udp 804 861 861 0 375668 375668 0icmp 941 1454 1087 367 116385 85274 31111arp 10828 45087 44663 424 1901772 1876566 25206

non-ip 33027 199867 199867 0 11994128 11994128 0sum 59760 618269 426602 191667 244644846 125612068 119032778

Page 26: Monitoring sieci w systemach BSD

262626

Podstawowy zestaw narzędziargus (/usr/ports/net-mgmt/argus)

bsd$ wc -l fxp0.argus.hosts509 fxp0.argus.hosts

bsd$ more fxp0.argus.hosts0.0.0.02.0.0.17112.183.1.7718.0.141.13719.0.0.019.0.27.143[...]

Page 27: Monitoring sieci w systemach BSD

272727

Podstawowy zestaw narzędziargus (/usr/ports/net-mgmt/argus)

$ ra -nn -r fxp0.argus -s saddr daddr proto sport dport | grep 1433 | more

203.199.107.137 193.19.140.250 tcp 2934 143369.60.115.221 193.19.140.250 tcp 3698 1433193.6.7.165 193.19.140.250 tcp 3562 1433

80.191.109.21 193.19.140.250 tcp 3173 1433193.226.172.218 193.19.140.250 tcp 3929 143387.106.49.137 193.19.140.250 tcp 4274 143371.156.163.41 193.19.140.250 tcp 4176 1433

Page 28: Monitoring sieci w systemach BSD

282828

Podstawowy zestaw narzędzitcpflow (/usr/ports/net/tcpflow)

bsd$ tcpflow -r /home/test/fxp0.dmp -c port 22 | more

193.019.140.250.00022-202.115.142.158.37088: SSH-1.5-HoneyPotX-1.25202.115.142.158.37088-193.019.140.250.00022: SSH-2.0-libssh-0.1193.019.140.250.00022-200.021.174.005.54976: SSH-1.5-HoneyPotX-1.25200.021.174.005.54976-193.019.140.250.00022: SSH-2.0-libssh-0.1193.019.140.250.00022-210.188.218.046.45058: SSH-1.5-HoneyPotX-1.25210.188.218.046.45058-193.019.140.250.00022: SSH-2.0-libssh-0.1193.019.140.250.00022-220.232.178.252.34244: SSH-1.5-HoneyPotX-1.25220.232.178.252.34244-193.019.140.250.00022: SSH-2.0-libssh-0.1

• tcpflow rozkłada wskazane binarium w formacie pcap do serii plików o nazwach wg. wzoru IPSRC:PORT<>IPDST:PORT

Page 29: Monitoring sieci w systemach BSD

292929

Podstawowy zestaw narzędzitcpreplay (/usr/ports/net-mgmt/tcpreplay)

• tcpreplay pozwala na odtworzenie wskazanego zrzutu ruchu sieciowego przez konkretny interfejs sieciowy

• port zawiera dodatkowo bardzo ciekawe narzędzia:

tcprewrite – zmiana adresów MAC, IP, portów, numerów sekwencyjnych, tagów 802.1Q itp. Itd. we wskazanym pliku w formacie pcap

tcpbridge – pozwala na stworzenie bridge’a pomiędzy dwoma interfejsami a następnie zapewnia na ruchu funkcjonalność tcprewrite

Page 30: Monitoring sieci w systemach BSD

303030

Podstawowy zestaw narzędziethereal/wireshark (/usr/ports/net/ethereal)

Page 31: Monitoring sieci w systemach BSD

313131

...i tysiące innych narzędzi...

• Ciekawe projekty:

wykorzystanie systemów IDS/IPS inline do identyfikacji protokołów i anomalii w protokołach

http://freebsd.rogness.net/snort_inline/

„globalne” systemy monitorowania i korelacji zdarzeń

http://www.prelude-ids.org/

Page 32: Monitoring sieci w systemach BSD

323232

GDZIE WARTO RZUCIĆOKIEM

323232

Page 33: Monitoring sieci w systemach BSD

333333

Zasoby WWW

• Wireshark

http://www.wireshark.com

• O’Reilly – artykuły Michaela W. Lucasa

http://www.onlamp.com/bsd/

• Magazyn INSECURE

http://www.insecuremag.com/

• O’Reilly – książki o protokołach

http://www.oreilly.com/pub/topic/protocols

Page 34: Monitoring sieci w systemach BSD

343434343434

QA&