Zaawansowane filtrowanie ruchu w sieciach LAN na na przykładzie filtrów stanowych Iptables // Ebtables

Podobne dokumenty
iptables/netfilter co to takiego?

Wykład 3 Filtracja i modyfikacja pakietów za pomocą iptables.

Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Iptables. Krzysztof Rykaczewski. 15/11/06 1

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Iptables informacje ogólne

eth /30 eth1 eth /30 eth /30 Serwer IPERF

Router programowy z firewallem oparty o iptables

Firewalle do zastosowań domowych

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Systemy programowych zapór sieciowych (iptables)

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Teletransmisja i sieci komputerowe 2

Zarządzanie bezpieczeństwem w sieciach

Instalacja i konfiguracja pakietu iptables

Zapory sieciowe i techniki filtrowania danych

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

Linux. iptables, nmap, DMZ

Sieci Komputerowe Translacja adresów sieciowych

Tomasz Greszata - Koszalin

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej (firewall) oraz oprogramowania iptables.

praktyczne zastosowania mechanizmów QoS, Linuxowe HTB paweł kudzia

Konfiguracja zapory sieciowej na routerze MikroTik

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Sieci komputerowe. Zajęcia 4 Bezpieczeństwo w sieciach komputerowych

Warsztaty z Sieci komputerowych Lista 8

Zarządzanie ruchem w sieci małego ISP Michał Prokopiuk

Co to jest iptables?

Pakiet Iptables. Filtrowanie pakietów i filtrowanie stanowe

Tomasz Greszata - Koszalin

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej.

Zarządzanie bezpieczeństwem w sieciach dr inż. Robert Banasiak, mgr inż. Rafał Jachowicz, Instytut Informatyki Stosowanej PŁ, 2013

CONFidence 13/05/2006. Jarosław Sajko, PCSS

Warsztaty z Sieci komputerowych Lista 9

Zarządzanie Jakością Usług w Sieciach Teleinformatycznych

Adresy w sieciach komputerowych

Kształtowanie ruch w sieciach Linux

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

1. Zapora sieciowa stateless. Nie śledzi nawiązanych połączeń? Jest wrażliwa na spoofing?

Klasy adresów IP. Model ISO - OSI. Subnetting. OSI packet encapsulation. w.aplikacji w.prezentacji w.sesji w.transportowa w.

Problem kolejkowania dostępu czyli zarządzanie przepustowością sieci

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

7. Konfiguracja zapory (firewall)

DHCP + udostępnienie Internetu

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

Programowanie sieciowe

ARP Address Resolution Protocol (RFC 826)

MASKI SIECIOWE W IPv4

Sieci komputerowe. Wykład 11: Podstawy bezpieczeństwa sieci. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Bezpieczeństwo Systemów Telekomunikacyjnych 2014 / 2015 Bezpieczeństwo aplikacji sieciowych, Ataki (D)DoS Prowadzący: Jarosław Białas

Określanie konfiguracji TCP/IP

Klonowanie MAC adresu oraz TTL

Ograniczanie pasma internetowego za pomocą IMQ i 7Layer

Bezpieczeństwo w M875

MODEL WARSTWOWY PROTOKOŁY TCP/IP

MODEL OSI A INTERNET

Dlaczego? Mało adresów IPv4. Wprowadzenie ulepszeń względem IPv4 NAT CIDR

Instalacja i konfiguracja rouera ASMAX AR 904u. Neostrada, Netia

T: Konfiguracja interfejsu sieciowego. Odwzorowanie nazwy na adres.

Protokoły sieciowe - TCP/IP

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Sieci komputerowe - administracja

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Internet Control Message Protocol (ICMP) Łukasz Trzciałkowski

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Opracowany na podstawie

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

ZiMSK NAT, PAT, ACL 1

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Ochrona sieci lokalnej za pomocą zapory sieciowej

BEFSR11 / 41. Routing statyczny Routing dynamiczny (RIP-1 / RIP-2)

SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

BRINET Sp. z o. o.

Filtrowanie stateful inspection w Linuksie i BSD

Strona1. Suse LINUX. Konfiguracja sieci

Firewall bez adresu IP

Linux -- u mnie działa!

System operacyjny Linux

