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.
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!
Als je deze stap tijdens de installatie hebt misgelopen of je toetsenbord is gewijzigd, dan moet je:
zoeken naar een passende toetsenbordtabel beginnend in /usr/lib/kbd/keymaps/i386; querty/it-latin1.kmap.gz bijvoorbeeld biedt ondersteuning voor het Italiaanse toetsenbord;
bewerk het bestand /etc/sysconfig/keyboard zodat er in komt te staan: KEYTABLE="it-latin1";
voor het instellen van de repeteersnelheid en vertragingstijd van je toetsenbord voeg je deze regel toe aan /etc/rc.d/rc.sysinit:
/sbin/kbdrate -s -r 16 -d 500 # of wat je maar wilt |
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^" |
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.
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.
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:
Neem zorgvuldig in overweging wat je nodig hebt. Het uitkiezen van een kernelconfiguratie, het toepassen van de patches en het voor eens en voor altijd compileren is productiever dan de kernel elke maand opnieuw configureren en compileren; dit geldt vooral als je Linux box een server is. Vergeet geen ondersteuning voor alle hardware op te nemen die je in de toekomst naar alle waarschijnlijkheid toe zult voegen (zoals b.v. SCSI, Zip, netwerkkaarten, enz.); het gebruik van modules is gewoonlijk de beste keuze;
notebook gebruikers: als je van plan bent een PCMCIA modem/fax te gaan gebruiken, denk er dan aan seriële ondersteuning in de kernel te compileren. Compileer het niet als een module, aangezien dit een complexere configuratie vereist;
denk er aan alles wat je nodig hebt te compileren; d.w.z. vergeet de pcmcia modules niet, of de ALSA geluidsdrivers;
om voor de volgende keer dat je de kernel herconfigureert en hercompileert tijd te besparen is het een goed plan om je configuratie in een bestand te bewaren en het op een veilige plaats te bewaren. Als je bij het upgraden van de kernel ``make oldconfig'' gebruikt, zal je oude configuratiebestand worden genomen en van niet opgenomen features zal worden gevraagd op ze moeten worden opgenomen, wat resulteert in een nieuw bijgewerkt configuratiebestand.
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 |
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.
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.
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 |
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 |
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):
bewerk /etc/sysconfig/network en wijzig de hostnaam in dit bestand (b.v. nieuwe_host_naam.je_domein);
bewerk /etc/HOSTNAME dienovereenkomstig:
voeg als volgt de nieuwe hostnaam toe aan het bestand /etc/hosts:
127.0.0.1 localhost nieuwe_host_naam.je_domein |
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.
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.
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.
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.
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:
zoek uit wat het parallelle printdevice is: probeer
~# echo "hello, world" > /dev/lp0 ~# echo "hello, world" > /dev/lp1 |
maak twee spooldirectory's aan:
~# cd /var/spool/lpd /var/spool/lpd/# mkdir raw; mkdir postscript |
als je printer het ``trapsgewijze effect'' vertoont (dat doen de meeste inkjet-printers) dan heb je een filter nodig. Probeer twee regels af te drukken met
~# echo "eerste regel" > /dev/lp1 ; echo "tweede regel" > /dev/lp1 |
eerste regel tweede regel |
#!/bin/sh # Dit filter elimineert het "trapsgewijze effect" awk '{print $0, "\r"}' |
maak een filter voor PostScript emulatie. Schrijf het volgende filter weg als /var/spool/lpd/postscript/filter:
#!/bin/sh DEVICE=djet500 RESOLUTION=300x300 PAPERSIZE=a4 SENDEOF= nenscript -TUS -ZB -p- | if [ "$DEVICE" = "PostScript" ]; then cat - else gs -q -sDEVICE=$DEVICE \ -r$RESOLUTION \ -sPAPERSIZE=$PAPERSIZE \ -dNOPAUSE \ -dSAFER \ -sOutputFile=- - fi if [ "$SENDEOF" != "" ]; then printf "\004" fi |
voeg tenslotte de volgende records toe aan /etc/printcap:
# /etc/printcap lp|ps|PS|PostScript|djps:\ :sd=/var/spool/lpd/postscript:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/postscript/filter:\ :sh: raw:\ :sd=/var/spool/lpd/raw:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/raw/filter:\ :sh: |
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.
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".