IP & Filtering philip@pub.telenet.be
Inleiding Wie ben ik en waar hou ik me mee bezig? Un*x hacker, uitgesproken voorkeur voor BSD varianten Paranoide security freak Ervaring als systems en network administrator Filosofische overtuigingen over IP en Filtering Packet filters only Gloeiende hekel aan application proxies! Delicate balans tussen security en usability Secure by Default, inclusive policies vs. exclusive policies 1
Wat gaan we vandaag doen? Presentatie in twee delen: Het IP Protocol Packets & addressing Routing Filtering Gevaar herkennen Gepast reageren Logs analyseren Please! Ask questions as we go... 2
Het IP Protocol Packets & addressing Packet Header Source address Destination address Packet body ( datagram ) Data Grootte van packets ( MTU ) hangt af van de transport-layer. Ethernet heeft een MTU van 1500. Routing De weg van een packet van A naar B via C en D Niet alle packets in een stream moeten dezelfde route nemen 3
IP Packet Header De Header van een packet beschrijft de inhoud ervan, en bepaalt waar het naartoe moet. Source address (zender): 32 bits Destination address (ontvanger): 32 bits Protocol number: TCP (6), UDP (17), ICMP (0), enz... TTL: Time To Live Extra informatie IP adressen IPv4 32 bit adressen 4 294 967 296 verschillende adressen theoretisch mogelijk Meestal als dotted quads geschreven: aaa.bbb.ccc.ddd Het netmask houdt het network en host gedeelte uit elkaar IPv6 128 bit adressen Een IP voor elke atoom 4
IP Packet Body Een IP packet bevat een encapsulated packet waarvan het type door het protocol number in de header wordt aangegeven. TCP: Transmission Control Protocol Source port: 16 bits Destination port: 16 bits Flags: ACK, FIN, PSH, RST, SYN, URG Sequence number Acknowledgement number Betrouwbaar protocol. UDP: Unreliable (user) Datagram Protocol Source port: 16 bits Destination port: 16 bits Geen flags, geen sequence/acknowledgement numbers Onbetrouwbaar protocol. 5
IP Packet Body (2) Een IP packet bevat een encapsulated packet waarvan het type door het protocol number in de header wordt aangegeven. ICMP: Internet Control Message Protocol Geen source/destination ports Message type & code 0: echo reply 3: destination unreachable 4: source quench 8: echo request 11: time exceeded enz... Minder courante protocols zijn, onder meer, GRE, IGMP, ESP en RDP. Je kunt ongeveer alles in een IP packet proppen, als je maar iets hebt om het aan te nemen. 6
TCP & UDP TCP en UDP hebben één ding gemeen (buiten het feit dat het allebei packets zijn die in IP packets zitten): source en destination ports. Zij zeggen tegen de host voor welke dienst de packets dienen. 16 bits: 65 535 verschillende poorten Geen fysische poorten Laten toe dat meerdere diensten simultaan op een host draaien Well-known of privileged ports: 1024 7
TCP Aardigheidjes Een TCP connectie komt pas tot stand na een three-way handshake : Client stuurt een packet met een SYN flag Server antwoordt met SYN ACK set Client zegt ACK Alle verdere packets in de sessie hebben een ACK flag Je kunt een TCP connectie op twee manieren afsluiten: Client of server stuurt een packet met een RST flag Client of server stuurt een packet met een FIN flag, andere kant antwoordt met FIN ACK Een hangende connectie kan tot vijf dagen actief blijven 8
Routing IP packets hebben een destination address De routers op weg naar die bestemming beslissen hoe packet reist Een router weet: Waar packets voor bepaalde netwerken naartoe moeten (netmask) Naar waar alle andere packets moeten (default route) Iedere machine heeft een routing table Zelfs als het geen router is Al heeft hij slechts één interface Een router is gewoon een machine met meerdere interfaces en een langere en meer complexe routing table. 9
Routing Protocols Routing tables kunnen statisch of dynamisch zijn Statische routes zijn op de router zelf geconfigureerd, op basis van zijn plaats in het netwerk, en zijn links naar andere routers. Dynamische routes worden automatisch bepaald aan de hand van bepaalde protocols: BGP: Border Gateway Protocol OSPF: Open Shortest Path First RIP: Routing Information Protocol 10
Any Questions? 11
Filtering Er bestaan twee soorten firewalls: Packet Filter Filtert op basis van packet headers Houdt zich bijna nooit bezig met packet bodies Zeer goede performantie Deze gaan we in detail bespreken Application Proxy Gedraagt zich als client en server in een bepaald protocol Filtert op basis van packet bodies Traag als een slack met rugklachten Potentiële privacy problemen Hier gaan we het niet verder over hebben Deze willen we liefst van onze planeet verbannen 12
Packet Filters Simpele Filter (ACL): Selectieve router Source en destination adressen en ports Allow of Deny Lange rulesets, replies moeten expliciet binnengelaten worden Problemen met last -protocols (FTP, IRC,... ) Minder Simpele Filter: Kijkt ook naar uitgaande verbindingen Laat reply packets automatisch binnen Kortere ruleset Nog steeds problemen met last -protocols 13
Stateful Inspection Een stateful firewall maakt het leven veel eenvoudiger. Weet hoe TCP en UDP werken Begrijpt ook ICMP Kent de basics van bepaalde last -protocols Simpele ruleset Zeer secure Extreem flexibel IP Filter Voorbeeldje: pass out quick on ed0 proto tcp/udp from any to any keep state pass out quick on ed0 proto icmp from any to any keep state Hetzelfde met Netfilter/IPTables: iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 14
Gevaar Herkennen Het internet is een gevaarlijke plaats, dat weet iedereen, maar hoe herken je nu een gevaarlijk packet en een ongevaarlijk packet uit elkaar? Alles waar je niet om hebt gevraagd is gevaarlijk Antwoorden op wat je gevraagd hebt zijn in principe ongevaarlijk Late antwoorden kunnen mogelijk gevaarlijk zijn Een application proxy gaat dieper in op punt 2, en kijkt in naar de data in een packet om te bepalen of het aldaniet gevaarlijk is. Dit is een grove schending van de privacy van de gebruiker, en is simply not done. In principe zal een firewall altijd default to deny zijn: gevraagd hebt zijn gevaarlijk. dingen die je niet 15
Gepast Reageren Stealth bestaat niet. Packets stil droppen haalt niets uit Ongevraagde TCP connecties vermoord je met een RST UDP connecties beantwoord je met een ICMP 3:3 ( port unreachable ) Voorbeeldjes: IP Filter: block return-rst in log on ed0 proto tcp from any to any keep state block return-icmp in log on ed0 proto udp from any to any keep state Netfilter/IPTables: -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset -A INPUT -p udp -i eth0 -j REJECT --reject-with icmp-port-unreachable 16
Gepast Reageren (2) Reageer ook gepast op ICMP. Stomweg blokkeren is geen oplossing! Bepaal welke types je wil doorlaten en laat ze expliciet door Blokkeer de rest Be sensible! Rulesets van een kilometer zijn zelden nuttig en vertragen de boel. Laat enkel door wat je nodig hebt, blokkeer de rest. Denk even goed na over wat je nodig hebt... Het is zeker geen goed idee om de servers van Telenet te blokkeren: De DHCP-server moet je kunnen contacteren voor een nieuwe lease Je wil ook graag gebruik maken van de nameservers van Telenet Test je regels voor je ze in gebruik neemt in een controlled environment. Gebruik ipftest(1) als je IP Filter gebruikt. Log alles tijdens het testen, en vergeet je pass-rules niet te testen. 17
Logs Analyseren Kijk je logs regelmatig na op patterns Stel een periodic(8) job in om elke dag je log te mailen Hou in t oog welke rules veel aandacht trekken Graaf onverwachte log-entries uit zie hoe ze tot stand kwamen Het is niet nodig om iedere port-probe naar abuse@telenet.be te mailen, maar bepaalde patterns zijn mogelijk wel een abuse waardig. Be sensible! 18
A Quick Summary... 19
Summary IP Header: Source en destination adres Routers kijken naar destination adres om de volgende hop te bepalen Mogelijke reply packets worden naar het source adres gestuurd TCP/UDP/ICMP: De data in een IP packet is een encapsulated packet met een header en een body TCP Header: Source & destination port Flags Sequence & acknowledgement numbers UDP Header: Source & destination port Geen flags, geen sequence/acknowledgement numbers ICMP Header: Geen source & destination port Message type & message code 20
Summary (2) Firewalls: Packet filters Selectieve router Stateful inspection Good choice Application Proxies Client & server Complex, traag, inflexible Bad choice 21
The End... nog vragen of opmerkingen...? Deze presentatie werd (uiteraard) gemaakt met L A T E X. 2002 Philip Paeps Pandora User Base