Kurs Ethernet przemysłowy konfiguracja i diagnostyka. Spis treści. Dzień 1

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Filtry i statystyki w analizatorach protokołów Laboratorium Podstaw sieci komputerowych

Ruter - Linux 2.4. wersja dokumentu 0.9. Dubas Bartłomiej (dubcio@hoga.pl) FIREWALL, KONTROLA PRZEPŁ YWU, ZLICZANIE RUCHU

4. Podstawowa konfiguracja

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

* konfiguracja routera Asmax V.1501 lub V.1502T do połączenia z Polpakiem-T lub inną siecią typu Frame Relay

Instrukcje dotyczące funkcji zarządzania pasmem w urządzeniach serii ZyWALL.

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 24

Bazy Danych i Usługi Sieciowe

Którą normę stosuje się dla okablowania strukturalnego w sieciach komputerowych?

Transkrypt:

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zaawansowane filtrowanie ruchu w sieciach LAN na na przykładzie filtrów stanowych Iptables // Ebtables Dominik Derela PLAN PREZENTACJI Koncepcja filtrów iptables / ebtables (łacuchy, tabele) Sterowanie połczeniami: porty, adresy, interfejsy przekierowania połcze Modyfikacja pakietów: mechanizm NAT i odmiany podmiana wartoci w nagłówkach pakietów Znakowanie pakietów: kolejkowanie pakietów - dyscypliny HTB / SFQ Łacuchy definiowane uytkownika: operacje na łacuchach, zagniedanie Przykładowa sie załoenia, struktura, UML WWW: transparentny PROXY Podsumowanie WARSZAWA, marzec 2006 1? OSI 3 layer - network OSI 2 layer - data link Filtrowanie ruchu model OSI Filtrowanie datagramów IP reguły Tabele Łacuchy Filtrowanie ramek ethernetowych Tabele reguły = Łacuchy + = + Wyrónik (kryteria) Wyrónik (kryteria) + + Decyzja (CEL) Decyzja (CEL) iptables ebtables Ebtables/Iptables krótka charakterystyka Ebtables: Filtrowanie ramek wg: adresów MAC typu ramki interfejsów wej / wyj Ograniczone moliwoci filtrowania pakietów-> iptables Rejestrowanie informacji o ruchu Obsługa IPv4, IPv6,arp Znakowanie ramek MAC NAT (SNAT, DNAT) Iptables: Filtrowanie datagramów IP wg: adresów IP numerów portów interfejsów wej / wyj Rejestrowanie informacji o ruchu Obsługa IPv4, IPv6,arp Znakowanie pakietów Kształtowanie ruchu IP IP NAT (SNAT, DNAT) 2 3

Ebtables: Opcje jdra systemowego Iptables: Opcje jdra systemowego Na przykładzie jder serii 2.6 Most wirtualny; brctl, tunctl echo "Ustawiam interfejs eth0 w tryb PROMISCOUS" ifconfig eth0 0.0.0.0 promisc up echo "Dodaje most br0" brctl addbr br0 echo "Ustawiam parametr setfd[0] mostu br0" brctl setfd br0 0 echo "Ustawiam parametr sethello[0] mostu br0" brctl sethello br0 0 echo "Ustawiam parametr stp[off] mostu br0" brctl stp br0 off echo "Konfiguracja interfejsu mostu br0 (192.168.0.254)" ifconfig br0 192.168.0.254 netmask 255.255.255.0 up echo "Dodaje interfejs eth0 do mostu br0" brctl addif br0 eth0 for IFACE in $UML_IFACES; do echo "Tworze interfejs $IFACE jako uzytkownik root" tunctl -u root -t $IFACE > /dev/null echo "Ustawiam interfejs $IFACE w tryb PROMISCOUS" ifconfig $IFACE 0.0.0.0 promisc up echo "Dodaje interfejs $IFACE do mostu br0" brctl addif br0 $IFACE done Networking options --> 802.1d Ethernet Bridging Networking options --> 802.1d Ethernet Bridging --> Bridge: ebtables (NEW) Networking->Networking options-> Network packet filtering (replaces ipchains)-> Bridge: Netfilter Configuration 4 Networking->Networking options-> Network packet filtering (replaces ipchains)-> IP: Netfilter Configuration 5 Porty,adresy Tunelowanie usług Sterowanie ruchem wybrane aspekty Podział pasma w ramach: usług pojedynczej usługi Gospodarowanie uytkowników pasmem Iptables Znakowanie (klasyfikacja) Kolejkowanie w locie Czasowe ograniczanie ruchu Składnia: ebtables... parametry... j CEL filter Filtr ebtables General frame traversal scheme ródło: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html#section2 nat, filter Maskowanie NAT NAT statyczny NAT dynamiczny (ADSL) Detekcja zawartoci pakietów Przeszukiwanie danych Przeszukiwanie w segmencie Modyfikowanie wartoci nagłówków TTL Window Size OS Przegldarki ródło: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html#section2 Wskazanie tabeli: nat ebtables t broute... ebtables t nat... filter nat Tabele: broute dec. routing czy bridging nat translacja adresów filter podstawowe reguły filtrowania 6 7

