Algemene systeemsetup

Een paar woorden over beveiliging

Nog voordat je je systeem boot, zou je moeten besluiten welk beveiligingsniveau je wilt implementeren. Verbind je machine niet met het netwerk totdat je hebt besloten wat je zult gaan doen.

Beveiliging is een veelomvattend onderwerp dat buiten het kader van deze HOWTO valt; twee goede uitgangspunten zijn de Linux Security Administrator's Guide http://www.securityportal.com/lasg en de Linux Security Guide http://nic.com/~dave/SecurityAdminGuide/index.html . Neem op z'n minst de volgende stappen in overweging: gebruik shadow passwords (Shadow Password HOWTO), beperk de netwerktoegang tot de machine (Sectie paragraaf Beperken van toegang tot het netwerk), gebruik van de Secure Shell (http://www.openssh.org ) of het Secure Remote Password ( http://srp.stanford.edu/srp/). Veel succes.

Begin een logboek!

Om je installatie in vorm te houden, is het van essentieel belang dat je exact weet wat er met je machine gebeurde, welke packages je die dag installeerde, wat je verwijderde of aanpaste, enzovoort. Dus het eerste dat je gaat doen voordat je met je vingers aan je machine zit is een ``logboek'' beginnen. Daarin vermeld je alle stappen die je als root uitvoert; in mijn eigen logboek houd ik ook een sectie bij waarin ik alle gewijzigde systeembestanden opsom en extra .rpms en .tar.gz die ik installeerde. In de meest optimale situatie zouden de stappen die je nam je terug moeten kunnen voeren naar een nieuwe installatie.

Maak een backup van de systeembestanden die je wijzigt. Nog beter: gebruik RCS; je zult alle wijzigingen terug kunnen halen. Werk nooit als root zonder je stappen te loggen!

Toetsenbord

Als je deze stap tijdens de installatie hebt misgelopen of je toetsenbord is gewijzigd, dan moet je:

Voor het laden van de toetsentabel voer je uit

/etc/rc.d/init.d/keytable start

Andere speciale toetsen zullen in de volgende secties worden behandeld. Voeg de volgende regels toe aan /etc/rc.d/rc.sysinit om standaard NumLock te activeren:

for tty in /dev/tty[1-9]*; do
  setleds -D +num < $tty
done

Normaal gesproken kan de Linux console geen onderscheid maken tussen, stel, de pijltjestoets en de shift-toets in combinatie met de pijltjestoets, maar een aantal applicaties (namelijk de editor paragraaf jed (1)) doet dit wel. Normaal gesproken zijn deze toetsendefinities alleen in xterm beschikbaar. De volgende toetsindeling, die je tijdens het booten kunt kiezen is erg handig:

# Laad deze toetsindeling met: loadkey shift.map
# Shift + Up
shift keycode 103 = F100
string F100 = "\033[a"
# Shift + Left
shift keycode 106 = F101
string F101 = "\033[c"
# Shift + Right
shift keycode 105 = F102
string F102 = "\033[d"
# Shift + Down
shift keycode 108 = F103
string F103 = "\033[b"
# Ctrl + Ins
control keycode 110 = F104
string F104="\033[2^"
# Shift + Ins
shift keycode 110 = F105
string F105="\033[2$"
# Shift + PgUp
shift keycode 104 = F106
string F106 = "\033[5$"
# Shift + PgDn
shift keycode 109 = F107
string F107 = "\033[6$"
# Shift + Home
shift keycode 102 = F108
string F108 = "\033[1$"
# Shift + End
shift keycode 107 = F109
string F109 = "\033[4$"
# Shift + Del
shift keycode 111 = F110
string F110 = "\033[3$"
# Ctrl + Del
control keycode 111 = F111
string F111 = "\033[3^"

Boot en Rescue diskette

Maak een paar bootdiskettes van je nieuw geïnstalleerde systeem. Het kan zijn dat er in je distributie een opdracht is opgenomen voor het aanmaken van een dergelijke diskette (stel mkbootdisk of iets dergelijks); zo niet, dan kun je de volgende opdrachten gebruiken:

#~ dd if=/boot/vmlinuz-2.0.36-0.7 of=/dev/fd0  # gebruik je kernelimage
#~ rdev /dev/fd0 /dev/hda2                     # je Linux root partitie

Zorg ook dat je op z'n minst een paar rescue diskettes klaar hebt liggen. Er is een grote keuze uit rescue diskettes op ftp://metalab.unc.edu/pub/Linux/system/recovery ; als je niet weet elke je moet kiezen, raad ik je aan Tomsbtrt te proberen. De homepage ervan is te vinden op http://www.toms.net/rb . Het is behoorlijk compleet, maar het lijkt in eerste instantie of er een aantal utility's ontbreken; bijvoorbeeld: ftp staat er niet op, maar daarvoor in de plaats krijg je nc (netcat). Lees alsjeblieft de bijbehorende documentatie.

Console kleuren

Waarom zou je de Linux console wit op zwart blijven houden? Met de opdracht setterm kun je uit mooiere combinaties kiezen:

setterm -background blue -foreground red -bold on -store

Typ setterm op zichzelf voor een lijst met argumenten.

Kernel kwesties

IMHO, het eerste wat je zou moeten doen is het bouwen van een kernel die het beste past bij je systeem. Het is zeer simpel uit te voeren. Raadpleeg in elk geval het README bestand in /usr/src/linux/ of de Kernel HOWTO. Hints:

Hard Disk Performance

Je (E)IDE hard disk's performance kan enorm worden verbeterd door zorgvuldig gebruik te maken van hdparm(8). Als het niet in je distributie is opgenomen, dan kun je het vinden op ftp://metalab.unc.edu/pub/Linux/system/hardware ; zoek naar een bestand genaamd hdparm-X.Y.tar.gz.

Aangezien veel details afhankelijk zijn van je harddisk en HD-controller kan ik je geen algemeen recept geven. Je riskeert het roosteren van je bestandssysteem, dus lees de manpage zorgvuldig door voor je een aantal opties gaat gebruiken. Op z'n eenvoudigst zou je de volgende regel toe kunnen voegen aan /etc/rc.d/rc.sysinit:

/sbin/hdparm -c1 /dev/hda  # eerste IDE drive verondersteld

waarmee (E)IDE 32-bit I/O ondersteuning wordt geactiveerd. Wat betreft de optie `-m' mailde de auteur van hdparm me:

" (...) als je systeem gebruik maakt van componenten van de afgelopen paar jaar [< 1997], dan is er niets aan de hand. Er *kan* een probleem optreden (onwaarschijnlijk) wanneer ouder dan dat. De echte fouten bevattende chips waren de CMD0646 en RZ1000 chips, die *veelvuldig* op 486 en (de oudere) 586 moederborden werden gebruikt. "

Op recente machines zullen deze instellingen prima werken:

/sbin/hdparm -c1 -A1 -m16 -d1 /dev/hda

Parallelle poort Zip Drive

In geleverde kernels is de driver voor zowel de oude (ppa) als de nieuwe (imm) Zip drives opgenomen. Zorg dat SCSI ondersteuning en SCSI diskondersteuning zijn geactiveerd wanneer je de kernel hercompileert. Denk er aan dat er conflicten op kunnen treden tussen de printer en de Zip-drive als ze op dezelfde parallelle poort zijn aangesloten. Daarom kun je beter gebruik maken van kernelmodules.

Zipdisks worden voorgeformatteerd verkocht op partitie /dev/sda4. Om de Zip te activeren, voeg je dit toe aan /etc/rc.d/rc.sysinit:

# Activeer de Zipdrive
/sbin/modprobe ppa  # imm voor recente modellen

Zipdisks kunnen via /etc/fstab worden gemount zoals hieronder wordt getoond, of via Mtools door deze regel toe te voegen aan /etc/mtools.conf:

drive z: file="/dev/sda4" exclusive

bovendien, kun je met de opdracht mzip Zipdisks uitwerpen, de status ervan ondervragen, en ze met een wachtwoord beveiligen; zie man mzip voor details. De homepage van mtools is te vinden op http://linux.wauug.org/pub/knaff/mtools.

Device Drivers

Devices in /dev (of beter, links naar de werkelijke devicedrivers) kunnen ontbreken. Kijk na met welke device je muis, modem en CD-ROM drive correspondeert en voer dan het volgende uit:

~# cd /dev
/dev# ln -s ttyS0 mouse; ln -s ttyS1 modem; ln -s hdb cdrom; ln -s sda4 zip

Bij de meeste notebooks is /dev/psaux het device voor de muis: houd hier bij het configureren van X11 rekening mee. Als je dit wilt, kun je een chmod 666 uitvoeren op deze devices zodat ze volledig toegankelijk zijn voor elke gebruiker.

Geluidskaart

Mijn desktop PC is uitgerust met een oude Sound Blaster 16; ook al heb je iets anders, dan kun je het volgende als richtlijn nemen.

Ik compileerde de ondersteuning voor de geluidskaart als een module (sb.o). Vervolgens plaatste ik dit in /etc/conf.modules:

options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
alias sound sb

Zorg dat modprobe sound vanuit /etc/rc.d/rc.sysinit wordt aangeroepen als je het geluid wilt activeren. Als alternatief kun je de tool sndconfig van de RedHat site ophalen.

Buiten de standaard kernel geluidsdrivers, zijn de Alsa drivers ( http://www.alsa-project.org) een uitstekende keuze. Vreemd genoeg echter, zijn de geluidskanalen standaard onderdrukt. Je kunt aumix en deze /etc/aumixrc gebruiken om het volume op 100% in te stellen:

vol:100:100:P
synth:100:100:P
pcm:100:100:P
line:100:100:P
mic:100:100:R
cd:100:100:P

Loginmeldingen

Controleer of /etc/rc.d/rc.local /etc/issue en /etc/motd overschrijft als je de loginmeldingen aan wilt passen. (RedHat doet dit.) Haal je editor voor de dag als dit zo is.

Als je een gekleurde loginmelding wilt, dan kun je het bestand rc.local aanpassen door er regels in te voegen als:

# plaats een echt escape teken in plaats van ^[. Dit doe je zo:
# emacs: ^Q ESC   vi: ^V ESC   joe:  ` 0 2 7   jed: ` ESC
ESC="^["  # een echt escape teken
BLUE="$ESC[44;37m"
NORMAL="$ESC[40;37m"
CLEAR="$ESC[H$ESC[J"

> /etc/issue
echo "$CLEAR" >> /etc/issue
echo "$BLUE   Welkom op MijnServer (192.168.1.1)   " >> /etc/issue
echo "$NORMAL " >> /etc/issue
echo "" >> /etc/issue

Hostnaam

Uitvoeren van de opdracht hostname new_host_name is wellicht niet genoeg. Om het geduchte vastlopen van sendmail te voorkomen, volg je de volgende stappen (geldt alleen voor een standalone machine):

Mouse

gpm mouse services zijn handig om knip en plak bewerkingen in tty modi uit te voeren, en voor gebruik van de muis in een aantal toepassingen. Zorg dat je een bestand /etc/sysconfig/mouse hebt met de inhoud:

MOUSETYPE="Microsoft"
XEMU3=yes

Bovendien heb je het bestand /etc/rc.d/init.d/gpm nodig, waarin je extra opdrachtregelparameters plaatst. In de mijne staat:

...
       daemon gpm -t $MOUSETYPE -d 2 -a 5 -B 132 # twee-knops muis
...

Zorg uiteraard wel dat deze configuratie juist is voor je type muis. Bij de meeste notebooks is het type muis MOUSETYPE een ``PS/2''.

Als je met behulp van de Ctrl-knop graag gebruik maakt van menu's onder de console dan configureer je gpm-root. Bewerk het standaardmenu in /etc/gpm-root.conf, en start dan gpm-root vanuit /etc/rc.d/rc.local op.

Mount Points

Mountpoints voor diskettes, NFS geëxporteerde directory's en andere devices zijn altijd handig. Je kunt bijvoorbeeld het volgende doen:

~# cd /mnt; mkdir floppy cdrom win zip server

Hiermee worden mountpoints voor een DOS/Win diskette, een CD-ROM, een Windows partitie, een parallelle poort Zipdrive en een NFS directory aangemaakt.

Wijzig nu het bestand /etc/fstab en voeg de volgende regels toe:

/dev/fd0        /mnt/floppy     auto            user,noauto 0 1
/dev/cdrom      /mnt/cdrom      iso9660         ro,user,noauto 0 1
/dev/zip        /mnt/zip        vfat            user,noauto,exec 0 1
/dev/hda1       /mnt/win        vfat            user,noauto 0 1
server:/export  /mnt/server     nfs             defaults

Uiteraard moet je in het eerste veld gebruik maken van het juiste device.

Met het bestandstype `auto' op de eerste regel kun je zowel ext2 als vfat (DOS/Windows) diskettes mounten, maar je hebt hiervoor een recente versie van mount nodig. Wellicht vind je mtools comfortabeler.

Automount

Als je het mounten/unmounten niet prettig vindt, overweeg dan het gebruik van autofs(5). Je geeft de autofs daemon op wat het automatisch moet mounten en waar het met een bestand moet beginnen in /etc/auto.master. De structuur ervan is simpel:

/misc	/etc/auto.misc
/mnt	/etc/auto.mnt

In dit voorbeeld gaf je autofs op de media automatisch op /misc en /mnt te mounten, waarbij de mountpoints in /etc/auto.misc en /etc/auto.mnt zijn opgegeven. Een voorbeeld /etc/auto.misc:

# een NFS export
server	 	-ro			my.buddy.net:/pub/export
# verwijderbare media
cdrom       	-fstype=iso9660,ro	:/dev/hdb
floppy		-fstype=auto		:/dev/fd0

Start de automounter. Van nu af aan zal een niet bestaand mountpoint /misc/cdrom worden aangemaakt wanneer je de CD-ROM probeert te benaderen en zal de CD-ROM worden gemount.

lilo(8) en LOADLIN.EXE

Veel gebruikers draaien zowel Linux als DOS/Windows op hun PC, en willen tijdens het booten kunnen kiezen welk os ze zullen gaan gebruiken; dit zou tijdens de installatie moeten zijn geconfigureerd, maar mocht dit niet gebeurd zijn, voer dan de hieronder volgende stappen op. Stel dat op /dev/hda1 DOS/Windows is geïnstalleerd en op /dev/hda2 Linux.

~# fdisk
Gebruik /dev/hda als standaarddevice!

Command (m for help):a
Partition number (1-4): 2

Command (m for help):w
~#

Dit maakt de Linux partitie bootable. Schrijf dan dit basis /etc/lilo.conf bestand:

boot = /dev/hda2
compact                # kan een conflict geven met "linear"
delay = 100            # 10 seconden
linear                 # elimineer het "1024 cylinder" probleem
#lba32                 # alternatief
message = /boot/bootmesg.txt  # schrijf er zelf een, als je wilt
root = current
image = /boot/vmlinuz  # boot standaard linux als dit het eerste record is
  label = linux
  read-only
#  append="mem=128M"   # voor meer dan 64M geheugen
other = /dev/hda1
  table = /dev/hda
  label = win

Geef nu de opdracht /sbin/lilo. Het wordt je hoe dan ook aangeraden de documentatie van lilo te lezen, aangezien het een cruciaal deel van de installatie is.

Om Linux vanuit DOS/Windows te booten zonder de computer te resetten, plaats je LOADLIN.EXE in een directory (in de DOS partitie!) welke in het DOS-path is opgenomen; kopieer dan je kernel naar bv C:\TEMP\VMLINUZ. Met het volgende simpele .BAT bestand kun je dan Linux booten:

rem   linux.bat
smartdrv /C
loadlin c:\temp\vmlinuz root=/dev/hda2 ro

Bij het opstarten vanuit Windows 9x, stel je de eigenschappen van dit .BAT bestand zo in, dat het in MS-DOS modus wordt opgestart.

Beveiligingstip

Je doet er verstandig aan een backup van je MBR te maken voordat je Linux installeert. Bereid een Windows rescue diskette voor, en zorg dat je hier FDISK.EXE op plaatst. Voor het terugzetten van de MBR, geef je de opdracht

A:\> fdisk /mbr

Printer Configuratie (lpd)

Alle distributies die ik ken hebben een configuratietool voor het instellen van de printer (printtool, yast, of magicfilter); mocht je het niet hebben, dan volgt hier een handmatige basisinstallatie.

Stel dat je een niet-PostScript printer hebt (ook niet ``Windows-only''!) welke je wilt gebruiken om gewone tekst zonder opmaak af te drukken (b.v., C bronbestanden) en PostScript bestanden via Ghostscript, waarvan wordt verondersteld dat dit reeds is geïnstalleerd.

Het instellen van de printer bestaat uit een paar stappen:

Voor complexere of exotische afdrukconfiguraties, ligt de Printing-HOWTO je op te wachten.

Let er bij het gebruik van printtool op, dat het GSDEVICE dat door Printtools wordt gekozen wel zal werken, maar dat dit niet noodzakelijkerwijs het beste is voor je printer. Wellicht dat je wat wilt uitproberen met het bestand postscript.cfg; ik veranderde bijvoorbeeld het GSDEVICE van cdj500 in djet500 en nu komen mijn afdrukken er veel sneller uit.

SVGATextMode

Dit utility beschikbaar vanaf ftp://tsx-11.mit.edu/pub/linux/sources/sbin, is handig voor het wijzigen van de schermresolutie, het lettertype en vorm van de cursor voor onder de console. Gebruikers wiens taal geaccentueerde tekens bevat zullen deze in console-applicaties kunnen gebruiken, terwijl gebruikers van een notebook de vorm van de cursor aan kunnen passen om het zichtbaarder te maken.

Bewerk /etc/TextConfig of /etc/TextMode, te beginnen met de standaard VGA-definitie. Europeanen zullen blij zijn met deze ``LoadFont'' sectie:

Option "LoadFont"
FontProg "/usr/bin/setfont"
FontPath "/usr/lib/kbd/consolefonts"
FontSelect "lat1u-16.psf"   8x16 9x16 8x15 9x15
FontSelect "lat1u-14.psf"   8x14 9x14 8x13 9x13
FontSelect "lat1u-12.psf"   8x12 9x12 8x11 9x11
FontSelect "lat1u-08.psf"   8x8  9x8  8x7  9x7

Probeer zodra je hiermee klaar bent, je configuratie met een opdracht als SVGATextMode "80x34x9", en als alles in orde lijkt te zijn, verwijder je de waarschuwingsmeldingen uit /etc/TextMode en voeg je de volgende regel toe aan etc/rc.d/rc.sysinit:

# SVGATextMode
/usr/sbin/SVGATextMode "80x34x9"

De blokcursor werkt slechts in een paar modi; op mijn notebook is dat "80x30x9".