IPTABLES från grunden. Anders Sikvall, Sommarhack 2015



Relevanta dokument
Iptables. Linuxadministration I 1DV417. Tuesday, February 19, 13

Brandväggar. Brandväggar. Netlter/iptables. Grupp 13 Andreas Önnebring Markus Månsson 21 februari 2008

Unix-Säkerhet. Övningsprov. Frågorna skall besvaras på ett sådant sätt att en insatt kollega skall känna sig informerad.

Hur du gör din Linuxdator säkrare

Säkerhet genom simpel nätverksutrustning. Högskoleingenjörsexamensarbete Fredrik Folke

Linuxadministration I 1DV417 - Laboration 5 Brandvägg och DNS. Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 19 februari 2013

3. Steg för steg. Kör IPv6 på riktigt med FortiGate! Principen är enkel:

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

5 Internet, TCP/IP och Tillämpningar

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Tentamen i Datorkommunikation den 10 mars 2014

5 Internet, TCP/IP och Applikationer

Linux Netfilter/IPTables grunder

Fjärradministration av Iptables Management Server

Att Säkra Internet Backbone

TCP/IP och Internetadressering

5. Internet, TCP/IP tillämpningar och säkerhet

FlexiTid Extern webbokning. Copyright Datatal AB. Med ensamrätt. Copyright 2013 Datatal AB. All rights reserved.

Switch- och WAN- teknik. F7: ACL och Teleworker Services

Hjälpprotokoll till IP

Övningar - Datorkommunikation

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Denial of Services attacker. en översikt

Hjälp! Det fungerar inte.

2D1395, Datasäkerhet. GF3 Paketfiltrering

IPv6 Jonas Aronsson 3TEa

DIG IN TO Administration av nätverk- och serverutrustning

ZYXEL PRESTIGE 660H-61 INSTALLATIONSMANUAL

SIP och NAT, Brandväggar och STUN

Palo Alto Networks. 10 saker din brandvägg måste klara av (För annars är det inte en riktig brandvägg)

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

Telia Connect för Windows

adressöversättning. Adressöversättning bryter mot principen att kommunicera end-to-end. introduktion till ip 93 Testa själv

IPv6 och säkerhet.

LABORATION 2 DNS. Laboranter: Operativsystem 1 HT12. Martin Andersson. Utskriftsdatum:

F5 Exchange Elektronikcentrum i Svängsta Utbildning AB

Föreläsning 3. Datorkunskap 50p Marcus Weiderstål Bromma Gymnasium

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Att sätta upp trådlöst med Cisco Controller 2100 series och Cisco AP 1200 series

Uppdatera Easy Planning till SQL

Datakommunika,on på Internet

Rättningstiden är i normalfall 15 arbetsdagar och resultat anslås sedan i Ladok inom en vecka (under förutsättning att inget oförutsett inträffar).

5. Internet, TCP/IP och Applikationer

DIG IN TO Nätverksteknologier

HP ProCurve SKA 3.1 Certifiering

Snabbguide IP-kamera Kom igång med din kamera

MRD Industriell 3G-Router KI00283C

Ethernet kommunikation med hjälp av optionskortet OPT-CI

Instuderingsfrågor ETS052 Datorkommuniktion

Uppgift: Design and evaluation of a TCP proxy which provides secure tunneling to another TCP proxy.

Larmsändare sip86. Alla inställningar konfigureras enkelt upp med Windowsprogramvaran IP- Scanner. 2 Larmsändare sip22

Grundläggande datavetenskap, 4p

Att installera och använda nmap

Lathund Blanketthotell Komma igång

Vilka är vi. Magnus Ahltorp KTHLAN Ragnar Sundblad KTHLAN & NADA

Konfiguration av LUPP synkronisering

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

EBITS Arbetsgruppen för Energibranschens Reviderad Informationssäkerhet

Teknisk testning för otekniska testare

DIG IN TO. Nätverksadministration

Lösningar till tentan i ETS052 Datorkommunikation

Data Sheet - Secure Remote Access

Övning 1: Skapa virtuell maskin för utveckling.

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Fjärruppkoppling med MRD Industriell 3G-Router KI00282A

Skydda ditt nät och dina kunder från näthoten. Integritet, Spårbarhet och Tillgänglighet

DIG IN TO Nätverkssäkerhet