Składnia: iptables... parametry... j CEL iptables... komendy... CEL: ACCEPT LOG DROP lub łacuch definiowany Filtr iptables Reguły s podawane jedna po drugiej i s przetwarzane sekwencyjnie w ramach łacuchów Reguły odnosz si do rónych tablic (mangle, nat, filter) Łacuchy definiowane mog by zagniedane Łacuchy predefiniowane okrelaj cel A DNS Cache Ebtables - przykład ISP most Subnet 192.168.1.0 Router 192.168.1.1 192.168.1.52 B $ ebtables -P FORWARD DROP $ ebtables -A FORWARD -p 0x806 -j ACCEPT $ ebtables -A FORWARD -p 0x800 --ip-dst 192.168.1.52 --ip-proto tcp --ip-sport 80 -j ACCEPT $ ebtables -A FORWARD -p 0x800 --ip-src 192.168.1.52 --ip-proto tcp --ip-dport 80 -j ACCEPT $ ebtables -A FORWARD -p 0x800 --ip-src 192.168.1.52 --ip-dst 192.168.1.1 --ip-proto udp --ip-dport 53 -j ACCEPT $ ebtables -A FORWARD -p 0x800 --ip-src 192.168.1.1 --ip-dst 192.168.1.52 --ip-proto udp --ip-sport 53 -j ACCEPT Wskazanie tabeli: iptables t mangle... iptables t nat... Tabele: mangle zmiana zawartoci pakietów nat translacja adresów sieciowych filter podstawowe reguły filtrowania 8 -p = protocol np. 0x806 ARP 0x800 IP 9 Tworzenie reguł - łacuchy Iptables - Moduły iptables A ŁACUCH... parametry... j CEL Operacje na łacuchach: -A --append - dodaj na kocu łacucha -D --delete - usu reguł z łacucha -I --insert - wstaw reguł do łacucha na konkretne miejsce -R --replace - zamie tre wybranej reguły w łacuchu -L --list - wywietl zawarto łacucha -F --flush - wyczy (skasuj) zawarto łacucha -Z --zero - wyzeruj liczniki pakietów i bajtów -N --new-chain - utwórz nowy łacuch -X --delete-chain - usu łacuch uytkownika -P --policy - ustaw polityk dla łacucha Kierunek przetwarzania reguł...... ŁCUCH = PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING 10 Włczanie modułów opcja m <nazwa_modułu>.: iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT Przykładowe moduły: iprange - okrelanie zakresu adresów IP mark - odczytanie ustawionego znacznika dla danego pakietu conmark - ustawianie 32 bitowego znacznika pakietu physdev - wskazanie interfejsu (zastosowanie: mosty wirtualne) pkttype - typ pakietu: kategoria ruchu: broadcast, multicat, unicast state - okrelanie stanu połczenia conntrack -ledzenie stanu połczenia, do którego naley dany pakiet time - okrelanie przedziału czasowego, w którym obowizuje dana reguła ttl - odczytanie zawartoci pola TTL w nagłówku limit - wskazanie limitu liczby pakietów/s zastosowanie: rejestrowanie zdarze mac - wskazanie adresu MAC icmp - podanie typu komunikatu protokołu ICMP dstlimit - okrelanie limitów (max liczby) pakietów dla danego IP 11

