6 Systemdiagnose
Transcription
6 Systemdiagnose
6 Systemdiagnose In diesem Kapitel lernen Sie: • Die Fähigkeit, viele detaillierte Informationen über das System und die Hardware zu finden, unter anderem, wie Sie herausfinden, welche Chipsätze Grafikkarten und Netzwerkkarten enthalten und was Sie zu deren Konfiguration ben ötigen. • Kerneleigenschaften zur Laufzeit zu beeinflussen • Kernel-Laufzeitvariablen flüchtig und dauerhaft zu setzen • IDE-Festplattenzugriffe zu optimieren • SCSI-Geräte im laufenden Betrieb hinzuzufügen/zu entfernen 6.1 Das /proc-Dateisystem 6.1.1 Das Verzeichnis /proc Im Linux-Kernel wird eine besondere Schnittstelle für die Anzeige der KernelLaufzeit-Parameter benutzt. Die Schnittstelle besteht aus einigen Dateien im procDateisystem (gemountet im Verzeichnis /proc), die Kernel-Parameter oder KernelTabellen und Strukturen beinhalten. proc ist dabei ein Pseudo-Dateisystem, es steht also dahinter kein physikalisches Gerät. Viele UNIX-Administrationsprogramme nutzen die Informationen aus dem /proc-Dateisystem. Das /proc-Dateisystem ist einzigartig unter den Betriebssystemen, denn damit kann man nicht nur richtig gut in den Kern und in die Hardware hineinschauen, sondern auch Kernel-Parameter zur Laufzeit verändern. Sehr ausführliche Dokumentation findet man in der Kernel-Dokumentation /usr/src/linux/Documentation/filesystems/proc.txt oder in der Man-Page man 5 proc. ✎ Beispiele für /proc-Dateien: interrupts beinhaltet eine Liste der benutzten Interrupts. ioports Liste der belegten IO-Ports devices Informationen, welche Geräte-Treiber im Kernel geladen sind. Die Zahl vor dem Treiber repräsentiert die Major-Number , also die Treiber-Nummer des 143 Systemdiagnose Geräte-Treibers. Will man Gerätedateien für dieses Gerät mit mknod anlegen, wo muß man diesem unter anderem diese Treibernummer angeben. pci Informationen über die PCI-Geräte im System. Ab Kernel 2.6 ist diese Datei nicht mehr vorhanden; dafür sind ähnliche Informationen in /proc/bus/pci/devices zu finden. cpuinfo enthält den Typ/Geschwindigkeit des Prozessors. mounts liefert eine stets aktuelle Liste der zur Zeit gemounteten Dateisysteme (und ändert sich immer beim Aufruf eines mount- bzw. umount-Kommandos). Dies ist besonders dann nützlich, wenn das Root-Filesystem nur read-only gemountet ist, und dadurch die eigentlich dafür zuständige /etc/mtab nicht den aktuellen Zustand repräsentiert. Das Format der Datei ist mit dem der Datei /etc/fstab identisch, nur daß hier die letzten beiden Spalten (die fsck bzw. dump zuständig sind) keine Bedeutung haben und stets als 0 angegeben werden. Dokumentation zu dieser Datei findet man mittels man mount und man fstab. partitions ist eine Liste aller Partitionen aller Platten, die der Kernel kennt. Die Zahlen vor dem Gerätenamen sind die Major-Number, die Minor-Number der Gerätedatei und die Partitionsgröße. tty/driver/serial zeigt den Zustand der seriellen Schnittstellen an. sys/dev/parport/parportSchnittstellen-Nummer/ enthält Konfigurationen zu den parallelen Schnittstellen. Besonders interessant ist hier die Datei irq, in der der Schnittstelle zugewiesene IRQ steht (-1 bedeutet, daß die Schnittstelle keinen IRQ belegt). Beachten Sie dabei, daß das Modul parport pc geladen sein muß, damit dies im /proc-Dateisystem erscheint. sys/dev/cdrom/info zeigt Informationen über die eingebauten CD-Laufwerke an. driver/rtc steht für Real Time Clock und überwacht die Echtzeituhr des Systems. Interessant ist hier der Batteriestatus! loadavg zeigt den Durchschnittswert der Systemlast. uptime zeigt an, wie lange das System schon läuft. Tip: Eine übersichtlichere und deutlich lesbarere Variante zu /proc/pci bzw. /proc/bus/pci/devices liefert das Kommando lspci: 144 6.1 Das /proc-Dateisystem $ lspci 00:00.0 Host bridge: Acer Laboratories Inc. [ALi] M1541 (rev 04) 00:01.0 PCI bridge: Acer Laboratories Inc. [ALi] M5243 (rev 04) 00:07.0 ISA bridge: Acer Laboratories Inc. [ALi] M1533 PCI to ISA Bridge [Aladdin IV] (rev c3) 00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10) 00:09.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c810 (rev 23) 00:0a.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c810 (rev 02) 00:0f.0 IDE interface: Acer Laboratories Inc. [ALi] M5229 IDE (rev c2) 01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage IIC AGP (rev 7a) Dieses Kommando ist nützlich, um herauszufinden, welchen Chipsatz eine neue Netzwerkkarte, die Grafikkarte oder der SCSI-Controller hat. Damit fällt es leicht, das passende Kernel-Treibermodul zu finden, da die Module auch nach dem Chipsatz benannt sind, und nicht nach dem Kartennamen. Tip: Eine sehr gute Übersicht über Geräte, IRQs, I/O-Ports und DMA-Kanäle liefert der Befehl lsdev: $ lsdev Device DMA IRQ I/O Ports -----------------------------------------------53c7,8xx 9 10 cascade 4 2 dma 0080-008f dma1 0000-001f dma2 00c0-00df eth0 11 dc00-dcff fpu 13 00f0-00ff ide0 14 01f0-01f7 03f6-03f6 ffa0-ffa7 ide1 15 0170-0177 0376-0376 ffa8-ffaf keyboard 1 0060-006f ncr53c7,8xx d400-d47f d800-d87f pic1 0020-003f pic2 00a0-00bf rtc 8 0070-007f serial 3 02f8-02ff 03f8-03ff timer 0 0040-005f vga+ 03c0-03df 145 Systemdiagnose Tip: Auch procinfo liefert eine Übersicht über das System: # procinfo Linux 2.2.17-21mdk (chmou@no) (gcc 2.95.3 19991030 ) #1 Thu Oct 5 13:16:08 CEST 2000 1CPU [johannes] Memory: Mem: Swap: Total 130656 248968 Used 108308 0 Free 22348 248968 Bootup: Wed Feb 21 19:35:47 2001 user : nice : system: idle : uptime: irq irq irq irq irq irq 6.1.2 0: 1: 2: 3: 6: 8: 0:11:26.29 1:37:26.11 0:02:45.92 0:00:55.55 1:52:33.85 675387 23026 0 46652 2 1 10.2% 86.6% 2.5% 0.8% Shared 0 Buffers 15304 Cached 41356 Load average: 1.01 1.05 1.06 2/83 3439 page in : page out: swap in : swap out: context : timer keyboard cascade [4] serial rtc irq irq irq irq irq irq 66484 29734 1 0 1269700 9: 10: 11: 13: 14: 15: disk disk disk disk 18685 80 32038 1 20403 5 1: 2: 3: 4: 15934r 2743r 2727r 3054r 4544w 2545w 3431w 2978w 53c7,8xx 53c7,8xx eth0 fpu ide0 ide1 Das Verzeichnis /proc/net/ Einige Kernel-Netzwerk-Tabellen befinden sich im Verzeichnis /proc/net/. Beispiele /proc/net/-Dateien: dev Tabelle der Netzwerk-Devices mit Statistiken arp die ARP-Tabelle route die Routing-Tabelle ip masquerade enthält eine Übersicht, über alle Verbindungen, die der Rechner über IP-Masquerading weiterleitet (existiert ab Kernel 2.6 nicht mehr). 146 ✎ 6.1 Das /proc-Dateisystem 6.1.3 Das Verzeichnis /proc/sys/ Das /proc/sys/-Verzeichnis enthält zwei Arten von Pseudodateien: • Normale Dateien, die Statusinformationen ausgeben, wie alle, die wir oben schon kennengelernt haben. Diese sind nur lesbar. • Kernelparameter-Dateien. Diese repräsentieren die Werte von Kernelvariablen, etwa die maximale Anzahl der geöffneten Dateien, das IP-Forwarding, etc. In diese Dateien kann auch vom Systemadministrator geschrieben werden. Dadurch läßt sich der Wert dieser Variablen ändern. Dies ist jedoch ein flüchtiger Zustand. Beim nächsten Neustart sind die Einstellungen zurückgesetzt. Abhilfe schafft bei RedHat und Debian das Utility sysctl (Konfigurationsdatei /etc/sysctl.conf), mit dem sich diese Einstellungen dauerhaft konfigurieren lassen. Auch SuSE verwendet mittlerweile sysctl mit der zusätzlichen Konfigurationsdatei /etc/sysconfig/sysctl. Allgemeine Kernel-Parameter regeln die allgemeinen Eigenschaften des Kernels. ✎ Beispiele: fs/ Dieses Unterverzeichnis enthält Parameter, die Dateisysteme betreffen. fs/file-max enthält die maximale Anzahl geöffneter Dateien, die der Kernel verwaltet. ✎ Beispiel: # cat /proc/sys/fs/file-max 4096 # echo 8192 > /proc/sys/fs/file-max # cat /proc/sys/fs/file-max 8192 kernel/panic Steht hier eine 0, dann bleibt der Kernel beim Systemabsturz in einer Panic-Schleife ; ungleich 0 bedeutet, daß der Kernel nach sovielen Sekunden automatisch das System wieder hochfahren soll. kernel/version enthält die Kernel-Version kernel/ctrl-alt-del Ist diese Variable 0, so wird ein Signal an den init-Prozeß weitergeleitet, so daß dieser elegant das System herunterfahren kann. (Siehe entsprechende Zeile in /etc/inittab.) Ist diese Variable 1, so macht der Kernel 147 Systemdiagnose bei dieser Tastenkombination einen unbarmherzigen Reboot, ohne die PlattenCaches auf die Platte zurückzuschreiben. vm/ In diesem Unterverzeichnis läßt sich die Politik des Kernels in Sachen Speicherverwaltung einstellen. IP-Kern-Parameter befinden sich in den /proc/sys/net/ipv4/-Dateien. Beispiele: ✎ ip forward Das IP-Forwarding (Routing) ist bei 1“ eingeschaltet und bei 0“ aus” ” geschaltet. Das bedeutet, daß, bei aktiviertem IP-Forwarding, Pakete von einer Netzwerkschnittstelle auf die andere durchgeleitet werden. tcp syncookies bietet, wenn es aktiviert ist, Schutz gegen das Überfluten des Rechners mit Verbindungsaufbau-Paketen (SYN-Flooding ). Soll aktiviert sein. ip always defrag defragmentiert IP-Pakete immer. Ist auf jeden Fall bei einer Firewall notwendig. Da die Quell- und Zieladressen sowie Ports, nach denen ja gefiltert wird, nur im Header des Pakets und damit im ersten Fragment stehen, so muß man, um über ein fragmentiertes Paket zu entscheiden, dieses erst defragmentieren. Diese Datei existiert ab Kernel 2.6 nicht mehr. conf/Schnittstelle/rp filter aktiviert für die angegebene Schittstelle den Schutz gegen IP-Spoofing, also den Schutz vor vorgetäuschten IP-Adressen. Soll aktiviert sein. conf/Schnittstelle/accept redirects legt fest, ob die Schnittstelle ICMP-Redirects unterstützt. Dies wird meist nur für Angriffe ausgenutzt und soll daher deaktiviert sein. conf/Schnittstelle/accept source route läßt auf dieser Schnittstelle SourceRouting zu, das heißt, daß der Absender eines Paketes festlegt, welchen Weg das Paket nimmt. Auch das ist heute fast nur für Angriffe nützlich und soll daher deaktiviert sein. 6.1.4 Die Prozeßnummern-Verzeichnisse sind direkte Unterverzeichnisse von /proc/ in der Gestalt /proc/Prozeßnummer/. In diesen Verzeichnissen findet man alle Informationen über einen laufenden Prozeß. Inhalte: cmdline Die Kommandozeile des Programmaufrufs 148 6.2 Kernel-Variablen dauerhaft verankern environ Die Umgebungsvariablen des Prozesses cwd Das aktuelle Verzeichnis des Prozesses mem Speicherverbrauch des Prozesses exe Die ausführbare Datei, die den Prozeß erzeugt hat root Verknüpfung auf das root-Verzeichnis des Prozesses ! Achtung: Manchmal sperrt man aus Sicherheitsgründen Prozesse, die ein Sicherheitsrisiko darstellen, in einen Sandkasten, also einem kleinen RootDateisystem, ein, damit er am System keinen Schaden nehmen kann. Diesen Sandkasten kann man mit dem Befehl chroot erzeugen und deswegen nennt man das in der Fachsprache chroot-Umgebung . In dieser darf jedoch kein /proc-Dateisystem gemountet werden, denn mit /proc/1/root/ kann man zum ursprünglichen Root-Verzeichnis zurück.Damit kann das unter Umständen eine Sicherheitslücke darstellen. 6.2 Kernel-Variablen dauerhaft verankern Bei SuSE, RedHat und Debian findet dagegen das Utility sysctl Verwendung, das beim Hochfahren des Systems diese Variablen aufruft und die Kernel-Variablen auf die in der Datei /etc/sysctl.conf setzt: ✎ Beispieldatei für einen Router/Firewall: /etc/sysctl.conf # IP-Spoofing verhindern net.ipv4.conf.all.rp_filter = 1 # ICMP-redirects verhindern net.ipv4.conf.all.accept_redirects = 0 # Source-Routing deaktivieren net.ipv4.conf.all.accept_source_route = 0 # IP-Forwarding aktivieren net.ipv4.ip_forward = 1 # IP-Pakete immer defragmentieren (f. Paketfilter-Firwall notwendig) # Nicht möglich, wenn Masquerading betrieben wird # Ab Kernel 2.6 nicht mehr vorhanden # net.ipv4.ip_always_defrag = 1 # TCP SYN Cookie-Schutz aktivieren net.ipv4.tcp_syncookies= 1 149 Systemdiagnose Anstatt der umständlichen Schleifen kann man hier einfach das Schlüsselwort all verwenden. Tip: Hat man zur Laufzeit des Systems etwas an dieser Konfigurationsdatei verändert, so kann man mit # sysctl -p die aktuelle Konfiguration aktivieren. 6.3 IDE- und SCSI-Geräte überwachen und steuern 6.3.1 IDE-Geräte Informationen über IDE-Geräte findet man unter /proc/ide/Gerät/: cache Größe des Hardware-Cache capacity Kapazität der Platte geometry Hard/Softwaregeometrie der Platte model Modell-Bezeichnung settings Festplattenparameter 6.3.2 Festplatten-Tuning bedeutet, daß man an einigen Parametern der Festplatte herumschrauben kann. Dies kann jedoch unter Umständen fatale Folgen haben (Datenverlust), falls nicht von fachkundiger Hand durchgeführt. Hier beschränken wir uns auf ungefährliche Optimierungen. Das Utility hdparm manipuliert die Festplatten-Laufzeit-Parameter. Hier die Benutzung anhand einiger 150 6.3 IDE- und SCSI-Geräte überwachen und steuern ✎ Beispiele: Geräteinformationen: # hdparm -i /dev/hda /dev/hda: Model=ST320423A, FwRev=3.02, SerialNo=7EJ0Y17L Config= HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=512kB, MaxMultSect=32, MultSect=32 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=40011300 IORDY=on/off, tPIO=min:240,w/IORDY:120, tDMA=min:120,rec:120 PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4 Hier kann man einiges an Informationen entnehmen: Die Platte unterst ützt LBA, Ultra DMA 4, das gerade aktiv ist. Es gibt folgende Arten der Datenübertragung zwischen Festplatte und Hauptspeicher: Programmed IO Die PIO-Modi 0-5 benutzen die CPU als Teil des Daten übertragungsweges und verbrauchen daher Rechenzeit. Die maximalen Datenübertragungsgeschwindigkeiten reichen von 3,3 MB/s (PIO 0) bis 16,6 MB/s (PIO 5). Direct Memory Access bedeutet, daß die Festplatte ohne Zutun der CPU die Daten in den Hauptspeicher überträgt. Es existieren die Spielarten MDMA (Multiword DMA) und UDMA (Ultra DMA). Ersteres spielt heute eine untergeordnete Rolle, während fast alle modernen Platten Ultra DMA beherrschen. Derzeit existieren die Ultra DMA-Modi 0-5. Die maximalen Datenübertragungsgeschwindigkeiten reichen von 16,7 MB/s (UDMA 0) bis 100 MB/s (UDMA 5). DMA-Modus aktivieren/deaktivieren: # hdparm -d 1 /dev/hda # hdparm -d 0 /dev/hda # DMA aktivieren # DMA deaktivieren Sollte die Platte kein DMA unterstützen, fällt sie automatisch in den vorigen Modus zurück. 151 Systemdiagnose Ultra DMA-Modus aktivieren Die Festlegung des Übertragungs-Modus erfolgt mit dem Argument -X und einer darauffolgenden Zahl, die den Übertragungsmodus bestimmt: Modus PIO-0 PIO-1 PIO-2 PIO-3 PIO-4 Zahl 8 (0+8) 9 (1+8) 10 (2+8) 11 (3+8) 12 (4+8) Modus Zahl MDMA-0 32 (0+32) MDMA-1 33 (1+32) MDMA-2 34 (2+32) Modus UDMA-0 UDMA-1 UDMA-2 UDMA-3 UDMA-4 UDMA-5 Zahl 64 (0+64) 65 (1+64) 66 (2+64) 67 (3+64) 68 (4+64) 69 (5+64) Beispiel: Aktivieren des UDMA-5 auf der ersten IDE-Platte im System: ✎ # hdparm -d 1 -X 69 /dev/hda /dev/hda: setting using_dma to 1 (on) setting xfermode to 69 (UltraDMA mode5) using_dma = 1 (on) Multisektormodus (IDE-Blockmode) aktivieren Moderne IDE-Festplatten haben zumeist die Fähigkeit, nicht nur einen Sektor zu 512 Bytes, sondern gleich mehrere Sektoren hintereinander in einem Zug zu übertragen. Da bei größeren Dateien auf der Platte meist die Daten auf hintereinanderliegenden Sektoren abgelegt sind, beschleunigt das den Dateizugriff erheblich. Um den Multisektormodus zu aktivieren, müssen Sie zuerst herausfinden, wieviele Sektoren die Platte pro Zugriff gleichzeitig übertragen kann: # hdparm -i /dev/hda /dev/hda: Model=FUJITSU MHT2040AT, FwRev=009A, SerialNo=NN67T3813W96 Config= HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=off ... Im dargestellten Beispiel sehen Sie, daß die Platte Multisektormodus mit 16 Sektoren gleichzeitig beherrscht. Im Beispiel aktivieren Sie den Multisektormodus wie folgt: 152 6.3 IDE- und SCSI-Geräte überwachen und steuern # hdparm -m 16 /dev/hda /dev/hda: setting multcount to 16 multcount = 16 (on) Datentransferrate testen: # hdparm -Tt /dev/hda /dev/hda: Timing buffer-cache reads: Timing buffered disk reads: 128 MB in 2.40 seconds = 53.33 MB/sec 64 MB in 3.40 seconds = 18.82 MB/sec Die Kommunikation zwischen Plattencontroller und Rechner erfolgt hier mit 53 MB pro Sekunde, der effektive Datentransfer beim Lesen von der Platte ist rund 19 MB pro Sekunde. Plattenmotor abschalten: Nach einer gewissen Zeit der Inaktivität kann man den Plattenmotor ruhen lassen. Er fährt dann erst beim nächsten Zugriff wieder hoch. Dies ist vor allem bei Laptops nützlich, um Batterie zu sparen: # hdparm -S 180 /dev/hda1 Hier schalten wir den Plattenmotor nach 15 Minuten=180 mal 5 Sekunden ab. Werte von 1 bis 240 sind möglich. Für längere Zeiten siehe die Man-Page von hdparm. Man kann den Plattenmotor mit # hdparm -y /dev/hda sofort herunterfahren. 6.3.3 SCSI-Geräte lassen sich über die Datei /proc/scsi/scsi einsehen und manipulieren. ✎ Beispiel: # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 06 Lun: 00 153 Systemdiagnose Vendor: YAMAHA Model: CRW4416S Type: CD-ROM Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: iomega Model: jaz 1GB Type: Direct-Access Host: scsi1 Channel: 00 Id: 01 Lun: 00 Vendor: IBM Model: DPES-31080 Type: Direct-Access Host: scsi1 Channel: 00 Id: 03 Lun: 00 Vendor: DEC Model: DSP3107LS Type: Direct-Access Host: scsi1 Channel: 00 Id: 04 Lun: 00 Vendor: DEC Model: DSP3107LS Type: Direct-Access Rev: 1.0h ANSI SCSI revision: 02 Rev: H.72 ANSI SCSI revision: 02 Rev: S31Q ANSI SCSI revision: 02 Rev: HPM0 ANSI SCSI revision: 02 Rev: HPM0 ANSI SCSI revision: 02 Hier finden wir auf SCSI-Controller Nummer 0 auf der SCSI-ID 6 einen CD-Brenner, und auf SCSI-Controller Nummer 1 ein JAZ-Laufwerk (ID 0) und drei Festplatten (IDs 1,3,4). Manchmal kommt es vor, daß man vor allem externe Geräte erst einschaltet, nachdem der Rechner schon hochgefahren ist. In diesem Fall erkennt der SCSI-Controller das neue Gerät nicht sofort. Beispielsweise möchte man einen Scanner nur dann einschalten, wenn man ihn tatsächlich braucht, um die Lampe nicht unnötig zu strapazieren. Beispiel: Wir binden ein neues SCSI-Gerät ein, indem wir einen Konfigurationsbefehl nach /proc/scsi/scsi schreiben: ✎ # echo "scsi add-single-device 0 0 5 0" > /proc/scsi/scsi # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 06 Lun: 00 Vendor: YAMAHA Model: CRW4416S Rev: 1.0h Type: CD-ROM ANSI SCSI revision: 02 Host: scsi0 Channel: 00 Id: 05 Lun: 00 Vendor: SCANNER Model: Rev: V101 Type: Scanner ANSI SCSI revision: 01 CCS Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: iomega Model: jaz 1GB Rev: H.72 Type: Direct-Access ANSI SCSI revision: 02 ... Syntax: 154 6.3 IDE- und SCSI-Geräte überwachen und steuern # echo Kommando HostAdapter Channel ID LUN > /proc/scsi/scsi Kommando darf dabei die Werte add-single-device oder remove-single-device annehmen. Danach folgt die Nummer des Hostadapters, der Channel (spielt nur bei Mehrkanal-Controllern eine Rolle), die SCSI-ID und die LUN. 155 Systemdiagnose 6.4 Wissensfragen 1. Wo findet sich Dokumentation zum proc-Dateisystem? 2. Welche /proc/-Datei zeigt • die aktuell gemounteten Dateisysteme? • alle erkannten Festplattenpartitionen? • die Konfiguration der seriellen Schnittstellen? • alle Geräte am PCI-Bus? 3. Welche Kommandos geben eine übersichtliche Darstellung des PCI-Busses, der aktiven Gerätetreiber und des Systemstatus? 4. In welchem Unterverzeichnis findet man Dateien, mit denen man das Laufzeitverhalten des Kernels beeinflussen kann? 5. In welchem Verzeichnis befinden sich die Kernel-Variablen, um Netzwerkparameter wie IP-Forwarding zu konfigurieren? 6. Was bedeuten die Nummern-Verzeichnisse unterhalb von /proc/? Was enthalten sie? 7. Wie können Sie bei Ihrer Distribution diese Einstellungen beim Neustart wiederherstellen lassen? 156 6.4 Wissensfragen 8. Mit welchem Kommando können Sie die Parameter von IDE-Geräten einsehen/verändern? 9. Sie wollen, daß sich der Festplattenmotor der Platte /dev/hda2 nach zehn Minuten Inaktivität abschaltet. Wie machen Sie das? 10. Wie lassen Sie sich Informationen über alle angeschlossenen SCSI-Geräte anzeigen? 11. Sie haben vergessen, ein externes SCSI-CDROM-Laufwerk beim Systemstart einzuschalten und wollen es daher nachträglich vom SCSI-Treiber erkennen lassen. Das Laufwerk hängt am Controller mit der Bezeichnung scsi2, der nur einen Kanal hat. Es hat die SCSI-ID 1 und hat nur eine Schublade. 157 Systemdiagnose 158 6.5 Übungen 6.5 Übungen 1. Welche Chipsätze haben Ihre Grafikkarte und Ihre Netzwerkkarte? 2. Welche IRQs sind auf dem System noch frei? 3. Wie steht es um die Batterie der CMOS-Uhr? 4. Der Kernel eines Servers soll nach dem Systemstart folgendes Laufzeitverhalten aufweisen: • IP-Forwarding ist deaktiviert • Der Schutz gegen SYN-Flooding soll aktiviert sein • Der Schutz gegen IP-Spoofing soll aktiviert sein • IP-Pakete brauchen nicht defragmentiert zu werden • ICMP-Redirect-Nachrichten sollen nicht angenommen werden • Source-geroutete-Pakete sollen nicht angenommen werden • Der Rechner soll maximal 16384 gleichzeitig geöffnete Dateien zulassen • Bei einem Kernel-Panic-Systemabsturz soll der Rechner in 5 Sekunden neu starten 5. Welchen Datendurchsatz hat Ihre IDE-Platte? 159 Systemdiagnose 6.6 Lösungen 1. Benutze lspci 2. Benutze procinfo, um den freien IRQ zu finden. 3. cat /proc/driver/rtc 4. /etc/sysctl.conf # IP-Spoofing verhindern net.ipv4.conf.all.rp_filter = 1 # ICMP-redirects verhindern net.ipv4.conf.all.accept_redirects = 0 # Source-Routing deaktivieren net.ipv4.conf.all.accept_source_route = 0 # IP-Forwarding aktivieren net.ipv4.ip_forward = 0 # TCP SYN Cookie-Schutz aktivieren net.ipv4.tcp_syncookies= 1 # maximal 16384 geöffnete Dateien zulassen fs.file-max = 16384 # Bei Kernel-Panic nach 5 Sekunden Reboot kernel.panic = 5 5. hdparm -Tt /dev/hda 160