Configuratie van Linux
Jeffry Degrande
Net als in de installatiegids Slackware 7.0 (zie www.linux.be onder
microprojecten) probeer ik zo duidelijk mogelijk uit te leggen hoe je een
aantal zaken gedaan krijgt onder slackware 7.0. Dit is nu namelijk mijn
favoriete distro en ook diegene die hier momenteel geinstalleerd staat.
Volgende zaken zou ik es willen (proberen) uit te leggen.
- configureren X
- kernelcompilatie + lilo
- users aanmaken, verwijderen, ...
- Internet aansluiting
- heel dat boeltje toch een minimum aan beveiliging meegeven
Deze informatie vind je op erg veel andere plekken ook terug, maar ik
probeer het aan te tonen aan de hand van de tools die slackware daar voor
voorziet.
X configuratie
--------------
We nemen aan dat je bij de installatie de packages voor een X gebaseerd
systeem hebt geinstalleerd... We nemen ook aan dat we geluk hebben en
bv. de muis werkt met de instellingen die we bij de installatie opgegeven
hebben. 'k bedoel maar, kleine probleempjes die kunnen voorkomen kan ik
echt nie behandelen want die kan ik ten eerste nie allemaal voorzien en
ten tweede er zijn er teveel (je mag me er natuurlijk over mailen en als
je vind dat jouw probleem zeker te vermelden waard is dan word dat
natuurlijk bekeken). Nuja, we gaan verder :) Om X in te stellen kun je
kiezen uit twee programma's onder slackware. XF86Setup en XF86Config. Het
verschil tussen beide is dat het ene onder je console werkt en het andere
reeds de grafische toer opgaat. Aan jou de keus :)
Voor het gemak gaan we aan het werk met XF86Setup (das het
grafische). Eerst stellen we onze muis in. Daar is het meestal voldoende
het juiste protocol te kiezen en /dev/mouse te selecteren als device. Ik
raad wel aan de optie "Emulate3buttons" aan te zetten als je over een
tweeknopsmuis beschikt. (Met deze optie word het klikken van beide
muisknoppen terzelfdertijd gezien als een derde muisknop)
In het volgende scherm kies je je toetsenbordlayout. Hier kies je best
voor "belgian" en natuurlijk ook het type waarover je beschikt. Klikje op
"apply" en we gaan naar het volgende scherm.
Nu stellen we onze videokaart in. Klik op "card list" en zoek jouw
videokaart. Klik terug op "detailed setup" en kijk of alles een beetje
goed staat. Meestal is het voldoende alles op "probed" in te
stellen. Een beetje zoeken is misschien noodzakelijk. Als alles goed
staat gaan we naar het volgende scherm waar je monitor behandelt word.
Hier moet je de maximale resoluties aangeven wat je monitor aankan. Bij
twijfel kan de handleiding van je monitor wel uitkomst bieden. Het
volgende scherm kies je je resolutie en het aantal kleuren wat je
videokaart aankan.
In het laatste scherm kun je nog algemene instellingen meegeven (Die
leggen zichzelf zowat uit, dus besteed ik er ook geen aandacht aan) Klik
op "done" om terug te keren naar console.
Le moment suprême, als alles goed is tenminste. Geef het commando
"startx" Als alles goed is word de grafische omgeving nu opgestart.
Als je een andere windowmanager wilt instellen doe je dat in het bestandje
.xinitrc wat je vind in je homedir. (om KDE te gebruiken zet je
bijvoorbeeld "startkde" daarin. Dit verschilt wel van windowmanager tot
windowmanager maar meer informatie vind je wel terug in de documentatie
van je windowmanager)
****Meer informatie over het configureren van je X vind je in de XFree86-HOWTO
Kernelcompilatie + lilo
-----------------------
Eerst en vooral is het noodzakelijk dat de kernelsources geinstalleerd
staan op je systeem. De sources van 2.2.13 vind je terug op de cd. Deze
kun je installeren met "installpkg packagex.tgz" (zorg ook dat je de
include files meehebt, die vind je in dezelfde directory terug). De
sources worden geinstalleerd onder /usr/src/linux-2.2.13. Je vind ook
/usr/src/linux terug. Dit is slechts een een link naar linux-2.2.13 maar
het is wel handig deze te hebben (Indien je hem om de een of andere reden
kwijt bent, upgrade bijv. kun je hem terug aanmaken met
ln -s /usr/src/linux-2.2.13 /usr/src/linux )
Om je kernel te configureren ga je naar /usr/src/linux. Nu kun je kiezen
uit drie mogelijkheden. Ofwel gebruik je de X interface (make Xconfig),
ofwel gebruik je de console interface (make menuconfig) ofwel ben je stoer
en typ je gewoon "make config". Je typt dus een van de drie voorgaande:
make Xconfig, make menuconfig of make config.
Nu komt het instellen een beetje op jezelf aan, ik heb namelijk niet
hetzelfde systeem als jij hebt (jij hebt misschien scsi, en ik niet :(
) Dus is het voor mij onmogelijk om te gaan zeggen wat je nodig hebt en
wat niet. Er is natuurlijk altijd de helpfunctie die meer informatie
geeft over een bepaalde optie. Maar ik vertrouw erop dat je je eigen
systeem zo kent dat dit eigenlijk niet echt een probleem mag zijn :)
Sluit alles netjes af als je klaar bent en terug aan de prompt typ je
achtereenvolgens:
make dep
make clean <- Dit vind ik zelf een beetje overbodig, maar in de
boekjes staat dat het moet, je doet natuurlijk wat
je zelf wilt
make bzlilo <- Hier zijn natuurlijk ook andere mogelijkheden,
maar zo doe ik het altijd, op deze manier word een
gecomprimeerde kernel gemaakt en word ie meteen
door lilo geinstalleerd.
make modules <- Als je zaken als een module hebt geconfigureerd
make modules_install <- als je die modules ook geinstalleerd wil
zien :)
Als het je eerste keer is doe je best alles apart, dan zie je meteen als
het fout loopt waar dat precies gebeurt.
Als je wat meer vertrouwen hebt kun je
make dep bzlilo modules modules_install
doen en ondertussen een lekker kopje koffie gaan drinken ;)
Meer houd het configureren en compileren van je kernel echt niet in.
Als je make bzlilo gebruikt worden twee nieuwe bestanden aangemaakt:
vmlinuz en System.map , als hij deze bestanden reeds aantreft worden deze
"oude" bestanden hernoemt naar vmlinuz.old en System.old . Deze kun je dan
met bijvoorbeeld als volgt gaan gebruiken als reserve:
in je /etc/lilo.conf
image = /boot/vmlinuz.old
root=/dev/hda5
label = stable
opmerking: de volgorde waarin je gelijkaardige configuraties zoals deze
plaats in /etc/lilo.conf bepalen ook de bootvolgorde (Zet deze dus niet
als eerst ...)
Een probleem waar ik al een paar keer tegengelopen ben, is dat make bzlilo
die vmlinuz en System.map in je / plaatst terwijl lilo.conf verwijst naar
/boot/vmlinuz (zoals je ziet in deze configuratie bijv. image=...) Nu heb
je twee mogelijkheden, ofwel verplaats je /vmlinuz naar /boot/vmlinuz
ofwel pas je lilo.conf aan. Allebei moeten ze wel gevolgd worden door het
opnieuw runnen van lilo (typ: lilo).
Een reboot en je kernel zou moeten geladen worden. (Kun je nagaan met
uname -a )
*** Meer informatie vind je in de kernel-HOWTO
Users aanmaken, verwijderen, ...
--------------------------------
Daar linux een multiuser systeem is en het constant werken met je
rootaccount door iedereen, dus ook door mij word afgeraden (stel je voor
dat we als root iets stukmaken, dan is ons werk voor niks geweest,
terwijl een gewone gebruiker minder kans maakt iets stuk te maken
doordat hij er simpelweg niet bijkan) gaan we gebruikers aanmaken op ons
systeem. Voor deze taak heeft slackware een erg leuk werkend scriptje
meegeleverd, typ:
# adduser
Login name for new user (8 characters or less) []: <- Hier typ je een
nieuwe loginnaam
User id for blaat [ defaults to next available]: <- Mag je gewoon
enter geven
Initial group for blaat [users]: <- De group van je
nieuwe user
Additional groups for blaat (seperated
with commas, no spaces) []: <- extra groepen waartoe
hij behoort
blaat's home directory [/home/blaat]: <- De homedir (meestal is
dit /home/username
blaat's shell [/bin/bash]: <- Zijn shell
blaat's account expiry date (YYYY-MM-DD) []: <- Wanneer zijn account
vervalt (niks ingeven
betekent, het account
vervalt nooit)
Dan krijg je wat samenvattende uitvoer waar je kunt beslissen of je
doorgaat (ENTER) of je ermee stopt (CTRL-C)
Changing the user information for blaat
Enter the new value, or press return for the default
Full Name []: <- Zijn naam
Room Number []: <- Het kantoor waar die zit,
Work Phone []: <- Telefoonnummer
Home Phone []: <- ja, duh, het moet maar ;)
Ten slotte moet je de nieuwe user nog een passwoord geven en de user kan
inloggen.
Changing password for blaat
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
Password changed.
Done...
buffy login: blaat
Password:
Linux 2.2.14.
No mail.
I have seen the future and it is just like the present, only longer.
-- Kehlog Albran
buffy:~$ whoami
blaat
Voila , we hebben een gebruiker bij.
Het verwijderen van een user kun je met "userdel". Daarvoor moet de
gebruiker wel uitgelogd zijn!
buffy:/var/log# userdel blaat
userdel: user blaat is currently logged in
(Blaat is weg ... we hebben hem een handje geholpen)
buffy:/var/log# userdel blaat
buffy:/var/log#
voila , het account is weg !
PPP/Internetconnectie opzetten
------------------------------
Ik richt me in dit onderdeel op diegenen die nog het Internet opgaan met
een traditionele modem. Kabel en ISDN heb ik zelf nog niet mogen
configureren (~!@$# kabelmaatschappij~!@#$%^ telefoonmmaatchappij)
Ook ga ik er vanuit dat je over een modem beschikt die met linux
compatibel is. (TIP: www.altavista.com +type van modem +linux)
Voor het opzetten van je ppp-verbinding heeft slackware ook een scriptje
meegeleverd.
# pppsetup
Het eerste scherm moet je het telefoonnummer van je ISP invullen,
voorafgegaan door atdt of atpt (voorbeeldje staat iets hoger)
Vervolgens word je gevraagd op welke poort je modem zit (vergelijk met
ms-dos staat ernaast)
Vervolgens wordje om de snelheid gevraagd, We scrollen heel eventjes
helemaal tot boven maar vervolgens kiezen we toch de meest realistische
waarde ;)
Dan stel je in of je callback gebruikt. Dit zet je op NO want voorzover
ik weet doet geen enkel belgische ISP dit? (hoewel ze van mij natuurlijk
wel mogen ;)
Als je een andere initstring wilt instellen kun je dit in het volgende
scherm doen.
Vervolgens de domeinnaam van je provider (bv. uunet.be voor uunet,
planetinternet.be voor planet ...)
Vervolgens het IP adres van de DNS server van je provider. Dit moet je
wel ergens terug kunnen vinden (instellingen van windhoos eventueel?)
Vervolgens kies je het authenticatietype (PAP is het proberen waard,
meeste ISP's ondersteunen dit wel, en je wilt echt niet met SCRIPT aan de
slag als het niet nodig is)
Vervolgens username
En tenslotte nog het passwoord.
Dan krijg je een overzicht wat er gebeurt is en welke files er verandert
zijn.
het starten van de verbinding kun je door
# ppp-go
sluiten doe je dan weer met
# ppp-off
Basisbeveiliging
----------------
Het is natuurlijk noodzakelijk dat je ook naast het zorgen dat het werkt,
er ook voor zorgt dat het een beetje veilig werkt. Hier ga ik niet erg
diep op ingaan, want het is gewoon te uitgebreid. Ik verwijs wel door
naar de security-HOWTO (verplichte leesvoer!)
Wat ik wel ga zeggen is hoe je ervoor zorgt dat je er van buitenaf niet
meer inkomt.
Alle services worden gedraait vanuit een
"Superserver" nl. inetd. Met volgend commando kun je zien welke services
openstaan op jouw systeem:
# netstat -tua | grep LISTEN
Deze inetd haalt zijn instellingen uit het bestand /etc/inetd.conf
Open dus dit bestand met je favoriete editor en je ziet regels zoals
#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
het # aan het begin van de lijn betekent dat de service ofwel gesloten,
ofwel open is. Staat het er, dan is hij dicht. Staat het er niet, dan is
het open.
Dus voorgaande regel (de telnet daemon) is afgesloten, had er nu gestaan
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
Dan was hij open. Doe maar es
# telnet localhost 23
en je ziet wat er gebeurt.
Plaats dus voor alle regels een # (als je zeker bent dat je de service
wilt mag je hem natuurlijk openlaten)
start inetd opnieuw als volgt:
# killall -HUP inetd
doe nogmaals
# netstat -tua |grep LISTEN
om te kijken of je veranderingen effectief doorgevoerd zijn.
Twee bestanden die je ook nog moet aanpassen zijn de bestanden
/etc/hosts.allow en /etc/hosts.deny
Als er een connectie gemaakt word, word er eerst gecontroleerd of die
beschreven staat in hosts.allow (zoja, dan word de connectie aanvaard),
vervolgens word hosts.deny gecontroleerd. Staat daar niks in dan word de
connectie aanvaard. Dat is natuurlijk niet handig.
Beter zou zijn: staat het in hosts.allow? ja? goed, aanvaard
maar. Nee? sorry, maar dan aanvaarden we niet want het staat in
hosts.deny.
Dit kan je bekomen door in /etc/hosts.allow volgende regel toe te voegen:
ALL : 127.0.0.1 <- 127.0.0.1 is de loopback interface, gewoon jezelf
eigenlijk (we sluiten onszelf natuurlijk niet uit)
in /etc/hosts.deny plaatsen we dan
ALL : ALL
noot:
het formaat bestand is als volgt:
:
ALL : ALL betekent zoveel als "alle connecties vanaf overal"
Nu worden connecties niet meer zomaar aanvaard.
Dit is natuurlijk allemaal erg basis! Er is heel wat meer voor nodig om je
systeem werkelijk beveiligd te krijgen. Maar zoals ik in het begin van
dit onderdeel al opmerkte neem je best de security-HOWTO es door.
Jeffry Degrande
suzuki@village.uunet.be