Iptables Moduły dodatkowe: Patch-o-matic-ng Patch-o-matic-ng = Patch-o-matic New Generation - repozytorium dodatkowych modułów Repozytoria: submitted repository CLASSIFY CLUSTERIP CONNMARK SAME addrtype comment hashlimit nf-log ownercmd raw realm sctp tcp-window-tracking pending repository conntrack-acct base repository HOPLIMIT IPV4OPTSSTRIP NETLINK NETMAP REJECT TTL connlimit expire fuzzy iprange ipv4options nth osf psd quota random set time u32 extra repository ACCOUNT IPMARK ROUTE TARPIT TCPLAG TRACE ULOG XOR account condition connbytes connrate conntrack-event-api conntrack_locking conntrack_nonat ctnetlink cuseeme-nat directx8-conntrack-nat dropped-table eggdrop-conntrack geoip goto h323-conntrack-nat ip_queue_vwmark ipp2p ipsec-01-outputhooks psec-02-input-hooks ipsec-03-policy-lookup ipsec-04-policy-checks layer2-hooks mms-conntrack-nat msnp-conntrack-nat nat-reservations nf_conntrack nfnetlink owner-socketlookup owner-supgids policy pptpconntrack-nat quake3-conntrack-nat rpc rsh rtsp-conntrack sip-conntrack-nat string talk-conntrack-nat tproxy unclean obsolete repository MARK-operations dstlimit mport netfilter-docbook pool Iptables Moduły dodatkowe: Patch-o-matic-ng Przykładowy moduł: CLASSIFY Repozytorium patch-o-matic submitted repository CLASSIFY - iptables CLASSIFY target Author: Patrick McHardy <kaber@trash.net> Status: Part of 2.6.x mainline This patch adds support for the CLASSIFY target which sets skb->priority. Some qdiscs can use this value for classification, among these are - atm - cbq - dsmark - pfifo_fast - htb - prio This target is only valid in the POST_ROUTING chain of the mangle table. Usage: iptables -t mangle -A POSTROUTING.. -j CLASSIFY --set-class MAJOR:MINOR 12 13 Tunelowanie usług Wybór interfejsu wejsciowego / wyjciowego (iptables) zamiast i / -o: iptables... -i interfejs... j CEL iptables... -o interfejs... j CEL (iptables/ebtables): wskazanie physdev-in / physdev-out (moduł physdev) iptables... -m physdev -physdev-in interfejs... j CEL iptables... -m physdev -physdev-out interfejs... j CEL Wybór wg adresu IP iptables... -s src_ip -d dst_ip... j CEL Wybór rodzaju portu (pojedyncze, zakres) iptables... --sport [--dport] numer_portu:zakres... j CEL Wybór rodzaju protokołu iptables... -p TCP UDP ICMP ALL... j CEL Przekierowania na inny port... -t nat -A PREROUTING... --dport nr_portu_docelowego -j REDIRECT --to-port nr_portu na inny port i / lub inny host (P)... -t nat -A PREROUTING... --dport nr_portu_docelowego -j DNAT --to-port adres_ip:nr_portu NAT ródłowy (SNAT Source NAT) statyczny Modyfikacja: Mechanizm NAT ## Zmieñ adres ródłowy na 1.2.3.4. # iptables -t nat -A POSTROUTING -o eth0 -j SNAT to-source 1.2.3.4 ## Zmieñ adres ródłowy na 1.2.3.4, 1.2.3.5 lub 1.2.3.6 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 1.2.3.4-1.2.3.6 ## Zmieñ adresy ródłowy na 1.2.3.4, porty z zakresu 1-1023 # iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 1.2.3.4:1-1023 dynamiczny np. ADSL ## Maskaraduj wszystko wychodzce przez ppp0. # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE NAT docelowy (DNAT Destination NAT) ## Zmieñ adresy docelowe na 5.6.7.8 # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8 ## Zmieñ adresy docelowe 5.6.7.8, 5.6.7.9 lub 5.6.7.10 # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10 ## Zmieñ adresy docelowe ruchu WWW na 5.6.7.8, port 8080 # iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080 14 15