Felsökningsguide för Windows XP

1 Slutanvändarguide för installation. 1.1 Installera SmartDashBoard och SmartLog (Smart Console R77.20)

Internetprotokollen. Maria Kihl

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

Brandväggsarkitekturer

Workshop IBA internet based assessment

Brandväggs-lösningar

Installation/uppgradering av Agfa IMPAX program för remittenter

Totalt antal poäng på tentamen: 50 För att få respektive betyg krävs: U<20, 3>=20, 4>=30, 5>=40

Compose Connect. Hosted Exchange

Vanliga frågor och svar

Snabbguide mini-router.

Konfiguration av synkronisering fo r MSB RIB Lupp

Manual - Phonera Online Backup

Förebyggande Råd från Sveriges IT-incidentcentrum

Föreläsning 5: ARP (hur hitta MAC-adress) IPv4, IPv6 Transportprotokoll (TCP) Jens A Andersson

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

Malmqvist, Daniel. Daniel Verhoeff Skickat: den 2 juni :22 Till: Från: Malmqvist, Daniel Ämne: RE: Brana Supporten

Nätsäkerhetsverktyg utöver kryptobaserade metoder

Kurs: Windowsadministration II, 1DV424 Datum: Förberedelseuppgift

Användarhandledning. edwise Webbläsarinställningar

Hur BitTorrent fungerar

Grattis till ett bra köp!

Internetprotokollen. Maria Kihl

EBITS Totalförsvarets Forskningsinstitut David Lindahl Erik Westring

Filbeskrivningar Eller på särskild CD skiva

Vad finns i paketet. Detta bör finnas i paketet: Ett trådlöst modem, E5 Ett batteri Denna manual samt säkerhetsinformation En USB-kabel En nätadapter

Kapitel 4 Arkivmenyn Innehåll

Tentamen CDT102 Datakommunikation i nätverk I 7,5hp

Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009

Varför ska vi införa IPv6 och hur gjorde PTS?

Transkript:

IPTABLES från grunden Anders Sikvall, Sommarhack 2015 1

Linux brandvägg Brandväggen kallas netfilter Den är inbyggd och har funnits länge i kernel Alltså inte en fristående applikation Den manipuleras med ipfwadm ipchains iptables ufw 2

ipfwadm Äldsta verktyget för att styra netfilter Inte stateful - kan inte hantera Avancerad firewalling svårare Paket som är relaterade andra förbindelser Inte lätt med forwarding och routing Ganska begränsad Ger ändå hyggligt skydd för de flesta 3

ipchains Tog över från ipfwadm när den ej räckte Inte heller stateful Kan göra avancerade routes Har accounting och QoS-möjligheter Loggning till syslog Klarar NAT och MASQUERADE 4

iptables Nya delar i netfilter i 2.4 kernel krävde bättre verktyg Allt som ipchains har men mycket mer Kan fatta beslut baserat på saker som antal paket per minut Kan sätta upp komplicerade kedjor av regler med hopp baserat på tidigare händelser Effektiv pre-routing och post-routing Kan tagga paket med särskilda tags för att senare relatera dem till anda paket Massor med MODES 5

ufw Står för uncomplicated firewall Mycket enkel att använda Ger effektivt skydd för de flesta hempulare Svårare att göra avancerade lösningar Leksak säger de som borde veta 6

Iptables behöver inte vara svårt Tre steg: Logga det som du behöver logga för att ha koll Därefter kan vi börja labba med mer avancerade saker Routing NAT Masquerade Sätt upp en policy för vad som händer om ingen regel matchar paketen Sätt upp regler för att blockera eller tillåta paket som matchar reglerna 7

Kedjor och tabeller Iptables har kedjor som innehåller regeltabeller Tre inbyggda sådana finns ALLTID INPUT - paket med denna dator som destination OUTPUT - paket med denna dator som källa FORWARD - paket som routas genom denna dator Egna kedjor skapas efter ändamål När en kedja är skapad kan man fylla den med regler...eller tabellen om man så vill 8

Observera! En vanlig missuppfattning är att paket går igenom mer än en kedja. Detta är inte sant om man inte gör -j (jump). Paket med destination denna dator passerar INPUT Paket som härrör från denna dator men har destination till en annan dator passerar OUTPUT. Paket som routas genom denna dator passerar varken input eller outpu utan endast FORWARD precis som svaren på dessa paket. Även vana användare glömmer bort detta ibland. 9

