Home
KAPITEL 8 Installation der Software
Contents
1. 2006 1 4 15 26 page 129 148 syslog Die Systemprotokollierung ist gestartet time Die Systemzeit ist gesetzt Die Namen von System Facilities beginnen mit einem Ublicherweise werden die se Namen nicht direkt im Runlevel Skript definiert sondern den Namen von System Facilities werden eine oder mehrere normale Facilities zugeordnet Unter SuSE geschieht dies ber die Datei etc insserv conf Das Neue an diesem Vorgehen liegt darin da man nun nicht mehr selbst entscheiden mu in welchen Verzeichnissen man Links unter welchem Namen anlegt um sicherzu stellen da alle Dienste auch wirklich in der richtigen Reihenfolge gestartet werden Dies ist insbesondere dann schwierig wenn man einen Dienst geschrieben hat und ihn den Benutzern verschiedener Distributionen anbieten will Nicht nur benutzen alle Distributionen unterschiedliche Pfade f r die S und K Links Teilweise variiert sogar das Verst ndnis was diese bedeuten Dar ber hinaus werden die Links in alphabetischer Reihenfolge abgearbeitet Um einen Dienst nach einem be stimmten anderen Dienst starten zu lassen mu man dem jeweiligen Link einen Namen geben der im Alphabet hinter dem des vorher zu startenden liegt Die Linknamen der Standarddienste unterscheiden sich aber ebenfalls von Distribution zu Distribution So entspricht z B S80sendmail unter Red Hat 7 0 dem S20exim unter Debian 2 2 In einem LSB konformen System reicht der Aufruf usr lib
2. firewall 2006 1 4 15 26 page 115 134 KAPITEL 8 Installation der Software Nun ist der gro e Augenblick gekommen Sie sitzen fiebrig vor dem PC neben sich ein Stapel CDs und vielleicht das Handbuch Ihrer Distribution und m chten loslegen End lich d rfen Sie mit der Installation beginnen Normalerweise w rde es jetzt gen gen von der Installations CD zu booten und einige Fragen zu beantworten um kurz darauf ein voll funktionsf higes Linux vorzufinden Die Installation die ich hier beschreibe unterscheidet sich allerdings ziemlich von ei ner solchen Standardinstallation Vieles das in einer Standardinstallation mit einem Mausklick erledigt wird mu hier m hsam mit einem Texteditor konfiguriert werden Dies liegt daran da Bequemlichkeit oft mit einem Verzicht auf Sicherheit erkauft wird Wenn Sie sich an einem System unter einer graphischen Oberfl che anmelden k nnen so bedeutet dies auch da auf ihm ein X Server l uft der als Netzwerkdienst auch aus dem Internet angesprochen werden kann Wenn auf CD ROMs durch normale Benutzer zugegriffen werden kann so hei t dies auch da diese Verzeichnisse mounten k nnen was normalerweise aus gutem Grund root vorbehalten ist Sie m ssen dabei ein Pro gramm starten k nnen das Rootrechte besitzt Enth lt dieses einen Programmierfehler so kann die Situation entstehen da ganz normale Benutzer die komplette Kontrolle ber das System bernehmen k n
3. 142 Der Bootvorgang Sp ter werden wir Skripte schreiben die automatisch gestartet werden sollen Um dies zu erreichen ist es notwendig zu verstehen was passiert wenn Linux bootet Dar ber hinaus stellt der Bootvorgang die Achillesferse eines jeden PC basierten Serversystems dar Wer in ihn eingreifen kann ist kurz davor Administrator des Systems zu werden Aus diesem Grund empfiehlt es sich Server in einem eigenen Raum mit einem soliden Schlo unterzubringen Das BIOS Der Vorgang beginnt indem das BIOS nach einem Bootloader sucht Dieser kann prinzi piell auf einer Festplatte Diskette CD und neuerdings auch einem ZIP Medium stehen Ist das BIOS so konfiguriert da es als erstes berpr ft ob eine bootf hige Diskette oder CD eingelegt ist so reicht der Besitz einer Installations CD oder Rettungsdiskette aus um ein Linux Rettungssystem zu laden mit dem man das Linux System auf der Festplatte mounten und manipulieren kann Dabei k nnte der Angreifer z B das Pa wort f r root in der Datei etc shadow entfernen um sich so ohne Pa wort anmelden zu k nnen Eine g ngige L sung besteht darin die Bootreihenfolge auf nur C zu setzen und die BIOS Einstellungen mit einem Pa wort zu versehen Dies ist zwar eine sinnvolle Ma nahme gegen versehentlich eingelegte Disketten mit Bootviren kann von einem Angrei fer aber leicht au er Kraft gesetzt werden Fast jedes Motherboard kennt einen Weg ein vergessenes BIOS Pa
4. EURO DSS1 oder 1TR6 anw hlen Filesystems fat fs support Ja msdos fs support Ja vfat fs support Ja ISO 9660 CDROM filesystem support Ja Microsoft Joliet filesystem extensions Ja proc filesystem support Ja Second Extended fs Support Ja Network File Systems alle Unterpunkte abw hlen Zum besseren Verst ndnis sollte ich vielleicht noch einmal darauf eingehen warum be stimmte Punkte nicht angew hlt werden sollten kernel module loader support Hinter diesem Punkt verbirgt sich das schon erw hnte au tomatische Laden von Modulen durch den Kernel Es ist vermutlich eine l liche S nde hier Ja zu sagen Wer aber nicht m chte da sein Kernel hinter seinem R cken Module l dt sollte diese Option deaktivieren IP kernel level autoconfiguration Diese Einstellung bewirkt da der Kernel seine Netz werkadressen beim Booten mittels DHCP erfragt Abgesehen davon da nicht im mer ein DHCP Server zur Verf gung steht ist es sinnlos einem Server die Netz werkadresse dynamisch zuzuweisen Seine Klienten w ten dann ja nicht unter wel cher Adresse sie ihn erreichen k nnen Schlie lich ist das Protokoll unsicher und es sind viele Angriffe denkbar die damit beginnen k nnten einen falschen DHCP 138 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 139 158 Server aufzusetzen und daf r zu sorgen da der echte kurzzeitig nicht antworten kann IP ICMP masquerading Auch in diese
5. den Standardeinstellungen zur ckkehren so k nnen Sie dies mit dem folgenden Befehl erreichen make mrproper Nun k nnen Sie den Kernel an Ihre Bed rfnisse anpassen Dazu existiert ein men ge steuertes Konfigurationsprogramm das Sie mit make menuconfig aufrufen k nnen Es empfiehlt sich die Men s Punkt f r Punkt durchzugehen und gezielt nur die Unter st tzung f r diejenigen Komponenten auszuw hlen die auch tats chlich ben tigt wer den Ist dies bei einer Einstellung unklar so kann mit ein Hilfetext angezeigt werden Dort wird dann in der Regel eine kurze Erkl rung der Option und eine Empfehlung der Art If unsure say Yes gegeben Als erstes k nnen wir unter Code maturity level options einstellen ob wir auch Funk tionalit ten im Kernel w nschen die noch nicht ausgereift sind Normalerweise ist dies nicht notwendig Code maturity level options Prompt for development drivers Nein Allerdings wird die ISDN Karte Fritz Card PCI in moderneren Fassungen ab Version 2 nur unterst tzt wenn wir diese Funktion aktivieren 140 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 141 160 Code maturity level options Prompt for development drivers Ja Als nachstes werden wir gefragt ob wir Funktionen als Module kompilieren wollen Grunds tzlich w rde ich davon abraten da diese Funktion es einem lokalen Angreifer erm glicht spezielle Root
6. etc lilo install aufgerufen Der Kernel wird dabei in vmlinuz umbenannt Existiert im Zielverzeichnis bereits eine Datei namens vmlinuz wird selbige in vmlinuz old umbenannt Eine eventuell vorhan dene Datei vmlinuz old wird dabei gel scht Die Variable INSTALLPATH wird in der Datei Makefile im Hauptverzeichnis gesetzt Bei den Originalkerneln von ftp kernel org oder ftp de kernel org ist diese Zuweisung in der Regel auskommentiert so da der Kernel direkt im Rootverzeichnis als vmlinuz abgelegt wird INSTALL_PATH boot Wollen wir da er statt dessen in boot installiert wird so m ssen wir die Zeile aktivie ren INSTALL_PATH boot Ist unser Kernel klein genug dann k nnen wir statt dessen auch eine Diskette in unser erstes Diskettenlaufwerk dev fdO einlegen und make bzdisk benutzen Damit sollte es dann m glich sein das System von der so erzeugten Diskette zu booten Funktioniert der neue Kernel nicht wie gew nscht braucht man nur die Diskette herauszunehmen und neu zu booten Schon ist alles wie zuvor Kompilation und Installation der Module Nun haben wir einen auf unsere Bed rfnisse zugeschnittenen Kernel Was jetzt noch fehlt sind die ben tigten Module Wenn bestimmte Komponenten des Kernels die wir f r unsere Zwecke ben tigen nur als Module verf gbar sind kommen wir nicht darum herum auch die gew hlten Module zu kompilieren und zu installieren Dazu erfolgt bei Kerneln der Serien 2 2 und 2 4
7. n device2 amp amp n type2 then cmdln cmdln M m device2 t type2 fi fi gpm_strace echo n Running mouse interface server under strace gpm eval strace T o root gpm strace GPM V D e cmdln gt root gpm out 2 gt amp 1 echo return 0 Der Bootvorgang 133 firewall 2006 1 4 15 26 page 134 153 gpm start echo n Starting mouse interface server gpm eval start stop daemon start quiet nicelevel niceness exec GPM cmdln echo start failed return 1 echo return 0 gpm_stop echo n Stopping mouse interface server gpm GPM k echo not running return 1 echo J case 1 in strace gpm_strace exit 1 33 start gpm_start exit 1 3 stop gpm_stop exit 1 33 force reload restart gpm_stop amp amp sleep 3 gpm_start exit 1 33 2 echo Usage etc init d gpm start stop restart force reload strace exit 1 esac exit 0 Das Skript beginnt indem es berpr ft ob der gpm installiert ist und der Aufrufer tat s chlich Rootrechte besitzt Debian verwendet eine eigene Konfigurationsdatei f r jeden Dienst hier etc gpm cfg die falls vorhanden eingebunden wird Das Fehlen der Datei f hrt aber nicht dazu da der Dienst als nicht konfiguriert angesehen und deswegen nicht gestartet wird Vielmehr wird f r jeden Konfigurationsparameter getestet ob
8. procset FORWARDV6 f forwarding procset 0 f accept_ra procset 0 f accept_redirects procset 0 f autoconf done procset 1 4 1 7 proc sys kernel printk stop echo Stoppe Forwarding procset 0 proc sys net ipv4 ip_forward procset 1 proc sys net ipv4 ip_ always defrag procset 1 proc sys net ipv4 ip_dynaddr procset 1 proc sys net ipv4 tcp_syncookies procset 1 proc sys net ipv4 icmp_echo_ignore_ broadcasts for f in proc sys net ipv4 conf do procset 1 f rp_filter procset 0 f accept_redirects procset 0 f accept_source_route done 170 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 171 190 for f in proc sys net ipv6 conf do procset 0 f forwarding procset 0 f accept_ra procset 0 f accept_redirects procset 0 f autoconf done procset 1 4 1 7 proc sys kernel printk 33 echo Usage 0 start stop esac Bevor wir das Skript nun allerdings ausf hren k nnen m ssen wir es noch mit folgen dem Aufruf ausf hrbar machen chmod 700 procconf Mit procconf start kann nun die Weiterleitung von Paketen durch die Firewall erlaubt werden w hrend der Rechner mit procconf stop zu einem normalen Klienten wird der zwar selbst durchaus Verbindungen in angeschlossene Netze ffnen kann der aber Ver bindungen anderer Rechner nicht mehr weitervermittelt Das Skript wurde bewu t so geschrieben da es als normales Runlevel Skript dienen kann sieh
9. 14 procset Uberpr uft erst ob eine Datei existiert bevor versucht wird hineinzuschreiben Router Advertisements und Redirects werden f ur ipv6 nicht angenommen Autoconf f ur ipv4 und ipv6 verboten 2005 05 17 Variable FORWARDV6 regelt ob IPv6 Pakete geroutet werden oder nicht Copyright C 2003 Andreas G Lessig Lizenz GPL v2 oder h ohere Version BEGIN INIT INFO Provides procconf Required Start local_fs Should Start pf ipt pf ipc dmz ipt dmz ipc Required Stop network Should Stop Default Start 235 Default Stop 016 Short Description Konfiguration von proc Description Konfiguration von proc END INIT INFO Hier eine 1 eintragen wenn IPv6 Pakete geroutet werden sollen FORWARDV6 0 Hardware Integration durch Kompilation 169 firewall 2006 1 4 15 26 page 170 189 procset if of sti 2 J then echo 1 gt 2 echo Setting 2 to 1 else echo WARNING 2 does not exist fi case 1 in start echo Aktiviere Forwarding procset 1 proc sys net ipv4 ip_ forward procset 1 proc sys net ipv4 ip_ always defrag procset 1 proc sys net ipv4 ip_dynaddr procset 1 proc sys net ipv4 tcp_syncookies procset 1 proc sys net ipv4 icmp echo ignore_broadcasts for f in proc sys net ipv4 conf do procset 1 f rp_filter procset 0 f accept_redirects procset 0 f accept_source_route done for f in proc sys net ipv6 conf do
10. 155 erw hnten zus tzlichen Parameter k nnen hier angeh ngt werden Wollen wir also Parameter f r eine Netzwerkkarte bergeben so sieht dies folgenderma en aus kernel hdo 0 boot vmlinuz root dev hda3 ether 5 0x300 etho Der Kernel wird in einem speziellen Format angegeben Zuerst wird die Partition an gegeben danach angeh ngt der Pfad auf dieser Partition Die Angabe hdo 0 bedeu tet dabei die erste Partition der ersten erkannten Festplatte Dies ist nicht zwangs l ufig die Partition mit dem Wurzelverzeichnis sondern die Partition auf der sich der Kernel tats chlich befindet Haben wir also eine eigene Partition f r boot ange legt so m ssen wir diese Partition angeben F r das Schema ist dabei unerheblich ob es sich dabei um IDE oder SCSI Festplatten handelt Haben Sie allerdings nur IDE Platten so kann man davon aus gehen da dev hdc2 der Angabe hd2 1 entspricht initrd brauchen Sie normalerweise nicht aber es gibt Systeme auf denen bestimmte Module aus einer Ramdisk nachgeladen werden bevor das Wurzelverzeichnis ge mountet wird Der Inhalt der Ramdisk wird aus der Datei erstellt die hinter dem Parameter angegeben wird Die Angabe der Datei erfolgt im bereits dargestellten For mat root gibt eine Bootpartition vor wenn das dort installierte Betriebssystem im Gegensatz zu Linux vom Grub nicht direkt unterst tzt wird Das Format ist das bereits bekann te Allerdings wurde in der Beispielkonf
11. B depmod a 2 2 13 ist es besser ihn erst nach dem n chsten Booten ausf hren zu lassen Oft ist ein entsprechender Aufruf schon in den Runlevel Skripten eingebaut Unterbleibt der Aufruf von depmod a ganz so wird sich dies dadurch bemerkbar ma chen da all diejenigen Treiber die als Module kompiliert wurden nach dem n chsten Neustart nicht mehr zur Verf gung stehen Installation des Kernels Nun da wir einen neuen Kernel kompiliert haben m ssen wir ihn nur noch an eine ge eignete Stelle kopieren und den Bootloader so umkonfigurieren da er ihn auch benutzt Kopieren des Kernels Bevor wir den neuen Kernel installieren ist es sinnvoll den Vorg nger aufzuheben So besitzt man eine funktionierende Konfiguration zu der man zur ckkehren kann falls der neue Kernel nicht lauff hig ist Dies kann z B der Fall sein wenn versehentlich zum Booten ben tigte Hardware z B SCSI Adapter IDE Festplatten Ext2 Dateisystem nicht einkompiliert wird Hierzu benennt man den alten Kernel um mv boot vmlinuz boot vmlinuz prev 154 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 155 174 Bitte benutzen Sie nicht vmlinuz old da make b zlilo diese Bezeichnung ebenfalls f r die jeweilige Vorg ngerversion benutzt und damit die eigene Version berschreibt Kom piliert man dann den Kernel versehentlich zweimal hintereinander so ist die Sicherungs kopie mit der aktuellen Kernelver
12. Brenner ge ndert hat War es fr her n tig SCSI emulation support und SCSI generic support auszuw hlen so reicht es beim Kernel 2 6 nur Include IDE ATAPI CDROM support zu aktivieren Das Ger t kann dann als ganz normales IDE Device dev hd lt X gt angesprochen werden w hrend es vorher als SCSI Device unter dev sr lt N gt firmierte Wir sollten ferner die Unterst tzung f r den DMA Modus und den Chipsatz des von uns verwendeten IDE Controllers einkompilieren Nur so k nnen wir die Festplatten im schnelleren DMA Modus betreiben 146 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 147 166 Device Drivers Block Devices Loopback device support Ja Network block device support Nein ATA ATAPI MFM RLL support Include IDE ATAPI CDROM support Ja oder SCSI emulation support Ja Generic PCI bus master DMA Support Ja Treiber fiir Ihren IDE Controller Ja SCSI device support SCSI generic support Ja bei SCSI emulation Unter Networking support finden wir neben einigen Standardeinstellungen auch die Einstellungen zur Paketfilterung Networking support Networking options TCP IP networking Ja IP advanced router Ja IP verbose route monitoring Ja IP kernel level autoconfiguration NEIN IP TCP Expl Cong Not Support Nein IP TCP syncookie support Ja DECnet support Nein 802 1d Ethernet Bridging Nein Network packet filtering IP Netfilter Configuration
13. Default Start 1235 Default Stop 0 6 Short Description Laden von Modulen Description Laden von Modulen END INIT INFO case 1 in start echo Lade Module sbin modprobe ne sbin modprobe isdn sbin modprobe hisax_fcpcipnp Weitere Module hier einf ugen 53 stop echo Entferne ungenutzte Module sbin rmmod r ne sbin rmmod r hisax_fcpcipnp sbin rmmod isdn Weitere Module hier einf ugen gt gt echo Usage 0 start stop 33 esac Den Modulen k nnen dabei auch Parameter bergeben werden wie die die wir schon in Kapitel 8 Unterabschnitt Eintrag in die modules conf bzw modprobe conf ab Seite 161 kennengelernt haben Dies k nnte z B folgenderma en aussehen sbin modprobe ne i0 0x300 0x320 irq 5 7 In diesem Fall brauchen sie nicht in die Datei etc modules conf eingetragen zu werden Beim Einrichten der n tigen Links ist darauf zu achten da das Skript m glichst fr h ausgef hrt wird Wird z B ein Modul f r eine Netzwerkkarte geladen so sollte das La deskript vor dem Skript ausgef hrt werden das die Netzwerk Interfaces konfiguriert Wurden auch elementare Treiber wie z B die serielle Schnittstelle als Modul kompiliert so mu das Skript sogar noch fr her geladen werden Hier bietet sich die Verlinkung unter SO1aaamodload bzw K99zzzmodload an um sicherzustellen da es beim Eintritt in den Runlevel als allererstes bzw beim Verlassen des Runlevels als l
14. Hardware ISDN i4l inst ISDN Unterst tzung i4lfirm inst Firmware fiir aktive ISDN Karten Produktivit t Archivierung mt_st inst Steuerung von Bandlaufwerken DVD unzip inst Entpacken von Zip Archiven zip inst Erzeugung von Zip Archiven Produktivit t Datei Dienstprogramme mc inst Midnight Commander Produktivit t Editoren joe deinst Editor Produktivit t Multimedia cdrecord inst CD Images brennen dvd rw tools inst DVDs brennen mkisofs inst CD Images erstellen Produktivit t Netzwerk bind inst DNS Server bind chrootenv inst Chroot Umgebung fiir den Bind dhcpd deinst IP Adr autom beziehen exim inst Mailserver Konflikt postfix deinst iptraf inst berwachung des Netzwerkverkehrs Iynx inst textbasierter Browser mutt inst einfaches E Mail Programm ncftp inst FTP Klient besser als ftp DVD netcat inst Port Scan Probeverbindungen netdiag inst Netzwerkkartendiagnose nmap inst Port Scans portmap deinst Portmapper postfix deinst Mailserver kollidiert m exim Installation der ben tigten Software 117 firewall 2006 1 4 15 26 page 118 137 Tabelle 8 1 Pakete der SuSE Installation Version 9 3 Forts Serie Paket Aktion Bemerkung ppp inst Modemnutzung privoxy inst WWW Proxy proxy suite inst FTP Proxy DVD rp pppoe inst DSL Unterst tzung DVD squid inst FTP WWW Proxy tin inst Newsreader DVD Produktivit t Publishing texinfo inst Programmdokumenta
15. er existiert Aus diesen getesteten Parametern wird dann eine Kommandozeile f r den gpm aufgebaut Als n chstes werden Funktionen definiert die es erlauben den Dienst zu starten oder zu stoppen Diese werden in der obligatorischen Fallunterscheidung nach dem bergebenen Parameter benutzt Die einzelnen F lle sind knapp gehalten und beschr nken sich auf eine kurze Meldung und den Aufruf bzw das Beenden des Dienstes Allerdings wird hier weder durch eine Ausgabe noch durch einen R ckgabewert mitge teilt ob der Start des Dienstes gelungen ist 134 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 135 154 Hardware Integration durch Kompilation Das eigentliche Betriebssystem stellt unter Linux der Kernel dar Hierbei handelt es sich gewisserma en um das Programm das die Ausf hrung aller anderen Programme kon trolliert und diesen auch standardisierte Schnittstellen zur Hardware bietet So braucht ein normales Programm nicht den Unterschied zwischen einer SCSI oder einer IDE Festplatte zu kennen Es reicht ihm da es auf Dateien zugreifen kann Um die Details k mmert sich der Kernel der den eigentlichen Hardwarezugriff vornimmt Im folgenden werden wir daher einen Kernel generieren der ganz gezielt auf unsere Be d rfnisse zugeschnitten ist Allerdings macht es hierbei doch einen Unterschied ob wir einen Kernel der Serie 2 2 kompilieren der immer noch von Debian verwendet wird oder
16. gemountet werden Unter SuSE 9 2 sind z B die folgenden Eintr ge vorhanden dev cdrom media cdrom subfs fs cdfss ro procuid nosuid nodev exec iocharset utf8 0 0 dev dvdrecorder media dvdrecorder subfs fs cdfss ro procuid nosuid nodev exec iocharset utf8 0 0 dev fdo media floppy subfs fs floppyfss procuid nodev nosuid sync 0 0 Die Umbriiche sind dabei durch den Druck bedingt Es sind eigentlich nur drei Zeilen In allen wird ein Dateisystem subfs verwendet das zumindest derzeit in einem Stan dardkernel gar nicht enthalten ist sondern von SuSE in ihre Kernel zusatzlich eingebaut wurde Wir sollten das Dateisystem daher durch die tats chlichen Dateisysteme oder auto ersetzen dev cdrom media cdrom auto noauto ro nodev nosuid 0 0 dev dvdrecorder media dvdrecorder auto noauto ro nosuid nodev 0 0 dev fdo media floppy auto noauto nodev nosuid sync 0 0 172 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 173 192 Neustart Nachdem wir den innersten Kern unseres Betriebssystems umgekrempelt haben ist es tats chlich n tig neu zu booten Dies geschieht mit dem Befehl sync reboot W hrend des Bootvorgangs sehen wir dann Meldungen der Art scsi 0 hosts scsi detected total PPP version 2 3 7 demand dialling TCP compression code copyright 1989 Regents of the University of California PPP line discipline registered ne c v1 10 9 23 94 Donald Becker becker cesdi
17. gt Connection Tracking Ja FTP protocol support Ja TFTP support NEIN Amanda support NEIN IPtables support Ja Alle anw hlen insbesondere limit match support Ja IP range match support Ja MAC address support Ja TOS match support Ja Connection state Ja Owner match support Ja Packet filtering Ja REJECT Ja Full NAT Ja MASQUERADE Ja REDIRECT Ja LOG target support Ja The IPX protocol Nein Appletalk protocol Support Nein Hardware Integration durch Kompilation 147 firewall 2006 1 4 15 26 page 148 167 Bevor wir weitermachen noch ein paar Worte zu den Einstellungen von denen hier abgeraten wird IP kernel level autoconfiguration Diese Einstellung bewirkt da der Kernel seine Netz werkadressen beim Booten mittels DHCP erfragt Abgesehen davon da nicht immer ein DHCP Server zur Verf gung steht ist es sinnlos einem Server die Netzwerk adresse dynamisch zuzuweisen Seine Klienten w ten dann ja nicht unter welcher Adresse sie ihn erreichen k nnen Schlie lich ist das Protokoll unsicher und es sind eine Menge Angriffe denkbar die damit beginnen k nnten einen falschen DHCP Server aufzusetzen und daf r zu sorgen da der echte kurzzeitig nicht antworten kann 802 1d Ethernet Bridging Beim Bridging tritt ein Rechner gar nicht in Erscheinung er wirkt vielmehr wie ein Verst rker zwischen zwei Netzwerksegmenten der Pakete aus einem Segment tran
18. len da ein eigenes Skript n tig ist um die Module beim Bootvorgang zu laden An dererseits existieren bestimmte Treiber f r ISDN Karten die nur als Modul funktionie ren Welche dies sind erf hrt man in der entsprechenden Kernel Dokumentation unter usr src linux Documentation isdn README lt Treiber gt Der yast unter SuSE Linux erwartet da Module bei der Konfiguration automatisch ge laden werden Dies soll nicht hei en da er nicht benutzt werden kann wenn die Treiber in den Kernel kompiliert wurden es ist aber mit kleineren Anpassungsschwierigkeiten zu rechnen Schlie lich kann man mit Modulen bestimmen in welcher Reihenfolge Netzwerkkarten eingebunden werden Tauscht man eine Netzwerkkarte eines Herstellers gegen ein Pro dukt eines anderen Herstellers aus und befindet sich im Rechner eine zweite Netzwerk karte die von einem dritten Hersteller stammt so kann sich die Reihenfolge in der die Netzwerkkarten vom Kernel erkannt werden nach dem Umbau ndern Dies f hrt dazu da aus dem Netzwerk Interface etho mit einem Male eth1 wird und umgekehrt In der Folge m ten alle Skripte die die Interface Bezeichnungen explizit benutzten insbeson dere das Firewalling ge ndert werden L dt man dagegen die Module manuell hat man es selbst in der Hand die Reihenfolge zu bestimmen 10 Denial of Service Angriffe DoS Angriffe zielen nicht darauf ab einen Rechner unter Kontrolle zu brin gen sondern seine Funktionalit
19. lsb install_initd etc init d gpm aus um die n tigen Links zu erzeugen damit das Skript e in den Runleveln 2 und 3 aktiviert wird e in den anderen Runleveln inaktiv ist und e nach den Facilities remote_fs und syslog gestartet bzw vor diesen beendet wird Der Aufruf usr lib lsb remove_initd etc init d gpm f hrt umgekehrt dazu da alle Links wieder gel scht werden Unter SuSE brauchen wir uns aber nicht diesen komplizierten Befehl zu merken es geht auch mit insserv etc init d gpm Um den Dienst wieder zu deinstallieren rufen Sie den Befehl einfach mit dem Parame ter r auf insserv r etc init d gpm Der Bootvorgang 129 firewall 2006 1 4 15 26 page 130 149 Achtung Seit SuSE 9 3 sollten Sie keine Links mehr von Hand anlegen Verwen den Sie immer insserv SuSE verwendet ein neues System bei dem die Dateien etc init d depend boot etc init d depend start und etc init d depend stop festlegen in welcher Reihenfolge Dienste gestartet werden Die Links werden nur noch benutzt um herauszufinden ob ein Dienst der in den Dateien aufgef hrt ist auch tats chlich in ei nem Runlevel verwendet werden soll Legen Sie also nur die Links an ohne die Dateien anzupassen dann wird Ihr Dienst nicht gestartet GPM_BIN usr sbin gpm test x GPM BIN exit 5 Nun wird berpr ft ob das aufzurufende Programm existiert Wenn nicht wird das Skript beendet Check for existence of ne
20. machen Fr her war dies n tig da das Firewalling teilweise als Experimentell gekennzeichnet war Heute ist es allerdings ausgereift so da wir hier Nein sagen k nnen wenn wir nicht Unterst tzung f r spezielle neue Hardware wie z B eine aktuelle Fritz Card PCI ben tigen Code maturity level options Prompt for development drivers Nein Unter General Setup finden wir die Funktion BSD Process Accounting Wenn wir diese aktivieren k nnen wir sp ter mit dem Befehl accton eine Datei festlegen in der alle Programmaufrufe protokolliert werden Mit lastcomm kann man sich diese dann sp ter anzeigen lassen Im Normalfall ist dies bertrieben aber es kann nicht schaden diese M glichkeit vorzubereiten Des weiteren sind dort zwei Optionen die daf r sorgen da die Konfigurationseinstel lungen des Kernels als gepackte Datei unter proc ausgelesen werden k nnen Ich halte dies f r sehr sinnvoll da man so sp ter diese Einstellungen nachlesen kann auch wenn man vergessen hat alle Einstellungen bei der Konfiguration zu dokumentieren und sau ber zu archivieren Hardware Integration durch Kompilation 145 firewall 2006 1 4 15 26 page 146 165 General Setup BSD Process Accounting Ja Kernel config support Ja Enable access through proc config gz Ja Als nachstes werden wir gefragt ob wir Funktionen als Module kompilieren wollen Im 2 6er Kernel ist dies normalerweise nicht me
21. mt st inst Benutzung von Bandlaufwerken tet inst Finden gel schter Dateien comm main minicom inst Terminalprogramm devel main autoconf inst wird beim Kompilieren mancher Programme ben tigt kernel source 2 4 27 inst Kernel Quellen Version 2 4 oder bzw kernel source 2 6 8 inst Version 2 6 doc main bind9 doc inst Dokumentation zum DNS Server cdrtools doc inst Dokumentation zu mkisofs und cdrecord editors main joe inst Editor vim inst Editor misc main gpm inst Maus Unterst tzung net main bind9 inst DNS Server ftp proxy inst FTP Proxy iptraf inst Uberwachung des Netzverkehrs links2 inst textbasierter Browser Ipr deinst Druckerserver ncftp inst FTP Klient netcat inst Port Scans Probeverbindungen netdiag inst Netzwerkkartendiagnose nfs common deinst Network File System Unix Gegenst ck zum Windows Netzwerk hnlich unsicher nmap inst Port Scans pidentd deinst Ident Daemon gibt unn tigerweise vertrauliche Daten preis portmap deinst Portmapper Metadaemon f r diverse unsichere Dienste tcpdump inst berwachung des Netzverkehrs news main tin inst Newsreader otherfs main cdrecord inst CDs brennen mkisofs inst CDs und DVDs brennen utils main bzip2 inst Packer dvd rw tools inst DVDs brennen hex inst Hexdumps erstellen isdnutils base inst ISDN ipppd inst ISDN mc inst Midnight Commander tripwire inst Datei nderungen berwachen zip inst Packer web main links inst textbasierter Browser lynks inst textbasie
22. vorkom men als zImage und als bzImage In beiden F llen darf er eine bestimmte Gr e nicht berschreiten Diese Grenze liegt im ersten Fall so niedrig da leicht Fehlermeldungen der Art Kernel too big auftreten k nnen Im zweiten Fall ist die Maximalgr e des Kernels dagegen deutlich h her angesetzt und wird daher in der Regel nicht erreicht Der kompilierte und komprimierte Kernel kann unter usr src linux arch i386 boot gefunden werden 150 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 151 170 Je nach Situation wird einer der folgenden Aufrufe zu dem gew nschten Resultat f h ren make zImage Kompilation des Kernels als zImage und Ablage im oben genannten Verzeichnis make bzImage wie zuvor beschrieben als bzImage make zlilo Kompilation des Kernels und Installation f r LiLo Dabei wird der bisher installierte Kernel berschrieben Wurde bei der Konfiguration ein Feh ler begangen so ist das System nur noch mit einer speziellen Bootdiskette zu starten make bzlilo s o als bzImage make zdisk Kompilation des Kernels und Installation auf eine Diskette Bootdisk Damit k nnen wir erst einmal ausprobieren ob der Kernel die in ihn gesetzten Erwartungen erf llt bevor man ihn permanent im System installiert make bzdisk s o als bzImage F r den ersten Versuch ist es sinnvoll mit make zImage oder make bzImage einen Kernel zu kompilieren um dann erst einmal ein Ba
23. vorzuge ben Es ist meistens auf 4 warning gesetzt 20 Die Adressen basieren neben den Informationen in den Router Advertisements zus tzlich auf der eigenen MAC Adtresse so da Adressen generiert werden die garantiert eindeutig sind 168 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 169 188 minimum _console_loglevel Gibt den niedrigsten Wert an auf den console_log_level ge setzt werden kann Normal ist hier 1 alert default_console_loglevel Gibt den Wert an auf den console_log_level beim Booten ge setzt wird Standardm ig ist dieser Wert 7 debug Nach dem was oben beschrieben wurde liegt es nahe ein Skript zu schreiben das die n tigen Einstellungen f r uns vornimmt Dieses k nnte z B kurz vor oder kurz nach einem Firewalling Skript aufgerufen werden Beide sollten aber auf jeden Fall ausgef hrt werden bevor die Netzwerk Interfaces und eventuelle Serverdienste aktiviert werden da ansonsten eine zeitliche L cke entst nde in der auf den Rechner schon ber das Netz zugegriffen werden k nnte ohne da schon alle Schutzma nahmen aktiv w ren Die Weiterleitung von IPv6 Paketen ist deaktiviert Dies kann aber durch Setzen der Va riable FORWARDV6 auf 1 ge ndert werden bin sh procconf start stop Ein kleines Skript das die IP Einstellungen in proc den Bed urfnissen einer Firewall anpa st start Forwarding an stop Forwarding aus 2005 05
24. Lo zum Booten braucht auf den ersten 1024 Zylindern der Festplatte befinden Mit dieser Option versucht Li Lo spezielle Funktionen neuerer BIOS Versionen zu nutzen Damit k nnen sogar 2048 GB adressiert werden Dieser Parameter sollte nicht zusammen mit compact verwendet werden vga Diese Einstellung legt den Graphikmodus beim Booten fest normal bedeutet 80 x 25 Textmodus ext oder extended 80 x 50 Textmodus ask bewirkt da beim Booten gefragt wird welcher Modus verwendet werden soll Tats chlich existieren noch mehr Modi die gegebenenfalls am Bootprompt mit TAB erfragt werden k n nen falls ask eingestellt ist read only Das Rootdateisystem wird schreibgesch tzt gemountet Dies ist f r die Pr fung des Dateisystems beim Bootvorgang n tig prompt Diese Option bewirkt da ein Bootprompt angezeigt wird timeout Hier wird in Zehntelsekunden eingestellt wie lange LiLo warten soll bevor die Standardkonfiguration automatisch gestartet wird image Diese Option leitet eine Konfiguration ein Alle Optionen die vor dem ersten Auftreten von image angegeben wurden gelten global f r alle Konfigurationen Alle anderen Optionen gelten nur f r jeweils eine Konfiguration Als Parameter erh lt die Option den Dateinamen des Kernels der f r diese spezielle Konfiguration verwendet werden soll root Hier wird festgelegt welche Partition als gemountet wird label Dieser Parameter gibt der Konfiguration einen Namen der dazu
25. P ICMP UDP und TCP kennt Normalerweise besteht auch kein Grund diese Protokolle in das Internet zu routen Sie sind nur f r den Betrieb im LAN vorgesehen 802 1d Ethernet Bridging Beim Bridging tritt ein Rechner gar nicht in Erscheinung er wirkt vielmehr wie ein Verst rker zwischen zwei Netzwerksegmenten der Pakete aus einem Segment transparent in das andere leitet und umgekehrt Hier wollen wir da gegen einen Router aufsetzen der von Rechnern im LAN gezielt angesprochen wird wenn Pakete in das Internet geroutet werden sollen Kommen wir nun zu den Netzwerkkarten Network device support Network device support Ja Dummy net driver support Ja Treiber f r eingebaute Ja u U als Modul Netzwerkkarten Wenn Sie ein Modem oder eine DSL Anbindung benutzen wollen so m ssen Sie das Point to Point Protocol aktivieren 142 PPP point to point support Ja PPP support for async serial ports Ja PPP support for sync tty ports Ja PPP Deflate compression Ja PPP BSD Compress compression Ja Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 143 162 Wenn Sie sich ber ISDN in das Internet einw hlen wollen so ben tigen Sie die folgen den Einstellungen Andernfalls k nnen Sie ISDN support abw hlen ISDN Subsystem ISDN support Ja u U als Modul Support Synchronous PPP Ja Use VJ compression with synchronous PPP Support generic MP Ja N tige Treiber Ja Beim HiSax Treib
26. S NetBIOS Server den Portmapper und die X Window Oberfl che verzichtet werden SuSE Die Installation von SuSE Linux erfolgt indem entweder von den mitgelieferten CD ROMs oder DVDs gebootet wird Wenn Sie zur Installation der ben tigten Software kommen sollten Sie im Men SOFTWARE AUSWAHL das Minmat System ausw hlen Unter ERWEITERTE Auswaut sollten Sie dann die zur Auswahl stehenden Pakete noch einmal einzeln betrachten und entschei den welche zus tzlich n tig sind Sie k nnen sich die Pakete in verschiedenen Arten gegliedert anzeigen lassen W hlen Sie Selektionen so werden Ihnen nicht alle Pakete angezeigt Bestimmte Pakete werden einfach als notwendig vorausgesetzt und k nnen nicht einzeln an oder abgew hlt wer den Aus diesem Grund sollten Sie sie lieber als hierarchisch gegliederte Paket Gruppen z B Produktivit t Editoren oder Hardware Modem anzeigen lassen Tabelle 8 1 gibt an welche Pakete zus tzlich sinnvoll ausgew hlt werden k nnen bzw welche besser abgew hlt werden Allerdings kann die dort pr sentierte Auswahl nur ein Vorschlag sein Wenn Sie z B keine ISDN Karte besitzen sind die Pakete i4 und i4lfirm reine Speicherplatzverschwendung Pakete die auf der Firewall besser nicht installiert werden sollten sind in der zweiten Spalte mit deinst gekennzeichnet So sollte eine Firewall z B feste IP Adressen einge tragen haben und diese nicht von einem DHCP Server beziehen weshalb d
27. SE Linux mit gt zcat usr share doc howto en txt BootPrompt HOWTO gz less bzw unter Debian mit gt zcat usr share doc HOWTO en txt BootPrompt HOWTO gz less anzeigen lassen kann Auch die Kernelquellen enthalten eine Aufstellung von Parametern Sie finden sie im Unterverzeichnis Documentation kernel parameters txt F r ISDN Karten kann es allerdings sinnvoll sein sich die aktuelle Dokumentation unter usr src linux Documentation isdn Hardware Integration durch Kompilation 155 firewall 2006 1 4 15 26 page 156 175 i anzusehen Die meisten ISDN Karten z B USR Sportster International TA Teles ELSA und Fritz Karten werden dabei vom HiSax Treiber unterstiitzt dessen Parameter ausf hrlich in der Datei README HiSax beschrieben sind Dort wird auch ausgef hrt welche Kartentreiber nur als Modul geladen werden k nnen und welche auch direkt in den Kernel kompiliert werden d rfen F r Netzwerkkarten lauten die Parameter unabh ngig von der verwendeten Karte ent weder ether lt irg gt lt iobase gt lt name gt Kernel 2 2 und 2 4 oder netdev lt irg gt lt io gt lt mem_start gt lt mem_ends gt lt name gt Kernel 2 6 Wobei bei netdev der Parameter lt mem_start gt teilweise auch benutzt wird um dem Treiber andere Dinge mitzuteilen Dies k nnte z B so aussehen ether 5 0x300 eth0 ether 9 0x340 eth1 Hiermit w rden zwei Netzwerkkarten f r die Interfaces etho und et
28. agegen ein paar mehr Schritte n tig SuSE 9 3 Hier reicht es eine Zeile in der exim Konfigurationsdatei zu ndern ffnen Sie dazu etclexim exim conf Dort finden Sie die folgende Zeile never users root Diese Zeile bewirkt da E Mails an root nicht zugestellt werden Da wir dies aber wol len sollten wir sie folgenderma en ndern never_users Debian 3 1 Im Gegensatz zu SuSE hat man bei Debian den Exim mit Standardeinstellungen kom piliert Daher kennt der Dienst eine feste Liste von Benutzerkonten an die unabh ngig vom Inhalt der Konfigurationsdatei niemals direkt E Mails zugestellt werden Diese Liste enth lt standardm ig root Konfiguration des Mailservers Exim 121 firewall 2006 1 4 15 26 page 122 141 Um E Mails die an root adressiert sind zustellen zu k nnen mu ein Benutzerkonto definiert werden das alle E Mails erh lt die f r root bestimmt sind Welches Benutzer konto dies ist wird in der Datei etc aliases definiert Sie enth lt Zeilen der Art Alias Benutzerkonto Mail die an Alias adressiert ist wird dabei an Benutzerkonto zugestellt Wir m ssen hier nach der Zeile suchen die definiert was mit der E Mail f r root ge schieht grep root etc aliases root user In diesem Fall wird die E Mail an das normale Benutzerkonto weitergeleitet das wir w hrend der Installation angelegt haben Wenn wir uns regelm ig unter diesem Benut zerkonto anm
29. allation auf um sicherzugehen das Sie auch wirklich von demselben Grundzustand ausgehen den ich im folgenden beschreibe Auf meinem Debiansystem wurden ansonsten die Vorgaben des installierten 2 2er Kernels bernommen Nach diesen Vorbereitungen k nnen wir nun beginnen den neuen Kernel zu konfigurie ren Dies geschieht mit dem folgenden Befehl make menuconfig Mit ihm starten Sie eine men gesteuerte Anwendung in der Sie jetzt gezielt ausw hlen k nnen welche Eigenschaften Ihr zuk nftiger Kernel aufweisen soll Wenn Sie dies das erste Mal machen oder vorher nur 2 4er Kernel kompiliert haben dann empfehle ich Ihnen dringend jeden einzelnen Punkt durchzugehen Es ist durch aus m glich sich einen Kernel ohne jede Unterst tzung f r Tastatur und Monitor zu kompilieren Sie sollten sicherstellen da alle ben tigten Komponenten vom Kernel unterst tzt wer den Andererseits sollten Sie aber keine unn tigen Features einkompilieren Wenn Sie im Einzelfall nicht wissen wof r eine Option gut ist k nnen Sie sich mit einen Hilfetext anzeigen lassen Dort wird dann in der Regel eine kurze Erkl rung der Option und eine Empfehlung der Art If unsure say Yes gegeben Als erstes k nnen wir unter Code maturity level options einstellen ob wir auch Funk tionalit ten im Kernel w nschen die noch nicht ausgereift sind Diese Funktionalit ten sind teilweise im Alpha Stadium und k nnen durchaus das System instabil
30. als unser Standarddateisystem auch vom Kernel unterstiitzt werden Zwar werden wir auf dem Rechner nicht zus tzlich ein Windows NT installiert haben und daher auf Unterst tzung f r NTFS verzichten k nnen aber eine Unterst tzung f r Disketten und CDs die unter einem Microsoft Betriebssystem formatiert wurden ist manchmal praktisch Allerdings war sowohl VFAT als auch Joliet Unterst tzung stan dardm ig angew hlt Wir sollten aber keine Netzwerkdateisysteme wie z B SMB Windows Freigaben oder NFS das Unix quivalent in den Kernel kompilieren Diese haben auf einer Firewall nichts zu suchen da die von ihnen benutzten Protokolle inh rent unsicher sind Filesystems Second Extended fs Support Ja Kernel automounter version 4 support Nein Network File Systems alle Unterpunkte abw hlen Kernelkompilation Nachdem wir festgelegt haben wie der zuk nftige Kernel aussehen soll m ssen wir ihn nun noch kompilieren Mit den Kerneln der Serie 2 6 wurde auch die Kernelkompilation berarbeitet Daher wird sie im folgenden in einem eigenen Abschnitt besprochen Die Kernel der Serie 2 2 und 2 4 unterscheiden sich hingegen nicht im Vorgehen und werden daher hier zusammen beschrieben Kernel der Serien 2 2 und 2 4 Zuerst werden mit make dep Abh ngigkeiten berpr ft worauf dann mit make clean die berreste fr herer Kompilationen gel scht werden Nun folgt die eigentliche Kompilation des Kernels Dieser kann in zwei Formen
31. amit k nnen nur dann Optionen eingegeben werden wenn der Benut zer das Pa wort kennt Da dieses nur selten gebraucht und dar ber hinaus im Klartext gespeichert wird sollte es sich dabei keinesfalls um das Root Pa wort handeln Auch sollte die Datei etc lilo conf nur f r root lesbar sein Beachten Sie aber bitte da die Konfiguration erst wirksam wird wenn Sie den Aufruf sbin lilo ausf hren Ohne diesen Befehl findet der Bootloader nach einer nderung seine Konfi gurationsdatei nicht mehr und der Bootvorgang miflingt Zus tzliche Details zu LiLo und der etc lilo conf finden Sie in Kapitel 8 Unterabschnitt LiLo ab Seite 159 Init Init ist der erste Proze der vom Kernel gestartet wird Er startet dann direkt oder indi rekt alle weiteren Prozesse Modernere Versionen von init erlauben es mehrere Varian ten vorzugeben die beschreiben welche Prozesse gestartet werden sollen Diese werden Runlevel genannt Jedem Runlevel ist der Aufruf eines Skripts zugeordnet Dieses sorgt daf r da diejeni gen Dienste gestartet werden die diesem Runlevel zugeordnet sind Es ist auch m glich im laufenden Betrieb mit init lt Runlevel gt in einen anderen Runlevel zu wechseln Dies f hrt dazu da die Dienste die dem alten Runlevel zugeordnet sind beendet und die Dienste des neuen Runlevels gestartet werden Des weiteren wird f r jeden Runlevel angegeben welche Terminals gestartet werden sol len Dabei kann es sich um di
32. anderen Systeme installiert sein Es soll daher der Hinweis gen gen daf der Befehl man lilo conf weitere Informa tionen zu den hier nicht behandelten Parametern liefert Alternativ kann auch in der Datei usr share doc packages lilo README nachgesehen werden Die globalen Optionen password und restricted kennen wir ja schon aus dem Kapitel 8 Unterabschnitt LiLo ab Seite 125 Dabei m chte ich ausdr cklich darauf hinweisen Hardware Integration durch Kompilation 159 firewall 2006 1 4 15 26 page 160 179 da das Pa wort zwar durchaus vern nftig gew hlt ist von Ihnen aber unter keinen Umst nden benutzt werden sollte da es hier in diesem Buch steht 8 Die anderen Parameter haben die folgenden Bedeutungen boot Dieser Parameter gibt an wohin LiLo installiert werden soll bliche M glich keiten w ren der Master Boot Record MBR der ersten Partition s 0 eine Floppy boot dev fdo oder der Bootsektor einer beliebigen Partition Die letzte Varian te wird normalerweise genutzt wenn schon ein Bootloader installiert ist z B f r Windows NT der nicht durch LiLo ersetzt werden soll compact Ist diese Option vorhanden so werden mehrere Sektoren gleichzeitig gelesen Dies bringt einen Geschwindigkeitsvorteil der vor allem bei Floppy Installationen sp rbar ist Es wird aber nicht garantiert da dies auch auf allen Systemen funktio niert lba32 Ohne diese Option m ssen sich alle Dateien die Li
33. auf dem aktuellen Stand sind Eine Aufstellung der ben tigten Programmversionen finden Sie in der Datei lt Inst Verzeichnis gt Documentation Changes Sehen Sie dabei genau hin was modprobe V anzeigt Die Ausgabe sollte die Bezeich nung module init tools enthalten Kernel der Serien 2 2 und 2 4 benutzen statt dessen die modutils Diese k nnen aber keine Module eines Kernels der Serie 2 6 laden Dar ber hinaus haben die module init tools derzeit eine sehr niedrige Versionsnummer die deutlich unter der der aktuellen modutils liegt Wenn man nicht genau hinsieht und nur die Versionsnummer wahrnimmt dann kann man leicht davon ausgehen da man die richtige Version hat obwohl dies nicht der Fall ist Haben Sie bereits vorher versucht einen Kernel zu konfigurieren dann bietet es sich an als erstes einen definierten Ausgangszustand herzustellen Mit make clean werden eventuelle Reste einer fr heren Kompilation entfernt Benutzen Sie dagegen make mrproper so wird zus tzlich auch eine eventuell vorhandene Konfiguration aus einem fr heren Versuch gel scht 11 Eine bersicht welche Targets sie make noch geben k nnen erhalten Sie wenn Sie make help eingeben 144 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 145 164 Danach k nnen Sie mit folgendem Aufruf eine Standardkonfiguration generieren make defconfig Rufen Sie den Befehl ruhig auch bei der allerersten Inst
34. azu die options Zeilen Im obigen Beispiel wird mit der Zeile options ne irg 5 dem Modul ne f r NE2000 kompatible Karten der Interrupt 5 als Parameter mitge geben Besitzt man mehrere NE2000 Karten so kann man auch die Parameter f r die einzelnen Karten durch Komma getrennt angeben options ne io 0x300 0x320 irq 5 7 Weitere Beispiele f r Optionen finden sich im Handbuch zu SuSE Linux in der mit der Distribution mitgelieferten etc modules conf bzw etc modprobe conf in der Datei usr src linux Documentation modules in den Dateien usr src Linux Documentation isdn README lt Treiber gt und in der Datei usr src linux Documentation networking net modules Hardware Integration durch Kompilation 163 firewall 2006 1 4 15 26 page 164 183 M chte man eine Auflistung aller momentan geltenden Zuordnungen erhalten so kann dies mit modprobe c erreicht werden Schlie lich existiert noch eine Reihe von weiteren Befehlen von denen insbesondere die folgenden interessant sind weil sie sowohl in der Datei etc modules conf als auch in der etc modprobe conf g ltig sind include lt Datei gt Der Inhalt der Datei wird ebenfalls eingelesen als ob er in dieser Datei st nde Zumindest in der etc modprobe conf kann hier auch ein Verzeichnis angege ben werden In diesem Fall werden alle Dateien in diesem Verzeichnis eingebunden install lt module gt lt command gt Wenn modprobe angewiesen wir
35. ch beide Protokolle einkompilieren und dann ausprobieren mit welchem Protokoll Ihnen der Verbindungsaufbau gelingt Passive Cards HiSax Support for EURO DSS1 Ja HiSax Support for german 1TR6 Ja Nun m ssen Sie den geeigneten Treiber f r Ihre Karte ausw hlen Wenn Sie eine Fritz Card PCI benutzen so m ssen Sie wissen da AVM vor geraumer Zeit eine neue Version mit der Versionsnummer 2 herausgebracht hat Diese Karte unterscheidet sich von ihrer Vorg ngerin deutlich so da der klassische Treiber f r die Fritz Card PCI mit der Fritz Card PCI v2 nicht mehr funktioniert Es existiert aber ein neuer experimen teller Treiber mit dem diese Karte problemlos funktioniert Dieser Treiber hat auch den Vorteil da er im Gegensatz zu seinem Vorg nger nicht als Modul kompiliert zu werden braucht AVM Fritz Card PCI PCIv2 PNP Ja support EXPERIMENTAL Unter Input device support werden die Eingabeger te konfiguriert Hier sollten wir darauf achten da unsere Tastatur und gegebenenfalls Maus unterst tzt wird Input device support serial port line discipline Ja Mice Ja PS 2 mouse Ja Serial Mouse Ja falls vorhanden Misc Ja PC Speaker support Ja Hardware Integration durch Kompilation 149 firewall 2006 1 4 15 26 page 150 169 Nachdem wir die Ger tetreiber ausgew hlt haben k nnen wir nun einstellen welche Dateisystem Typen wir unterstiitzen wollen Zumindest das Second Extended File Sy stem sollte
36. ckup des alten Kernels zu erzeugen und den Bootloader zu konfigurieren siehe Kapitel 8 Unterabschnitt Installation des Kernels ab Seite 154 So kann man das System immer noch mit dem alten Kernel booten wenn bei der Konfiguration des neuen Kernels ein Fehler begangen wurde Alternativ besteht auch die M glichkeit mit make zdisk oder make bzdisk den Kernel roh auf eine Diskette zu schreiben und dann von dieser zu booten Hierbei wird der Bootloader nicht benutzt Dies bietet die M glichkeit mal eben eine neue Kernelkonfi guration auszuprobieren ohne bleibende Sch den am System zu hinterlassen Allerdings k nnen dem Kernel bei dieser Variante keine Parameter mitgegeben werden Haben Sie schon einen Kernel kompiliert und besitzen eine Backup Konfiguration so k nnen Sie nach kleineren nderungen auch make zlilo oder make bzlilo benutzen Sie besitzen ja im Zweifelsfall den Backup Kernel falls der neukompilierte nicht booten will Kompilieren Sie allerdings einen neuen Kernel weil sich die Hardware grundlegend ge ndert hat so sollten Sie vorher sicherstellen da der Backup Kernel immer noch in der Lage ist das System soweit hochzufahren da ein neuer Kernel kompiliert werden kann Bei der Benutzung von make b zlilo ist auch zu beachten da der Automatismus so eingerichtet ist da der neue Kernel unter dem Namen vmlinuz nach INSTALLPATH kopiert wird Existiert dort bereits eine Datei vmlinuz so wird diese vorher in vm
37. d das angegebene Modul zu laden f hrt es statt dessen den Befehl lt command gt aus Das kann grunds tzlich jeder Befehl sein den Sie auf der Kommandozeile ausf hren k nnen remove lt module gt lt command gt Dies ist das Gegenst ck zu install Hier wird der Befehl ausgef hrt wenn versucht wird das Modul wieder zu entladen z B mit rmmod oder mit modprobe r In der Datei etc modules conf sind noch eine Reihe weiterer Befehle m glich diese wur den aber kaum genutzt und sind beim Umstieg auf die neue Modulverwaltung aufgege ben worden um eine klarere und einfacher zu verstehende Konfiguration zu schaffen Laden der Module durch ein Runlevel Skript Haben wir den Loader f r Kernelmodule deaktiviert so m ssen wir eventuell ben tigte Module von Hand laden Dies kann geschehen indem entsprechende modeprobe Befehle in ein entsprechendes Runlevel Skript eingebunden werden F r die Einbindung einer NE2000 Karte und einer Fritz Card PCI Version 2 k nnte es folgenderma en aus sehen bin sh modload start stop Ein kleines Skript das die n otigen Module l adt start Laden stop Entladen aller unbenutzten Module Copyright C 2003 Andreas G Lessig Lizenz GPL v2 oder h ohere Version 164 Kapitel 8 Installation der Software Firewall 2006 1 4 15 26 page 165 184 BEGIN INIT INFO Provides modload Required Start Should Start Required Stop Should Stop
38. d wm3TcQ7 default 0 timeout 30 Konfigurationen title Linux kernel hd0 0 boot vmlinuz root dev hda3 initrd hdo 0 boot initrd title Floppy lock root fdo chainloader 1 Die Datei beginnt mit den globalen Optionen Dabei legt password ein Pa wort fest ohne das die Konfiguration nicht ver ndert werden kann und keine zus tzlichen Parameter beim Booten angegeben werden k nnen default gibt an welche Konfiguration automatisch gebootet wird wenn die in timeout angegebene Anzahl von Sekunden verstrichen ist ohne da der Benutzer eine Konfigu ration ausgew hlt hat Hardware Integration durch Kompilation 157 firewall 2006 1 4 15 26 page 158 177 Nun folgen die einzelnen Konfigurationen Die Parameter bedeuten dabei im einzelnen title leitet eine Konfiguration ein Der Text hinter dem Schl sselwort wird im Bootmen angezeigt lock sollte immer direkt nach title angegeben werden Dieser Parameter bewirkt da der Men punkt abgebrochen wird wenn das Pa wort noch nicht eingegeben wurde kernel gibt bei Linux Systemen an welcher Kernel verwendet werden soll Gefolgt wird er von der Angabe des zu verwendenden Kernels sowie den Parametern die dem Ker nel bergeben werden sollen Der wichtigste Parameter ist hierbei root dev hda3 der angibt welche Partition vom Kernel als Wurzelverzeichnis gemountet werden soll Aber auch die in Kapitel 8 Unterabschnitt Bootoptionen ab Seite
39. der Software firewall 2006 1 4 15 26 page 163 182 Listen wir den Inhalt des Verzeichnisses dev auf so werden wir Eintr ge folgender Art finden brw rw rw 1 root disk 2 O Dec 11 18 20 fdo crw rw rw 1 root tty 3 48 Dec 11 18 20 ttySo Bei dem ersten Eintrag handelt es sich um das erste Diskettenlaufwerk Es ist ein Block Device mit der Major Nummer 2 und der Minor Nummer 0 Der zweite Eintrag steht f r die erste serielle Schnittstelle Sie ist ein Character Device mit der Major Nummer 3 und der Minor Nummer 48 Auf dieselbe Weise funktionieren auch die alias Eintr ge Ein Eintrag der Art alias block major 2 floppy bewirkt da f r den Zugriff auf alle Devices mit der Major Nummer 2 das Modul floppy geladen wird Der Eintrag alias char major 10 1 psaux gilt dagegen nur wenn auch die Minor Nummer hier 1 bereinstimmt Das ist in die sem Fall auch sinnvoll da die Major Nummer 10 diverse M use zusammenfa t die von der normalen PS 2 Maus bis zur Atari Maus reichen Die unterschiedlichen Typen werden dabei anhand der Minor Nummer unterschieden Es ist also naheliegend den PS 2 Treiber nicht f r Atari M use zu laden Ethernet Devices eth stellen dabei einen Sonderfall dar F r sie existieren keine Ein tr ge der Art dev etho Hier wird statt der Angabe von Major und Minor Nummer der Device Name z B etho angegeben Sollen dem Modul noch spezielle Parameter bergeben werden so dienen d
40. e Kapitel 8 Unterabschnitt Init ab Seite 125 Wenn wir die daf r n tigen Links erzeugen sollten wir darauf achten da das Skript vor dem gestartet wird welches das Netzwerk startet Unter SuSE k nnen wir das Skript wie schon procconf mit insserv installieren Konfiguration der etc fstab Die Datei etc fstab beschreibt welche Partitionen und Medien auf welche Verzeichnisse gemountet werden sollen Die Datei enth lt Zeilen die folgende Form haben lt Dev gt lt Mountp gt lt Fs gt lt Opt gt lt Dump gt lt Pass gt Die einzelnen Felder haben folgende Bedeutung Dev gibt das Device an das gemountet werden soll Mountp beschreibt das Verzeichnis auf das das Device gemountet werden soll Fs legt das verwendete Dateisystem fest Neben den g ngigen Linux Dateisystemen ext2 ext3 reiserfs und xfs existieren u a noch folgende Dateisysteme auto weist den Kernel an selber herauszufinden welches Dateisystem sich auf dem Datentr ger befindet iso9660 wird auf CDs verwendet 21 Debian verlinkt unter etc rcS d S40networking Hardware Integration durch Kompilation 171 firewall 2006 1 4 15 26 page 172 191 proc wird nur fiir den Eintrag fiir proc verwendet vfat Das normale FAT Dateisystem mit Unterst tzung f r lange Dateinamen Opt enth lt Optionen f r den mount Befehl Davon existieren eine ganze Reihe die in der Manpage zu mount beschrieben sind Hier sollen nur die wichtigsten
41. e der Eintrag folgender mafsen aus append hisax 27 2 HiSax ether 5 0x300 eth0 ether 9 0x340 eth1 Ist die Konfiguration abgeschlossen so mu ein neuer Bootloader erzeugt werden Dies mu jedesmal wieder geschehen wenn ein neuer Kernel erzeugt oder die Konfigurations datei ver ndert wurde Dies veranlassen wir mit dem Aufruf sbin lilo Added 1 Added lold Die Ausgaben zeigen da LiLo nun die Konfigurationen 1 und lold kennt wobei der Stern 1 als die Standardkonfiguration kennzeichnet die automatisch gew hlt wird wenn der Benutzer nicht manuell eine andere Wahl trifft Eintrag in die modules conf bzw modprobe conf Werden Module oft manuell aufgerufen kann es sinnvoll sein ben tigte Parameter in einer zentralen Konfigurationsdatei zu speichern Wichtiger wird so eine Datei aller dings wenn Module automatisch bei Bedarf geladen werden Hier wird bei jedem Zu griff auf ein St ck Hardware wie z B eine Karte oder ein angeschlossenes Ger t der Be fehl modprobe mit der Bezeichnung eines sogenannten Devices aufgerufen Diese Device Bezeichnung beschreibt nur um was f r eine Art Ger t es sich handelt z B Maus erste Netzwerkkarte oder etwas hnliches sie legt aber nicht fest welches Modul hierzu zu laden ist und welche zus tzlichen Optionen z B IRQ Port daf r n tig sind Hardware Integration durch Kompilation 161 firewall 2006 1 4 15 26 page 162 181 Aus diesen Gr nden be
42. e normalen virtuellen Terminals handeln die man zum lokalen Arbeiten nutzt es k nnen auf diese Weise aber auch Modemzug nge auf den seriellen Anschl ssen aktiviert werden Gesteuert wird der ganze Vorgang ber die Datei etc inittab In dieser wird unter ande rem festgelegt in welchen Runlevel das System nach dem Booten schalten soll welches Der Bootvorgang 125 firewall 2006 1 4 15 26 page 126 145 Skript zur Initialisierung gleich nach dem Start von init ausgef hrt und welches Skript beim Wechsel in einen bestimmten Runlevel gestartet werden soll Dar ber hinaus k n nen auch noch Programme definiert werden die bei bestimmten Ereignissen oder Tasta tureingaben aktiviert werden z B Stromausfall lt Ctrl gt lt Alt gt lt Del gt Das jeweilige Skript f r einen Runlevel dient dazu bestimmte Dienste zu starten bzw nicht mehr ben tigte Dienste des vorherigen Runlevels zu beenden Normalerweise exi stiert dazu f r jeden Runlevel ein eigenes Unterverzeichnis In diesem befinden sich Skripte deren Name mit einem K f r kill oder S f r start beginnt Soll das System nun in einen anderen Runlevel wechseln so wird das Skript des Run levels in der Regel alle diejenigen Skripte aufrufen deren Name mit K beginnt und die sich entweder im Verzeichnis des aktuellen Runlevels SuSE oder im Verzeichnis des neuen Runlevels befinden Debian Als Parameter wird stop bergeben Danach werden al
43. eded config file and read it GPM_SYSCONFIG etc sysconfig mouse test r GPM_SYSCONFIG exit 6 GPM_SYSCONFIG Check for existence of needed values from GPM_SYSCONFIG test MOUSEDEVICE a MOUSETYPE test GPM_PARAM exit 6 Das Skript bindet die Datei etc sysconfig mouse ein In der Konfigurationsdatei werden die Variablen MOUSEDEVICE MOUSETYPE und GPM_PARAM definiert Dabei kann in der ersten Variablen der Mauseingang festgelegt werden w hrend die zweite Variable das Kommunikationsprotokoll mit der Maus enthalten kann Alternativ kann auch ein kompletter Satz Parameter in GPM_PARAM eingetragen werden Shell functions sourced from etc rc status acl etc rc status Anschlie end wird das Skript rc status eingebunden das Funktionen definiert mit denen ein R ckgabewert verwaltet werden kann So berpr fen rc_check und rc_status den R ckgabewert des zuletzt aufgerufenen Programms und speichern diesen in einer internen Variablen rc_status kann dabei auf Wunsch den numerischen Status auch als Klartext ausgeben Option v rc_exit dient andererseits dazu das Skript zu beenden und den gespeicherten R ckgabewert an das aufrufende Programm zur ckzugeben First reset status of this service rc_reset Als erste der neu definierten Funktionen wird aber rc_reset aufgerufen um den gespei cherten Riickgabewert auf einen definierten Ausgangszustand alles o k zu setzen case 1 in start echo n Start
44. ein Das hei t erst wird dieses Skript gestoppt dann die Skripte welche die genannten Facilities bereitstellen Should Stop optional Wie bei Required Stop werden Skripte die diese Facilities be reitstellen nach diesem Skript gestoppt Existiert aber kein Skript das die jeweilige Facility bereitstellt so wird sie ignoriert Default Start In diesen Runleveln soll das Skript gestartet werden Default Stop In diesen Runleveln soll das Skript nicht laufen Short Description optional Eine einzeilige Beschreibung der Funktion Description Eine ausf hrliche Beschreibung Diese kann ber mehrere Zeilen gehen Folgezeilen m ssen mit lt Tab gt beginnen Header die mit optional gekennzeichnet sind d rfen dabei fehlen Facilities stehen dabei f r Systemdienste Grunds tzlich k nnen alle Runlevel Skripte mit dem Provides Header erkl ren da sie eine bestimmte Facility bereitstellen Eine Sonderrolle spielen die System Facilities Hierbei handelt es sich um Dienste deren Name standardisiert ist Sie stellen Standarddienste bereit die von vielen Anwendungen ben tigt werden Die Linux Standard Base definiert in der Version 1 2 die folgenden System Facilities local_fs Die lokalen Dateisysteme z B Festplatten wurden gemountet network Das Netzwerk ist aktiv portmap Der Portmapper ist gestartet remote_fs Die Netzwerklaufwerke wurden gemountet 128 Kapitel 8 Installation der Software firewall
45. einen Kernel der Serie 2 6 wie er mitlerweile von SuSE eingesetzt wird Aus diesem Grund habe ich die Konfiguration des Kernels dreimal beschrieben je eine Version f r Kernel der Serie 2 2 2 4 und 2 6 Sie k nnen getrost die Abschnitte ignorieren die nicht zu dem von Ihnen eingesetzten Kernel passen Bevor wir aber beginnen hier noch ein paar Hinweise die auf meinen eigenen Erfahrun gen beruhen e Gehen Sie immer von einer m glichst simplen Grundkonfiguration aus Es ist m g lich die Konfiguration so zu verbasteln da danach z B das Abschalten der Unter st tzung f r Module dazu f hrt da der Kernel beim Booten pl tzlich ohne jegliche Meldung abbricht und das System einfach stehenbleibt Verwenden Sie also make mrproper beim Kernel 2 2 oder 2 4 und die Befehle make clean und make defconfig beim Kernel 2 6 Bei Problemen sollten Sie erst einmal einen aktuellen Original Kernel von ftp ftp kernel org oder ftp ftp de kernel org verwenden Die Distributionen liefern teilweise stark modifizierte Quellen aus W hrend z B SuSE diverse experimentel le Zusatzfunktionen in den Kernel integriert entfernt Debian Teile des Kernels die nicht der Debian Philosophie entsprechen e Debian 3 0 Woody ist nicht f r die Kompilation eines 2 6er Kernels vorbereitet Es spricht aber nichts dagegen einen 2 4er Kernel zu verwenden Wollen Sie einen 2 6er Kernel verwenden so m ssen Sie mehrere Softwarepakete auf den aktuellen Stand bri
46. einsetzt so ist ein schlanker monolithischer Kernel der genau die ben tigten Treiber enth lt sicherlich die effizienteste L sung Dies bedeutet aber auch da der Kernel bei jeder neu installierten Hardware Drucker Zip Laufwerk SCSI Adapter oder hnlichem neu kompiliert werden mu Alternativ k nnte man zu Beginn einen modularen Kernel kompilieren wobei man die Unterst tzung f r jede Art von Hardware die man sp ter einmal anschaffen k nnte als Modul kompiliert Dies erlaubt es die Unterst tzung f r bestimmte Ger te im laufenden Betrieb an oder abzuschalten Dies geschieht indem Code dynamisch geladen wird der dann als Teil des Kernels arbeitet solange er gebraucht wird Wird er nicht mehr ben tigt wird der von ihm ben tigte Speicherplatz wieder freigegeben Auf diese Weise kann man einen generischen Kernel zu erstellen der auf einer Vielzahl von Systemen einsetzbar ist indem man einfach bei Bedarf die n tigen Module nach l dt um spezielle Hardware zu unterst tzen Die Alternative w re einen riesigen Kernel zu kompilieren der alle nur denkbaren Treiber bereits enth lt Gerade f r Rechner mit begrenztem Hauptspeicher ist diese L sung aber nicht besonders g nstig Daher erfreuen sich modulare Kernel bei den Herstellern von Distributionen gro er Beliebtheit Dieses Vorgehen hat aber auch Nachteile So existieren Module die die Sicherheit des Sy stems aush hlen indem sie hnliche Funktionen erf llen wie e
47. elden dann k nnen wir hier abbrechen Falls wir uns aber in der Regel nur kurz am System anmelden um es zu administrieren so kann es sein da wir das normale Benutzerkonto gar nicht verwenden In diesem Fall kann es sinnvoll sein eine Mailbox f r root als symbolischen Link des Benutzerkontos anzulegen cd var spool mail In s user root Testen der ge nderten Konfiguration Wir k nnen einfach testen ob unsere nderungen funktionieren indem wir uns selbst eine E Mail schicken sendmail root subject test Test 1 2 3 Die Leerzeile ist dabei wichtig Wir m ssen auch darauf achten da die letzte Zeile nur aus einem Punkt ohne zus tzliche Leerzeichen besteht Nun k nnen wir nachsehen ob die E Mail angekommen ist Dazu verwenden wir den Befehl mail Dieses E Mail Programm ist zwar archaisch und f r normale Zwecke kaum zu ertragen f r einen kurzen Check aber ausreichend mail Mail version 8 1 2 01 15 2001 Type for help var mail root 21 messages 1 new 21 unread gt N 21 root gonzales Tue Jul 26 21 53 15 397 test amp Die E Mail ist angekommen Mit dem Befehl q oder quit k nnen wir nun mail verlassen 1 Das Beispiel stammt von einem Debian Rechner daher werden Sie auf einem SuSE Rechner vermutlich eine andere Versionsnummer sehen ansonsten verhalten sich die mail Implementationen aber gleich 122 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 123
48. ellt da in der Tabelle fiir halboffene Verbindungen kein Ein trag fiir eine neue Verbindungsanfrage vorhanden ist so sendet er als eigene Folge nummer einen speziellen Wert Syncookie der aus der Adresse und dem Port von Absender und Server einem internen Z hler und der Folgenummer der Anfrage ge wonnen wurde Wenn nun das dritte Paket des Anfragenden eintrifft so kann an hand der Best tigungsnummer gepr ft werden ob dieses Paket wirklich die Ant wort auf ein Syncookie darstellt oder ob ein Angreifer versucht eine Folgenummer zu erraten 7 Auf diese Weise k nnen weitere Verbindungen entgegengenommen werden obwohl die Tabelle f r den Aufbau von Verbindungen voll ist icmp_echo_ignore_broadcasts Wird diese Funktion aktiviert 1 so antwortet der Rech ner nicht mehr auf ICMP Requests die nicht an ihn sondern an alle gerichtet sind die sich im selben Subnetz befinden Dies verhindert da der Rechner als Verst r ker f r ein Flooding mit Ping Paketen dient Neben diesen generellen Einstellungen k nnen auch noch gezielt Einstellungen f r die einzelnen Interfaces getroffen werden Dazu befindet sich unter proc sys net ipv4 conf jeweils ein Verzeichnis f r jedes Interface dem schon eine Adresse mit ipconfig zugewie sen wurde Neu eingerichteten Interfaces werden dabei jeweils die Einstellungen zuge wiesen die unter dem Verzeichnis defaults eingetragen sind Dar ber hinaus existiert ein Verzeichnis all Hier vorgenomme
49. er dhcpd nicht installiert werden sollte Pakete die nur auf der DVD nicht aber den CDs enthalten sind sind mit DVD ge kennzeichnet Das Paket exim kollidiert mit dem Paket postfix weshalb Sie postfix abw hlen sollten Sie werden sich jetzt vielleicht fragen warum ich Ihnen empfehle einen anderen Mailser ver zu installieren als von SuSE vorgesehen Die Firewall sollte normalerweise nicht als Mailserver dienen Dazu sollte man besser einen eigenen Server aufsetzen Auch wenn der postfix als sehr sicher gilt ist es keine gute Idee zus tzliche Netzwerkdienste auf einer Firewall zu betreiben 116 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 117 136 Tabelle 8 1 Pakete der SuSE Installation Version 9 3 Serie Paket Aktion Bemerkung Dokumentation binddoc inst Doku zum Bind books inst einige grundlegende B cher ber Linux DVD fhs inst der File Hierarchy Standard DVD howto inst die HOWTOs DVD man pages inst zus tzliche Manpages rfc inst Internet Standards suselinux adminguide_de inst Administrationshandbuch suselinux userguide_de inst Benutzerhandbuch Entwicklung dbus 1 glib deinst Bibliothek zu dbus 1 gcc inst C Compiler gcc c inst C Compiler hex inst Hexdumps erstellen DVD kernel source inst von SuSE modifizierte Kernelquellen ncurses devel inst fiir die Kompilierung von Meniiprogrammen Hardware Modem minicom inst Terminalprogramm
50. er f r diverse passive ISDN Karten mu nicht nur die gew nschte Kar te ausgew hlt werden es gilt auch sicherzustellen da das benutzte D Kanal Protokoll unterst tzt wird Fr her wurde in Deutschland 1TR6 benutzt heutzutage ist in ganz Eu ropa DSS1 auch Euro ISDN genannt gebr uchlich Im Normalfall sollte es daher gen gen nur DSS1 zu konfigurieren Wenn Sie allerdings auf Nummer Sicher gehen wollen k nnen Sie auch beide Protokolle einkompilieren Passive ISDN cards HiSax Support for EURO DSS1 Ja HiSax Support for german 1TR6 Ja Bitte beachten Sie da f r die Fritz Card PCI zwei Treiber existieren Das liegt daran da es mehrere Versionen dieser Karte gibt Karten die heutzutage verkauft werden tragen die Versionsnummer 2 oder h her Diese werden von dem alten Treiber AVM PNP PCI Fritz PnP PCI nicht unterst tzt Es gibt einen neuen experimentellen Treiber den Sie aktivieren wenn Sie folgende Einstellung treffen AVM Fritz Card PCI PCIv2 PNP support Ja Als letztes k nnen wir noch einstellen welche Dateisystem Typen wir unterst tzen wol len Zwar werden wir auf dem Rechner nicht zus tzlich ein Windows NT installiert ha ben und daher auf Unterst tzung f r NTFS verzichten k nnen aber eine Unterst tzung f r Disketten die unter einem Microsoft Betriebssystem formatiert wurden ist manch mal praktisch Wir sollten aber keine Netzwerkdateisysteme wie z B SMB Windows Freigaben oder NFS das Unix quiva
51. er mehr Nach der Installation versucht SuSE Ihre Netzwerkkarten zu konfigurieren Zum jetzigen Zeitpunkt ist es daf r aber noch zu fr h W hlen Sie deshalb unter Netzwerkkonfigu ration den Knopf ndern und l schen Sie dann unter Netzwerkschnittstellen alle Netzwerkkarten Unter Authentifikationsmethode w hlen Sie bitte lokal etc passwd 118 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 119 138 Debian Die Installation von Debian beginnt indem Sie von den Installationsmedien booten Wenn Sie wie beschrieben alle Netzwerkkabel abgezogen haben dann wird Debian fest stellen da kein DHCP Server zur Verf gung steht um die Netzwerkkarten automatisch mit IP Adressen zu versorgen Wenn Sie dann gefragt werden welche Netzwerk Konfigurationsmethode Sie verwenden wollen antworten Sie am besten Netzwerk unkonfiguriert lassen Kurz darauf werden Sie gefragt ob Sie eine PPP Verbindung f r die Installation ver wenden wollen Auch hier sagen Sie besser Nein Schlie lich m ssen Sie sich f r eine Methode zur Debian Software Auswahl entscheiden Nehmen Sie hier Manuelle Paketwahl Damit wird nur ein Minimalsatz an Paketen installiert Welche das sind wird Ihnen im folgenden angezeigt Durch Dr cken der Taste g best tigen Sie die Auswahl Wir werden sie sp ter noch genauer an unsere Bed rfnisse anpassen Werden wir schlie lich noch gefragt we
52. erlauben beliebige Kernel mit be liebigen Parametern zu booten sondern z B auch beliebige Dateien auf der Festplatte auslesen Au erdem enth lt der Grub einen Editor mit dem man das Bootmen um konfigurieren kann Um dies zu verhindern mu man ein Passwort festlegen das eingegeben werden mu um diese Funktionen freizuschalten Dies geschieht indem man als erste globale Option die folgende Zeile einf gt password lt Passwort gt Zus tzlich k nnen wir auch bestimmte Konfigurationen sperren indem wir direkt hin ter der jeweiligen title Zeile eine neue Zeile mit dem Befehl lock einf gen Wird dieser Men punkt ausgew hlt ohne da vorher das Pa wort eingegeben wurde so wird die Bearbeitung des Men punkts abgebrochen und der Benutzer findet sich im Men wie 124 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 125 144 der Dabei ist es wichtig da sich der Befehl direkt in der Zeile unter title befindet Die Zeilen werden der Reihe nach abgearbeitet Stehen also Befehle vor lock so werden diese ausgef hrt Wir werden in Kapitel 8 Unterabschnitt Grub ab Seite 157 noch einmal auf den Grub zur ckkommen Dort wird es dann noch einmal um das Anlegen eigener Konfiguratio nen gehen LiLo Um den LiLo zu sichern mu die Konfigurationsdatei etc lilo conf angepa t werden In ihren globalen Optionen sind die Zeilen password lt Passwort gt restricted nachzutragen D
53. erw hnt werden auto noauto gibt an ob die Partition beim Booten gemountet werden soll oder nicht nodev verhindert da eventuelle Devices auf dem Datentr ger als solche behandelt werden noexec verbietet das Ausf hren von Dateien auf dem Datentr ger nosuid sorgt daf r da das SUID Bit ignoriert wird ro bewirkt da das Dateisystem nur zum Lesen gemountet wird user erlaubt daR normale Benutzer das Dateisystem mounten d rfen Auf einer Firewall ist dies nicht so sinnvoll Auf normalen Systemen macht dies vor allem bei Wechselmedien Sinn Diese Option impliziert nodev noexec und nosuid Das Mounten durch normale Benutzer setzt auch voraus da der mount Befehl mit gesetztem SUID Bit installiert ist Dump ist normalerweise 0 Wenn Sie Backups mit dump machen steuert diese Zahl wie oft die Daten auf diesem Dateisystem gesichert werden Pass steuert die berpr fung des Dateisystems mit fsck Das Wurzelverzeichnis sollte hier eine 1 enthalten andere Dateisysteme eine 2 F r Wechselmedien ist eine ber pr fung mit fsck in der Regel nicht sinnvoll Hier sollte man eine 0 eintragen Normalerweise brauchen wir uns um die Datei etc fstab nicht zu k mmern da diese bei der Installation automatisch angelegt wird Nachdem wir jetzt aber einen eigenen Kernel kompiliert haben kann es sein da einige Eintr ge nicht mehr funktionieren Dies gilt insbesondere f r Wechselmedien die vom Betriebssystem automatisch beim Zugriff
54. etztes ausgef hrt wird Hardware Integration durch Kompilation 165 firewall 2006 1 4 15 26 page 166 185 Unter SuSE k nnen wir uns derartig komplizierte berlegungen sparen Hier reicht ein insserv modload Die Skripte in diesem Buch haben entsprechende Kommentare so da ihre Abh ngig keiten untereinander abgebildet sind Nur beim letzten Skript dieser Kette m ssen wir darauf achten da wir es in die Kommentare des SuSE Skripts network eintragen Aber dazu sp ter mehr Konfiguration des proc Dateisystems W hrend der Kernel fr her bis 2 0 bei der Kompilation konfiguriert wurde bestim men seit der Version 2 2 Variablen sein Verhalten die von root im laufenden Betrieb gesetzt werden k nnen Dazu dient das virtuelle Verzeichnis proc sys In ihm befinden sich in diversen Unterverzeichnissen Dateien deren Inhalt die Arbeitsweise des Kernels ma geblich beeinflu t Obwohl es sich bei ihnen nicht um reale Dateien sondern nur um ein Abbild bestimmter Kernelvariablen handelt kann der Zugriff auf sie mit normalen Programmen zur Datei bearbeitung erfolgen Es ist also kein Problem z B das Forwarding von IP Paketen mit dem Editor des Midnight Commanders anzustellen Die Dateien die uns im Rahmen des Firewalling interessieren finden sich unter proc sys netlipv4 ip_forward Nur wenn in dieser Datei eine 1 steht routet der Rechner Pakete zwischen anderen Rechnern F r eine Firewall ist die
55. figuration ausgew hlt so wird der festgelegte Kernel geladen und ausge f hrt Dieser beginnt nun damit alle fest einkompilierten Treiber zu starten und ge gebenenfalls zu initialisieren Ist er damit fertig so startet er ein Programm namens init Allerdings bieten die g ngigen Bootloader dem Benutzer nicht nur die M glichkeit vor her definierte Konfigurationen zu booten er kann statt dessen auch eigene Parameter bergeben Ein denkbarer Parameter w re dabei init bin sh Damit w rde der Kernel direkt nach dem Booten statt init eine Shell mit Rootrechten starten ohne vorher nach einem Pa wort zu fragen Um dies zu verhindern mu der Bootloader so konfiguriert werden da nur vorher festgelegte Konfigurationen gestartet nicht aber eigene Parameter bergeben werden k nnen Im folgenden sehen wir wie wir dies bei den derzeit g ngigen Bootloadern tun k nnen Grub Der Grub wird ber eine zentrale Datei gesteuert blicherweise handelt es sich dabei um etc boot grub menu lst Jede nderung die hier vorgenommen wird wird dabei au tomatisch beim n chsten Bootvorgang wirksam Die Datei ist dabei folgenderma en aufgebaut Globale Optionen gt title lt Konfigurationsname gt lt Konfigurationsoptionen gt title lt Konfigurationsname gt lt Konfigurationsoptionen gt Normalerweise kann ein Benutzer eine Eingabezeile aufrufen auf der er in einer Art Shell diverse Befehle absetzen kann die es nicht nur
56. findet sich unter man bash 132 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 133 152 installation sind alle diese Runlevel gleich eingerichtet und k nnen nach eigenem Geschmack mit Leben erf llt werden Standardm ig startet das System im Run level 2 Die Runlevel Skripte sind auch unter Debian nach dem schon beschriebenen Prinzip aufgebaut Sie werden beim Start eines Dienstes mit start als Parameter aufgerufen beim Beenden desselben mit stop startproc und killproc unter SuSE entspricht bei Debian der Befehl start stop daemon Betrachten wir nun einmal das Skript etc init d gpm von Debian bin sh Start Mouse event server PIDFILE var run gpm pid GPM usr sbin gpm CFG etc gpm conf test x GPM exit o if id u o J then echo You must be root to start stop or restart gpm exit 1 fi cmd1n niceness 0 if f CFG then n device then cmdln cmdln m device fi n type then cmdln cmdln t type fi n responsiveness then cmdln cmdln r responsiveness fi n sample rate then cmdln cmdln s sample rate fi I reserve the right to throw manpages at anyone who disagrees if n repeat_type amp amp repeat_type none then cmdln cmdln R repeat_type fi if n append then cmdln cmdln append fi If both the second device and type are specified use it if
57. genutzt werden kann sie am Bootprompt auszuw hlen Um nun auch unseren gesicherten Vorg ngerkernel benutzen zu k nnen f gen wir eine zus tzliche Konfiguration an die Datei an In unserem Beispiel s he das folgenderma en aus 18 Bevor Sie fragen Nein ich selbst benutze dieses Pa wort ebenfalls nicht 19 Es handelt sich dabei um Logical Block Addressing Hierbei werden die Datenbl cke auf der Festplatte einfach durchnumeriert statt sie als Sektor Lesekopf Zylinder anzugeben 160 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 161 180 Backup Konfiguration image boot vmlinuz prev root dev hda3 label lold Will das System sp ter nicht mehr booten so reicht am Bootprompt die folgende Einga be um wieder mit dem alten Kernel zu starten LILO lold Am Bootprompt k nnen wir auch Kernel Parameter eingeben Das Einbinden einer Fritz Card PCI Karte der Version 1 s he dabei folgenderma en aus LILO 1 hisax 27 2 HiSax F r eine Fritz Card PCI Version 2 ist dagegen kein spezieller Parameter n tig Nun wire es sicherlich reichlich unbequem dies bei jedem Bootvorgang einzugeben Die lilo conf kennt daher einen Eintrag append mit dem man all diese Kernelparame ter bergeben kann In unserem Beispiel mu die entsprechende Konfiguration um den folgenden Eintrag erweitert werden append hisax 27 2 HiSax Wollen wir zus tzlich zwei Netzwerkkarten verwenden so s h
58. h1 konfiguriert wel che die Ports 0x300 und 0x340 sowie die Interrupts 5 und 9 benutzen Allerdings hat die Angabe des Interfaces nur geringen Einflu auf die tats chliche Vergabe der Bezeichner Grunds tzlich werden Netzwerkkarten in der Reihenfolge gefunden in der ihre Treiber in den Kernel kompiliert wurden Die Numerierung erfolgt dann in der Reihenfolge in der die Karten erkannt werden Bei ISDN Karten ist das ganze schon komplizierter Nicht nur hat jeder Treiber seine eigenen Parameter auch f r den gebr uchlichsten Treiber HiSax h ngen die zu ber gebenden Parameter von der verwendeten Karte ab Generell folgen Sie aber hier dem folgenden Schema wobei die Zeile der bersichtlichkeit halber umbrochen wurde hisax lt typ gt lt dp gt lt pa gt lt pb gt lt pc gt lt typ2 gt lt dp2 gt lt pa2 gt lt pbo gt lt pco gt lt id gt ida gt F r eine einzelne ISDN Karte also hisax lt typ gt lt dp gt lt pa gt lt pb gt lt pc gt lt id gt Im folgenden finden Sie kurze Erl uterungen der Parameter typ Gibt den Kartentyp an Hersteller Modell und Ausf hrung So hat z B eine Fritz PCI Karte der Version 1 den Typ 27 w hrend eine normale Fritz Karte ISA nicht PnP den Typ 5 hat dp Legt das Protokoll des D Kanals fest Fr her benutzte man in Deutschland 1TR6 dp 1 heute benutzt man in ganz Europa Euro ISDN EDSS1 dp 2 156 Kapitel 8 Installation der Sof
59. hnisse fiir die einzelnen Interfaces Hier finden wir insbesondere die folgen den Dateien forwarding Dieser Parameter sollte in allen Dateien gleich gesetzt sein Er bestimmt ob sich der Rechner eher wie ein Arbeitsplatzrechner oder wie ein Router verh lt Au er Hardware Integration durch Kompilation 167 firewall 2006 1 4 15 26 page 168 187 dem definiert proc sys net ipv6 all forwarding ob eingehende IPv6 Pakete ber an dere Netzwerk Interfaces weitergeschickt werden Es ist im Gegensatz zu IPv4 nicht m glich das Weiterleiten von Paketen f r einige Interfaces zu aktivieren fiir andere aber zu unterbinden Wenn wir IPv6 Pakete weitervermitteln wollen so sollten wir in diese Datei 1 schreiben andernfalls 0 Achtung Das Schreiben in diese Datei setzt die im folgenden beschriebenen Dateien auf Standardwerte zur ck Wir m ssen also darauf achten in welcher Reihenfolge wir in die Dateien schreiben accept_ra Enth lt die Datei eine 1 so werden Router Advertisements akzeptiert Das hei t ein Protokoll wird genutzt mit dem automatisch Router im Netzwerk gefun den und genutzt werden k nnen Dies w rde unsere Firewall unn tigen Angriffen ffnen siehe Kapitel 4 Unterabschnitt Angriffe mittels ICMP ab Seite 30 accept_redirects Enth lt die Datei eine 1 so werden ICMP Redirect Pakete akzeptiert und das Routing wird entsprechend angepa t Das sollten wir unbedingt abschalten s
60. hr n tig Daher w rde ich Ihnen davon abraten um so eine m gliche Schwachstelle gleich von Anfang an auszur umen Loadable module support Enable loadable module support Nein Allerdings existieren bestimmte Treiber die nur als Modul funktionieren Auch mISDN die neue Unterst tzung f r passive ISDN Karten mu als Modul kompiliert werden Ben tigen Sie so einen Treiber dann m ssen Sie nat rlich Modulsupport anw hlen Al lerdings sollte neue Hardware nicht automatisch beim ersten Zugriff eingebunden wer den sondern nur dann wenn Sie diese explizit aktivieren indem Sie das Modul laden Loadable module support Enable loadable module support Ja Automatic kernel module loading Nein Auch der yast unter SuSE Linux erwartet da Module bei der Konfiguration automa tisch geladen werden Dies soll nicht hei en da er nicht benutzt werden kann wenn die Treiber in den Kernel kompiliert wurden es ist aber mit kleineren Anpassungsschwierig keiten zu rechnen Wenn Sie aber wie hier beschrieben eigene Skripte zur Konfiguration des Netzwerkes benutzen so sollte Sie dies nicht betreffen Als n chstes sollten wir den richtigen Prozessor einstellen Standardm ig ist hier ein Pentium 4 eingestellt Processor type and Features passenden Prozessor anw hlen Kommen wir nun zu den Treibern f r verschiedene Ger te Als erstes finden wir Optio nen f r Speichermedien Hierbei ist zu beachten da sich die Unterst tzung f r CD
61. ie hei en also etc rc lt Runlevel gt d Alle Runlevel au er S werden vom Skript etc init d rc bear beitet das mit dem Runlevel als Argument aufgerufen wird und die K Skripte des neuen Runlevels gefolgt von den S Skripten des neuen Runlevels aufruft Dienste werden also nur dann beendet wenn dies f r den neuen Runlevel so vorgesehen ist Soll ein Dienst nur in einem Runlevel laufen so mu sichergestellt sein da in allen anderen Runlevel Verzeichnissen K Skripte vorhanden sind Debian benutzt die folgenden Runlevel Runlevel S Dieser Runlevel sollte unter Debian nicht direkt aufgerufen werden Statt dessen sollte Runlevel 1 gew hlt werden wenn man in den Single User Mode gehen will Das Verzeichnis etc rcS d ist dem Bootvorgang zugeordnet Es kann Skripte enthal ten die beim Bootvorgang durch etc init d rcS ausgef hrt werden Anschlie end f hrt etc init d rcS noch Skripte in etc rc boot aus Dieses Verzeichnis existiert aber nur noch aus Kompatibilit tsgr nden Runlevel 0 In diesen Zustand wechselt das System wenn es heruntergefahren werden soll sync halt Runlevel 6 In diesen Zustand wechselt das System wenn es neu gestartet werden soll sync reboot Runlevel 1 In diesem Zustand ist das Netzwerk abgeschaltet und es kann nicht zwi schen virtuellen Konsolen umgeschaltet werden Single User Mode Runlevel2 5 Der normale Zustand mit voller Netzwerkunterst tzung In der Grund 5 Die Syntax von Shellskripten
62. iehe Kapitel 4 Unterabschnitt Angriffe mittels ICMP ab Seite 30 autoconf Diese Datei enth lt standardm ig denselben Wert wie accept_ra Handelt es sich dabei um eine 1 so werden Router Advertisements ausgewertet um die eige nen Netzwerkadressen zu konfigurieren In dieser Datei sollte unbedingt eine 0 stehen Schlie lich kann es noch passieren da jede Protokollmeldung der Paketfilter auch auf der Konsole erfolgt Dies kann manchmal doch recht irritierend sein wenn man z B gerade eine Konfigurationsdatei editiert Falls man den syslogd nicht falsch konfiguriert hat siehe Kapitel 9 Abschnitt Das Sy stemprotokoll ab Seite 205 so liegt die Ursache vermutlich in einer falschen Einstellung von proc sys kernel printk Diese Datei enth lt vier Zahlen die bestimmen wann Meldungen nicht nur an den sys logd geschickt sondern auch direkt auf die Konsole ausgegeben werden console_log_level Jede Mitteilung mit einer h heren Priorit t wird direkt auf die Kon sole ausgegeben Dabei gilt da die Priorit t um so h her ist je niedriger die Zahl ist die diese angibt Die h chste Priorit t ist 0 emerg die niedrigste 7 debug Bei manchen Kerneln ist hier 6 info vorgegeben wodurch fast jede Meldung des Kernels auch auf die Konsole ausgegeben wird default_message_level Dieser Wert wird immer dann als Priorit t einer Nachricht be nutzt wenn eine Funktion des Kernels printk aufruft ohne eine Priorit t
63. iert da der alte Treiber f r die Fritz Card PCI Version 1 mit DSS1 verwendet werden soll Hier wird zu diesem Zweck der Modulname benutzt Prinzipiell kann man aber auch einen definierten alias Namen benutzen In diesem Fall gelten Optionen nur wenn das Modul unter diesem alias Namen aufgerufen wird Hierbei gilt da Optionen die mod probe auf der Kommandozeile bergeben werden Vorrang vor Optionen haben die f r einen alias Namen definiert wurden Optionen die f r einen alias Namen definiert wurden haben wiederum Vorrang vor Optionen die f r den tats chlichen Namen eines Moduls definiert wurden Um den Mechanismus besser zu verstehen ist ein kleiner Exkurs in das Device Konzept von Linux n tig Ger te werden ber spezielle Dateien im Verzeichnis dev repr sen tiert Jeder Datei ist eine Major und eine Minor Nummer zugeordnet die das Device definieren Dar ber hinaus werden Devices in Block und Character Devices eingeteilt Bei Block Devices handelt es sich um Devices auf die immer nur in festen Bl cken zuge griffen werden kann Hierbei handelt es sich in der Regel um Festplatten und verwandte Speichermedien die nicht direkt ausgelesen sondern in das Dateisystem gemountet wer den Im Gegensatz dazu stehen die Character Devices aus denen einzelne Zeichen gelesen bzw in die Zeichen geschrieben werden k nnen Bei diesen handelt es sich z B um Ter minals Netzwerkkarten und M use 162 Kapitel 8 Installation
64. iguration statt einer Festplattenpartition das erste Diskettenlaufwerk angegeben Man h tte aber auch mit hd0 0 eine Partition vorgeben k nnen auf der z B Windows installiert ist chainloader gibt einen weiteren Bootloader an der nach Grub gestartet wird Steht 17 158 hier 1 so wird der erste Sektor der mit root angegebenen Partition verwendet In diesem Beispiel befindet sich der Kernel in einer anderen Partition als das Wurzelverzeichnis dev hda statt dev hdc Es wird also wohl eine Partition auf boot gemountet Eine Datei im Wurzelverzeichnis die ser Partition m te also als hdo 0 vmlinuz angegeben werden Dagegen w rde ein Kernel der sich im Unterordner boot auf der Partition des Wurzelverzeichnisses befindet mit hdo 0 boot vmlinuz angege ben werden SuSE umgeht dies mit einem symbolischen Link in boot der auf das Verzeichnis verweist in dem er sich befindet In s boot Damit ist es immer m glich die oben angegebene Form zu benutzen ohne sich Gedanken zu machen ob boot nun eine eigene Partition ist oder nicht Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 159 178 Um nun beim Booten auch unseren Backup Kernel ausw hlen zu k nnen m ssen wir noch eine weitere Konfiguration einf gen Hierzu reicht es wenn wir die Standardkonfi guration kopieren und einfach den Dateinamen des verwendeten Kernels anpassen title Backup Kernel kernel hdo 0 boot vmli
65. in Rootkit siehe Kapitel 4 Unterabschnitt Sicherungsma nahmen ab Seite 42 Sie sind allerdings noch schwerer zu entdecken da hier nicht normale Programme ausgetauscht werden um z B verd ch tige Prozesse zu verbergen sondern das Betriebssystem selbst manipuliert wird Wird auf einem System nur das Kommando ps ausgetauscht so kann man immer noch ein eigenes Programm zur Anzeige der Prozesse benutzen Verbirgt aber das Betriebssystem einen Proze so gibt es keinen Weg seine Existenz nachzuweisen Aus diesem Grund w re es eigentlich sinnvoll keine Unterst tzung f r das Laden von Modulen in den Kernel zu kompilieren Bei Kerneln der Serie 2 2 bleibt uns dieser Weg leider verschlossen da bestimmte Funktionalit ten nur als Modul kompiliert werden k nnen z B das FTP Masquerading Immerhin kann verhindert werden da der Ker nel selbst ndig Module l dt wenn ihm dies n tig erscheint Wird die Einstellung Un terst tzung des Loaders f r Kernelmodule deaktiviert so ist ein explizites Laden der Module n tig Andernfalls startet der Kernel immer dann ein externes Programm wenn er auf ein Ger t zugreifen soll f r das im Moment keine Unterst tzung besteht Dieses mu dann daf r sorgen da das geeignete Modul nachgeladen wird 8 Dies ist die Grundeinstellung der meisten Distributionen 9 Standardm ig wird modprobe aufgerufen Es kann aber auch ein anderes Programm konfiguriert werden 136 Kapitel 8 Installati
66. ing console mouse support gpm if test GPM PARAM then startproc GPM BIN GPM_PARAM 4 Zum Beispiel ms f r Microsoft M use ps2 f r ps 2 M use oder imps2 f r Intellimouse Modelle 130 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 131 150 else ADD_PARAMS if test GPM_REPEAT then ADD_PARAMS ADD_PARAMS R GPM_REPEAT fi startproc GPM BIN m MOUSEDEVICE t MOUSETYPE ADD_PARAMS fi rc_status v a stop echo n Shutting down console mouse support gpm killproc TERM GPM BIN rc_status v 33 try restart 0 status gt dev null amp amp 0 restart rc_status 33 restart 0 stop 0 start rc_status force reload echo n Reload console mouse support gpm o stop amp amp 0 start rc_status reload echo n Reload console mouse support gpm rc_failed 3 rc_status v ae status echo n Checking for console mouse support gpm checkproc GPM_BIN rc_status v 33 probe GPM_RESTART False for file in GPM_SYSCONFIG etc gpm do test file nt var run gpm pid amp amp GPM_RESTART True done test GPM_RESTART True amp amp echo restart ae echo Usage 0 start stop status try restart restart force reload reload probe exit 1 33 esac Schlie lich kennt das Skript eine Vielzahl von Kommandos von denen aber im Normal betrieb nur start und stop ben tigt werden um den Dienst zu starten oder zu bee
67. init d halt local aufge rufen hat f hrt es einen Neustart durch RunlevelS Wird benutzt wenn nach dem Booten in den Single User Mode geschaltet werden soll In diesem Zustand ist das Netzwerk abgeschaltet und es kann nicht zwischen virtuellen Konsolen umgeschaltet werden Runlevel 1 Entspricht Runlevel S Er wird dann benutzt wenn aus dem normalen Be trieb Runlevel 2 3 oder 5 in den Single User Mode geschaltet werden soll Runlevel 2 Entspricht Runlevel 1 allerdings werden mehrere virtuelle Konsolen unter st tzt Runlevel 3 Der normale Zustand mit voller Netzwerkunterst tzung Runlevel 5 In unserem Fall uninteressant Der Rechner startet gleich mit einer graphi schen Oberfl che Auch hier wurden Anpassungen vorgenommen um der Linux Standard Base Specifica tion zu gen gen So wurde fr her Runlevel 3 f r die graphische Anmeldung benutzt 2 f r ein netzwerkf higes System ohne graphische Anmeldung 1 f r ein System ohne Netzwerk und S wurde immer f r den Single User Mode benutzt Ein Beispiel f r ein Runlevel Skript ist etc init d gpm Dieses Skript startet und stoppt den gpm einen Dienst der die Benutzung der Maus im Textmodus erm glicht Von sei nem Aufbau her ist es repr sentativ f r die meisten Runlevel Skripte die Serverdienste starten Es lohnt sich daher es etwas n her zu betrachten bin sh Copyright c 1995 1998 S u S E GmbH Fuerth Germany Author etc init d gpm and symbolic its lin
68. k sbin rcgpm BEGIN INIT INFO Provides gpm Required Start remote_fs syslog Required Stop remote_fs syslog 3 Das Konzept entspricht der autoexec bat unter DOS Der Bootvorgang 127 firewall 2006 1 4 15 26 page 128 147 Default Start 2 3 Default Stop 015 6 Description Start gpm to support mouse on console END INIT INFO Nach dem normalen Header wie man ihn in den meisten Shellskripten findet folgt ei ne Reihe von Zeilen mit Verwaltungsinformationen Diese wurden erst vor einiger Zeit durch die Linux Standard Base Specification LSB definiert und erlauben es die S und K Links auf ein Skript automatisch zu generieren Die Linux Standard Base kennt die folgenden Header Provides Eine Facility die das Skript zur Verfiigung stellt Required Start Diese Facilities m ssen bereits zur Verf gung stehen wenn das Skript gestartet wird Das hei t Skripte die diese Facilities bereitstellen werden vor diesem Skript gestartet Existiert fiir eine der angegebenen Facilities kein Skript so kann dieses Skript nicht gestartet werden Should Start optional Wie bei Required Start werden Skripte die diese Facilities be reitstellen vor diesem Skript gestartet Existiert aber kein Skript das die jeweilige Facility bereitstellt so wird sie ignoriert und das Skript trotzdem gestartet Required Stop Wenn das Skript gestoppt wird sollten diese Facilities immer noch ak tiv s
69. kits zu installieren die kaum festzustellen sind Allerdings existieren bestimmte Treiber f r ISDN Karten die nur als Modul funktionie ren Welche dies sind erf hrt man in der entsprechenden Kernel Dokumentation unter usr src linux Documentation isdn README lt Treiber gt F r eine Fritz Card PCI ben tigen Sie z B keine Module wenn Sie den neuen experi mentellen Treiber benutzen Ein anderes Problem stellt der yast unter SuSE Linux dar Er erwartet da Module bei der Konfiguration automatisch geladen werden Dies soll nicht hei en da er nicht be nutzt werden kann wenn die Treiber in den Kernel kompiliert wurden es ist aber mit kleineren Anpassungsschwierigkeiten zu rechnen Wenn Sie aber wie hier beschrieben eigene Skripte zur Konfiguration des Netzwerkes benutzen so sollte Sie dies nicht betref fen Loadable module support Enable loadable module support Nein Als n chstes folgen einige notwendige Grundeinstellungen General setup etworking Support Ja BSD Process Accounting Ja Sysctl Support Ja Blockorientierte Ger te Loopback device support Ja Networking options Packet Socket Ja Kernel User netlink socket Ja Routing messages Ja Netlink device emulation Ja Network packet filtering Ja Unix domain sockets Ja TCP IP networking Ja IP advanced router Ja IP verbose route monitoring Ja IP kernel level autokonfiguration NEIN IP TCP syncookie support Ja IP Netfilter Configuration gt Connection T
70. lche E Mail Konfigurationsart wir w nschen so sollten wir Nur lokale E Mailzustellung keine Netzverbindung w hlen Nachdem die Installation abgeschlossen ist und wir als root am System angemeldet sind sollten wir noch die installierten Pakete durchgehen und die Pakete deinstallieren die unn tige Dienste bereitstellen Auch fehlen noch Pakete die n tzliche Funktionen be reitstellen Tabelle 8 2 kann Ihnen bei der Entscheidung helfen welche Pakete Sie unter Debian 3 1 n her betrachten sollten Am einfachsten bearbeiten Sie dabei die Pakete mit dem Programm aptitude Wenn Sie es aufrufen sehen Sie im Hauptbereich der Anwendung eine Baumstruktur die Sie durch einfaches Dr cken von lt Return gt auf einem Unterzweig auf und zuklappen k nnen Dr cken Sie dagegen lt Return gt auf einem einzelnen Paket so werden Ihnen weitere In formationen angezeigt F r die weitere Navigation sind folgende Befehle n tzlich ffnet ein Hilfefenster W hlt ein Paket an W hlt ein Paket ab Installation der ben tigten Software 119 firewall 2006 1 4 15 26 page 120 139 Tabelle 8 2 Pakete der Debian Installation Version 3 1 Bereich Abschn Paket Aktion Bemerkung admin main acct inst Protokollierung aufgerufener Programme at deinst Programme einmalig zu einer bestimmten Uhrzeit starten debfoster inst Deinstallation berfl ssiger Pakete hdparm inst Konfiguration von Festplatten
71. le diejenigen Skripte ausgef hrt die im Verzeichnis des neuen Runlevels liegen und deren Name mit S beginnt Als Parameter wird dabei start bergeben K Skripte dienen dazu Dienste zu beenden S Skripte dagegen starten Dienste Der zus tzliche Parameter erlaubt es ein einziges Skript zu schreiben das jeweils die ge w nschte Aktion ausf hrt Die K und S Skripte sind dabei in der Regel nur symboli sche Links auf das eigentliche Skript das in einem eigenen Verzeichnis untergebracht ist SuSE 9 3 Seit Version 8 0 befinden sich die Runlevel Skripte im Verzeichnis etc init d Dies wurde n tig um die in der Linux Standard Base Specification 1 festgelegten Re geln zu erf llen Vorher wurde sbin init d benutzt Die Runlevel Verzeichnisse hei en etc init d rc lt Runlevel gt d statt bisher sbin init d rc lt Runlevel gt d Alle Runlevel werden vom Skript etc init d rc bearbeitet das mit dem Runlevel als Argument aufgerufen wird und die K Skripte des alten Runlevels gefolgt von den S Skripten des neuen Runlevels aufruft blicherweise existiert f r jeden Dienst in dem Verzeichnis des Runlevels in dem er gestartet werden soll sowohl ein K Skript als auch ein S Skript So wird der Dienst beim bergang in den Runlevel gestartet und beim Ver lassen des Runlevels beendet Dies steht im Gegensatz zu Debian bei denen blicherweise f r einen Dienst in jedem Runlevel Verzeichnis nur ein Skript steht Dabei stehen K Skripte in Ru
72. lent in den Kernel kompilieren Diese haben auf einer Firewall nichts zu suchen da die von ihnen benutzten Protokolle inh rent unsicher sind Filesystems fat fs support Ja msdos fs support Ja VFAT Windows 95 fs support Ja ISO 9660 CDROM filesystem support Ja Microsoft Joliet filesystem extensions Ja proc filesystem support Ja Second Extended fs Support Ja Network File Systems alle Unterpunkte abw hlen Hardware Integration durch Kompilation 143 firewall 2006 1 4 15 26 page 144 163 i Konfiguration eines Kernels der Serie 2 6 Zuerst einmal sollten wir in das Verzeichnis mit den Kernelquellen wechseln Ublicher weise hei t es usr sre linux lt Versionsnr gt Unter Debian folgt man allerdings einer eigenen Konvention Dort hei t es usr src kernel source lt Versionsnummer gt Teilweise kommt es auch vor da die Quellen als gepacktes Tar Archiv unter usr src abgelegt sind In diesem Fall m ssen Sie sie noch mit tar xvzf lt Name gt lt Versionsnr gt tar gz bzw bunzip2 lt Name gt lt Versionsnr gt tar bz2 tar xvf lt Name gt lt Versionsnr gt tar entpacken Bringt Ihre Distribution die Kernelquellen des 2 6er Kernels nicht von Haus aus mit so besteht die Gefahr da auch die Systemprogramme noch nicht aktuell genug sind Haben Sie also die Quellen direkt von ftp ftp kernel org oder ftp ftp de kernel org her untergeladen so vergewissern Sie sich daf alle Programme
73. linuz old umbenannt 12 Es braucht nur einer der Aufrufe eingegeben zu werden F r eine normale LiLo Installation z B make b zlilo 13 In der Regel wird man die zweite Form ben tigen Hardware Integration durch Kompilation 151 firewall 2006 1 4 15 26 page 152 171 Damit nun der Kernel wie gewohnt nach boot installiert wird mu allerdings in usr src linux Makefile die Zeile INSTALL_PATH boot existieren damit der Kernel als boot vmlinuz abgelegt wird Bei der SuSE Version des Kernels ist dies in der Regel der Fall L dt man aber die originalen Kernelquellen z B von ftp ftp de kernel org so ist diese oft auskommentiert INSTALL_PATH boot Der Kernel wird dann direkt unter abgelegt Kernel der Serie 2 6 In der Serie 2 6 entfallen die Aufrufe make dep make zImage make zdisk und make zli lo Auch make bzlilo ist durch einen neuen Aufruf mit abweichender Semantik ersetzt worden Es reicht nun make ohne Parameter aufzurufen um den Kernel und die Module zu bau en Um die Module zu installieren mu auch weiterhin make modules install aufgeru fen werden Aber dazu mehr im n chsten Abschnitt Hier die wichtigsten Befehle im berblick Eine vollst ndige Liste zeigt der Befehl make help an make Kompilation des Kernels und der Module ohne sie zu installieren make install Installation des Kernels Dabei wird der bisher installierte Kernel ber schrieben Wurde bei der Konfigu
74. m Fall handelt es sich mehr um eine Frage der Einstellung als um eine Tods nde ICMP Pakete der Rechner im lokalen Netz brau chen normalerweise nicht weitergeleitet zu werden es sei denn die Benutzer sehen es als unabdingbar an die Erreichbarkeit von Rechnern im Internet mittels ping zu berpr fen Tatsache ist aber da diese Funktion normalerweise nicht ben tigt wird und deshalb gar nicht erst eingerichtet werden sollte Damit verhindert man z B da bestimmte Trojaner mit dem Internet kommunizieren k nnen Auch auf ICMP basierende DoS Angriffe werden so an der Firewall blockiert Fast Switching Ist diese Einstellung aktiv so k nnen bestimmte Pakete die nicht f r den Rechner selbst bestimmt sind direkt zwischen den Netzwerkkarten ausgetauscht werden Das Firewalling wird dabei umgangen was in unserem Fall nicht w n schenswert w re Network File Systems Netzwerkdateisysteme erlauben es Verzeichnisse und Dateien f r den Zugriff von anderen Rechnern aus freizugeben Diese Funktionalit t ist mit den hohen Sicherheitsanforderungen die an eine Firewall zu stellen sind unvereinbar Weder sollte sie einem Rechner soweit vertrauen ihm Zugriff auf die eigenen Dateien zu gew hren noch sollten die lokalen Server ein derartiges Vertrauen in die Firewall setzen Es bleibt die Frage ob Netzwerk und ISDN Karten als Module kompiliert werden soll ten Ist der Loader f r Kernelmodule deaktiviert bedeutet die Benutzung von Modu
75. mit make modules der Bau der modularen Kernelkomponenten Beim Kernel 2 6 entf llt dies da die Module automatisch mitkompiliert wurden Anschlie end wird mit make modules install die Installation der fertigen Module in die Wege geleitet 14 Vgl arch i386 boot install sh 15 Dies ist keine geringe Einschr nkung Ein monolithischer Kernel wie ich ihn hier beschreibe erf llt diese Bedingung wahrscheinlich nicht 16 Der Rechner auf dem ich dies schreibe hat tats chlich derer noch zwei Hardware Integration durch Kompilation 153 firewall 2006 1 4 15 26 page 154 173 Schlie lich mu f r die Module mit depmod a eine Liste mit Abh ngigkeiten erzeugt werden Nun k nnen die Module jederzeit mit modprobe modul_name Parameter geladen werden lsmod zeigt die geladenen Module an und rmmod s r modul_name entfernt ein Modul wieder aus dem Speicher Die Option s gibt dabei an da Ausgaben mittels Syslog protokolliert und nicht direkt auf das Terminal ausgegeben werden sollen Die Option r bewirkt da auch versucht wird Module zu entfernen die von dem zu entfernenden Modul benutzt werden Etwas komplizierter wird es wenn man eine neue Version des Kernels kompiliert hat In diesem Fall wird der oben genannte Aufruf von depmod die Module nicht finden da er nach Modulen f r den gerade aktiven Kernel sucht Obwohl man dem Befehl explizit eine Versionsnummer mitteilen kann z
76. n den Eine Fallunterscheidung mit case berpr ft welcher Befehl dem Skript als Parameter mitgegeben wurde War es start so wird der Dienst mit dem Befehl startproc gestar tet nachdem eventuell vorhandene Instanzen des Dienstes beendet wurden Gelingt dies Der Bootvorgang 131 firewall 2006 1 4 15 26 page 132 151 nicht liefert startproc einen Fehlerwert zur ck welcher durch rc_status als Text aus gegeben und intern gespeichert wird Wurde das Skript mit stop aufgerufen so ist der Ablauf hnlich es wird allerdings kill proc statt startproc aufgerufen wodurch alle Instanzen des gpm beendet werden Im Falle da das Skript schlie lich mit unbekannten Parametern aufgerufen wurde wird eine Meldung ausgegeben die alle diejenigen Befehle aufz hlt die das Skript kennt rc_exit Abschlie end wird noch ein Wert zur ckgegeben der signalisiert ob der Start erfolg reich war Dieses Skript funktioniert so allerdings nur unter SuSE Linux insbesondere da start proc checkproc killproc und die rc Funktionen in anderen Distributionen nicht enthal ten sind Davon abgesehen kann das Skript leicht f r eigene Zwecke modifiziert werden Debian 3 1 Debian benutzt eine andere Verzeichnisstruktur Bei dieser Distribution befinden sich die Runlevel Skripte im Verzeichnis etc init d Die Runlevel Verzeichnisse mit den symboli schen Links sind aber nicht etwa Unterverzeichnisse davon sondern von etc S
77. n der Regel eine kurze Erkl rung der Option und eine Empfehlung der Art If unsure say Yes gegeben Hier einige Optionen die f r Firewalls von besonderer Wichtigkeit sind Code maturity level options Prompt for development drivers Ja Loadable module support Enable loadable module support Ja kernel module loader support Nein General setup Networking Support Ja BSD Process Accounting Ja Sysctl Support Ja Hardware Integration durch Kompilation 137 firewall 2006 1 4 15 26 page 138 157 Networking options Packet Socket Ja Kernel User network link driver Ja Routing messages Ja Network firewalls Ja Unix domain sockets Ja TCP IP networking Ja P advanced router Ja P verbose route monitoring Ja P kernel level autokonfiguration NEIN P firewalling Ja IP firewall netlink device Ja P transparent proxying Ja P masquerading Ja P ICMP masquerading Nein P masquerading special module support Ja P ipautofw masquerading support Ja P ipportfw masquerading support Ja P ipmarkfw masquerading support Ja P optimize as router not host Ja P SYN flood protection Ja Fast switching NEIN Network device support Network device support Ja Dummy net driver support Ja Treiber f r eingebaute Netzwerkkarten Ja u U als Modul PPP point to point support Ja ISDN Subsystem ISDN support Ja u U als Modul Support Synchronous PPP Ja N tige Treiber Ja Bei einer passiven Karte HiSax
78. ne Einstellungen wirken sich auf alle Interfaces aus Es existieren u a diese Einstellungen accept_redirects Bestimmt ob ICMP Redirect Nachrichten angenommen werden oder nicht Wir werden sp ter derartige Pakete sowieso ausfiltern Der Standardwert ist 1 f r einen normalen Rechner 0 f r einen Router IP optimize as router not as host Da wir den Kernel als Router konfiguriert haben sollte die Standardeinstel lung unseren W nschen entsprechen accept_source_route Legt fest ob Pakete mit einer Source Route angenommen werden oder nicht Der Standardwert ist 0 f r einen normalen Rechner 1 f r einen Rou ter F r unsere Firewall ist dies eher unerw nscht Es empfiehlt sich daher diese Einstellung zu deaktivieren 0 rp_filter Ist diese Einstellung aktiviert wird berpr ft ob ein Paket tats chlich ber das Interface empfangen wurde das den Routing Regeln entsprechend zu erwarten ge wesen w re Dies dient dem Schutz vor IP Spoofing ist aber normalerweise nicht ak tiv 0 Lediglich f r lokale und Broadcast Adressen wird diese berpr fung immer durchgef hrt Es ist sehr sinnvoll diese Funktion auf einer Firewall zu aktivieren 1 Benutzen wir einen Kernel der Serie 2 6 und haben wir auch die Unterst tzung f r IPv6 einkompiliert so sollten wir auch die Interface spezifischen Einstellungen unter proc sys net ipv6 conf anpassen Auch hier existieren die Unterverzeichnisse all defaults sowie Verzeic
79. nen Schlie lich f hrt das hier beschriebene Vorgehen auch dazu da Sie Ihr System deut lich besser kennenlernen und sich so ein Verst ndnis erwerben das Ihnen fehlen w rde wenn Sie nur die benutzerfreundlichen Administrationswerkzeuge benutzen Beginnen Sie also damit da Sie vor dem Boot des Rechners alle Ethernet und ISDN Kabel sowie alle Verbindungen zu Modems vom Rechner abziehen So vermeiden Sie da Ihr Rechner aus dem Internet angreifbar wird bevor Sie ihn fertig konfiguriert ha ben Nun k nnen wir mit der eigentlichen Installation beginnen 115 firewall 2006 1 4 15 26 page 116 135 Installation der ben tigten Software Es ist an dieser Stelle nicht m glich f r alle gebr uchlichen Distributionen eine ausf hr liche Installationsanleitung zu geben Hierzu konsultieren Sie bitte die mit den Distribu tionen gelieferte Dokumentation Es existieren allerdings einige Punkte in denen eine Firewall Installation von der Installation eines normalen Arbeitsplatzrechners abweicht Diese wollen wir im folgenden am Beispiel von SuSE und Debian betrachten Besonders ist darauf zu achten welche Software installiert wird Hier gilt auf jeden Fall Weniger ist mehr Jedes installierte Programm ist eine potentielle Sicherheits l cke Dies gilt insbesondere f r aktive Serverdienste Aus Sicherheitsgriinden sollte auf der Firewall auf WWW FTP NNTP Netbios Telnet R Rsh Rlogin NF
80. ngen oder Sarge Version 3 1 verwenden e SuSE Versionen seit 8 3 benutzen Kernel 2 6 und k nnen teilweise keine lteren Ver sionen kompilieren e Der ISDN Support unter Kernel 2 6 ist derzeit f r einen Umbau vorgesehen Noch ist es m glich die altbekannten HiSax Treiber zu verwenden In Zukunft wird ange strebt auf CAPI Treiber umzusteigen F r einige aktive ISDN Karten von AVM und Eicon Networks ist dies bereits m glich f r klassische passive Karten wie z B die Fritz Card ist die Unterst tzung derzeit experimentell und nicht Teil des Kernels Wenn Sie diese nutzen wollen m ssen Sie erst die Kernelsourcen modifizieren 6 Dies trifft zumindest auf 2 4er Kernel unter SuSE 8 3 9 0 und 9 1 zu 7 Vgl das Linux 2 6 and mISDN HowTo unter http rcum uni mb si uvp00845b Hardware Integration durch Kompilation 135 firewall 2006 1 4 15 26 page 136 155 Grundlagen Modularer vs monolithischer Kernel Man unterscheidet zwei verschiedene Arten einen Kernel zu kompilieren Zum einen k nnen die ben tigten Treiber in den Kernel hineinkompiliert werden monolithischer Kernel zum anderen k nnen Treiber bei Bedarf nachgeladen werden modularer Ker nel Letzteres ist sogar im laufenden Betrieb m glich ohne da neu gebootet werden m te Der Men punkt HARDWARE IM SYSTEM INTEGRIEREN im yast ist so ein Beispiel f r das dynamische Einbinden von Modulen Wei man im voraus welche Hardware man
81. nleveln in denen er nicht gestartet werden soll w hrend sich S Skripte in Verzeichnissen von Runleveln befinden in denen der Dienst gew nscht ist Unter SuSE Linux werden die folgenden Runlevel verwendet boot Dies ist der Zustand in dem sich das System beim ersten Start von init befindet Er stellt einen Sonderfall dar da es keinen Runlevel boot gibt den man mit init lt Level gt aufrufen kann Trotzdem ist auch ihm ein Verzeichnis etc init d boot d zugeordnet das Skripte enthalten kann die durch das Skript etc init d boot ausgef hrt wer den Anschlie end startet boot noch etc init d boot local Dieses Skript dient in 126 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 127 146 erster Linie dazu eigene Programme zu definieren die beim Systemstart vor dem Start aller anderen Dienste ausgefiihrt werden sollen Runlevel 0 In diesen Zustand wechselt das System wenn es heruntergefahren werden soll sync halt Im zugeh rigen Vezeichnis etc init d rc0 d befindet sich nur ein Link auf das Skript etc init d halt Dieses f hrt seinerseits vor dem Beenden von Linux noch das Skript etc init d halt local aus welches in seiner Funktion das Gegenst ck zu boot 1ocal darstellt Runlevel 6 In diesen Zustand wechselt das System wenn es neu gestartet wer den soll sync reboot Das Skript etc init d reboot wird ber einen Link in etc init d rc6 d ausgef hrt Nachdem es das Skript etc
82. nuz prev root dev hda3 initrd hdo 0 boot initrd Beim n chsten Bootvorgang werden Sie nun einen Eintrag Backup Kerne im Bootme n vorfinden W hlen Sie diesen aus wenn Ihr selbstkompilierter Kernel nicht starten will LiLo Den Bootloader LiLo haben wir schon in Kapitel 8 Unterabschnitt LiLo ab Seite 125 kennengelernt Haben wir dort nur die M glichkeit betrachtet die Konfiguration am Bootprompt zu ndern so soll es jetzt um die permanente Konfiguration gehen Dies geschieht in der Datei etc lilo conf Diese k nnte etwa folgenderma en aussehen LILO Konfigurationsdatei Start LILO global Section If you want to prevent console users to boot with init bin bash restrict usage of boot params by setting a passwd and using the option restricted password wm3TcQ7 restricted boot dev hda compact faster but won t work on all systems 1ba32 vga normal read only prompt timeout 100 End LILO global Section Standardkonfiguration image boot vmlinuz root dev hda3 label 1 Grunds tzlich unterteilt sich die Datei in mehrere Bereiche Die ersten Zeilen bilden die globalen Optionen die Einstellungen beinhalten die f r alle Bootkonfigurationen gleich sind Danach folgen die einzelnen Abschnitte f r die einzelnen Installationen Diese beginnen mit image f r Linux Konfigurationen oder other f r andere Systeme wie DOS Win dows usw Auf einer Firewall sollten aber grunds tzlich keine
83. on der Software firewall 2006 1 4 15 26 page 137 156 Im Kernel der Serie 2 4 oder 2 6 besteht diese Einschr nkung nicht falls nicht eine Hard warekomponente konfiguriert werden mu f r die der n tige Treiber nur als Modul kompiliert werden kann Konfiguration eines Kernels der Serie 2 2 Um nun einen Kernel zu erzeugen sollten wir als erstes seine gew nschten Eigenschaften festlegen Dazu wechseln wir mit cd usr src linux in das Verzeichnis mit den Kernelquellen linux ist dabei ein symbolischer Link auf das eigentliche Verzeichnis mit den aktuellen Quellen Dieses hat dann normalerweise einen Namen der Art linux lt Versionsnr gt Eine Ausnahme bildet hierbei Debian Dort hei t das Verzeichnis kernel source lt Versionsnummer gt und ein symbolischer Link fehlt Haben Sie schon einmal eine Version des Kernels kompiliert und wollen nun wieder zu den Standardeinstellungen zur ckkehren so k nnen Sie dies mit dem folgenden Befehl erreichen make mrproper Nun k nnen Sie den Kernel an Ihre Bed rfnisse anpassen Dazu existiert ein men ge steuertes Konfigurationsprogramm das Sie mit make menuconfig aufrufen k nnen Es empfiehlt sich die Men s Punkt f r Punkt durchzugehen und gezielt nur Unterst t zung f r diejenigen Komponenten auszuw hlen die auch tats chlich ben tigt werden Ist dies bei einer Einstellung unklar so kann mit ein Hilfetext angezeigt werden Dort wird i
84. r Modem oder DSL brauchen Sie auch noch das Point to Point Protocol 148 PPP point to point support Ja PPP filtering Ja PPP support for async serial ports Ja PPP support for sync tty ports Ja PPP Deflate compression Ja PPP BSD Compress compression Ja Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 149 168 Wenn Sie sich ber ISDN in das Internet einw hlen wollen so ben tigen Sie die folgen den Einstellungen Andernfalls k nnen Sie ISDN support abw hlen ISDN Subsystem ISDN support Ja u U als Modul In Kernel 2 6 hat man begonnen die Unterst tzung f r ISDN Karten auf ein neues Trei bermodell namens CAPI v2 0 umzustellen Auf diese Weise werden derzeit aber nur ei nige wenige Karten unterst tzt F r die Mehrzahl ben tigen Sie immer noch die alten ISDN4Linux Treiber wie sie bereits im Kernel 2 4 enthalten waren Old ISDN4Linux Support Synchronous PPP Ja Use VJ compression with synchronous PPP Ja Support generic MP Ja Beim HiSax Treiber f r diverse passive ISDN Karten mu nicht nur die gew nschte Kar te ausgew hlt werden es gilt auch sicherzustellen da das benutzte D Kanal Protokoll unterst tzt wird Fr her wurde in Deutschland 1TR6 benutzt heutzutage ist in ganz Eu ropa DSS1 auch Euro ISDN genannt gebr uchlich Im Normalfall sollte es daher gen gen nur DSS1 zu konfigurieren Wenn Sie allerdings auf Nummer Sicher gehen wollen k nnen Sie au
85. racking Ja FTP protocol support Ja IPtables support Ja limit match support Ja MAC address support Ja netfilter MARK match support Ja TOS match support Ja Connection state match support Ja Hardware Integration durch Kompilation 141 firewall 2006 1 4 15 26 page 142 161 Packet filtering Ja REJECT target support Ja Full NAT Ja MASQUERADE target support Ja REDIRECT target support Ja Packet mangeling Ja TOS target support Ja MARK target support Ja LOG target support Ja The IPX protocol Nein Appletalk protocol Support Nein DECnet support Nein 802 1d Ethernet Bridging Nein Bevor wir weitermachen noch ein paar Worte zu den Einstellungen von denen hier abgeraten wird IP kernel level autoconfiguration Diese Einstellung bewirkt da der Kernel seine Netz werkadressen beim Booten mittels DHCP erfragt Abgesehen davon daf nicht immer ein DHCP Server zur Verfiigung steht ist es sinnlos einem Server die Netzwerk adresse dynamisch zuzuweisen Seine Klienten w ten dann ja nicht unter welcher Adresse sie ihn erreichen k nnen Schlie lich ist das Protokoll unsicher und es sind eine Menge Angriffe denkbar die damit beginnen k nnten einen falschen DHCP Server aufzusetzen und daf r zu sorgen da der echte kurzzeitig nicht antworten kann IPX Appletalk DECnet support Hier handelt es sich um diverse Netzwerkprotokolle Diese werden aber vom Firewalling nicht unterst tzt das nur I
86. ration ein Fehler gemacht so ist das System nur noch mit einer speziellen Bootdiskette zu starten make bzdisk Kompilation des Kernels und Installation auf eine Diskette Bootdisk Wenn das Booten von der Diskette funktioniert k nnen wir den Kernel installieren Andernfalls nehmen wir die Diskette heraus booten normal von der Festplatte und starten einen neuen Versuch einen passenden Ker nel zu konfigurieren make fdimage Es wird nicht direkt auf eine Diskette sondern in eine Image Datei geschrieben make install sollten Sie nur benutzen wenn Sie bereits eine Backup Konfiguration er stellt haben zu der Sie zur ckkehren k nnen falls Ihr neukompilierter Kernel nicht lauff hig ist F r den ersten Versuch kompilieren Sie den Kernel besser mit make ma chen eine Kopie des alten Kernels und kopieren den neuen dann manuell siehe Kapitel 8 Unterabschnitt Installation des Kernels ab Seite 154 Technisch istmake install etwas komplizierter als in fr heren Versionen make bzlilo Es wird zuerst versucht ein Programm bin installkernel aufzurufen Wenn dieses nicht existiert wird als zweites sbin installkernel versucht Wenn dieses ebenfalls nicht ge funden wird wird der Kernel in das Verzeichnis kopiert das in der Variable INSTALL 152 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 153 172 PATH vorgegeben ist Anschlie end wird sbin lilo bzw wenn dieses Programm nicht existiert
87. rter Browser privoxy inst Webproxy squid inst Webproxy 120 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 121 140 Erlaubt es nach einem Begriff zu suchen n Beide Tasten setzen die Suche fort g Installiert die ausgew hlten Pakete Unter Umst nden werden vorher noch automa tisch hinzugef gte oder vorgeschlagene Pakete angezeigt In diesem Fall mu noch einmal mit lt g gt best tigt werden q Beendet das Programm Wenn wir bei der Installation gefragt werden Sollen die cdrecord Programme als SUID root installiert werden so sollten wir dies ablehnen Auf der Firewall werden nur in seltenen F llen CDs gebrannt z B f r Backups Dies kann man dann auch als Benutzer root tun Konfiguration des Mailservers Exim Ist die Installation abgeschlossen und sie sind als root am System angemeldet so m s sen Sie jetzt noch konfigurieren wohin E Mails geschickt werden die an root gesandt wurden Grunds tzlich ist es der Wille der Exim Sch pfer daR die E Mails nicht im Postkorb von root sondern von einem normalen Anwender landen Vorzugsweise sollte es sich dabei um die Person handeln die f r die Administration des Rechners zust ndig ist Aus diesem Grund ist in der Konfiguration blicherweise eine Zeile eingetragen die es verbietet root E Mails zuzustellen Unter SuSE 9 3 reicht es diese Zeile zu ndern damit root wieder E Mails empfangen kann Unter Debian 3 1 sind d
88. s gsfc nasa gov NE 000 ethercard probe at 0x300 00 80 ad 18 9c 97 etho NE2000 found at 0x300 using IRQ 9 In diesem Beispiel wurde SCSI Unterstiitzung in den Kernel kompiliert es wurden aber keine SCSI Hostadapter gefunden Des weiteren ist das PPP Protokoll fiir den Modem betrieb sowie eine NE2000 kompatible Netzwerkkarte vorhanden Diese Meldungen liefern einen guten Anhaltspunkt ob die einkompilierten Treiber auch alle Devices erkannt haben Allerdings ziehen sie beim Booten doch recht schnell vorbei Die folgenden Tatstaturbefehle helfen dieses Problem in den Griff zu bekom men lt Shift gt lt PgUp gt nach oben scrollen lt Shift gt lt PgDown gt nach unten scrollen Alternativ kann mit dem Befehl dmesg less ein spezieller Speicherbereich im Kernel abgefragt werden in dem die Bootmeldungen gespeichert werden Unter SuSE Linux wird das Ergebnis eines solchen Aufrufs direkt nach dem Systemstart in die Datei var log boot msg geschrieben Hardware Integration durch Kompilation 173 firewall 2006 1 4 15 26 page 174 193
89. se Einstellung unabdingbar Da sie alle anderen Einstellungen auf ihre Standardwerte zur cksetzt sollte sie als erstes vorge nommen werden ip_always_defrag nur Kernel 2 2 Wenn in dieser Datei eine 1 steht wird jedes an kommende Paket defragmentiert bevor die Firewallregeln darauf angewendet wer den Dies ist notwendig um Angriffe durch Fragmentierung zu verhindern Die se Angriffe wurden in Kapitel 4 Unterabschnitt Fragment Angriffe ab Seite 37 be schrieben Seit Kernel 2 4 geschieht die Defragmentierung automatisch und die Datei entf llt ip_dynaddr Wenn ein Rechner seine IP Adresse dynamisch beim Verbindungsaufbau zugewiesen bekommt wird das erste Paket das den Verbindungsaufbau in Gang ge setzt hat in der Regel verlorengehen Dies liegt daran da zu dem Zeitpunkt als es abgeschickt wurde noch nicht bekannt war welche IP Adresse der Rechner bekom men w rde Ohne g ltige Absenderadresse kann ein Paket aber nicht beantwortet werden Diese Einstellung behebt nun den Mangel Mit ihr schreibt der Kernel nachtr glich die Absenderadresse um G ltige Werte sind 0 aus 1 an 2 Vermerken der Aktio nen im Kernel Log tcp_syncookies Aktiviert die Funktionalit t die wir mit IP SYN flood protection 2 2 x oder IP TCP syncookie support 2 4 x in den Kernel kompiliert haben 166 Kapitel 8 Installation der Software firewall 2006 1 4 15 26 page 167 186 Wenn der Kernel festst
90. sion identisch und damit unbrauchbar Nun kann man den neuen Kernel mit cp usr src linux arch i386 boot zImage boot vmlinuz oder cp usr src linux arch i386 boot bzImage boot vmlinuz umkopieren Bootoptionen Nun kann es vorkommen da Treiber f r eine bestimmte Hardware in den Kernel kom piliert wurden das Ger t aber beim Booten nicht erkannt wird Dies ist insbesondere dann der Fall wenn mehr als eine Netzwerkkarte des gleichen Typs installiert wurde Hier bricht der Kernel in der Regel die Suche ab sobald er eine Karte gefunden hat Auch lassen sich Karten oft auf diverse Ports und Interrupts konfigurieren auf denen der Kernel unter Umst nden nicht standardm ig nach ihnen sucht Ein solcher Fall ist der Treiber f r NE2000 kompatible ISA Netzwerkkarten Dieser fin det Karten nur dann wenn sie Port 0x300 benutzen Die Ursache f r dieses Verhalten liegt in der Tatsache da die Kommandos die der Treiber benutzen mu um festzustel len ob ein bestimmter Port von einer solchen Netzwerkkarte benutzt wird ltere SCSI Hostadapter zum Absturz bringen k nnen Ungl cklicherweise gibt es aber eine Reihe von Ports auf die sowohl NE2000 Karten als auch besagte SCSI Adapter eingestellt wer den k nnen Der Treiber begn gt sich daher mit Port 0x300 auf den NE2000 Karten normalerweise voreingestellt sind Um dem Kernel nun abweichende Parameter mitzuteilen existiert eine Reihe von Optio nen die man sich unter Su
91. sitzt modprobe eine Konfigurationsdatei in der die Zuordnun gen von Device Bezeichnungen zu Modulen sowie die zu verwendenden Optionen f r das jeweilige Modul festgelegt sind Hierbei handelt es sich bei Kerneln der Serie 2 2 und 2 4 um die Datei etc modules conf Mit den Kerneln der Serie 2 6 wurde das ganze Modulkonzept gr ndlich berarbeitet Neben anderen Dingen nderte sich auch der Na me dieser Konfigurationsdatei Sie hei t jetzt etc modprobe conf und enth lt Zeilen der Art alias block major 2 floppy alias char major 27 ftape alias char major 10 1 psaux alias etho ne alias block major 43 hisax alias block major 44 hisax alias block major 45 hisax options ne irq 5 options hisax id HiSax typ 27 protocol 2 Hierbei definieren die alias Befehle zus tzliche Namen unter denen die Module ange sprochen werden k nnen Dies nutzt man im Falle des Loaders f r Kernel Module um die beschriebene Umsetzung einer Device Bezeichnung in den Namen eines Treibermo duls zu realisieren Man k nnte dies allerdings auch dazu benutzen einen Treiber jenach Bedarf mit verschiedenen Parametern aufzurufen indem man ihm f r jede Konfigurati on einen eigenen Namen gibt dem dann eigene Optionen zugeordnet werden Diese Optionen werden mit den options Befehlen bergeben So wird im oben gezeigten Beispiel dem Modul ne mitgeteilt da die von ihm unterst tzte Netzwerkkarte den IRQ 5 benutzt Der Hisax Treiber wird dagegen dahingehend konfigur
92. sparent in das andere leitet und umgekehrt Hier wollen wir da gegen einen Router aufsetzen der von Rechnern im LAN gezielt angesprochen wird wenn Pakete in das Internet geroutet werden sollen TFTP Amanda Backup Protocol TFTP wird von Rechnern ohne Festplatte verwendet um alle ben tigten Dateien herunterzuladen Das Protokoll verf gt ber keine nen nenswerten Authentisierungsmechanismen und sollte auf keinen Fall durch die Fire wall gelassen werden In beide Richtungen w re dies katastrophal Weder ist es sinn voll da die Rechner im lokalen Netz Systemdateien aus dem Internet herunterladen die m glicherweise manipuliert sind noch wollen Sie es einem Rechner im Internet erlauben sich eine Pa wortdatei von einem Ihrer Server herunterzuladen F r das Amanda Backup Protocol gelten hnliche berlegungen Im Normalfall wol len Sie doch Ihre Backups nicht auf einem Rechner im Internet durchf hren IPX Appletalk DECnet support Hier handelt es sich um diverse Netzwerkprotokolle Diese werden aber vom Firewalling nicht unterst tzt das nur IP ICMP UDP und TCP kennt Normalerweise besteht auch kein Grund diese Protokolle in das Internet zu routen Sie sind nur f r den Betrieb im LAN vorgesehen Kommen wir nun zur Unterst tzung f r Netzwerkkarten Network device support Network device support Ja Dummy net driver support Ja Treiber f r eingebaute Ja u U als Modul Netzwerkkarten F r die Internet Anbindung be
93. t zu st ren So kann ein Server durch eine gro e Anzahl von ICMP Paketen u U berlastet und damit au er Betrieb gesetzt werden Hardware Integration durch Kompilation 139 firewall 2006 1 4 15 26 page 140 159 Abschlie end noch ein Hinweis zum HiSax Treiber f r diverse passive ISDN Karten Hier mu nicht nur die gew nschte Karte ausgew hlt werden man mu auch sicher stellen da das benutzte D Kanal Protokoll unterst tzt wird Fr her wurde in Deutsch land 1TR6 benutzt heutzutage ist in ganz Europa DSS1 auch Euro ISDN genannt ge br uchlich Im Normalfall sollte es daher gen gen nur DSS1 zu konfigurieren Wenn Sie allerdings auf Nummer Sicher gehen wollen k nnen Sie auch beide Protokolle einkom pilieren und dann ausprobieren mit welchem Protokoll Ihnen der Verbindungsaufbau gelingt Konfiguration eines Kernels der Serie 2 4 Um nun einen Kernel zu erzeugen sollten wir als erstes seine gew nschten Eigenschaften festlegen Dazu wechseln wir mit cd usr src linux in das Verzeichnis mit den Kernelquellen linux ist dabei ein symbolischer Link auf das eigentliche Verzeichnis mit den aktuellen Quellen Dieses hat dann normalerweise einen Namen der Art linux lt Versionsnr gt Eine Ausnahme bildet hierbei Debian Dort hei t das Verzeichnis kernel source lt Versionsnummer gt und ein symbolischer Link fehlt Haben Sie schon einmal eine Version des Kernels kompiliert und wollen nun wieder zu
94. tionen Produktivit t Text patch inst Einspielen von Patches System Basis acct inst Programmaufrufe protokollieren System Daemons at deinst Programme einmalig zu einer bestimmten Uhrzeit starten dbus 1 deinst Message Bus wird von hal ben tigt hal deinst Daemon der Hardware Informationen sammelt Wird von SuSE f r das Hotplug ging benutzt und von submount ben tigt nscd deinst Name Service Caching Daemon macht NIS und LDAP effizienter openslp server deinst unn tiger Server powersave deinst Stromspar Daemon System Dateisysteme mtools inst Zugriff auf DOS Disketten submount deinst automatisches Mounten von Datentr gern Der postfix hatte in meinen Versuchen mit SuSE den Nachteil da der Dienst grund s tzlich aktiv sein mu te D h es war immer ein Netzwerkdienst auf Port 25 aktiv Deak tivierte man den Dienst so war nicht einmal eine lokale Zustellung von E Mails m glich Lokale E Mails werden aber z B von Cron Jobs verwendet um root ber aufgetretene Probleme zu informieren Mit exim war dies kein Problem Beim Senden einer lokalen Mail wurde exim kurz gestar tet stellte die E Mail zu und beendete sich wieder ohne aber auf Port 25 Verbindungen entgegenzunehmen Dar ber hinaus kam er sehr viel besser mit der Tatsache zurecht da mein selbstkompilierter Kernel kein IPv6 unterst tzte Es war allerdings n tig die Konfiguration so zu ndern da exim auch E Mails an root zustellte Aber dazu sp t
95. tware firewall 2006 1 4 15 26 page 157 176 pa pb pc Stellen kartenspezifische Parameter ein Diese Parameter werden f r jede Kar te anders benutzt und m ssen deshalb in der Dokumentation nachgeschlagen wer den Dar ber hinaus brauchen einige PCI Karten keine zus tzlichen Parameter so da diese dann entfallen id Dieser Parameter gibt der Karte einen Bezeichner unter dem Konfigurationspro gramme gezielt eine bestimmte Karte ansprechen k nnen Dieser String kann will k rlich gew hlt werden zwei Karten d rfen aber nicht denselben Bezeichner haben Aus technischen Gr nden werden die Bezeichner durch Prozentzeichen getrennt Eine Ausnahme bildet die Fritz Card PCI Version 2 wie sie momentan verkauft wird Diese ben tigt keinen Parameter Ist der Treiber einkompiliert so wird die Karte auto matisch erkannt Wie man die Parameter konkret bergibt h ngt vom verwendeten Bootloader ab Aus diesem Grund wollen wir uns im folgenden einmal die beiden g ngigsten Bootloader ansehen Grub Nachdem wir den Grub schon einmal in Kapitel 8 Unterabschnitt Grub ab Seite 124 unter dem Gesichtspunkt betrachtet haben wie wir kontrollieren welche Konfiguratio nen der Benutzer booten darf wollen wir hier einmal einen umfassenderen Blick auf die Konfigurationsdatei werfen Diese finden wir unter boot grub menu Ist Sie k nnte folgenderma en aussehen GRUB Konfiguration Globale Optionen passwor
96. wort zu umgehen Dabei kann es sich z B um einen Jumper auf dem Motherboard oder ein Masterpa wort handeln Schlimmstenfalls mu die Batterie des CMOS RAMs entfernt werden Ist ihm dies zu aufwendig kann er notfalls auch die Festplatte ausbauen und in einen anderen Rechner einbauen wo er dann unbeschr nkten Zugriff hat Es gibt mittlerweile Miniatur PCs in der Gr e einer Zigarrenschachtel die ber einen Anschlu f r Tasta tur Maus Monitor sowie eine zus tzliche Festplatte verf gen Der Bootloader Wird von Festplatte gebootet so wird der Bootloader aktiv Er wird nun nach der Partiti on suchen auf der seine Konfigurationsdaten installiert sind Findet er diese so wird er einen Prompt oder ein Bootmen anzeigen Nun kann der Benutzer zwischen verschiedenen vordefinierten Konfigurationen ausw h len in denen jeweils festgelegt ist welcher Kernel bzw welches Betriebssystem gestartet werden soll und auf welcher Partition sich das Wurzelverzeichnis des zu bootenden Sy stems befindet Des weiteren k nnen diverse Parameter angegeben werden die die Arbeit des Kernels beeinflussen 2 Obwohl ein DOS Bootvirus unter Linux wohl kaum aktiv werden kann besteht doch die Gefahr da er versucht sich in den MBR zu schreiben bevor Linux gebootet ist Dabei w rde er den Bootloader l schen womit Linux nicht mehr starten k nnte Der Bootvorgang 123 firewall 2006 1 4 15 26 page 124 143 Wurde eine Kon
Download Pdf Manuals
Related Search
Related Contents
fi-6140 / fi-6240 - Guide d`Utilisation du Scanneur d Manual de Usuario en Español Modelo ZA705 Zoom ADSL X5 Switch User Manual MODE D`EMPLOI www.philips.com/welcome Type 長時間心電図解析プログラム QP-550シリーズ LG Electronics 5270 Flat Panel Television User Manual WorkinGirls : mûre folie QNAP TS-653 Pro 説明資料【PDF:1.0MB】 Copyright © All rights reserved.
Failed to retrieve file