Modyfikacja: zmiana wartoci TTL Sterowanie połczeniami Detekcja połcze dla pakietów o wybranej wartoci parametru TTL ( opcja jdra TTL match support )... m ttl ttl 128... -j LOG / ACCEPT / DROP Zmiana wartoci parametru TTL (opcja jdra TTL target support dostpna po aktualizacji Patch-o-matic) Ustalanie okrelonej wartoci... -t mangle -A PREROUTING... -j TTL --ttl-set warto Zwikszanie o okrelon warto... -t mangle -A PREROUTING... -j TTL --ttl-inc warto Zmniejszanie o okrelon warto... -t mangle -A PREROUTING... -j TTL --ttl-dec warto Tablica filter Tablica mangle Moduł conntrack -ledzenie stanu połczenia do którego naley pakiet: Stan NEW - nowe Stan ESTABLISHED - ustanowione Stan RELATED zwizane z ju istniejcymi np. ftp Stan INVALID - błdne iptables -A INPUT p tcp -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT Okrelanie stanu połcze TCP na podstawie wartoci flag opcja --tcpflags: iptables... -p tcp --tcp-flags <zakres_flag> <sprawdzane_flagi> -j DROP <zakres_flag> - okrela jakie flagi maj by sprawdzane <sprawdzane_flagi> - jakie flagi (bity) powinny by ustawione Np.: iptables... -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN,ACK -j DROP 16 17 Znakowanie pakietów kształtowanie ruchu Ustawianie znacznika poszczególnych pakietów... -t mangle -A PREROUTING... -j MARK --set-mark znacznik Wybór pakietów oznaczonych znacznikiem... -m mark --mark znacznik -j LOG / ACCEPT / DROP Nastpnie wg ustalonych znaczników mona uy innych narzdzi np. tc do tworzenia kolejek pakietów: Podział pasma (algorytmy): HTB - pomidzy hosty (równie src & dst IP,porty) SFQ - pomidzy usługi Znakowanie pakietów kształtowanie ruchu Tworzenie kolejek na poszczególnych interfejsach # INICJALIZACJA # Tworzymy główn kolejk 1:0 na interfejsie: eth0 tc qdisc add dev eth0 root handle 1:0 htb default 3 512 kbit # KOLEJKI # W kolejce tej tworzymy główn klas 1:1 o przepustowoci 9Mbit: tc class add dev eth0 parent 1:0 classid 1:1 htb rate 9000kbit ceil 9000kbit # Tworzymy podklasy i okrelamy ich przepustowoci: tc class add dev eth0 parent 1:1 classid 1:2 htb rate 480kbit ceil 480kbit tc class add dev eth0 parent 1:1 classid 1:3 htb rate 8500kbit ceil 8500kbit # Teraz tworzymy właciwe podklasy: tc class add dev eth0 parent 1:2 classid 1:4 htb rate 120kbit ceil 240kbit prio 1 tc class add dev eth0 parent 1:2 classid 1:5 htb rate 120kbit ceil 240kbit prio 1 tc class add dev eth0 parent 1:2 classid 1:6 htb rate 120kbit ceil 240kbit prio 2 tc class add dev eth0 parent 1:2 classid 1:7 htb rate 120kbit ceil 480kbit prio 2 # FILTRY HTB # Klasyfikujemy pakiety według ustawionego znacznika -> reguły iptables: tc filter add dev eth0 protocol ip parent 1:0 handle 20 fw flowid 1:2 tc filter add dev eth0 protocol ip parent 1:0 handle 21 fw flowid 1:3 tc filter add dev eth0 protocol ip parent 1:0 handle 22 fw flowid 1:4 tc filter add dev eth0 protocol ip parent 1:0 handle 23 fw flowid 1:5 480 znaczniki # FILTRY SFQ tc qdisc add dev eth1 parent 1:4 handle 20 sfq perturb 10 ISP Ruch Internet 1:0 1:1 10 Mb/s handle 1:2 1:3 1:4 1:5 1:6 1:7 Klasy 9 Mb/s Ruch lokalny 8,5 18 rate <= ceil rate co najmniej ceil co najwyej Iptables + HTB + SFQ + tc 19