POLICY Tre sorters policy finns: DROP - kastar paket som ej matchar någon regel ACCEPT - accepterar alla paket som inte matchar DENY - svarar med felmeddelande (via ICMP) En policy appliceras när ingen annan regel matchar paketet. 10

POLICY Skillnaden mellan DROP och DENY är att den som skickar ett paket får ett connection denied om man får DENY medan om man får ett DROP får man inget svar alls. Till slut timar TCP ut om man kör det UDP bara kom inte fram Connection deny meddelas med ICMP 11

Skapa din första brandvägg Rensa alla gamla regler och öppna allt: # iptables -P INPUT ACCEPT # iptables -P OUTPUT ACCEPT # iptables -P FORWARD ACCEPT # iptables -F ; Rensa alla regler # iptables -X ; Radera alla user chains 12

Skapa din första brandvägg Nu kan vi börja med att sätta en default policy. # iptables -P INPUT DENY # iptables -P OUTPUT DENY # iptables -P FORWARD DENY Obs, om du gör detta på en host över SSH tappar du förbindelsen. Detta stoppar all nätverkstrafik. 13

Regler för tillåtna tjänster # iptables -A INPUT -p icmp -j ACCEPT # iptables -A OUTPUT -p icmp -j ACCEPT Ovanstående accepterar all ICMP-trafik in och ut ur burken. Många stänger av ICMP av rädsla att den kan vara farligt. Det är det som regel inte. Internet är trasigt utan ICMP så var snäll och tillåt det. 14

Tillåt trafik till och från webserver Öppna trafiken till och från webservern # iptables -A INPUT -p tcp --dport http -j ACCEPT # iptables -A OUTPUT -p tcp --sport http -j ACCEPT Nu kan man prata med webservern. Det var väl inte så svårt? http kan ersättas med portnummer 80 om man vill 15

Öppna för SSH Så öppnar vi för SSH # iptables -A INPUT -p tcp --dport 22 -j ACCEPT # iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT Sådär, nu kan vi SSH:a till maskinen och köra rsync och scp och annat nyttigt! 16

Kommandot förklarat # iptables -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT Lägg till regel i input-kedjan -p tcp Protokollet måste vara TCP/IP --dport 80 Endast paket med destinationsport 80 -j ACCEPT Hoppa till slutet av kedjan och accept Inga andra sorters paket matchar denna regel. 17

ACCEPT, DROP, DENY Dessa är targets, alla paket får en target. De som inte matchar en regel får target från POLICY När en regel matchar som hoppar till target slutar man processa, inga fler regler kommer synas för just detta paket. Reglerna tillämpas i den ordning de lagts till i kedjan Paket måste antingen hitta en target eller routas till en annan kedja 18

Aktiv blockering Stoppa t.ex. trafik från vissa nät # iptables -A INPUT -s 192.168.0.0/16 -j DROP Regeln kastar alla paket med source från 192.168.0.0-192.168.255.255 Kan användas för att stoppa source routing 19

