Firewallaufbau mit Linux - Linux-Praxis 1 Vorwort Die vorliegende Dokumentation beschreibt Funktionsweise, Aufbau und Wartung eines Firewallrechners unter Linux. Sie ist als begleitendes

  • View
    214

  • Download
    1

Embed Size (px)

Transcript

  • CrashkursFirewallaufbauunterLinux

    FlorianKalhammer

    21.Marz2001

  • Inhaltsverzeichnis

    1 Vorwort 5

    2 Grundlagen 62.1 DasOSI Referenzmodell. . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.1.1 Die Bitubertragungsschicht. . . . . . . . . . . . . . . . . . . . . . 72.1.2 Die Sicherungsschicht. . . . . . . . . . . . . . . . . . . . . . . . 72.1.3 Die Vermittlungsschicht . . . . . . . . . . . . . . . . . . . . . . . 82.1.4 Die Transportschicht. . . . . . . . . . . . . . . . . . . . . . . . . 82.1.5 Die Sitzungsschicht. . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.6 Die Darstellungsschicht . . . . . . . . . . . . . . . . . . . . . . . 92.1.7 Die Anwendungsschicht. . . . . . . . . . . . . . . . . . . . . . . 9

    2.2 DasTCP/IPReferenzmodell . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.1 Die Vermittlungsschicht . . . . . . . . . . . . . . . . . . . . . . . 112.2.2 Die Transportschicht. . . . . . . . . . . . . . . . . . . . . . . . . 12

    2.3 KommunikationsablaufeinerTCPVerbindung . . . . . . . . . . . . . . . 15

    3 Grundlagen der Fir ewalltechnik 183.1 Die Voreinstellungfur Paketfilter . . . . . . . . . . . . . . . . . . . . . . . 203.2 REJECToderDENY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4 Filter n von eingehendenPaketen 244.1 Filtern nachIPAdressen. . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4.1.1 FilternnachAbsenderAdressen. . . . . . . . . . . . . . . . . . . 244.1.2 FilternnachEmpfangerAdressen. . . . . . . . . . . . . . . . . . 25

    4.2 Filtern nachPortnummern . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2.1 FilternnachderAbsenderPortnummer. . . . . . . . . . . . . . . 254.2.2 FilternnachderEmpfangerPortnummer . . . . . . . . . . . . . . 26

    4.3 Filtern nachTCPStatusFlags. . . . . . . . . . . . . . . . . . . . . . . . 264.4 Angriffsformenvon auerhalb . . . . . . . . . . . . . . . . . . . . . . . . 26

    4.4.1 Portscans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.4.2 DenialofServiceAttacks. . . . . . . . . . . . . . . . . . . . . 27

    5 Filter n von ausgehendenPaketen 295.1 Filtern nachIPAdressen. . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    5.1.1 FilternnachAbsenderAdresse . . . . . . . . . . . . . . . . . . . 295.1.2 FilternnachEmpfangerAdresse. . . . . . . . . . . . . . . . . . . 29

    5.2 Filtern nachPortnummern . . . . . . . . . . . . . . . . . . . . . . . . . . 305.3 Filtern nachTCPStatusFlags. . . . . . . . . . . . . . . . . . . . . . . . 30

    6 Gestaltungeiner Fir ewall mit Linux 316.1 Die drei StandardKetten . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.2 DasHandwerkszeug:ipchains . . . . . . . . . . . . . . . . . . . . . . . . 326.3 FormatderAngaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    6.3.1 IPAdressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    2

  • INHALTSVERZEICHNIS 3

    6.3.2 Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346.4 PraktischerAufbaueinerFirewall . . . . . . . . . . . . . . . . . . . . . . 34

    6.4.1 Grundeinstellungen. . . . . . . . . . . . . . . . . . . . . . . . . . 346.4.2 Ein paarTechnikenzur Abwehrvon gefalschtenPaketen . . . . . . 356.4.3 AusfilternoffensichtlichfalscherAdressen . . . . . . . . . . . . . 366.4.4 ICMPNachrichtenfiltern . . . . . . . . . . . . . . . . . . . . . . 396.4.5 DiensteaufunprivilegiertenPorts . . . . . . . . . . . . . . . . . . 416.4.6 WichtigeDiensteerlauben . . . . . . . . . . . . . . . . . . . . . . 42

    7 Die Fir ewall alsRouter ins Inter net 467.1 RouteroderProxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    7.1.1 Die ProxyTechnik . . . . . . . . . . . . . . . . . . . . . . . . . . 467.1.2 Die RouterTechnik . . . . . . . . . . . . . . . . . . . . . . . . . 47

    7.2 DasProblemderreserviertenAdressen. . . . . . . . . . . . . . . . . . . . 487.3 MasqueradingalsProblemlosung. . . . . . . . . . . . . . . . . . . . . . . 497.4 VerschiedeneModellevon routendenFirewalls . . . . . . . . . . . . . . . 50

    7.4.1 Die BastionHostFirewall . . . . . . . . . . . . . . . . . . . . . . 507.4.2 Die DemilitarisierteZone(DMZ) . . . . . . . . . . . . . . . . . . 51

    8 ExemplarischerAufbau einer DMZFir ewall 538.1 Die symbolischenKonstanten . . . . . . . . . . . . . . . . . . . . . . . . 54

    8.1.1 Die Konstantenfur die Bastion. . . . . . . . . . . . . . . . . . . . 548.1.2 Die Konstantenfur die Choke . . . . . . . . . . . . . . . . . . . . 55

    8.2 WeitereGrundeinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . 558.3 ICMPNachrichtenfiltern . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    8.3.1 SourceQuenchNachrichten. . . . . . . . . . . . . . . . . . . . . 588.3.2 ParameterProblemNachrichten. . . . . . . . . . . . . . . . . . . 598.3.3 DestinationUnreachableNachrichten. . . . . . . . . . . . . . . . 598.3.4 TimeExceededNachrichten. . . . . . . . . . . . . . . . . . . . . 598.3.5 PingKonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    8.4 Diensteauf unprivilegiertenPorts . . . . . . . . . . . . . . . . . . . . . . 618.5 DomainNameService . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    8.5.1 NutzungeinesoffentlichenNameservers . . . . . . . . . . . . . . 618.5.2 BetreibeneigenerNameserver . . . . . . . . . . . . . . . . . . . . 62

    8.6 Der identService(auth) . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.6.1 KonfigurationderBastion . . . . . . . . . . . . . . . . . . . . . . 648.6.2 KonfigurationderChoke . . . . . . . . . . . . . . . . . . . . . . . 65

    8.7 EMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.7.1 AbgehendeMails uberdieBastionverschicken . . . . . . . . . . . 658.7.2 MailempfanguberPOPServeraufderBastion . . . . . . . . . . . 66

    8.8 Alle weiterenDienste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.9 LAN Zugriff auf dieChoke . . . . . . . . . . . . . . . . . . . . . . . . . . 678.10 Und schlielichdasMasquerading. . . . . . . . . . . . . . . . . . . . . . 68

    A Wichtige Portnummern 69A.1 HaufiggescanntePorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69A.2 ICMP NachrichtenTypen . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    B Die BeispielScripts 72B.1 DasersteFirewallscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72B.2 DasBastionFirewallscript . . . . . . . . . . . . . . . . . . . . . . . . . . 78B.3 DasChokeFirewallscript . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

  • 4 INHALTSVERZEICHNIS

    C Protokollbeschreibungen 90C.1 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91C.2 identdoderauth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92C.3 UsenetNews (NNTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92C.4 E-Mail (SMTP/POP/IMAP) . . . . . . . . . . . . . . . . . . . . . . . . . 93C.5 Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94C.6 SecureShell(SSH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94C.7 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95C.8 HTTP - Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96C.9 HTTP - mit SecureSocketLayer(SSL) . . . . . . . . . . . . . . . . . . . 96C.10 HTTP-ProxyZugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

  • Kapitel 1

    Vorwort

    Die vorliegendeDokumentationbeschreibtFunktionsweise,Aufbau und WartungeinesFirewallrechnersunterLinux. Sie ist alsbegleitendesMaterial fur eineSchulunggedacht,nicht als SelbststudiumHilfe.DasThemaFirewall ist ein weit gefacherterBereich,derhier nicht abschlieendbehandeltwerdenkann,es sollen die in der Schulungund demAufbauvorkommendenPunktebesprochenunddargestelltwerden.

    EineFirewall ist ein Sicherheitssystem,das wie alle anderenSicherheitssystemeauchim Idealfall nichtgenutztwerdenmu,weil z.B.keinAngriff aufdasComputersystemvor-liegt. Wie aberbei Sicherheitssystemenublich,nutzt unsdiesesSystemnur dann,wennesim Bedarfsfall perfektfunktioniert.Fur dieseGarantiederperfektenFunktionist abereineSachewesentlicheVoraussetzung:DasVerstandnisder zugrundeliegendenTechnologie.DiesesVerstandniskannbeivielenMenschen,diemit Computernzwarzutunhaben,dieseabernicht restlosverstehen,nicht vorausgesetztwerden.Aus diesemGrundbeginnt dieseBeschreibungmit einemKapitel Netzwerkgrundlagen,die fur viele vielleicht ubertriebengenauerscheint.Trotzdemmu damitspaterdieFunktionsweisederFirewall hinlanglichsicheraufgebautwerdenkann diesesWissenvorhandensein.. .

    Die BeschreibungderTechnikenbeziehtsichhierauf einLinuxSystemmit einemKernelderVersionen2.2.x,dermit ipchainsarbeitet.In denfruherenVersionenwurdestattdieserTechnikein Programmmit Namenipfwadmeingesetzt,in derallerneuestenKernelversion(2.4)wird eineneueTechnik(iptables) verwendet.In Sicherheitstechnikensolltenaberim-merausgereifteunderprobteWerkzeugezumEinsatzkommen.Daherscheintmir ipchainsdie besteLosungdarzustellen.Der Umstieg auf die neueTechnikist im wesentlichenauchnureinsyntaktischer, die Regelnbleibengrotenteilsdieselben.

    DieseDokumentationkanneinesnicht sein,eineEinfuhrungin bzw. ein Lehrgangfur Li-nux selbst.Eswerdenhier alsowederdie Installation,nochdie grundlegendenTechnikendesUmgangsmit Linux beschrieben.Eine StandaloneFirewall mit Linux bedarfaller-dingsauchnicht einergroenVerwaltungsarbeit,sodaein durchschnittlichesWissenumLinux sicherausreichendist, um die hier beschriebenenVorgangenachzuvollziehenundreproduzierenzu konnen.Wo immer esnotwendigist, genaueAngabenzu machen,wobzw. wie etwasin Linux einzustellenist, wird esausreichendbeschrieben.

    Daim vorliegendenFal