Połczenia p2p - detekcja Ochrona przed skanowaniem Powody Silne obcianie sieci: rywalizacja w dostpie pomidzy stacjami rywalizacja pomidzy usługami na tej samej stacji Odmienny charakter ruchu Brak kontroli w oparciu o znane porty Rozwizania Konieczno implementacji na wszystkich stacjach!!! Detekcja połcze w oparciu o zawarto ładunku pakietu: moduł string... -m string string kazaa -j LOG / ACCEPT / DROP moduł regexp... -m regexp -regexp /wyraenie/opcje [--begin-offset przesunicie] [--end-offset przesunicie] -j LOG / ACCEPT / DROP przesunicie wskazuje zakres poszukiwania wzorca /wyraenie/opcje wzorzec poszukiwania np. `/GNUTELLA/[0..9]` Skanowanie ukryte opiera si na wysyłanie pakietów z ustawionymi flagami niezgodnymi z porzdkiem typowym dla TCP. Wówczas skanowany system odpowie wysyłajc pakiet z flag RST (reset). echo " Blokada prób skanowania TCP-connect (pakiety z ustawionym bitem syn)" iptables -A scan_chain -p tcp --syn -j DROP echo " Blokada prób skanowania TCP-SYN (pakiety z ustawionym tylko bitem SYN)" iptables -A scan_chain -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -j DROP echo " Blokada prób skanowania TCP-FIN (pakiety z ustawionym tylko bitem FIN)" iptables -A scan_chain -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP echo " Blokada prób skanowania TCP-ACK (pakiety z ustawionym tylko bitem ACK)" iptables -A scan_chain -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP echo " Blokada prób skanowania TCP-NULL (pakiety bez zadnej flagi)" iptables -A scan_chain -m conntrack --ctstate INVALID -p tcp --tcp-flags! SYN,RST,ACK,FIN,URG,PSH SYN,RST,ACK,FIN,URG,PSH -j DROP echo " Blokada prób skanowania "Christmas Tree" TCP-XMAS (pakiety z ustawionymi bitami FIN,URG,PSH)" iptables -A scan_chain -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP 20 21 Ochrona przed atakami DOS (Denial of Service) Łacuchy zagniedone echo " -- Blokada przed atakiem DOS - Ping of Death" iptables -A ŁACUCH -p ICMP --icmp-type echo-request -m length --length 60:65535 -j ACCEPT FORWARD I Reguła: iptables A FORWARD... j Łacuch_A echo " -- Blokada przed atakiem DOS - Teardrop" iptables -A ŁACUCH -p UDP -f -j DROP Łacuch_A Łacuch_B Reguła: iptables A Łacuch_A... j Łacuch_B Reguła: iptables A Łacuch_B... j Łacuch_C echo " -- Blokada przed atakiem DOS - SYN-flood" iptables -A ŁACUCH -p TCP --syn -m iplimit --iplimit-above 9 -j DROP Łacuch_C Reguła: iptables A Łacuch_C... j ACCEPT DROP LOG echo " -- Blokada przed atakiem DOS - Smurf" iptables -A ŁACUCH -m pkttype --pkt-type broadcast -j DROP iptables -A ŁACUCH -p ICMP --icmp-type echo-request -m pkttype --pkttype broadcast -j DROP iptables -A ŁACUCH -p ICMP --icmp-type echo-request -m limit --limit 3/s -j ACCEPT echo " -- Blokada przed atakiem DOS - UDP-flood (Pepsi)" iptables -A ŁACUCH -p UDP --dport 7 -j DROP iptables -A ŁACUCH -p UDP --dport 19 -j DROP echo " -- Blokada przed atakiem DOS - SMBnuke" iptables -A ŁACUCH -p UDP --dport 135:139 -j DROP iptables -A ŁACUCH -p TCP --dport 135:139 -j DROP Reguła... Łacuch_N Łacuch_N.1 Reguła 1 II III Reguła: iptables A FORWARD... j ACCEPT DROP LOG Reguła 1: iptables A Łacuch_N.1... j ACCEPT DROP LOG Reguła 2: iptables A Łacuch_N.1... j ACCEPT DROP LOG echo " -- Blokada przed atakiem DOS - Connection-flood" iptables -A ŁACUCH -p TCP --syn -m iplimit --iplimit-above 3 -j DROP Reguła 2 echo " -- Blokada przed atakiem DOS - Fraggle" iptables -A ŁACUCH -p UDP -m pkttype --pkt-type broadcast -j DROP iptables -A ŁACUCH -p UDP -m limit --limit 3/s -j ACCEPT echo " -- Blokada przed atakiem DOS - Jolt" iptables -A ŁACUCH -p ICMP -f -j DROP Łacuch_N+1 Przykładowy przebieg Kolejno przegldania reguł Pozwalaj grupowa okrelone reguły w logiczn cz. W ujciu całociowym problem bardzo złoony OPTYMALIZACJA! 22 23