Blockera vissa länder Med så kallade CIDR-listor kan vi lätt blocka oönskade länder från våra servrar. Listorna finns på sajter på nätet. for f in /etc/iptables/banned-hosts/* do while read p do done iptables -A INPUT -s $p -j DROP done < $f 20

Logga paket Loggning är viktigt och iptables har det i sig Logga till syslog om möjligt, skapa gärna egen fil Du skapar enkelt egna kedjor som loggar Oftast skapas två stycken Logga och kasta paketet Logga och acceptera paketet 21

Logga paket Skapa ny kedja LOGDROP # iptables -N LOGDROP Lägg till loggregeln # iptables -A LOGDROP -j LOG --log-prefix \ IPT: DROP --log-level 7 Därefter kastar vi paketet # iptables -A LOGDROP -j DROP 22

Logga paket som är felaktiga Paket med trasiga checksummor, signalbitar som inte får vara satta samtidigt, felaktiga längder mm # iptables -A INPUT -m state --state INVALID -j LOGDROP Du kan också logga alla paket som knackar på SSH # iptables -A INPUT -p tcp --dport 22 -m state \ --state NEW -j LOGACCEPT 23

Stateful -m state Använd modulen stateful inspec. --state x Vilken state är förbindelsen i NEW ESTABLISHED RELATED Nyöppnad (SYN) Pågående Relaterad annan trafik 24

Bättre säkerhet med stateful # iptables -A INPUT -p tcp --dport 22 -m state \ --state NEW,ESTABLISHED -j ACCEPT # iptables -A OUTPUT -p tcp --sport 22 -m state \ --state ESTABLISHED -j ACCEPT Vi kan alltså begränsa vilka states förbindelser får vara i om vi skall tillåta paket in eller ut. I det här fallet tillåter vi bara utgående paket som svar på SSH om det finns ett etablerat koppel in. Detta kan göras mycket avancerat. Det är också lätt att göra fel men det är väldigt effektivt. 25

Logga allt som inte matchar Ibland vill man logga allt som inte matchar Avsluta då kedjorna INPUT, OUTPUT och FORWARD med följande regel EFTER alla andra regler: # iptables -A INPUT -j LOGDROP # iptables -A OUTPUT -j LOGDROP # iptables -A FORWARD -j LOGDROP Nu spelar din policy inte så stor roll längre eftersom du explicit kastar allt som inte matchar en tidigare regel i kedjan. 26

Spara brandväggen Normalt lägger man regler i ett skript Det kan ta lång tid köra skriptet Inte effektivt under boot 27

Spara brandväggen Därför finns iptables-save >filnamn Sparar alla reglerna i en snabbläst fil Återställs snabbt med iptables-restore <filnamn 28

Routing Iptables kan så mycket mer Routing NAT Policy based routing Quality of Service Quenching... 29

Routing Jag tänker bara gå igenom ett av många exempel på hur man routar paket Slå på routingen i kerneln echo 1 > /proc/sys/net/ipv4/ip_forward 30

Routing # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT Vi har här visat några nya targets och chains som uppstår vid behov när man använder dem men som vi inte i denna presentation kommer gå in på mer noga Ser ni vad som händer här? 31

Routing Externt nät eth0 Internt nät eth1 # iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT Sätter upp en forwardregel med trafik från eth0 till eth1 som är etablerad och relaterad till existerande trafik. Trafik tillåts bara routas in om den tillhör etablerad trafik som initierats från insidan. Precis som en NAT router skall göra. 32

Routing # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -t nat Inbyggd tabell med regler för NAT Tar hand om adressöversättningen så att det som ramlar ut från routern har en adress i det lokala nätet. Postrouting innebär att vi kör igenom den här regeln innan den hamnar i INPUT och blir föremål för några andra regler. Masquerade är en särskild target som används vid NAT. 33

Routing # iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT Nästa regel är enklare. All trafik från insidan tillåts ut. Kolla första raden igen: # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Trafiken från insiden maskeras med routerns adress så den ser ut som den kommer från routern. Det är det MASQUERADE gör. All trafik som lämnar på externa interfacet har routerns address och inte vår interna 192.168...whatever. 34

Ingen floodping här Skydda dig mot floodpings? # iptables -A INPUT -p icmp -m icmp -m limit --limit 1/second -j ACCEPT En per sekund är väl ganska lagom? Limit-modulen är sjukt användbar för sådant! 35

Synflood attack (DDOS) # iptables -A INPUT -m state --state NEW -p tcp -m tcp --syn -m recent --name synflood --set # iptables -A INPUT -m state --state NEW -p tcp -m tcp --syn -m recent --name synflood \ --update -- seconds 1 --hitcount 60 -j DROP Tagga paket först, räkna och kasta om det kommer förmånga per sekund. Som ni ser kan man göra en del fräna saker. 36

Om du blockar många CIDR Använd i stället ipset, mer effektivt! Behöver ofta installeras separat Ipset kan skapa hashtabeller med många CIDR för att öka effektiviteten Du kan namnge tabellen med china eller vad du nu vill Därefter skjuter du in den med iptables 37

IPv6 Of course! # ip6tables... 38

Det var en början i alla fall... Som sagt, det var en crasch course i hur man konfar en brandvägg med iptables. Som ni säkert förstått finns det tusen fler saker man kan göra med den. 39

Var inte rädd......men konfa inte brandväggar på remotemaskiner om du inte är HELT SÄKER på vad du gör. Provkör hemma först. 40

TACK FÖR ÅHÖRANDET Dags för en bärs 41