Intel Express 210T Stackable Hub Change H ub Speed 10Base-T Colision 100Base-TX Managed Status 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Intel Express 210T Stackable Hub Change Hub S peed 10Base-T Collision 100Base-TX Managed Status 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Class I Class I Power L eft(green) Solid = Link Blink = Activ ity R ight(yelow ) Solid = Disa bled Blink = Wro ng speed Power Lef t( Green) S olid = Link B link = A ctivity Right( Y elow ) S olid = Disabled B link = Wrong s peed Domena dominder.networklinux.net www WWW w w w. 10.0.0.250 10.0.0.111 10.0.0.100 mail. pop3. smtp. MAIL Przekanik poczty gate. SSH / VPN usługi dns DNS wew. ns. 10.0.0.251 dostpowy PRZYKŁAD: sie ADSL (256/128 kbps) a) Struktura Logiczna b) Struktura Fizyczna Brama internetowa PSTN ADSL 10.0.0.2 10.0.0.254 sim. SIM Komputer fizyczny 10.0.0.10 uml01. WS_01 Wirtualna stacja robocza LDAP zewn. ns. 10.0.0.248 10.0.0.11 uml02. WS_02 Wirtualna stacja robocza usług katalogowych Komputer fizyczny COM tos. 10.0.0.154 Strefa DMZ Sie 10.0.0.0 /8 SIM PSTN ADSL Router ADSL model AR41 4 Port Switch 4 Port Switch COM PRZYKŁAD: sie ADSL # PODSIEC -> Internet/DMZ $ipt -A FORWARD -i br1 -o br0 -j ruch_subnet-i_dmz $ipt -A ruch_subnet-i_dmz -d 10.0.0.0/8 -j ruch_do_dmz $ipt -A ruch_subnet-i_dmz -m physdev --physdev-out eth0 -d! 10.0.0.0/8 -j ruch_do_internet # Internet/DMZ -> PODSIEC $ipt -A FORWARD -i br0 -o br1 -m state --state ESTABLISHED,RELATED -j ruch_i_dmz-subnet $ipt -A ruch_i_dmz-subnet -s 10.0.0.0/8 -j ruch_z_dmz $ipt -A ruch_i_dmz-subnet -m physdev --physdev-in eth0 -s! 10.0.0.0/8 -j ruch_z_internet # PODSIEC -> PODSIEC $ipt -A FORWARD -i br1 -o br1 -s 192.168.0.0/24 -j ruch_subnet-subnet $ipt -A ruch_subnet-subnet -j subnet # Internet/DMZ -> Internet/DMZ $ipt -A FORWARD -i br0 -o br0 -j ruch_i_dmz-i_dmz $ipt -A ruch_i_dmz-i_dmz -j dmz br1 br0 br1 br0 eth0 br1 br0 Netfilter SIM Komputer fizyczny eth1 br1 br0 usługi dns Kontroler domeny usług katalogowych sim. 192.168.0.254 Lokalne stacje robocze - komputery fizyczne Podsie chroniona Sie 192.168.0.0 /24 SEM TER TOS Łacuch FORWARD Kolejno przetwarzania reguł w łacuchu FORWARD SEM TER TOS Ruch_SUBNET-I_DMZ Ruch_I_DMZ- SUBNET Ruch_SUBNET- SUBNET Ruch_I_DMZ- I_DMZ DNS wew. PDC LDAP wew. sem. 192.168.0.1 ter. tos. 192.168.0.2 192.168.0.3 ruch_do_dmz ruch_z_dmz subnet dmz dns. pdc. 192.168.0.251 192.168.0.252 ldap. 192.168.0.248 ruch_do_internet ruch_z_internet 24 25 Tunelowanie usług - np. WWW - transparent proxy Tunelowanie usług - np. WWW - transparent proxy echo "<<< Ruch [http i https]" echo " + komunikacja z serwerem WWW w DMZ" echo " - zapytania do serwera 80,443" iptables -A ruch_do_dmz -p TCP -d 10.0.0.250 --dport 80 -j ACCEPT iptables -A ruch_do_dmz -p TCP -d 10.0.0.250 --dport 443 -j ACCEPT iptables -A dmz -p TCP -d 10.0.0.250 --dport 80 -j ACCEPT iptables -A dmz -p TCP -d 10.0.0.250 --dport 443 -j ACCEPT echo " - odpowiedzi z serwera 80,443" iptables -A ruch_z_dmz -p TCP -s 10.0.0.250 --sport 80 -j ACCEPT iptables -A ruch_z_dmz -p TCP -s 10.0.0.250 --sport 443 -j ACCEPT iptables -A dmz -p TCP -s 10.0.0.250 --sport 80 -j ACCEPT iptables -A dmz -p TCP -s 10.0.0.250 --sport 443 -j ACCEPT Przykład realizacji funkcji transparent PROXY na poziomie filtra pakietów współpracujcego z serwerem Squid. Realizacja odnosi si wyłcznie do ruchu http (port 80) echo "<<< Ruch [https]" echo " + komunikacja z serwerami w sieci Internet z podsieci" echo " - zapytania z podsieci [N,E,R]" iptables -A ruch_do_internet -p TCP --dport 443 -j ACCEPT echo " - zwrotne do podsieci [E,R]" iptables -A ruch_z_internet -p TCP --sport 443 -m state --state ESTABLISHED,RELATED -j ACCEPT Ruch Wychodzcy z zapory echo "<<< Przekieruj zadania na porcie 80 do Squid a" iptables -t nat -A PREROUTING -p TCP -d! 10.0.0.250 -m physdev --physdev-in eth1 --dport 80 -j DNAT --to 192.168.0.254:8080 echo "<<< Ruch [http]" echo " + Ruch z/do LAN - transparent Squid PROXY" echo " - Squid odpytuje siec Internet" iptables -A OUTPUT -p TCP --dport 80 -m physdev --physdev-out eth0 -j ACCEPT echo " - odpowiedzi zwrotne od Squid do LAN" iptables -A OUTPUT -p TCP --sport 8080 -m physdev --physdev-out eth1 -m state state ESTABLISHED,RELATED -j ACCEPT Zawarto nagłówka HTTP wysyłanego przez przegldark z podsieci (dane odebrane przez przykładowy serwer http://www.ericgiguere.com/ Ale Ruch przychodzcy do zapory echo "- Dopusc zapytania z LAN do Squida" iptables -A INPUT -p TCP -m physdev --physdev-in eth1 --dport 8080 -j ACCEPT echo "- Dopusc odpowiedzi zwrotne z Internet do Squida [E,R] iptables -A INPUT -p TCP -m physdev --physdev-in eth0 --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT TTL=64 (63) 26 27

Podsumowanie Pytania? Iptables / Ebtables pozwalaj filtrowa ruch na poziomie dwóch warstw modelu ISO/OSI warstwy 2 (data link) i warstwy 3 (network). Pierwotnie oba projekty były rozłczne. Dzi odpowiadajcy im kod jest standardowo implementowany jako cz jder systemu Linux (wersje 2.6) Składnia tworzenia reguł oraz sama budowa filtrów jest bardzo zbliona. Budowa filtra pozwala na realizacj wybranych scenariuszy macierz ruchu Moliwo filtrowania stanowego detekcja stanu dla TCP i UDP (czas) Moliwo realizacji funkcji NAT: rozrónienie SNAT NAT ródłowy, oraz DNAT NAT docelowy Moliwo grupowania reguł tworzc relacje wzajemnych odwoła, łacuchy zagniedone Dzikuj za uwag! Dominik Derela dominder@wp.pl Silna dekompozycja problemów moliwo dostosowywania filtra do własnych potrzeb Potrzeba automatyzacji dua złoono reguł Biznes: wymaga powyszych oraz prostoty, szybkoci wprowadzania zmian, natychmiastowej gotowoci do pracy!!! 28