Wikibooks nlwikibooks https://nl.wikibooks.org/wiki/Hoofdpagina MediaWiki 1.46.0-wmf.24 first-letter Media Speciaal Overleg Gebruiker Overleg gebruiker Wikibooks Overleg Wikibooks Bestand Overleg bestand MediaWiki Overleg MediaWiki Sjabloon Overleg sjabloon Help Overleg help Categorie Overleg categorie Transwiki Overleg transwiki Wikijunior Overleg Wikijunior TimedText TimedText talk Module Overleg module Event Event talk Wikibooks:Wachtruimte/Algemeen Beschaafd Chinees 4 180 422810 346251 2026-04-15T21:31:47Z Erik Baas 2193 422810 wikitext text/x-wiki {{Wachtruimte}} ==Inleiding== Het '''Chinees''' ('''汉语''' Pinyin: '''Hanyu''') is de verzamelnaam voor een groep talen die de sinitische tak van de Sino-Tibetaanse talenfamilie vormt. De hoofdtaal van de Volksrepubliek China en de Republiek Taiwan is het Algemeen Beschaafd Chinees, dat in China '''普通话''' ('''Putonghua''', "Algemene Taal") wordt genoemd en in Taiwan '''国语''' '''Guoyu''' Nationale Taal. Het Chinees bestaat al heel lang. Er zijn al geschriften teruggevonden van meer dan 2500 jaar geleden en Chinese karakters op orakelbotten die nog ouder zijn. Er zijn 8 Chinese taalvariëteiten, die linguïstisch gezien als afzonderlijke talen kunnen worden beschouwd: Beifanghua, Gan, Kejiahua, Minnan, Minbei, Wu, Xiang en Yue (Kantonees). Deze acht talen worden alle geschreven met behulp van Chinese karakters, '''汉字''' '''Hanzi'''. Er zijn ongeveer 80.000 Chinese karakters. Het Kangxi-woordenboek, geschreven tijdens de Qing-dynastie, beslaat 47.035 karakters. Het Modern Chinees woordenboek '''现代汉语词典''' '''Xiandai Hanyu Cidian''' behandelt zo'n 8.000 karakters die dagelijks gebruikt worden. Algemeen Beschaafd Chinees wordt in de Volksrepubliek China geschreven met behulp van '''简体字''' '''Jiantizi''' Vereenvoudige Karakters en met '''汉语拼音''' '''Hanyu Pinyin''' Chinese Spelling dat het Westers Alfabet gebruikt. In Taiwan gebruikt men '''繁體字''' '''Fantizi''' Niet Vereenvoudige Karakters. De grammatica van het Algemeen Beschaafd Chinees is bijzonder eenvoudig en eigenlijk ook vrij logisch. Toch blijft Algemeen Beschaafd Chinees moeilijk te leren voor Westerlinge,n omdat ze Algemeen Beschaafd Chinees, Klassiek Chinees en Yue (In Nederland beter bekend als Kantonees) allemaal onder het kopje '''Chinees''' scharen en eigenlijk drie verschillende '''Chinese Talen''' moeten leren voordat '''Chinees''' overeen komt met '''het beeld dat ze van Chinees hebben'''. Verdere informatie kan je vinden op: * [[/Cursus|Cursus]] [ [Categorie:Taal|Chinees]] [ [de:Chinesisch]] [ [en:Chinese (Mandarin)]] [ [es:Chino Mandarín]] [ [fi:Kiinan kieli]] [ [fr:Enseignement du chinois]] [ [it:Cinese]] [ [ja:中国語]] [ [ko:중국어 입문]] [ [pl:Chiński]] [ [tr:Mandarin]] [ [zh:汉语]] dj2etlbrat6hk762kqdfc10kseuawnj MediaWiki:Yourlanguage 8 1207 422800 412388 2026-04-15T19:55:17Z Erik Baas 2193 -{{Nieuw}} 422800 wikitext text/x-wiki Taal voor berichten <span style="font-size: smaller;">''(kies "nl-x-informal - Nederlands (informeel)" om met "je" en "jij" aangesproken te worden)''</span> 3x3lqrdwmhvt03mqict51d1gc7objhf Wikibooks:Wachtruimte/Computerarchitectuur 4 11143 422812 411511 2026-04-15T21:36:43Z Erik Baas 2193 /* Inhoudsopgave */ 422812 wikitext text/x-wiki <!-- {{Bi}} --> {{Wachtruimte}} '''Computerarchitectuur''' is een vakgebied dat zich bezighoudt met de inwendige werking van de computer. Iedereen heeft tegenwoordig wel een computer en velen van ons zijn bekend met de verschillende componenten, maar hoe werken deze nu eigenlijk. Dit boek zal zich voornamelijk bezighouden met de processor en het geheugen. ==Introductie== Computerarchitectuur is een breed vakgebied dat zowel vanuit de elektronica als de informatica veel aandacht geniet. Het doel van dit boek is om inzicht te creëren in de belangrijkste onderdelen van een computer: de processor en het geheugen. Voorlopig is de inhoud louter informatief, maar later zullen ook opgaven en oefeningen worden toegevoegd om het materiaal te ondersteunen. ==Inhoudsopgave== #[[/Dataweergave/]] #*Binair stelsel #*Hexadecimaal stelsel #De processor #*Datapaden #*Multicyclus #*Pipelines #Cache #*Cachetabel #*Toegang #*Inhoud en verversen #Geheugen ==Externe links== <!-- {{Fase|1}} --> [[Categorie:Informatica]] f72bugn937jesot1x1g6jwbittot8qk Wikibooks:Wachtruimte 4 11184 422811 420912 2026-04-15T21:34:12Z Erik Baas 2193 /* Actueel overzicht */ 422811 wikitext text/x-wiki Deze '''wachtruimte''' is de plaats waar boeken geparkeerd worden wanneer *de inhoud te mager is, en/of *het boek niet meer ontwikkeld wordt. Mocht iemand geïnteresseerd zijn in de verdere ontwikkeling van zo'n boek kan het materiaal alhier geparkeerd als uitgangspunt dienen. Men kan dan de naam wijzigen zodat het weer in de hoofdnaamruimte geplaatst wordt. ==Boekenlijst== De volgende boeken zijn in de wachtruimte geplaatst: === 2007 === * [[Wikibooks:Wachtruimte/Handleiding voor het starten van een onderneming|Handleiding voor het starten van een onderneming]], per 24 aug 2007 * [[Wikibooks:Wachtruimte/Huisdierengids kat|Huisdierengids kat]], per 24 aug 2007 * [[Wikibooks:Wachtruimte/Microsoft Office Powerpoint|Microsoft Office Powerpoint]], [[Wikibooks:Wachtruimte/Microsoft Office Powerpoint/Comprimeren|Microsoft Office Powerpoint/Comprimeren]] en [[Wikibooks:Wachtruimte/Microsoft Office Powerpoint/Soortendia|Microsoft Office Powerpoint/Soortendia]], per 24 aug 2007 * [[Wikibooks:Wachtruimte/Roemeens|Roemeens]], per 24 aug 2007 * [[Wikibooks:Wachtruimte/Sloveens|Sloveens]], per 24 aug 2007 * [[Wikibooks:Wachtruimte/Tsjechisch|Tsjechisch]], per 24 aug 2007 * [[Wikibooks:Wachtruimte/Vroegmodern Engels|Vroegmodern Engels]], per 24 aug 2007 * [[Wikibooks:Wachtruimte/Zeven wereldwonderen|Zeven wereldwonderen]], per 11 sep 2007 === 2010 === * [[Wikibooks:Wachtruimte/Limburgs|Limburgs]], per 13 maart 2010 * [[Wikibooks:Wachtruimte/Kroatisch|Kroatisch]], [[Wikibooks:Wachtruimte/Kroatisch/Inhoudsopgave|Kroatisch/Inhoudsopgave]], [[Wikibooks:Wachtruimte/Kroatisch/Les 1|Kroatisch/Les 1]] en [[Wikibooks:Wachtruimte/Kroatisch/Nuttige woorden|Kroatisch/Nuttige woorden]], per 13 mrt 2010 * [[Wikibooks:Wachtruimte/Hebreeuws|Hebreeuws]], [[Wikibooks:Wachtruimte/Hebreeuws/Les 1|Hebreeuws/Les 1]] en [[Wikibooks:Wachtruimte/Hebreeuws/Nuttige woorden|Hebreeuws/Nuttige woorden]], per 12 mrt 2010 * [[Wikibooks:Wachtruimte/Computerarchitectuur|Computerarchitectuur]] en [[Wikibooks:Wachtruimte/Computerarchitectuur/Dataweergave|Computerarchitectuur/Dataweergave]], per 12 mrt 2010 * [[Wikibooks:Wachtruimte/Algemeen Beschaafd Chinees|Algemeen Beschaafd Chinees]] en [[Wikibooks:Wachtruimte/Algemeen Beschaafd Chinees/Cursus|Algemeen Beschaafd Chinees/Cursus]], per 11 mrt 2010 * [[Wikibooks:Wachtruimte/Bambara|Bambara]] plus subpagina's, per 8 mrt 2010 * [[Wikibooks:Wachtruimte/Arabisch|Arabisch]] en [[Wikibooks:Wachtruimte/Arabisch/Les 1|Arabisch/Les 1]], per 7 mrt 2010 ===2012=== * [[Wikibooks:Wachtruimte/Lichaamstaal en gebarentaal|Lichaamstaal en gebarentaal]], per 8 jun 2012 === 2013 === * [[Wikibooks:Wachtruimte/Taal|Taal]], per 8 nov 2013 === 2015 === *[[Wikibooks:Wachtruimte/Staatsrecht in Nederland|Staatsrecht in Nederland]], per 6 feb 2015 ===2019=== *[[Wikibooks:Wachtruimte/Inleiding tot de westerse wijsbegeerte|Inleiding tot de westerse wijsbegeerte]], per 4 mei 2019 ===2025=== *[[Wikibooks:Wachtruimte/Borduren|Borduren]], per 1 jul *[[Wikibooks:Wachtruimte/XSL|XSL]], per 29 jul *[[Wikibooks:Wachtruimte/Azerbeidzjaans|Azerbeidzjaans]], per 29 jul *[[Wikibooks:Wachtruimte/Philo van Byzantium|Philo van Byzantium]], per 13 sep *[[Wikibooks:Wachtruimte/Zeven wereldwonderen/Hangende tuinen van Babylon|Zeven wereldwonderen/Hangende tuinen van Babylon]], 13 sep *[[Wikibooks:Wachtruimte/Huisdierengids kat/Voeding|Huisdierengids kat/Voeding]], per 13 sep *[[Wikibooks:Wachtruimte/Wikibooks:Infobox/Arabisch]], per 5 okt *[[Wikibooks:Wachtruimte/Afdeling:Wijsbegeerte/Inleiding tot de westerse wijsbegeerte|Afdeling:Wijsbegeerte/Inleiding tot de westerse wijsbegeerte]], per 10 okt *[[Wikibooks:Wachtruimte/Lage rughernia|Lage rughernia]], per 10 okt *[[Wikibooks:Wachtruimte/Schema late Middeleeuwen|Schema late Middeleeuwen]], per 10 okt *[[Wikibooks:Wachtruimte/Verpleegkundige technieken/Bedbad|Verpleegkundige technieken/Bedbad]], per 27 okt *[[Wikibooks:Wachtruimte/Tips en trucs/Loss of session data in MediaWiki|Tips en trucs/Loss of session data in MediaWiki]], per 26 nov *[[Wikibooks:Wachtruimte/Astronomie/Ruimtevaartplaatjes|Astronomie/Ruimtevaartplaatjes]], per 23 dec ===2026=== *[[Wikibooks:Wachtruimte/Wat is wijsbegeerte?|Wat is wijsbegeerte?]], per 13 jan ==Actueel overzicht {{Dynamisch}}== <div style="font-size: smaller; line-height: 1.3;">{{Subpagina's}}</div> ==Zie ook:== *[[:Categorie:Wikibooks:Wachtruimte]] *[[Sjabloon:Wachtruimte]] [[Categorie:Wikibooks]] [[de:Wikibooks:Abstellraum]] hurb2cibxu9prpsctxwk1q31babcaae Wikibooks:Wachtruimte/Kroatisch 4 14280 422813 410764 2026-04-15T21:38:45Z Erik Baas 2193 422813 wikitext text/x-wiki {{Wachtruimte}}<!-- {{Bi}} --> {|border="0" align="center" cellpadding="6" |align="center"|[[Afbeelding:Flag of Croatia.svg|70px|Vlag van Kroatië]] |align="center"|<span style='font-size: larger;'>Kroatisch</span><br><br><span style='font-size: large;'>Leer de Kroatische taal!</span> |- |align="center"|''Vlag van Kroatië<br>'' |align="center"|[[/Inhoudsopgave/]] >> |} <div style='text-align: center;'> [[Afbeelding:Porec riva.jpg|450px|Poreč]]<br><span style='font-size: small;'>''Poreč, Istra<br>Poreč, Istrië''</span> {| align="center" |- | <div style='text-align: center;'>[[Afbeelding:Flag of Croatia.svg|70px|Vlag van Kroatië]]</div> |- | <div style='text-align: center; font-size: small;'>''Hrvatska<br>Kroatië''</div> |} <span style='font-size: xx-large;'>[[/Inhoudsopgave/]] >></span> </div> {{Indo-Europees}} { {Boek}} { {Fase1}} [ [Categorie:Taal]] qw7kr7j3qp8kjbbeuaf227yik0ocq6i Sjabloon:Navigatie boekenplanken 10 14664 422806 421972 2026-04-15T20:34:39Z Erik Baas 2193 Categorie:Sjablonen boekenplank 422806 wikitext text/x-wiki {{Navigatie basis |titel=Boekenplanken |inhoud= [[Boekenplank:Exacte wetenschappen|Exacte wetenschappen]]; [[Boekenplank:Toegepaste kennis en technologie|Toegepaste kennis en technologie]]; [[Boekenplank:Multimediale wetenschappen|Multimediale wetenschappen]]; [[Boekenplank:Taal en letterkunde|Taal en letterkunde]]; [[Boekenplank:Geschiedenis|Geschiedenis]]; [[Boekenplank:Samenleving|Samenleving]]; [[Boekenplank:Levensbeschouwing|Levensbeschouwing]]; [[Boekenplank:Filosofie|Filosofie]]; [[Boekenplank:Onderwijs en opleiding|Onderwijs en opleiding]]; [[Boekenplank:Sport en spel|Sport en spel]]; [[Boekenplank:Vrije expressie|Vrije expressie]]; [[Boekenplank:Diversen|Diversen]]; [[Boekenplank:Wikijunior|Wikijunior]] }}<noinclude> [[Categorie:Sjablonen navigatie|Boekenplanken]] [[Categorie:Sjablonen boekenplank|navigatie]] </noinclude> 88bttghp1su2s07orpa57i2is2ya90r Linux Systeembeheer 0 14843 422781 400461 2026-04-15T16:51:03Z Erik Baas 2193 422781 wikitext text/x-wiki {{Bi}} Dit boek hoort bij de cursus Netwerken/Linux zoals gegeven in de opleiding Professionele Bachelor Toegepaste Informatica aan de Hogeschool Gent. Ik ben al jaren op zoek naar een goed handboek en hoewel er verschillende kandidaten de revue gepasseerd zijn, ben ik er nooit een tegengekomen die echt goed aansluit bij de cursus. De meeste inhoud van dit boek is geschreven door de studenten die het vak volgden, vanaf academiejaar 2008-2009, maar hulp of suggesties van buitenaf zijn zeker welkom. Interessant is [[/Linux-scholen/ | een lijst van scholen die Linux]] gebruiken. Dit is ''geen'' inleidend Linux-boek. We veronderstellen dat de lezer al een zekere [[/Vereiste voorkennis/|voorkennis]] heeft. Daarvoor verwijzen we graag door naar [https://tldp.org/LDP/intro-linux/html/ Introduction to Linux] van Machtelt Garrels, of [[Linux voor beginners]] op Wikibooks. == Inleiding == * [[/Opzet van het boek/]] * [[/Vereiste voorkennis/]] * [[/Informatiebronnen/]] * [[/Linuxdistributies/]] == Linux systeembeheer == * [[/Linux installeren/]] * [[/Applicaties beheren/]] * [[/De gereedschapskist van een systeembeheerder/]] * [[/Opslagapparaten beheren/]] * [[/Beveiliging/]] * [[/Servervirtualisatie/]] == Linux in een netwerk == * [[/Netwerkinstellingen configureren/]] * [[/Webservers/]] * [[/Bestanden en printers delen/]] * [[/Elektronische post/]] * [[/Firewalls/]] * [[/Computerparken opvolgen en beheren/]] == Troubleshooting == * [[/VirtualBox/]] * [[/Firewall probleem met remote SSH/]] == Tips en trucs == * [[/Servers op afstand beheren met VPN/]] {{Boek}} {{Fase|2}} [[Categorie:Linux]] 4d4yv4i4innxfmtzzaxglm9hsdqqu3k Linux Systeembeheer/Opzet van het boek 0 14848 422779 364379 2026-04-15T16:45:48Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422779 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Structuur van elk hoofdstuk == Elk hoofdstuk heeft een vaste structuur: ; Inleiding: Schets van de context en motivatie van de stof behandeld in het hoofdstuk. ; Leerdoelen: Wat moet je na het lezen van dit hoofdstuk precies kennen en kunnen? ; Tekst: Het onderwerp uitgewerkt. ; Labo-opgave: Uitgebreide oefening waarin je de kennis uit dit hoofdstuk in de praktijk brengt. ; Bibliografie: Bronvermelding van alle in de tekst gerefereerde werken en aanbevolen lectuur voor verdere studie. == Conventies == In dit boek worden bestandsnamen, commando's en letterlijke argumenten van commando's in vet weergegeven. Niet letterlijk te nemen argumenten (die je moet vervangen door een zinvolle waarde) en dergelijke komen in cursief. Bijvoorbeeld: $ '''cp''' ''bestand directory'' Het commando '''cp''' moet je letterlijk zo intikken, ''bestand'' en ''directory'' moet je vervangen door zinvolle waarden. Delen van configuratiebestanden en terminalsessies worden weergegeven in een monogespatieerd lettertype. Bij de uitleg van de syntax van een commando, gebruiken we gelijkaardige conventies als die in de Linux commandohandleidingen (man-pages). * Alles tussen rechte haken ("<nowiki>[</nowiki>" en "<nowiki>]</nowiki>") is optioneel; * Wat gevolgd wordt door een ellipsis ("...") kan worden herhaald; * Accolades ("{" en "}") geven alternatieven aan, gescheiden door verticale lijnen ("|"). Om tekstpatronen aan te geven, gebruiken we zgn. "globbing"-karakters zoals gebruikt in de shell: * Een asterisk (*) komt overeen met nul of meer karakters; * Een vraagteken (?) komt overeen met één willekeurig karakter; * een tilde (~) slaat op de homedirectory van de huidige gebruiker. {{Sub}} bv424a7zq4uelzdzf4ancvq8wafuwar Linux Systeembeheer/Vereiste voorkennis 0 14849 422782 422039 2026-04-15T17:02:59Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422782 wikitext text/x-wiki {{Index Linux Systeembeheer}} Dit boek is geen inleiding op het werken met Linux. Daarvoor bestaan vele andere goede boeken, websites, enz. We veronderstellen dus dat de lezer al een zekere voorkennis heeft van het Linux-besturingssysteem en van netwerken. Meer bepaald verwachten we een basiskennis van: * Besturingssytemen: architectuur van een besturingssysteem, de taken van een besturingssysteem, types besturingssystemen; * Netwerken: ** De TCP/IP protocolfamilie; ** De netwerkinterfacelaag (Ethernet, WiFi, ...); ** De internetlaag (IP adressen, werking van IP en ICMP, ...); ** De transportlaag (UDP, TCP); * Linux: ** Basiscommando's; ** Directorystructuur; ** Gebruikers, groepen en permissies; ** Processen; ** Basis van Bash scripting. {{Sub}} owk3ijslkd1koyn0437mxzrjrekrdfp Linux Systeembeheer/Informatiebronnen 0 14851 422783 422063 2026-04-15T17:03:10Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422783 wikitext text/x-wiki {{Index Linux Systeembeheer}} Elk hoofdstuk bevat een bibliografie van relevate literatuur, maar hierna volgt toch een lijst met algemene literatuur in verband met Linux systeembeheer. == Boeken == * Carl Albing, et al., ''[https://books.google.be/books?id=Qu6H8fnAvGoC The Bash Cookbook],'' Second Edition, O'Reilly, 2007 * Anoniem, ''Hackers Guide'' (Nederlandse vertaling), Vierde Editie, SAMS, 2003 * Eric Cole, ''[https://books.google.be/books?id=fNRuUrhyd4QC Hackers Beware: Defending Your Network From The Wiley Hacker],'' New Riders, 2002 * Æleen Frisch, ''[https://books.google.be/books?id=uRW8V9QOL7YC Essential System Administration],'' Third Edition, O'Reilly, 2002 * Craig Hunt, ''[https://books.google.be/books?id=t7pHu7sIUkQC TCP/IP Network Administration],'' Second Edition, O'Reilly, 1998 * Evi Nemeth, et al., ''[https://books.google.be/books?id=GB_O89fnz_sC Linux Administration Handbook],'' Second Edition, Prentice Hall, 2007 * Cameron Newham and Bill Rosenblatt, ''[https://books.google.be/books?id=WQCSxv9vfPkC Learning the Bash shell].'' Third Edition, O'Reilly, 2005 * Jerry Peek, et al., ''[https://books.google.be/books?id=tDDb5zRoONwC Unix Power Tools],'' O'Reilly, 2002 * Sander Van Vugt, ''[https://www.vanduurenmedia.nl/titel.asp?ID=266 Een Linux-server inrichten],'' Van Duuren Media, 2007 * Sander Van Vugt, ''[https://www.sdu.nl/catalogus/9789039523124 Leerboek Linux: Deel 3 – Linux in een netwerk],'' Derde Druk, Academic Service, 2005 == Internet == * Mendel Cooper, ''[https://tldp.org/LDP/abs/html/ Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting],'' versie 5.4, The Linux Documentation Project, 2008, geraadpleegd op 2008-08-10 * Machtelt Garrels, ''[https://tldp.org/LDP/intro-linux/html/ Introduction to Linux: A hands-on Guide],'' versie 1.27, 2008-06-06, geraadpleegd op 2009-10-18 * David Jones, et al., ''[https://webfuse.cqu.edu.au/Courses/2007/T2/COIT13146/Resources/Study_Guide/ Systems Administration (An Introduction to Linux Systems Administration): Study Guide],'' Central Queensland University, 2003, geraadpleegd op 2008-08-10 * Fedora Project, ''[https://docs.fedoraproject.org/ Fedora Manuals],'' geraadpleegd op 2012-02-23 * Red Hat, ''[https://www.redhat.com/docs/manuals/linux/ Red Hat Linux Manuals],'' geraadpleegd op 2008-08-10 * ''[https://www.centos.org/docs/5/ CentOS Documentation],'' geraadpleegd op 2008-09-20 * Lars Wirzenius, et al., ''[https://www.tldp.org/LDP/sag/html/index.html The Linux System Administrator's Guide],'' versie 0.9, The Linux Documentation Project, 2003, geraadpleegd op 2008-08-10 * ''[https://server-world.info/en/ server-world.info],'' website met tutorials voor de meest gebruikte Linux-distributies (CentOS 5-6, Fedora 10-16, Ubuntu 10.04-11.04), geraadpleegd op 2011-12-20 == Podcasts == * [https://freshubuntu.org/ Fresh Ubuntu] - specifiek voor Ubuntu Linux. * [https://goinglinux.com/ Going Linux] - ideaal voor beginners: elke maand wordt in twee afleveringen een bepaald onderwerp eerst ingeleid en dan uitgediept. * [https://www.jupiterbroadcasting.com/?cat=4 Linux Action Show] - nieuws en reviews. * [https://www.tllts.org/ Linux Link Tech Show] - de langst lopende Linux podcast. * [https://linuxoutlaws.com/ Linux Outlaws] - Nieuws, nieuwe releases. * [https://www.linuxreality.com/ Linux Reality] - ook een goede podcast voor beginners. Er komen geen nieuwe afleveringen meer bij, maar het archief bevat een schat aan nuttige informatie. * [https://www.lottalinuxlinks.com/ Lottalinuxlinks] - naast een podcast ook veel doorverwijzingen naar andere nuttige informatie over Linux. * [https://www.lugradio.org/ LugRadio] - Linux en open source. Er komen geen nieuwe afleveringen, maar ook hier is het interessant eens in het archief te grasduinen. * [https://podcast.ubuntu-uk.org/ Ubuntu UK Podcast] - Podcast van het Britse Ubuntu UK LoCo team (plaatselijke vrijwilligers die Ubuntu promoten). {{Sub}} f8j5a704swnzzptdwp4idror0vfvrve Linux Systeembeheer/Applicaties beheren 0 14852 422786 367299 2026-04-15T17:03:58Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422786 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Leerdoelen == * De package managers '''yum''' <s>en '''apt-get'''</s> kennen en kunnen gebruiken: ** Weten welke Linux distributies deze package managers (standaard) gebruiken; ** Met '''yum'''<s> en '''apt-get'''</s> software kunnen installeren, verwijderen en bijwerken; ** Pakketbronnen (Eng. ''repositories'') beheren. * Applicaties buiten de distributie om kunnen installeren en onderhouden: ** De correcte plaats van zulke applicaties in de Linux-directorystructuur kennen (meer bepaald '''/opt''' en '''/usr/local'''); ** Weten hoe je applicaties kan installeren vanaf de broncode. ==Algemeen== ===Installeren=== Linux-distro's maken gebruik van een pakketbeheersysteem om de geïnstalleerde software te onderhouden. Zo gebruiken RedHat en afgeleide distro's (vb. Fedora en CentOS) RPM (RedHat Package Manager). Debian en afgeleiden (vb. Ubuntu) gebruiken apt-get en de package manager van Gentoo heet emerge. De lijst is uiteraard nog veel groter. Een package manager zorgt dat bij installatie van software alle afhankelijkheden opgelost worden (vb. een bibliotheek) en verwittigt de gebruiker regelmatig als er updates zijn. In RPM-gebaseerde systemen worden packages aangeleverd in de vorm van bestanden met extensie .rpm. Bij Debian-achtige systemen is dat .deb. Je kan RPM-packages installeren met dit commando: <code>rpm -i mypackage-1.2.3.rpm</code> Voor de meeste programma's is het niet nodig RPMs te downloaden en dan zoals hierboven te installeren. Linux-distributies hebben een zgn. ''repository'', een database met packages die on-line ter beschikking wordt gesteld. Je dient dan enkel de naam van de package te kennen, de package manager doet de rest. Software die niet in de repository zit, vind je voor de meest gangbare distro's als een RPM op de homepage van de applicatie. Als er geen rpm of deb bestaat kan je nog altijd gebruik maken van een tarball (extensie .tar.gz) die de broncode bevat. Je moet die dan nog compileren en manueel installeren. Meestal is dat volgens dit stramien: <code>./configure [--prefix=/usr/local]; make; sudo make install</code> Je kijkt dan best ook na waar al je bestanden zullen terechtkomen, die kan je zien in 'Makefile'. Een van de nadelen van deze manier van werken is dat afhankelijkheden niet gecontroleerd worden. Dit kan er toe leiden dat je nog packages vanaf de broncode moet installeren die zelf ook afhankelijkheden hebben, enz. Dit was zeker in de begindagen van Linux (toen er nog geen package managers waren) een groot probleem, en men noemde dit "dependency hell". Tegenwoordig heb je slechts in heel uitzonderlijke omstandigheden nood aan deze manier van werken, de meeste software die je nodig hebt zijn beschikbaar in de repositories. Over het algemeen geldt: # Zoek eerst of de software die je nodig hebt in de repositories zit; # Zo niet, zoek uit of er RPMs (of .deb's) bestaan specifiek voor jouw distributie; # Als laatste redmiddel, installeer van source. ===Locaties=== Op Linux-systemen is er voor elk type bestand een vastgelegde plaats in de directorystructuur, vastgelegd in de Linux Filesystem Hierarchy Standard (FHS). Applicaties die tot de distributie behoren, horen thuis in '''/usr/'''. Als je software installeert van een andere bron, dan hoort dit thuis in '''/usr/local'''. Bijhorende bestanden worden verdeeld onder specifieke subdirectories. Executables komen terecht in subdirectory '''/usr[/local]/bin''', vaste data (vb. afbeeldingen, iconen) in '''/usr[/local]/share''', documentatie in '''/usr[/local]/doc''', enz. Sommige applicaties, in het bijzonder deze die vanuit Windows naar Linux geporteerd zijn, verwachten dat alle bestanden binnen eenzelfde directory terecht komen. Voor dit soort gevallen is de directory '''/opt''' voorzien. Sommige systeembeheerders zetten deze directories op een aparte partitie, zodat een nieuwe versie van de distro kan geïnstalleerd worden zonder dat de manueel geïnstalleerde pakketten beïnvloed worden. == Yum == Yum (Yellowdog Updater, Modified) is een soort gebruikersschil rond RPM en kan in plaats van dit laatste gebruikt worden om de software op het systeem te beheren. Zo is het mogelijk om software te verwijderen, toe te voegen of bij te werken. Yum is de standaard geworden binnen de RedHat familie. === Commando's === Hieronder volgt een overzicht van de meest voorkomende argumenten. Update alle software waarvoor dit mogelijk is: <code>$ yum update</code> Update een specifiek pakket indien mogelijk: <code>$ yum update {naam}</code> Geeft een overzicht van alle geïnstalleerde programma's: <code>$ rpm -qa</code> <code>$ yum list installed</code> Uitzoeken of httpd geïnstalleerd is op het systeem: <code>$ rpm -qa | grep httpd*</code> <code>$ yum list installed httpd</code> Hiermee kan je nagaan welke pakketten of pakketonderdelen er zijn geïnstalleerd: <code>$ yum list httpd</code> <code>$ yum list perl*</code> De uitvoer van het laatste: Loading "installonlyn" plugin Loading "security" plugin Setting up repositories Reading repository metadata in from local files Installed Packages perl.i386 4:5.8.8-10.el5_0.2 installed perl-Archive-Tar.noarch 1.30-1.fc6 installed perl-BSD-Resource.i386 1.28-1.fc6.1 installed perl-Compress-Zlib.i386 1.42-1.fc6 installed perl-DBD-MySQL.i386 3.0007-1.fc6 installed perl-DBI.i386 1.52-1.fc6 installed perl-Digest-HMAC.noarch 1.01-15 installed perl-Digest-SHA1.i386 2.11-1.2.1 installed perl-HTML-Parser.i386 3.55-1.fc6 installed ..... ....... .. perl-libxml-perl.noarch 0.08-1.2.1 base perl-suidperl.i386 4:5.8.8-10.el5_0.2 updates Installeren van het httpd-pakket: <code>$ yum install httpd</code> Installeren van het mysql-pakket voor de i386-architectuur: <code>$ yum install mysql.i386</code> Verwijderen van het httpd-pakket: <code>$ yum remove httpd</code> Geeft een lijst weer van alle beschikbare pakketten: <code>$ yum list all</code> Geeft een lijst weer van alle beschikbare pakketgroepen: <code>$ yum grouplist</code> De uitvoer zit er dan als volgt uit: Installed Groups: Engineering and Scientific MySQL Database Editors System Tools Text-based Internet Legacy Network Server DNS Name Server Dialup Networking Support FTP Server Network Servers Legacy Software Development Legacy Software Support Development Libraries Graphics Web Server Ruby Printing Support Mail Server Server Configuration Tools PostgreSQL Database Available Groups: Office/Productivity Administration Tools Beagle Development Tools GNOME Software Development X Software Development Virtualization GNOME Desktop Environment Authoring and Publishing Mono Games and Entertainment XFCE-4.4 Tomboy Java Java Development Emacs X Window System Windows File Server KDE Software Development KDE (K Desktop Environment) Horde Sound and Video FreeNX and NX News Server Yum Utilities Graphical Internet Done Installeert alle pakketten in deze groep: <code>$ yum groupinstall "Development Tools"</code> Update alle pakketten in deze groep: <code>$ yum groupupdate "Development Tools"</code> Verwijder alle pakketten in deze groep: <code>$ yum groupremove "Development Tools"</code> Geef een overzicht van alle pakketten die niet via de normale kanalen zijn bekomen (via alternatieve repo's dus): <code>$ yum list extras</code> De uitvoer ziet er dan als volgt uit: Loading "installonlyn" plugin Loading "security" plugin Setting up repositories Reading repository metadata in from local files Extra Packages DenyHosts.noarch 2.6-python2.4 installed VMwareTools.i386 6532-44356 installed john.i386 1.7.0.2-3.el5.rf installed kernel.i686 2.6.18-8.1.15.el5 installed kernel-devel.i686 2.6.18-8.1.15.el5 installed lighttpd.i386 1.4.18-1.el5.rf installed lighttpd-fastcgi.i386 1.4.18-1.el5.rf installed psad.i386 2.1-1 installed rssh.i386 2.3.2-1.2.el5.rf installed Hiermee kan je te weten komen van welke software een bestand is: <code>$ yum whatprovides /etc/passwd</code> De uitvoer zit er dan als volgt uit: Loading "installonlyn" plugin Loading "security" plugin Setting up repositories Reading repository metadata in from local files setup.noarch 2.5.58-1.el5 base Matched from: /etc/passwd setup.noarch 2.5.58-1.el5 installed Matched from: /etc/passwd Geeft alle overige informatie weer die je ooit zal nodig hebben: <code>$ man yum</code> ===Configuratie=== Via de bestanden /etc/yum.conf en etc/yum.repos.d kan je de instellingen van Yum aanpassen. Meestal wordt alleen nog /etc/yum.conf gebruikt. Deze bestanden laten toe om extra repo's toe te voegen of om extra plugins aan te passen. Een toevoeging van een lokale mirror ziet er dan als volgt uit: [base-local] name=Fedora $releasever - $basearch Lokaal 419 failovermethod=priority baseurl=https://10.0.0.10/yum/base/$releasever/$basearch/ enabled=1 gpgcheck=0 [updates-local] name=Fedora $releasever - $basearch - Updates Lokaal 419 failovermethod=priority baseurl=https://10.0.0.10/yum/updates/$releasever/$basearch/ enabled=1 gpgcheck=0 == Labo-opgave == In een vorige stap heb je op een klaspc of je eigen pc een basisinstallatie van een Linux-systeem opgezet. Nu installeren we enkele applicaties. # Zorg ervoor dat de '''yum'''- package manager nieuwe pakketten binnenhaalt van de Belnet mirror repository in plaats van de standaardkeuze. # Installeer de laatste versies van: ## De Java Standard Edition SDK van Sun (niet OpenJDK of GCJ); ## Netbeans; ## Eclipse; ## De netwerktools '''nmap''' en '''wireshark'''. # Zorg er voor dat een gewone gebruiker '''nmap''' en '''wireshark''' kan uitvoeren met root-rechten, zonder als root te moeten inloggen en zonder een wachtwoord te moeten intikken. {{Sub}} 245cshqramklmuez46btv3x2iej60j5 Linux Systeembeheer/De gereedschapskist van een systeembeheerder 0 14853 422787 360583 2026-04-15T17:04:10Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422787 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Leerdoelen == * Basiscommando's voor Linux systeembeheer kennen en kunnen gebruiken: ** info over het systeem opvragen: '''lsof''', '''lspci''', '''lsusb''' ** superuser: '''su [-]''' en '''sudo''' ** procesbeheer: '''ps''', '''top''', '''kill''', '''killall''' ** probleemoplossen in een netwerk: *** bereikbaarheid van een systeem testen: '''ping''', '''traceroute''', '''mtr''', *** bereikbaarheid van applicaties testen: '''nmap''' port scanner: **** de scantypes '''-sP''', '''-sL''', '''-sS''', '''-sT''', '''-sU''', '''-O''' begrijpen en kunnen toepassen **** specifieke hosts en poorten scannen *** packet sniffer '''wireshark''': **** promiscuous mode begrijpen, **** individuele pakketten kunnen identificeren en analyseren, de structuur van een pakket begrijpen, **** TCP streams kunnen identificeren, opvangen en bekijken, *** andere netwerktools: '''arp''', '''dig''', '''ifconfig''', '''netstat''', '''route''', '''service''' (specifiek voor de RedHat-familie), '''ssh''', '''telnet''', '''whois''' == Systeeminformatie opzoeken == === lsof === lsof , letterlijk '''l'''i'''s'''t '''o'''pen '''f'''iles, is een commando dat een lijst weergeeft van geopende bestanden en door processen deze gebruikt worden. We verstaan onder geopende bestanden o.a. bestanden die op een opslagmedium zijn opgeslagen, netwerksockets en ook aangesloten randapparatuur. Als er een bestand in gebruik is kan men dit bestand niet wijzigen, of kan men een disk niet kan unmounten. Met lsof kan men dan gaan kijken waar het gebruikt wordt. lsof /var toont de lijst van geopende bestanden in de map /var $ lsof /var COMMAND [PID] USER FD TYPE DEVICE SIZE/OFF NODE NAME syslogd 350 root 5w VREG 222,5 0 440818 /var/adm/messages syslogd 350 root 6w VREG 222,5 339098 6248 /var/log/syslog cron 353 root cwd VDIR 222,5 512 254550 /var -- atjobs Nuttige flags zijn: *-i Toon sockets. *-n Maak geen gebruik van dns. *-P Toon poortnummers. Met het volgende commando kunnen we zien dat bijvoorbeeld sendmail luistert naar de tcp-poort 25. $ lsof -i -n -P | grep sendmail sendmail 31649 root 4u IPv4 521738 TCP *:25 (LISTEN) === lspci === lspci is een unix-commando dat informatie weergeeft van al de PCI-bussen en apparaten van het systeem. Het is gebaseerd op een gemeenschappelijke draagbare bibliotheek libpci die de toegang tot de PCI-configuratie ruimte biedt op verschillende besturingssystemen. Als je het uitvoert krijg je een soortgelijke uitvoer: 00:00.0 Host bridge: Intel Corporation 82815 815 Chipset Host Bridge and Memory Controller Hub (rev 11) 00:02.0 VGA compatible controller: Intel Corporation 82815 CGC [Chipset Graphics Controller] (rev 11) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 03) 00:1f.0 ISA bridge: Intel Corporation 82801BAM ISA Bridge (LPC) (rev 03) 00:1f.1 IDE interface: Intel Corporation 82801BAM IDE U100 (rev 03) 00:1f.2 USB Controller: Intel Corporation 82801BA/BAM USB (Hub #1) (rev 03) 00:1f.3 SMBus: Intel Corporation 82801BA/BAM SMBus (rev 03) 00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB (Hub #2) (rev 03) 00:1f.5 Multimedia audio controller: Intel Corporation 82801BA/BAM AC'97 Audio (rev 03) 01:03.0 CardBus bridge: O2 Micro, Inc. OZ6933/711E1 CardBus/SmartCardBus Controller (rev 01) 01:03.1 CardBus bridge: O2 Micro, Inc. OZ6933/711E1 CardBus/SmartCardBus Controller (rev 01) 01:0b.0 PCI bridge: Actiontec Electronics Inc Mini-PCI bridge (rev 11) 02:04.0 Ethernet controller: Intel Corporation 82557/8/9 [Ethernet Pro 100] (rev 08) 02:08.0 Communication controller: Agere Systems WinModem 56k (rev 01) Met de optie '''-n''' krijg je in plaats van de namen van apparaten een identificatiecode, bijvoorbeeld: 00:00.0 0600: 8086:2a00 (rev 03) 00:01.0 0604: 8086:2a01 (rev 03) 00:1a.0 0c03: 8086:2834 (rev 03) 00:1a.1 0c03: 8086:2835 (rev 03) [...] 01:00.0 0300: 10de:0407 (rev a1) 0b:00.0 0280: 168c:0024 (rev 01) 0c:00.0 0200: 11ab:436a (rev 13) 0d:03.0 0c00: 104c:8025 (rev 02) Op positie 01:00.0 vinden we een apparaat met code ''10de:0407''. De ''10de'' staat voor de fabrikant (in dit geval nVidia), de ''0407'' voor het type apparaat (GeForce 8600M GT grafische kaart). Deze code is in sommige gevallen nuttig om drivers op te zoeken voor hardware die niet standaard ondersteund wordt door de Linuxdistributie. === lsusb === Het commando lsusb is analoog aan het lspci commando. Het geeft informatie weer van de usb apparaten die met het apparaat verbonden zijn. === hwinfo === hwinfo geeft informatie weer over al de geïnstalleerde hardware op het systeem. lshw geeft een verkorte lijst van hwinfo weer. == SubstituteUser & Sudo == Veel beheerscommando's kunnen niet uitgevoerd worden wanneer u niet als root bent ingelogd. Om die reden is het soms makkelijk om als een andere gebruiker in te loggen. Dat kan met het commando '''su''' (wat staat voor Substitute User). '''su''' [USER]: Het path wijzigt niet, omgevingsvariabelen blijven bewaard en je blijft in je eigen shell. Je kan optioneel een gebruikersnaam meegeven om in te loggen als die gebruiker. Zonder opties word je root. Eigenlijk log je niet echt in, maar wordt enkel je UID veranderd. $ su jasmien Password: $ _ $ su Password: $ '''su -''' [USER]: dit is equivalent met daadwerkelijk inloggen als root (su - root). Hierbij worden wel de omgevingsvariabelen aangenomen van de andere gebruiker (in dit geval root). $ su Password: $ ifconfig ifconfig: command not found $ exit $ su - Password: $ ifconfig eth0 Link encap:Ethernet HWaddr 00:04:e2:2a:bf:45 [...] '''Sudo''' kan een gebruiker toestaan om een commando als de superuser of een andere gebruiker uit te voeren. Standaard vereist sudo dat gebruikers zichzelf authenticeren met hun eigen wachtwoord. Zodra een gebruiker is geverifieerd, kan de gebruiker sudo gebruiken zonder een wachtwoord voor een korte periode van tijd (5 minuten, tenzij overschreven in bestand sudoers). Instellen van het '''Sudo''' commando is enkel mogelijk als root. Door gebruik van het commando '''visudo''' kan aan een bepaalde gebruiker commando's toegewezen worden die anders enkel maar door de root uitvoerbaar zijn. De lijst van sudo gebruikers kan teruggevonden worden in '''/etc/sudoers'''. '''/etc/sudoers.tmp''' is de lockfile die toelaat om het visudo commando te gebruiken. Van zelfsprekend bezit enkel root deze rechten.<br> <pre> ## Allow root to run any commands anywhere root ALL=(ALL) ALL student ALL=(ALL) NOPASSWD:ALL %students ALL=(ALL) ALL student localhost =(root) NOPASSWD : /usr/bin/nmap, /usr/bin/wireshark, /usr/sbin/tcpdump </pre> '''visudo''' bestaat uit 3 kolommen. De eerste kolom kan een gebruiker zijn of een groep. De tweede kolom omvat 2 delen. De eerste variabele verwijst naar de toelatingen van de host. Dit is bijna altijd de localhost en het is veilig om ALL te gebruiken. De tweede variabele verwijst tussen de haakjes verwijst naar de uitvoerder van het commando. Men kan een sudo commando dus specifiek toewijzen. De derde kolom zijn de commando's die een bepaalde gebruiker of groep mag uitvoeren. Met NOPASSWD laat je toe de sudo gebruiker zijn commando uit te voeren zonder telkens zijn paswoord in te voeren.<br> == Procesbeheer == === ps (process status) === ps is een commando om informatie over actieve processen te tonen. enkele opties voor het ps commando: * -A: toon informatie over alle actieve processen. doet hetzelfde als optie -e (every) * -a: toon informatie over alle actieve processen, behalve group leaders en processen zonder terminal * -u UIDlijst: toon enkel processen geassocieerd met volgende UIDs. * u: toon gedetailleerde informatie over het proces * -p PIDlijst: toon enkel processen met volgende PIDs. * x: toon processen zonder een terminal, bijvoorbeeld daemons pstree is een gelijkwaardig programma op Unix systemen. Het toont de actieve processen in een boomdiagram om zodoende de relaties en hiërarchie tussen deze weer te geven. === top === Top geeft een real-time overzicht van al de actieve processen === kill === Het commando om een process te eindigen. Stop allemogelijke processen. $ kill -9 -1 Stopt het process met id nummer 450. (dit nummer wordt gevonden met top of ps) $ kill -9 450 === killall === Het commando killall stopt alle processen op commandonaam. Als er meer dan een proces het meegegeven commando gebruikt, dan worden ze allemaal afgesloten. Flags: * -g Sluit de procesgroep waarvan het proces deel uit maakt * -v Toont na afsluiten van proces of het gelukt is en het proces ID. == Troubleshooting in een netwerk == === Ping === Ping wordt gebruikt om te kijken of een computer bereikbaar is. Het stuurt een ICMP echo-request en krijgt dan een ICMP echo-response terug. Met ping kan je zowel de hostname als een IP-adres 'pingen'. Meest gebruikte parameters zijn '''-c''' om het aantal ping-pakketten aan te geven dat er mag gestuurd worden en '''-s''' die de grootte van de ping-pakketten specifieert. <pre> $ ping -c 5 www.google.com PING www.l.google.com (209.85.229.106): 56 data bytes 64 bytes from 209.85.229.106: icmp_seq=0 ttl=54 time=28.390 ms 64 bytes from 209.85.229.106: icmp_seq=1 ttl=54 time=27.790 ms 64 bytes from 209.85.229.106: icmp_seq=2 ttl=54 time=28.098 ms 64 bytes from 209.85.229.106: icmp_seq=3 ttl=54 time=26.998 ms 64 bytes from 209.85.229.106: icmp_seq=4 ttl=54 time=28.805 ms --- www.l.google.com ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/stddev = 26.998/28.016/28.805/0.609 ms </pre> === Traceroute === Traceroute geeft de route van de gebruikte host naar de meegegeven host weer. Het maakt gebruik van de TTL waarde (time to live) in de header van een IP-pakket. Routers onderweg verlagen het TTL-veld van passerende met 1 en de router die het op 0 zet, stuurt een ICMP-foutbericht (TTL exceeded). Traceroute start met de waarde 1 en verhoogt telkens met 1 tot het aan het bestemmingsadres bereikt is. Zo krijg je een voor een antwoorden terug met daarin het IP-adres van de volgende hop. Typisch wordt voor elke TTL-waarde 3 pakketten gestuurd. Net als bij ping kan je zowel een hostname als een ip-adres gebruiken bij traceroute: <pre> $ traceroute nl.wikipedia.org traceroute to nl.wikipedia.org (91.198.174.2), 30 hops max, 60 byte packets 1 Belgacom.lan (10.0.0.138) 0.533 ms 4.942 ms 9.952 ms 2 * * * 3 126.237-201-80.adsl-static.isp.belgacom.be (80.201.237.126) 59.782 ms 64.604 ms 69.678 ms 4 ge1-0.intlstr1.isp.belgacom.be (194.78.0.146) 246.682 ms ge0-0.intlstr1.isp.belgacom.be (194.78.0.46) 247.533 ms 248.542 ms 5 leaseweb.bnix.net (194.53.172.101) 98.550 ms 103.483 ms 108.281 ms 6 po100.sr1.evo.leaseweb.net (85.17.100.226) 111.513 ms 42.600 ms 47.323 ms 7 te-8-4.csw1-esams.wikimedia.org (85.17.163.241) 51.371 ms 56.267 ms 61.378 ms 8 rr.esams.wikimedia.org (91.198.174.2) 67.341 ms 51.634 ms 50.733 ms </pre> Traceroute gebruikt normaal UDP of ICMP-berichten. Veel systeembeheerders blokkeren ICMP op hun routers uit veiligheidsoverwegingen. Daarom gebruikt men tegenwoordig ook vaak TCP connect-berichten op poort 80; dat lijkt op een webbrowser die een connectie wil openen met een webserver. Dit soort berichten raakt vaker door firewalls. Sommige versies van traceroute laten je toe om voor tcp-berichten te kiezen, of je kan ook alternatieven gebruiken, zoals ''tcptraceroute'' of ''tracepath''. Die laatste heeft trouwens als voordeel dat je geen root moet zijn om het uit te voeren. === Mtr === ''Mtr'' combineert de functionaliteit van de traceroute en ping-programma's in een enkel diagnostisch command. Wanneer ''mtr'' wordt uitgevoerd, onderzoekt het de netwerkverbinding tussen de host waar ''mtr'' op draait en de doelhost door het zenden van pakketten met lage TTL waarde. Het blijft pakketjes verzenden met een lage TTL, lettend op de reactietijd van de tussenliggende routers. Hierdoor kan ''mtr'' de responstijden en antwoordpercentages van alle hops op de route weergeven. Voorbeeld output van ''mtr www.google.com'': '''My traceroute [v0.75]''' ilse.localdomain (0.0.0.0) Thu Dec 17 00:08:20 2009 Keys: '''H'''elp '''D'''isplay mode '''R'''estart statistics '''O'''rder of fields '''q'''uit '''Packets Pings''' '''HOST: ilse.localdomain Loss% Snt Last Avg Best Wrst StDev''' 1. 10.0.2.2 0.0% 10 0.0 1.4 0.0 2.3 0.6 2. 12.118.134.5 2.0% 100 14.5 18.8 14.0 124.9 13.2 3. 12.17.165.97 0.0% 100 15.4 19.1 14.3 100.8 11.1 4. .... == Nmap == Nmap (“Network Mapper”) is een open source tool om een netwerk te verkennen en de beveiliging van het netwerk te monitoren. Nmap gebruikt ip-pakketten om het aantal hosts te bepalen op het netwerk alsook om de services te zien die deze hosts aanbieden , op welk operating system ze draaien, welk type firewalls en filters in gebruik zijn etc. Nmap wordt over het algemeen gebruikt door netwerkbeheerders om hun eigen netwerk te kunnen monitoren en om een eventueel beveiligingslek te vinden en dichten. Er bestaan ook enkele grafische interfaces voor nmap , zoals Zenmap. Voor de meeste opties heb je root-rechten nodig. '''Gebruik ''' $ nmap [Scan Type(s)][Options] {target specification} # target kan een IP-adres, hostnaam of netwerk zijn. # bv: microsoft.com , 192.168.0.1 , 10.0.0-255.1-254 === Host Discovery === Wanneer er geen opties meegegeven zijn dan stuurt Nmap een ICMP echo request, een TCP SYN pakket naar poort 443, een TCP ACK pakket naar poort 80 en een ICMP timestamp request. -sL: List Scan: geeft een lijst van alle IP-addressen op het netwerk weer zonder pakketjes naar de hosts te sturen. -sP: Skip port Scan: normale ping scan, zonder de poorten te scannen. -PN: No Ping. -PE;-PP;-PM : ICMP ping types: Nmap kan verschillende type's pakketjes verzenden afhankelijk van de opties. -PE: ICMP type 8 (echo request). -PP: Timestamp Request. -PM: Address Mask Query. -PR: ARP Ping : Nmap zoekt hosts op een LAN via ARP (snel). === Scan Techniques === -sS: TCP SYN scan (standaard scantype als root). -sT: TCP connect scan (standaard scantype als gewone gebruiker). -sU: UDP scan. -sA: TCP ACK scan. -sO: IP protocol scan: Geeft weer welke IP protocollen ondersteund worden door het doel. === Port Specification and Scan Order === -p <Port ranges>: Scant alleen maar de gespecifieerde poorten. -F: Fast scan: Nmap scant maar 100 poorten ipv 1000 standaard. Men kan ook wildcards gebruiken, bijvoorbeeld: $ nmap -p ftp,http* {target specification} # scant alle ftp poorten en poorten die beginnen met http === Service/Version Detection === -sV:Geeft weer welke services de host aanbiedt. === Script Scan === -sC: Geeft weer welke scripts er draaien op de host. --script “scriptnaam”: Voert een specifiek script uit. === OS Detection === -O: Geeft weer welk OS er draait op de host. === Timing and Performance === Manueel instellen hoe aggressief of snel Nmap de hosts moet scannen (-T4< of -T aggressive is normaal op een breedbandverbinding) -T paranoid|sneaky|polite|normal|aggressive|insane === Firewall/IDS Evasion and Spoofing === -f: Fragment Packets: Nmap gebruikt mini gefragmenteerde IP pakketjes verhoogd de “sneakyness”. -D <decoy1>[,<decoy2>]: Nmap gebruikt decoys zodat het lijkt voor de host alsof de decoys ook het netwerk aan het scannen zijn wat het moeilijker maakt voor de host om de source de ontdekken. -S <Ip_address>: Spoof IP-adres: Uw eigen IP-adres verbergen en een vals gebruiken. === Output === -oN <filespec>: normal output. -oX <filespec>: XML output. -oG <filespec>: grepable output. -oA <basename>: Output in alle formaten. -v: increase verbosity level , Nmap schrijft meer details weg over de scans. === Misc === -6: Enable Ipv6 Scanning. -A: Aggressive Scan Options. -V: Geeft de huidige versie van Nmap weer. -h: Help. ===Voorbeelden=== Scant al de gereserveerde TCP poorten op de machine scanme.nmap.org en geeft uitgebreide informatie. $ nmap -v scanme.nmap.org Lanceert een SYN en OS scan naar elke machine die online is in het netwerk waar scanme.nmap.org zich bevindt. $ nmap -sS -O scanme.nmap.org/24 Nmap scant 4096 IP's op zoek naar webservers zonder deze te pingen en bewaart de output in grepable en XML formaten. $ nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 ==Andere netwerktools== ===Ifconfig=== De opdracht ifconfig wordt gebruikt om een netwerkinterface te configureren. Men kan o.a. het ip-adres, het subnetmask wijzigen of bijvoorbeeld een netwerkinterface in- of uitschakelen. De opdracht <code> ifconfig eth0 address=192.168.1.2 mask=255.255.255.0 </code> stelt de interface eth0 in met ipadres 192.168.1.2 en subnetmasker 255.255.255.0. Als er geen argumenten met ifconfig worden meegegeven, dan wordt getoond wat de huidige instellingen zijn. Voorbeeldoutput: <pre> eth0 Link encap:Ethernet HWaddr 00:0F:20:CF:8B:42 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2472694671 errors:1 dropped:0 overruns:0 frame:0 TX packets:44641779 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1761467179 (1679.8 Mb) TX bytes:2870928587 (2737.9 Mb) Interrupt:28 </pre> === Netstat === ''Netstat'' wordt gebruikt om de status van alle netwerkverbindingen te bekijken. Het gaat dan om openstaande verbindingen (handig om te detecteren of iemand op uw systeem aan het werk is), de routing-tabel en netwerkinterfaces. Het verwarrende aan ''netstat'' is dat het niet alleen informatie weergeeft over openstaande verbindingen, maar ook over sockets die in gebruik zijn. Het commando ''netstat'' zonder argumenten laat dus heel veel informatie zien over interne processen die actief zijn. Enkele handige flags: * -t: Weergave van welke (TCP-)verbindingen er naar uw computer open staan * -l: Toon enkel de serverpoorten ("luisterende" poorten) * -n: Geef enkel IP-adressen weer, probeer niet om te zetten naar hostnamen (zo vermijd je DNS-requests die lang kunnen duren) * -u: Welke UDP-verbindingen open staan * -r: Lees de kernel routing tables uit. * -s: Display beknopte statistieken voor elk protocol. * --interface=''iface'' , -i: Toon een tabel met alle netwerk interfaces, of de opgegeven ''iface''. Een voorbeeld: <pre> $ netstat -l -t -n Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:60618 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:40573 0.0.0.0:* LISTEN tcp6 0 0 :::139 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 :::445 :::* LISTEN </pre> === Route === Route manipuleert of toont de kernel IP-routing tabellen. Het primaire gebruik is het aanmaken van statische routes naar specifieke hosts of netwerken via een interface nadat deze is geconfigureerd met het ifconfig programma. Wanneer de 'add' of 'del' opties worden gebruikt, wijzigt route de routing tabellen. Zonder deze opties, geeft route de huidige inhoud van de routing tabellen. In dat geval is de optie '''-n''' nuttig, die probeert niet om hostnamen op te zoeken via DNS-requests. Toegang tot individuele computer host gespecificeerd via netwerkkaart eth1: <pre>route add -host 123.213.221.231 eth1</pre> Stel de default gateway in voor toegang tot remote network via interface card eth0: <pre>route add default gw 201.51.31.1 eth0</pre> ===SSH=== SSH ("secure shell") is een protocol dat vanop afstand op een veilige manier inloggen op een linux systeem mogelijk maakt. Het is de opvolger van telnet en onderscheidt zich door het gebruik van encryptie. De standaardpoort voor SSH is 22. '''Gebruik''' Standaard probeert de openSSH client in te loggen op het doel ip-adres met de gebruikersnaam van de gebruiker die ssh uitvoert, je kan een gebruikersnaam specifiëren met de -l vlag. <code>$ ssh [-l gebruikersnaam] doel-ip</code> '''Clients''' Op alle Unix systemen (Linux, OSX, BSD, Solaris, ...) is er een standaard een SSH client aanwezig. Er bestaat ook een open source SSH client voor Windows die geen installatie vereist: [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] '''De server daemon''' Het ssh daemon proces heet sshd. Deze start bij RedHat-systemen standaard op en heeft een uitzondering in de firewall. De configuratie is te vinden in '''/etc/ssh/sshd_config''', waar je bijvoorbeeld de volgende beveiligingsmaatregel kan nemen om rechtstreekse logins met de root gebruikersnaam te verhinderen: <code>PermitRootLogin no</code> '''Handig om weten''' bestanden kopiëren via ssh: <code>scp bestand naam@server:/home/user</code> <code>scp naam@server:/home/user/bestand</code> '''inloggen zonder wachtwoord''' – stap 1: publiek/privaat sleutelpaar aanmaken<br> ssh-keygen<br> – stap 2: publieke sleutel kopiëren naar server<br> ssh-copy-id<br> <code>user@localhost $ ssh user@server Password: user@server $ exit user@localhost $ ssh-keygen -t rsa user@localhost $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@server Password: user@lilith $ ssh user@server user@server $</code> ===Telnet=== Telnet is een netwerkprotocol dat het mogelijk maakt op afstand in te loggen op een machine en die via een opdrachtregel te besturen. Als gebruiker ziet dit er hetzelfde uit als SSH. Tekstregels die de gebruiker intikt, evenals het antwoord van de server, worden via een eenvoudige TCP-verbinding doorgestuurd, zonder versleuteling. Telnet wordt daarom als een belangrijk beveiligingsrisico gezien, omdat wie dit netwerkverkeer kan onderscheppen gevoelige data, o.a. wachtwoorden kan lezen. Een systeembeheerder zal telnet dus ook ten allen tijde vermijden. ===Whois=== Zoek in een whois-database naar een domeinnaam, IP-adres of netwerkkaart naam. De geretourneerde informatie varieert, maar bestaat meestal uit administratieve en technische contacten, zodat u een persoon die problemen op dat domein kan behandelen kan vinden. Standaard retourneert het commando informatie over .Com, .Net, en .Edu-domeinen, maar andere hosts voor andere domeinen kunnen ook worden opgevraagd met behulp van de host of -h optie. Voorbeeld: <pre> $ whois sf.net Whois Server Version 2.0 Domain names in the .com and .net domains can now be registered with many different competing registrars. Go to https://www.internic.net for detailed information. Domain Name: SF.NET Registrar: TUCOWS INC. Whois Server: whois.tucows.com Referral URL: https://domainhelp.opensrs.net Name Server: NS-1.CH3.SOURCEFORGE.COM Name Server: NS-1.SOURCEFORGE.COM Name Server: NS-2.CH3.SOURCEFORGE.COM Status: ok Updated Date: 26-oct-2010 Creation Date: 22-dec-1994 Expiration Date: 21-dec-2011 >>> Last update of whois database: Sat, 15 Jan 2011 13:23:22 UTC <<< [...] </pre> {{Sub}} e89iwhrz7ck9ehw3nbzbr322imlng8g Linux Systeembeheer/Servervirtualisatie 0 14854 422790 330428 2026-04-15T17:11:36Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422790 wikitext text/x-wiki {{Index Linux Systeembeheer}} Virtualisatie is een algemene term in ict die staat voor het op de ene of de andere manier abstraheren van hardwarebronnen. Servervirtualisatie in het bijzonder laat toe dat meerdere besturingssystemen tegelijkertijd op één computer kunnen draaien. Het grote voordeel van servervirtualisatie is dat de verschillende besturingssystemen van elkaar afgeschermd zijn. Daardoor kan bijvoorbeeld onderzoek naar computervirussen gedaan worden, zonder dat de computer (de 'host') wordt geïnfecteerd. Er kunnen ook kosten bespaard worden, door meerdere besturingssystemen (met bijvoorbeeld elk een webserver) te laten werken op één computer. Doordat de gevirtualiseerde servers, 'guests', van elkaar afgeschermd zijn is het gemakkelijker te beheren en ook dat levert een kostenbesparing op. Door meerdere gast-besturingssystemen te laten werken op één computer, heeft die computer extra geheugen nodig en een snellere processor. In de praktijk blijkt echter dat het goedkoper is om één duurdere computer (vaak een server) te gebruiken met virtualisatie, dan meerdere goedkopere computers zonder virtualisatie. In dit hoofdstuk bespreken we vooral het virtualiseren van een server. == Leerdoelen == * De soorten servervirtualisatie kennen en kunnen situeren: ** de karakteristieken van de verschillende soorten virtualisatie kennen, meer bepaald: OS-level virtualisation, paravirtualisation, full virtualisation, emulation * Bekende virtualisatietools kunnen classificeren ** VMWare Server, Workstation en Fusion, Xen, OpenVZ, VirtualBox, Hyper-V, Parallels, Containers, Virtual PC * De voor- en nadelen van bepaalde virtualisatietypes en -producten kunnen evalueren ** Een geschikte keuze kunnen maken uit verschillende virtualisatieproducten, afhankelijk van het hostplatform en de toepassing * VMWare Server en Sun VirtualBox kunnen installeren onder Linux ** een guest-OS kunnen installeren onder VMWare Server ** de netwerkopties voor guest-OSs kennen en begrijpen (private/NAT/bridged) {{Bericht | type = tip | titel = In VirtualBox tijdens runtime verschillende netwerken aanspreken | bericht = In VMWare Server kan je terwijl een virtuele machine draait het type netwerkverbinding (bridged, NAT, host-only) wijzigen. In VirtualBox moet je daarvoor eerst de VM afsluiten en achteraf opnieuw opstarten. Om deze beperking in VirtualBox t.o.v. VMWare te omzeilen kan je het volgende doen: * Configureer eerst al je netwerkadapters (bv. 1 gekoppeld aan de NAT, 1 aan een VirtualBox Host adapter en 1 bridged met uw WLAN kaart) bij de instellingen van het guest OS * Je kan dan tijdens de uitvoering van de virtualisatie de netwerkkaarten apart in- of uitschakelen met de GUI (bovenaan in de menu van het uitvoervenster) }} == Soorten servervirtualisatie == '''Let op: in deze paragraaf staan veel fouten en irrelevante zaken. Gebruik bij studeren hier de slides (NETWLIN-1011-introduction) [[Gebruiker:Bertvanvreckem|Bertvanvreckem]] 15 jan 2011 16:26 (CET)''' *Emulation: Bij emulation wordt software binnen een besturingssysteem geladen in de vorm van een programma. Dit programma simuleert een complete machine zodat het mogelijk is om een extra guest-OS te starten. Dit besturingssysteem zal dan virtueel draaien op een ander hardware platform (bv: Bochs PearPC, PowerPC , Virtual PC ,Hercules emulator). Emulatie kennen we ook van game consoles zoals bijvoorbeeld gameboy emulators. Bij emulatie worden allerlei technieken gebruikt om de instructies aan de virtuele hardware te vertalen naar de werkelijke hardware van het host OS. *Native Virtualization: Native virualization gebruikt hetzelfde principe als emulatie. Er wordt gebruik gemaakt van software om zo een volledige machine te simuleren. Het verschil met emulatie is dat bij Native Virtualization het gast-systeem dezelfde soort hardware wordt gebruikt als het host systeem. Een 32-bit systeem zal dus enkel virtuele machines kunnen draaien die geschikt zijn voor dit systeem. Bij Native Virtualization wordt de hardware op de host beter benut omdat de software de beschikbaar gestelde resources verdeelt onder de guests. *Full Virtualization: Bij Full Virtualization worden meerdere guests naast elkaar geplaatst. Dit gebeurt door tussen de hardware en de virtuele machines een extra, softwarematige, laag te plaatsen die de aanvragen aan de hardware regelt. Hierdoor kunnen de hardware resources efficiënter benut worden dan bij gewone emulatie. *Operating system-level Virtualization: Operating System-Level Virtualization lijkt op Full Virtualization maar de guest moet hetzelfde besturingssysteem hebben als het host systeem. *Hardware enabled Virtualization: Hardware Enabled Virtualization lijkt op Full Virtualization maar hier wordt de tussenliggende software in de hardware verdeeld. Het voordeel hiervan is dat de virtualisatie nog dieper in het systeem is geïntegreerd zodat het verdelen van de hardware resources minder systeemcapaciteit kost. *Partial Virtualization: Bij partial virtualization worden voor veel maar niet voor alle hardware componenten meerdere virtuele componenten gecreëerd. Deze componenten zorgen ervoor dat het mogelijk is om apparaten te delen. Het is niet mogelijk om meer dan één besturingssysteem te delen. Vaak wordt dit niet gezien als virtualisatie en het komt veelvuldig voor in besturingssystemen als Windows en Linux maar ook op grote mainframe systemen. *Paravirtualization: Bij Paravirtualization wordt de hardware aangeboden aan de virtuele machine door middel van speciale API’s die alleen kunnen worden gebruikt door deze aan te passen aan het guest OS. Op deze manier kan er gekozen worden welke hardware er door de virtuele machines wordt gedeeld en welke hardware voor één specifieke guest aanwezig is. *Cross-platform Virtualization: Bij deze vorm van virtualisatie wordt een applicatie die gecompileerd is voor een bepaald OS op een ander OS gedraaid, zonder dat daarvoor een emulatie van het andere OS hoeft plaats te vinden. Tevens moet de source code en/of binaire bestanden niet worden aangepast. *Application Virtualization: Bij application virtualization draaien de applicaties lokaal op een desktop, gebruikmakend van lokale systeem resources. Dit zonder dat de applicatie op de machine is geïnstalleerd, binnen een aangepaste VM. Het is enigszins te vergelijken met een terminal gebaseerde toepassing, met het grote verschil dat bij terminal services de applicaties op een server draaien en bij application virtualization de applicaties lokaal draaien. *Resource Virtualization: Dit is eigenlijk de verzamelnaam voor alle types virtualization die we vandaag de dag kennen. Onder resource virtualization wordt ook het virtualiseren van opslag en netwerkelementen bedoeld. Enkele voorbeelden hiervan zijn SAN en NAS systemen, VLANs , VPNs, etc. Ook clusteroplossingen als partitioneringen en encapsulatie vallen onder resource virtualization. ==Netwerkopties voor guest-OSs(private/NAT/bridged)== Onder het tabblad netwerk bij de instellingen van een virtuele machine kun je verschillende soorten netwerkopties instellen. Soorten netwerkopties: *Network Address Translation (NAT): Bij NAT wordt er een intern netwerk gesimuleerd. Het guest systeem heeft de toegang tot het internet via het hostsysteem. Omgekeerd is dit niet het geval. Het guest systeem is onzichtbaar voor het host systeem. Er zijn dus enkele beperkingen aan NAT verbonden die het mogelijk maken dat sommige diensten vanuit het hostsysteem of het internet mogelijk niet werken. Beperkingen: a. ICMP protocol : Sommige veelgebruikte netwerk debugging tools werken met het ICMP protocol. Tools zoals ping en tracerouting werken wel, maar van anderen is de werking niet altijd verzekerd. b. Ontvangen van UDP broadcasts is niet verzekerd. c. Sommige protocollen worden niet ondersteund (vb : GRE). Besluit NAT is voldoende om op het web te surfen, files te downloaden en emails te bekijken, maar kan eventuele problemen veroorzaken indien men andere diensten wil aanspreken. *Bridged networking: Bij bridged networking is de virtuele machine een deel van het lokale netwerk. Het maakt fysiek deel uit van dat netwerk. Het is net zoals de virtuele machine een aparte host is binnen dit netwerk. Die host krijgt dan ook een apart IP-adres van de lokale DHCP-server. *private networking: (nog aan te vullen) ==Installeer VirtualBox 3.2.10 op Fedora 14/13, CentOS 5.5, Red Hat (RHEL) 5.5/6== 1.Installeer RHEL repo bestanden: $ cd /etc/yum.repos.d/ ## Fedora 12/13 and RHEL 6 users $ wget https://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo ## CentOS 5 and RHEL 5 users $ wget https://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo 2.Installeer de nodige dependency packages: $ yum install gcc kernel-devel kernel-headers 3.Voeg KERN_DIR variable toe: ## Current running kernel on Fedora ## $ KERN_DIR=/usr/src/kernels/`uname -r` ## Current running kernel on CentOS and Red Hat (RHEL) ## $ KERN_DIR=/usr/src/kernels/`uname -r`-`uname -m` ## Fedora example ## $ KERN_DIR=/usr/src/kernels/2.6.33.5-124.fc13.i686 ## CentOS and Red Hat (RHEL) example ## $ KERN_DIR=/usr/src/kernels/2.6.18-194.11.1.el5-x86_64 ## Export KERN_DIR ## $ export KERN_DIR 4.Installeer de laatste versie van virtualbox: $ yum install VirtualBox-3.2 ==Installeer vmware server on centos 5== 1. Download VMware server: $ wget https://download3... 2. Installeer de VMware server: $ rpm -ivh VMware-server-1.0.3-44356.i386.rpm 3.Installeer benodigde bestanden / bibliotheken: $ yum install libXtst-devel libXrender-devel kernel-devel 4.Installeer xinetd $ yum install xinetd 5.Configureer de VMware server $ vmware-config.pl ==Bekende virtualisatie tools== *VMWare Server: VMWare Server kan virtuele machines aanmaken, bewerken, verwijderen en ook gewoon afspelen zonder dat hij aangemaakt is op de PC zelf. Het gebruikt een client-server model, waardoor je op afstand gebruik kan maken van de virtuele machines, dit gaat wel ten koste van de grafische prestaties. Er is ook een mogelijkheid om virtuele machines die door andere bedrijven gemaakt zijn te draaien. Bijvoorbeeld kan VMWare Server ook virtuele machines draaien die gemaakt zijn door Microsoft Virtual PC. Ook niet te vergeten is dat VMWare Server gratis te proberen is, wil je echter de volledige versie dan moet je hier wel voor betalen. *VMWare Workstation: VMWare Workstation heeft alle opties die VMWare Server heeft en daarbij biedt het ook de mogelijkheid om hardware te simuleren, wat in VMWare Server dus niet kan. Bijvoorbeeld, VMWare Workstation kan een ISO bestand mounten als een CD-ROM en een Virtual Machine Disk(VMDK) als een harde schijf. Wat ook nog speciaal is rond VMWare Workstation is dat het een netwerk adapter kan configureren (NAT) door de host machine in plaats van door bridging. VMWare Workstation laat ook toe om Live CD’s te testen zonder hen op de schijf te moeten zetten of door de computer te rebooten. Er kunnen ook gemakkelijk snapshots genomen worden van de virtuele machine onder VMWare Workstation. Ook kan de virtuele machine herstart worden aan de hand van zo’n snapshot. Dus je herstart de virtuele machine en die komt dan terecht in de staat waar dat je een snapshot genomen hebt van de virtuele machine. Ook niet te vergeten is dat VMWare Server gratis te proberen is, wil je echter de volledige versie dan moet je hier wel voor betalen. *VMWare Fusion: VMWare Fusion is een virtualisatie tool dat gemaakt is voor het MAC besturingssysteem. Zo kan je gemakkelijk andere besturingssystemen draaien onder MAC zoals Microsoft Windows XP, Vista of 7. Het kan 32 bit besturingssystemen alsook 64 bit besturingssystemen draaien, dit hangt natuurlijk af welke soort processor je hebt. Alleen 32 bits processors kunnen 32 bit besturingssystemen draaien, hetzelfde voor 64 bit besturingssystemen. Hier kunnen ook snapshots genomen worden zoals in VMWare Workstation, zodat je gemakkelijk een soort van backup kan maken van je virtuele machine. Want je kan het gelijk wanneer terugzetten naar een snapshot dat je genomen hebt in het verleden. Ook niet te vergeten is dat VMWare Server gratis te proberen is, wil je echter de volledige versie dan moet je hier wel voor betalen. *Xen: Xen wordt ontwikkeld door Xen Project van XenSource. Xen maakt gebruik van de virtualistatietechniek paravirtualisatie om hogere prestaties te bereiken. Intel heeft zijn bijdragen gedaan aan Xen door hun VT-extensies te ondersteunen. Ook AMD heeft dat gedaan voor hun AMD-V extensie. Xen draait vooral op Linux gebaseerde systemen of NetBSD als hoofdsysteem. De eerste commerciële implementatie van Xen die breed ondersteund wordt is in Novells Linuxdistributie SLED 10. Ook FreeBSD is beperkt ondersteund. Xen werkt ook op Microsoft besturingssystemen. Het is mogelijk om Windows als gassysteem te draaien in Xen dit komt deels door de ondersteuning van Intel en AMD. Het is echter wel niet mogelijk om Microsoft Windows als hoofdsysteem te gebruiken. Microsoft Windows Server 2008 kan wel als hoofdsysteem gebruikt worden, Windows Vista niet. *OpenVZ: OpenVZ kan zoals de meeste virtualisatie software meerdere geïsoleerde besturingsystemen draaien, omdat ze geïsoleerd zijn noemen we ze containers zoals Virtual Private Servers (VPSs) of Virtual Environments (VEs). Het is gelijkaardig als FreeBSD Jails en Solaris Zones. Als we OpenVZ met virtualisatie software zoals VMWare en paravirtualisatie technologie zoals Xen dan is OpenVZ gelimiteerd omdat het vereist dat beide hoofd-en gastbesturingssysteem Linux zijn. Maar Linux kan wel in verschillende containers geplaatst worden, OpenVZ zal hier zeker geen probleem van maken. Vaak wordt OpenVZ niet als een echte virtualisatiesoftware gezien omdat het geen meerdere virtuele machines op hetzelfde moment kan laten draaien. Ook Xen en VMWare virtualiseren de volledige machine terwijl OpenVZ dat niet doet. Het gebruikt een enkele Linux Kernel waardoor het ook alleen Linux kan draaien. Maar daardoor is het wel snel en efficiënt. Het grote nadeel is natuurlijk dat het maar een enkele Linux kernel gebruikt. De voordelen zijn dat het geheugenbeheer veel beter is. Een ander voordeel is dat je een virtuele machine gewoon kan kopiëren door gewoon de files te kopiëren en een nieuwe configuratie file te maken. *VirtualBox: VirtualBox is een van de bekendere virtualisatiesoftware dat er op de markt is. Het kan zoals elke andere virtualisatiesoftware meerdere virtuele machines draaien op hetzelfde moment. VirtualBox heeft 3 soorten, namelijk de VirtualBox Personal Use, de VirtualBox Evaluation License en natuurlijk de open source editie onder GPL-licentie. VirtualBox wordt onderhouden door Sun Microsystem. VirtualBox kan geïnstalleerd worden op gelijk welk besturingssysteem. Ook kan je in VirtualBox aan hardware emulatie doen. Het gebruikt Intel-V en AMD-V als hardware virtualisator maar gebruikt geen van beide als standaard. De harde schijven worden in een speciaal formaat geëmuleerd, namelijk in Virtual Disk Images, die niet compatibel zijn met de verschillende andere formaten die de andere virtualisatieprogramma’s gebruiken. Deze bestanden worden opgeslagen op het hostbesturingssysteem als een .vdi-bestand. *Hyper-V: Hyper-V komt voor in 2 verschillende versies, ten eerste als een stand-alone product genaamd microsoft Hyper-V Server 2008 R2 en ten weede als Microsoft Server 2008 R2. De eerste, de stand-alone versie is gratis te gebruiken, het is een variant van de Windows Server 2008 Core dat de Hyper-V functionaliteit implementeerd. De gratis 64 bit versie is echter gelimiteerd, je kan alleen een Command Line Interface (CLI) gebruiken waar je dus op het gastbesturingssysteem of het hoofdbesturingssysteem alleen maar met Shell commands kan werken. Microsoft Windows Server 2008 heeft de Hyper-V sowieso al staan en kan direct gebruikt worden vanaf de Management Console. De configuratie van de Hyper-V kan gedaan worden door het gebruiken van de Remote Windows Desktop RDP, via een sessie. Sinds November 2009 ondersteund Hyper-V geen USB toebehoren meer. Maar dit kan wel omzeilt worden door de Microsoft Remote Desktop Client te gebruiken en zo een Remote Desktop Connection op te zetten. Zo kan ook geluid geactiveerd worden. DVD-Writer ondersteunen ze ook niet meer sinds October 2010, waarom ze dit niet meer ondersteunen is onduidelijk. Er zijn ook verschillende grafische problemen met het hostbesturingssysteem. Als je bijvoorbeeld de graphic drivers installeert voor een virtuele machine die Microsoft Windows Vista runt dan zal je een gigantische val zien in de grafische performance. Dit is echter alleen voor het hostbesturingssysteem, het gastbesturingssysteem heeft hier echter geen problemen mee. Microsoft raadt aan de default VGA drivers te gebruiken die met Windows Server 2008 worden geleverd. *Virtual PC: Virtual PC is gemaakt door Microsoft. Het maakt mogelijk om andere besturingssystemen te draaien onder Windows zoals Linux & Unix. Virtual PC is origineel gemaakt door Connectrix, het werd uitgebracht in 1997, die versie was alleen beschikbaar voor MAC OS. Later werd het de ontwikkelaar Connectrix overgenomen door Microsoft. Sinds de overname is Virtual PC gratis te verkrijgen via de Microsoft website. Voor de laatste versie voor de MAC OS werd wel nog geld gevraagd dit was mede doordat hier een volledige licentie van Microsoft Windows XP Professional bijgevoegd werd. Microsoft ondersteunt enkel Windows versies maar het is ook mogelijk sommige Linux & Unix distributies te installeren. Zo kan je al hostbesturingsysteem Windows 7, Windows Vista, Windows XP, Windows Server 2003 & Windows Server 2008 gebruiken. Als gastbesturingssysteem kan je Windows Vista, Windows XP, Windows Server 2008, Windows 200, Windows 98 2nd Edition, Windows Server 2003 en verschillende versies van IBM OS/2 gebruiken. Oudere versies zoals Windows 95 en 98 werken ook meestal maar worden niet ondersteund. == Bibliografie == *Algemeen *https://nl.wikipedia.org/wiki/Virtualisatie *https://www.abraxax.com/html/server_virtualisatie.html *Installatie vmware en virtualbox op linux systeem: *https://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/ *https://wiki.centos.org/HowTos/Virtualization/VirtualBox *https://www.cyberciti.biz/tips/vmware-on-centos5-rhel5-64-bit-version.html *Bekende virtualisatie tools kunnen classificiëren *https://en.wikipedia.org/wiki/VMWare_Server *https://en.wikipedia.org/wiki/VMWare_Workstation *https://en.wikipedia.org/wiki/VMWare_Fusion *https://en.wikipedia.org/wiki/Xen *https://en.wikipedia.org/wiki/OpenVZ *https://en.wikipedia.org/wiki/VirtualBox *https://en.wikipedia.org/wiki/Hyper-V *https://en.wikipedia.org/wiki/VirtualPC {{Sub}} c99fkjs1ud8h9mart7v1wvwwz562x3h Linux Systeembeheer/Webservers 0 14855 422792 422040 2026-04-15T17:12:22Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422792 wikitext text/x-wiki {{Index Linux Systeembeheer}} ==Inleiding== LAMP staat voor '''L'''inux, '''A'''pache, '''M'''ySQL en '''P'''HP en is ongetwijfeld één van de meest gebruikte toepassingen van Linux. Vele bekende websites (onder andere ook Facebook) zijn gebaseerd op dit platform. MySQL wordt in sommige gevallen vervangen door PostgreSQL (of een andere open source databank) en PHP door Perl, Python of een andere scriptingtaal, maar het stramien blijft hetzelfde. In dit hoofdstuk tonen we hoe je een LAMP-stack kan opzetten als basis voor een dynamische website. == Leerdoelen == * Een LAMP-server (d.w.z. '''L'''inux+'''A'''pache+'''M'''ySQL+'''P'''HP) kunnen installeren en configureren in een op RedHat-gebaseerd Linux-systeem ** Ondersteuning voor PHP toevoegen ** Ondersteuning voor SSL (HTTPS) toevoegen *** Een self-signed certificaat kunnen aanmaken en gebruiken ** Een Apache-webserver kunnen beveiligen met SELinux == Een LAMP-server opzetten == Aangezien we veel commando's na elkaar met administrator rechten moeten uitvoeren voor het opzetten van de webserver: $ su - === MySQL installatie === Installatie van de nodige onderdelen: # yum -y install mysql mysql-server MySQL server aanzetten bij opstart: # chkconfig --level 2345 mysqld on We openen het bestand ''/etc/sysconfig/iptables'' om de firewall te configureren: # vi /etc/sysconfig/iptables Hier voegen we de volgende lijn aan toe zodat de clients de MySQL server kunnen bereiken: (toevoegen in de file na INPUT en vóór FORWARD) -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT Herstarten van de firewall om de nieuwe regel te laden: # service iptables restart MySQL server starten: # service mysqld start Aanmaken van mysql user root met paswoord: # mysqladmin -u root password <nowiki>'rootpassword'</nowiki> Aanmelden in mysql als root: # mysql -u root -p Geef nu het 1stap geleden ingegeven rootpassword in. :Alternatief: paswoord om in te loggen veranderen: >SET PASSWORD FOR 'root'@'localhost' = PASSWORD('nieuw-password'); >SET PASSWORD FOR 'root'@'localhost.localdomain' = PASSWORD('nieuw-password'); >SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('nieuw-password'); Opvragen van de mysql.user table om te zien welke gebruikers er bestaan: >SELECT User, Host, Password FROM mysql.user; Zorgen dat de we de Any gebruikers (= users zonder naam) droppen: >DROP USER <nowiki>''</nowiki>@'localhost'; >DROP USER <nowiki>''</nowiki>@'localhost.localdomain'; Nieuwe user aanmaken: >CREATE USER 'mysqlUser'@'localhost' IDENTIFIED BY 'mysqlPassword'; > GRANT ALL PRIVILEGES ON *.* TO 'mysqlUser'@'localhost' WITH GRANT OPTION; Uit mysqladmin gaan: >exit :Alternatief: Testen door aan te melden als mysqlUser: $ mysql -u mysqlUser -p $ mysqlPassword >exit === Apache === Installatie Apache: $ yum -y install httpd mod_ssl Apache starten: $ service httpd start Apache automatisch aanzetten bij het opstarten:<br> $ chkconfig --level 2345 httpd on Firewall configuratie met system-config-firewall-tui ( sudo yum -y install system-config-firewall-tui)<br> $ system-config-firewall-tui $ CUSTOMIZE $ [*] Secure WWW (HTTPS) --> aanzetten door op spatiebalk te drukken $ [*] WWW (HTTP) of manueel toevoegen<br> $ vi /etc/sysconfig/iptables of $ nano /etc/sysconfig/iptables Hier voegen we de volgende lijn aan toe om poort 80 open te zetten:(toevoegen in de file na INPUT en voor FORWARD) <br> -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT Herstarten van de firewall om de nieuwe regel te laden:<br> $ service iptables restart Test door te surfen naar https://192.168.56.101 (dit ip adres kan variëren afhandelijk van uw configuratie, je moet dan met het commando ifconfig opzoeken naar welk adres je moet surfen) === SSL === We genereren eerst een private key. Deze wordt geëncrypteerd opgeslagen met het Triple-DES algoritme. Je dient meteen een wachtwoord (passphrase) in te tikken dat je telkens als je de server opstart zal moeten herhalen. Als je dat wil vermijden, kan je de optie '''-des3''' weglaten. Merk op dat dat voor productiesystemen een beveiligingsrisico inhoudt. Als iemand toegang kan krijgen tot het filesysteem, kan die zo je certificaat stelen en een vervalste website opzetten.<br> $ openssl genrsa -des3 -out server.key 1024 Certificate Signing Request (CSR) genereren (geef hier hetzelfde wachtwoord in):<br> $ openssl req -new -key server.key -out server.csr Geldigheid instellen op 365 dagen:<br> $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Server.key kopiëren om wachtwoord te verwijderen:<br> $ cp server.key server.key.secure Map maken om .csr bestand in te plaatsen:<br> $ mkdir /etc/httpd/conf/ssl.csr/ Map maken om .crt bestand in te plaatsen:<br> $ mkdir /etc/httpd/conf/ssl.crt/ Map maken om .key en .key.secure bestand in te plaatsen:<br> $ mkdir /etc/httpd/conf/ssl.key/ Verplaatsen van de files naar de overeenkomstige directory:<br> $ mv server.csr /etc/httpd/conf/ssl.csr/host_domain_tld.csr $ mv server.crt /etc/httpd/conf/ssl.crt/host_domain_tld.crt $ mv server.key /etc/httpd/conf/ssl.key/host_domain_tld.key $ mv server.key.secure /etc/httpd/conf/ssl.key/host_domain_tld.key.secure Permissies wijzigen zodat enkel de gebruiker root toegang heeft tot deze mappen:<br> $ chmod 400 /etc/httpd/conf/ssl.csr/ $ chmod 400 /etc/httpd/conf/ssl.crt/ $ chmod 400 /etc/httpd/conf/ssl.key/ Gegevens aanpassen in /etc/httpd/conf.d/ssl.conf:<br> $ vi /etc/httpd/conf.d/ssl.conf Volgende lijnen aanpassen:<br> ::- Onder Virtual Host deel ::'''<VirtualHost _default_:443> '''wordt''' <VirtualHost *:443><br>''' ::- Onder Server Certificate ::'''SSLCertificateFile /etc/httpd/conf/ssl.crt/host_domain_tld.crt<br>''' ::- Onder Private key ::'''SSLCertificateKeyFile /etc/httpd/conf/ssl.key/host_domain_tld.key<br>''' We openen het bestand /etc/sysconfig/iptables om de firewall te configureren:<br> $ vi /etc/sysconfig/iptables Hier voegen we de volgende lijn aan toe zodat de clients de SSL poort kunnen bereiken:(toevoegen in de file na INPUT en voor FORWARD) <br> -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT Herstarten van de firewall om de nieuwe regel te laden:<br> $ /sbin/service iptables restart Apache herstarten:<br> $ /sbin/service httpd restart -> geeft een fout:'''Failed, SSLCertificateFile does not exist or is empty''' ::Dit komt omdat SELinux het bestand niet vertrouwt (tail /var/log/messages) $ chcon user_u:object_r:httpd_config_t /etc/httpd/conf/ssl.crt/host_domain_tld.crt $ chcon user_u:object_r:httpd_config_t /etc/httpd/conf/ssl.key/host_domain_tld.key Voor fedora 13 minimal install: $ chcon user_u:object_r:httpd_config_t:s0 /etc/httpd/conf/ssl.crt/host_domain_tld.crt $ chcon user_u:object_r:httpd_config_t:s0 /etc/httpd/conf/ssl.key/host_domain_tld.key $ chcon user_u:object_r:httpd_config_t:s0 /usr/sbin/httpd Apache herstarten:<br> $ /sbin/service httpd restart -> werkt nu wel. === PHP === Installatie van PHP en PHP-MYSQL:<br> $ yum -y install php php-mysql php-pear php-gd php-xml Herstarten van Apache:<br> $ /sbin/service httpd restart We zijn klaar, dus su uitloggen: $ logout == Toepassing Drupal == Drupal is een bekend Content Management System, ontwikkeld door Dries Buytaert (een Vlaming, trouwens). Drupal is gebaseerd op de LAMP stack en is erg populair voor het snel opzetten van dynamische websites. Veel hostingbedrijven maken er dan ook gebruik van. Aanmaken van een database:<br> $ mysqladmin –u root –p create drupalDB Inloggen op MySQL:<br> $ mysql –u root –p Gebruiker mysqlUser volledige toegang geven tot de database, m.a.w. mysqlUser dezelfde rechten als root geven:<br> >GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON druppalDB.* TO ‘mysqlUser’@'localhost' IDENTIFIED BY ‘mysqlPassword’; >exit Rechten op de map ''/var/www/html'' wijzigen:<br> $ chown -R linuxUsername /var/www/html $ chgrp -R apache /var/www/html De huidige directory zetten op <span style="font-size: large;">''/var/www/html''</span>:<br> $ cd /var/www/html Drupal downloaden:<br> $ yum -y install wget $ wget https://ftp.drupal.org/files/projects/drupal-6.19.tar.gz Files uitpakken:<br> $ tar -xzvpf drupal-* --strip-components=1 Kopiëren van de standaard settings:<br> $ cp ./sites/default/default.settings.php ./sites/default/settings.php Rechten op de map wijzigen:<br> $ chgrp -R apache . $ chown -R apache ./sites/default $ chgrp -R linuxUsername ./sites/default $ chmod -R g+w ./sites/default/settings.php PHP extensions installeren $ yum install php-mbstring $ yum install php-gd Inloggen op de webserver en de configuratie volgen. == Labo-opdracht: een Drupal appliance opzetten == Het doel van dit labo is het opzetten van een Drupal server in een virtuele machine. De naam “appliance” in de titel wordt tegenwoordig vaak gebruikt (o.a. door VMWare) voor een virtuele machine met een minimale installatie voor een specifiek doel. # Installeer een minimale versie van (CentOS of Fedora) Linux onder een virtualisatiesysteem naar keuze (vb. Oracle VirtualBox, VMWare Server, Hyper-V, ...). Met minimaal bedoelen we dat enkel en alleen de nodige packages geïnstalleerd worden die nodig zijn voor het uitvoeren van het labo. Een grafische omgeving is bijvoorbeeld niet nodig. Gebruik eventueel de “netinstall” installatie-cd. Bij ''[https://docs.fedoraproject.org/install-guide/f11/nl/html/s1-pkgselection-x86.html Package installation]'' zorg je ervoor dat geen van de voorgestelde opties ("Kantoor en productiviteit", enz) geselecteerd is, en dat onderaan "Nu aanpassen" aangevinkt is. In het volgende scherm ("[https://docs.fedoraproject.org/install-guide/f11/nl/html/sn-package-selection.html Softwareselectie aanpassen]") vink je eveneens alle categorieën uit. # Installeer MySQL op je appliance # Zet een Apache webserver op met ondersteuning voor PHP en SSL. Genereer zelf een self-signed certificate en installeer het. Het moet mogelijk zijn om vanaf het host-besturingssysteem de webserver van je appliance te contacteren via SSL (http'''s'''://x.x.x.x/). # Installeer Drupal op je appliance. Zorg dat je Drupal-site bereikbaar is via een versleutelde verbinding. ==Bibliografie== * [https://dev.mysql.com/doc/refman/5.5/en/installing.html https://dev.mysql.com/doc/refman/5.5/en/installing.html] * [https://dev.mysql.com/doc/refman/5.5/en/adding-users.html https://dev.mysql.com/doc/refman/5.5/en/adding-users.html] * [https://dev.antoinesolutions.com/mysql https://dev.antoinesolutions.com/mysql]} * [https://www.vjtod.org/selinux_crt_httpd.html https://www.vjtod.org/selinux_crt_httpd.html] * [https://www.apache-ssl.org/docs.html#SSLCertificateFile https://www.apache-ssl.org/docs.html#SSLCertificateFile] {{Sub}} 2f8j7vg2bsxxjpu3pxpy2zi9s6a9j7o Linux Systeembeheer/Linuxdistributies 0 20945 422784 422041 2026-04-15T17:03:22Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422784 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Leerdoelen == * Weten wat een Linuxdistributie is * De grootste families van Linuxdistributies kennen, en de verschillen ertussen: RedHat, Debian, broncode-gebaseerd, BSD * voorbeelden van elk kunnen aanhalen, en kort kunnen situeren: ** '''RedHat''': RedHat Enterprise Linux, CentOS, Fedora, Mandriva ** '''Debian''': Debian, Ubuntu, Linux Mint ** '''Broncode''': Gentoo ** '''Andere''': Knoppix, OpenSuSE, Slackware ** '''UNIX''': FreeBSD, OpenBSD, NetBSD, OpenSolaris {{Sub}} roxa99alw61fx90677c1p6oajy7bbzg Linux Systeembeheer/Linux installeren 0 20946 422785 361967 2026-04-15T17:03:45Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422785 wikitext text/x-wiki {{Index Linux Systeembeheer}} Linux installeren wordt nog vaak gezien als een ingewikkeld proces, waarbij je al heel wat kennis over Linux nodig hebt om een en ander tot een goed einde te brengen. De laatste jaren is deze reputatie niet langer terecht. Bij de meest gangbare distributies is de procedure minstens zo gebruiksvriendelijk geworden als die van Windows. Dankzij virtualisatie is het nu ook mogelijk om Linux uit te proberen zonder je bestaande configuratie (zij het Windows, MacOS of een ander besturingssysteem) te verstoren. Hier geven we het voorbeeld van een installatie van Fedora onder Sun VirtualBox. == Leerdoelen == * Linux kunnen installeren in Dual Boot naast een ander besturingssysteem * Linux kunnen installeren als virtuele machine * Grub kunnen installeren == Aanmaken van een virtuele machine == Om een Linux-distributie te installeren onder een virtuele machine hebben we eerst een van de volgende programma’s nodig: VirtualBox, VmWare, Parallels, … In onderstaand voorbeeld installeren wij Linux in VirtualBox. VirtualBox kan je downloaden op https://www.virtualbox.org/wiki/Downloads en de installatie verloopt zeer eenvoudig. * Eenmaal VirtualBox is geïnstalleerd kiezen we linksboven voor de optie ‘New’. (Kies ‘Next’) * Naam opgeven van je pc en daar kies je bij OS Linux en bij version kiezen we Fedora. (Kies ‘Next’) [[Bestand:Linux-VirtualBox-Create New Virtual Machine-VMOS.png]] * Daarna kies je de grootte van het ramgeheugen, hierbij is 512MB aangeraden. (Kies ‘Next’) [[Bestand:Linux-VirtualBox-Create New Virtual Machine-Memory.png]] * Daar zetten we het keuzevinkje bij ‘create new harddisk’ en kiezen we voor boot hard disk. (Kies ‘Next’) [[Bestand:Linux-VirtualBox-Create New Virtual Machine-VHD.png]] * We kiezen voor dynamically expanding storage, zo wordt de lege ruimte op de virtuele machine niet gebruikt op de harde schijf [[Bestand:Linux-VirtualBox-Create New Virtual Machine.png]] * Kies de locatie en grootte van de harde schijf van de virtuele machine [[Bestand:Linux-VirtualBox-Create New Virtual Machine2.png]] * Er komt een nieuwe pop-up te voorschijn waarbij we 3 maal kiezen voor ‘next’ en vervolgens drukken we op 'finish'. * Dan dienen we nogmaals te drukken op 'finish' om onze installatie te beëindigen. * Overzicht van de virtuele machines [[Bestand:Linux-VirtualBox-Install-Details.png]] * Indien we de VM als server gaan gebruiken dienen we de netwerkadapter aan te passen naar bridged zodat de VM bereikbaar is over het netwerk. Dit doen we door de gewenste virtuele machine te selecteren en op instellingen te klikken. Hier kies je voor 'Network' en kan je bij 'Attached to' de gewenste netwerkadapter selecteren. Hier zijn 5 mogelijkheden: * Niet aangesloten: Er is een netwerkkaart beschikbaar, maar er zal geen 'kabel' op aangesloten zijn. * NAT: Dit is ideaal als je de virtuele machine enkel wilt gebruiken voor te surfen, bestanden te downloaden, ... maar er zal geen contact zijn met andere computers of virtuele machines in het netwerk. Het is ook niet mogelijk je VM te bereiken vanaf de host of het netwerk. * Netwerk bridge adapter: Hiermee zal de virtuele machine zich als een aparte computer binnen het netwerk gedragen. Hij zal zo bv ook een IP krijgen van de DHCP-server (indien aanwezig). * Intern netwerk: Hiermee kan je virtueel netwerk creëren op je host en daar kan je virtuele machines aan toevoegen. Dit zal echter niet zichtbaar zijn voor de buitenwereld. * Host-only adapter: Dit kan gebruikt worden om een netwerk te maken bestaande uit de host en enkele virtuele machines, maar zonder gebruik te maken van het fysieke netwerk. [[Bestand:Installation and Configuration of Fedora in Virtualbox 7.png]] Selecteer je aangemaakte virtuele machine, klik op Settings en dan klik je op Storage. Hier selecteer je de cd-drive onder de IDE-controller. Rechts onder Attributes zie je nu CD/DVD Device verschijnen. Hier gaan we de ISO-file toevoegen en dit doen we door op het mapje te klikken ernaast. Indien er nog geen iso in de lijst staat, klik je op Add. Daarna kies je voor Select en klik je op ok. Als je nu de virtuele machine opstart zal Linux starten. De laatste nieuwe versie kan je vinden op: https://fedoraproject.org/en/get-fedora [[Bestand:Linux-Virtual Media Manager.png]] == Installatie van Linux Fedora: == Eenmaal de virtuele machine is opgestart zien we dat we Linux kunnen gebruiken. Deze moet echter wel nog geïnstalleerd worden op de harde schijf. Dit doen we door op het bureaublad te kiezen voor ‘Install to Hard Drive’. Nu komen we in een wizard terecht waarbij volgende stappen moet worden afgelegd: * Kies toetsenbord: Belgian (be-latin1) --- Bij de melding kiezen we voor 'Re-initial drive' [[Bestand:Linux-Installatie-1.png]] *Kies voor 'basic storage' [[Bestand:Linux-Installatie-2.png]] *Selecteer harde schijf [[Bestand:Linux-Installatie-3.png]] *re-initialiseren [[Bestand:Linux-Installatie-4.png]] * Kies hostname: localhost.localdomain [[Bestand:Linux-Installatie-5.png]] * Kies stad: Europe/Brussels [[Bestand:Linux-Installatie-6.png]] * Kies wachtwoord: Testwachtwoord [[Bestand:Linux-Installatie-8.png]] * Kies soort installatie [[Bestand:Linux-Installatie-9.png]] * Bevestig installatie [[Bestand:Linux-Installatie-10.png]] * Het systeem vertelt je dat de installatie zonder problemen is verlopen [[Bestand:Linux-Installatie-11.png]] Als we nu onze CD/DVD-Rom unmounten zien we dat het systeem succesvol opstart en bijgevolg is Linux correct geïnstalleerd. Na het opstarten moet de installatie nog vervolledigd worden. * Welkomstscherm [[Bestand:Fedora Installation Part 1.png]] * Licentieovereenkomst [[Bestand:Fedora Installation Part 3.png]] * Gebruiker aanmaken [[Bestand:Fedora Installation Part 4.png]] * Datum en tijd instellen [[Bestand:Fedora Installation Part 5.png]] * Hardwareprofiel doorsturen naar de ontwikkelaars? [[Bestand:Fedora Installation Part 6.png]] == Minimale installatie via NetInstall == Voor deze installatie dien je verbonden te zijn met het Internet. Het systeem zal namelijk al de te installeren pakketten van het Internet downloaden. Zoals bij de live-installatie mounten we eerst de NetInstall ISO. # Bij het opstarten kiezen we voor de optie ‘Install or upgrade an existing system’ # Het systeem vraagt of we de media willen testen voor de installatie, hier kiezen we voor ‘skip’. # Herhaal stap 1 tot 5 van de installatie bij een Live CD # Het systeem vraagt of we iets willen wijzigen bij de netwerk interface. We kiezen om niets te veranderen door de ‘ok’ te kiezen. # Hier kiezen we welke opties we willen installeren, als je kiest voor een minimale installatie dien je hierbij alleen het vak ‘Fedora 11 –i386’ aan te duiden. Als je wenst om andere software te installeren kan je het keuzerondje ‘customize now’ aanvinken. # Het systeem installeert Linux op de harde schijf (10-20 min) door de gewenste packages te overlopen. # Het systeem vertelt je dat de installatie zonder problemen is verlopen. == Installatie Dual Boot == Bij een dual boot installatie installeren we Linux naast een bestaand besturingssysteem. Eerst passen we in het BIOS de primary boot aan. Dit doen we door in de opstartprocedure op DEL,F8,F2 of F10 in te drukken naargelang je BIOS. Hier gaan we dan kiezen om je CD/DVD-rom drive als primary boot in te stellen. Eenmaal dit gebeurd is kunnen we onze CD-rom met Linux in onze CD-rom drive plaatsen en vervolgens de PC opnieuw opstarten. Nu start de PC op vanaf de CD-rom en wordt gevraagd om Linux te installeren. {{Bericht | titel=Tip: een tekstconsole opstarten | bericht=Bij het opstarten van Linux krijg je typisch een grafisch loginscherm te zien. Je kan echter ook een tekstconsole oproepen door Ctrl+Alt+F1 t/m F6 in te drukken. Elk van de zes functietoetsen komt overeen met een aparte tekstconsole. Je kan dus tegelijk in zes sessies inloggen. Je kan terug naar grafische modus met Ctrl+Alt+F7. Afhankelijk van je distributie kunnen deze toetsen nog verschillen. Als je in tekstmodus zit, kan je de Ctrl laten vallen, dus volstaat Alt+F1 t/m F7 om naar een andere console over te gaan. | type=tip }} De installatie is grotendeels gelijklopend zoals op een virtuele machine, behalve de partitionering van de harde schijf en de eventuele extra configuratie van de GRUB bootloader. We zullen eerst enkele types partities en filesystems bespreken, en daarna een kort voorbeeld. === De verschillende partities === Bij installatie van Linux heb je, als je wil, een heleboel keuzemogelijkheden voor de indeling van de harde schijf in partities. We bespreken hier het hoogst noodzakelijke, en behandelen het onderwerp verder in het hoofdstuk [[../Opslagapparaten beheren/]]. * '''De "/boot" partitie''' Deze partitie wordt gebruikt door de BIOS om het gekozen besturingssysteem op te starten. * '''De "/" partitie (of de root partitie)''' Hier komen alle systeembestanden onder zoals bijvoorbeeld "/etc" en "/bin". * '''De "/home" partitie''' De bestanden van de gebruikers worden hier geplaatst. * '''De "swap" partitie''' Dit is het virtuele geheugen van het systeem. De kernel slaat hier data op wanneer er niet genoeg RAM geheugen aanwezig is in de computer. {{Bericht | titel=Opmerking: De functie van de swap partitie bij laptops | bericht= De swap-partitie wordt gebruikt voor de suspend-to-disk en hibernate functies, dus zorg er voor dat de swap partitie op zijn minst steeds een grootte gelijk aan het RAM geheugen moet hebben. Voor de veiligheid is het best om steeds 10-15% extra geheugenruimte te nemen zodat er rekening wordt gehouden met mogelijke slechte sectors in het geheugen van de harde schijf. Bijvoorbeeld bij een laptop met 1024MB RAM geheugen zou de swap partitie 1177MB groot zijn. | type=opmerking }} * '''De "/tmp" partitie''' Deze partitie is optioneel, in de "/tmp" folder worden er tijdelijke bestanden bijgehouden van programma's, die meestal opnieuw verwijderd worden bij het heropstarten van het systeem. * '''De "/var" partitie''' Deze partitie is optioneel, in de "/var" folder worden er variabele bestanden bijgehouden zoals de spool bestanden, log files en data van de package manager. De "/home", "/tmp" en "/var" partities worden in de meeste systemen samen gebundeld met de root partitie. Het is echter wel handig deze hun eigen partitie te geven. Het voordeel van de "/home" partitie is dat bij een herinstallatie alle bestanden van de gebruikers worden bijgehouden. De "/tmp" en "/var" partitie worden beide constant overschreven, dus je kan ze een specifiek filesystem toekennen dat kleine bestanden zeer snel wegschrijft. === De verscheidene soorten filesystems === * '''ext2 (Second Extended File System):''' een oud en betrouwbaar filesystem, heeft echter geen ondersteuning voor journaling. Een goede keuze voor de "/boot" partitie. * '''ext3 (Third Extended File System):''' de verbeterde versie van ext2 met ondersteuning voor journaling, wordt in de meeste linux systemen gebruikt aangezien het gekend is voor stabiliteit. * '''ext4 (Fourth Extended File System):''' de verbeterde versie van ext3. Biedt ondersteuning voor schijven tot een grootte van 1 exabyte, en bestanden tot een grootte van 16 terabytes. * '''ReiserFS (V3):''' een vrij stabiel filesystem, is gekend voor enorm snel te zijn in het schrijven van kleine bestanden, maar mount vrij traag. Is een goede keuze voor de "/var" en "/tmp" partities. * '''XFS:''' ook oud en zeer betrouwbaar. XFS schrijft grote bestanden zeer snel weg en mount enorm snel, maar is trager met veel kleine bestanden. {{Bericht | titel=Opmerking: | bericht=Het XFS filesystem kan '''niet''' verkleind worden met tools zoals gparted en parted magic. | type=opmerking }} Voor een typische installatie kiest men ext2 voor "/boot", ext4 voor de root en "/home" partities (soms XFS voor "/home"), en reiserFS voor de "/var" en "/tmp" partities. De swap partitie heeft een eigen filesystem. === Voorbeeld === In dit voorbeeld zullen we ervan uit gaan dat we een laptop gebruiken met een harde schijf capaciteit van 80GB en 2GB RAM geheugen. Er is al een Windows XP partitie aanwezig die de volledige schijfruimte inneemt. {| class="wikitable" |- ! Naam: !! Type: !! Partitie: !! Filesystem: !! Grootte: |- | sda1 || Primary || /boot || ext2 || 100MB |- | sda2 || Primary || Windows XP || ntfs || 30720MB (30GB) |- | sda3 || Primary || / (root) || ext4 || 48745MB (~47GB) |- | sda4 || Primary || swap || swap || 2355MB (2GB + 15%) |- | Totaal: || || || || 81920MB (80GB) |} {{Bericht | titel=Tip: De Windows partitie | bericht=De Windows partitie moet '''altijd''' op de eerste of tweede plaats staan! Sommige BIOS chips zijn verouderd en kunnen geen boot partitie vinden voorbij de eerste 8.5GB op het systeem, dus zorg er steeds voor dat deze op de eerste plaats terecht komt. | type=tip }} Het resultaat hiervan is een boot partitie van 100MB, een Windows XP partitie van 30GB, een root partitie(home, var en tmp inclusief) van 47GB en een swap partitie van 2,3GB. De home, var en tmp partities zijn samen gebundeld met de root partitie om het voorbeeld eenvoudig te houden. Er is namelijk nog een enorm belangrijke restrictie op de partitietabel. Er zijn drie soorten partities. Een "Primary" partitie, een "Extended" partitie, en een "Logical" partitie. Er mogen maximaal 4 Primary partities bestaan op een filesystem, indien er meer nodig zijn (wanneer u bijvoorbeeld de home partitie van de root partitie wil scheiden), moet u met Extended partities beginnen werken. Een Extended partitie is een Primary partitie die u kan opdelen in meerdere Logical partities. U kan bijvoorbeeld de root partitie Extended maken, en ze opdelen in 3 logical partities: de "/" folder, de "/home" folder en de "/var" folder, met de mogelijkheid om elke partitie een ander type filesystem toe te kennen. In ons voorbeeld zou dit dan worden: {| class="wikitable" |- ! Naam: !! Type: !! Partitie: !! Filesystem: !! Grootte: |- | sda1 || Primary || /boot || ext2 || 100MB |- | sda2 || Primary || Windows XP || ntfs || 30720MB (30GB) |- | || Extended || || || 48745MB (~47GB) |- | sda3 || Logical || / || ext4 || 20000MB |- | sda4 || Logical || /home || XFS || 20000MB |- | sda5 || Logical || /var || reiserFS || 8745MB |- | sda6 || Primary || swap || swap || 2355MB (2GB + 15%) |- | Totaal: || || || || 81920MB (80GB) |} {{Sub}} 05cjt4r2n7krotsljgac7irb2poixnl Linux Systeembeheer/Opslagapparaten beheren 0 20947 422788 378897 2026-04-15T17:09:54Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422788 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Leerdoelen == * De begrippen SAN, NAS, CAS begrijpen en toepassingen ervan kennen * Harde schijven kunnen partitioneren ** De belangrijkste partitietypes kennen en aan bijhorend OS kunnen koppelen: ext[234], FAT/FAT32, NTFS, HFS/HFS+, ZFS, swap ** Een geschikt partitioneringsschema voor een Linux-systeem kunnen voorstellen, afhankelijk van de toepassing (bv. desktopsysteem, webserver, fileserver, ...) ** Een geschikte swapgrootte kunnen voorstellen, afhankelijk van het beschikbare interne geheugen. * Het S.M.A.R.T. systeem kennen en kunnen gebruiken om falende harde schijven te detecteren * Logical Volume Management (LVM) ** Het gebruik van LVM kunnen motiveren ** LVM kunnen toepassen * RAID ** De volgende RAID-niveaus en hun karakteristieken kennen: linear, 0, 1, 0+1, 4 en 5 ** Linux Software RAID kunnen toepassen == Opslagsystemen in bedrijfscontext == In dit onderdeel leggen we kort de betekenis uit van enkele types van opslagsystemen die in het bijzonder in bedrijven gebruikt worden. ===Network Attached Storage (NAS)=== Opslagmedium dat op het netwerk aangesloten is. Dit type apparaten vind je in de consumentenmarkt terug als een netwerk-harde schijf. De hardware omvat minstens een grote harde schijf en een netwerkaansluiting, typisch een processor met beperkt energieverbruik en meestal nog andere connectoren (USB, eSATA, FireWire, ...). Meestal draait hierop een vorm van embedded Linux met services voor de meest gangbare protocols voor bestandsdeling: Samba, FTP, eventueel NFS, enz. NAS kan gebruik maken van meerdere harde schijven die vaak in RAID gebruikt worden. Versies voor professioneel gebruik kunnen rack-mountable zijn, met snellere processoren of interfaces. ===Storage Area Network (SAN)=== Een SAN is specifiek voor grotere bedrijven nuttig. Opslagapparaten (harde schijven, tape, optische schijven, enz.) zijn fysiek losgekoppeld van de servers die er gebruik van maken, maar voor het besturingssysteem zijn ze niet te onderscheiden van lokale schijven. Performantie is in dit type opstellingen van groot belang, en daarom is de bekabeling typisch gebaseerd op glasvezel. Dat is een van de redenen dat een SAN erg duur is. De protocollen die op dit soort netwerken gebruikt worden zijn vaak afgeleid van deze voor het aanspreken van lokale, fysieke schijven, bijvoorbeeld iSCSI of ATA over Ethernet. Een SAN is een basisbestanddeel van grotere opstellingen van servervirtualisatie. ===Content-Addressable Storage (CAS)=== In een CAS krijgt elk opgeslagen document een adres op basis van de inhoud, bijvoorbeeld een MD-5 of SHA-1 keysum. Op deze manier wordt duplicatie vermeden. Een CAS wordt vooral gebruikt voor de langdurige archivering van documenten die niet of zelden veranderen. Dit helpt organisaties (i.h.b. beursgenoteerde bedrijven) om te voldoen aan door de overheid opgelegde vereisten wat betreft het bijhouden van bedrijfsgegevens, bijvoorbeeld Sarbanes-Oxley. ==Partitioneren== ===Partitietypes=== '''Windows''' :*'''FAT''' File Allocation Table is een tabel in het bestandssysteem dat ontwikkeld is voor MS-DOS en Windows. Het FAT-systeem wordt beschouwd als redelijk simpel en is daarom een populair formaat voor floppydisks. Omdat dit bestandssysteem door bijna elk besturingssysteem wordt ondersteund, wordt dit vaak gebruikt bij allerhande opslagmedia zoals geheugenkaarten. Ook kan dit geschikt zijn om in een multi-boot omgeving van het ene besturingssysteem naar het andere bestanden over te brengen. Bij de varianten FAT12, FAT16 en FAT32 staat het getal in de naam steeds voor het aangeven van het max. aantal clusters. Door dit verschil worden ze dan ook voor verschillende media gebruikt. Onderstaande tabel geeft meer duidelijkheid. {| {{Wikitable}} |- | '''Bestandssysteem''' || '''Max. aantal clusters''' | '''Wordt gebruikt bij''' |- | FAT12 || 2<sup>12</sup> = 4096 | Diskettes, kleine harde schijven, geheugenkaartjes. |- | FAT16 || 2<sup>16</sup> = 65.536 | Harde schijven in MS-DOS. MS-DOS t/m versie 7.00 ondersteunt geen FAT32. |- | FAT32 || 2<sup>32</sup> = 4.294.967.296 | Harde schijven in Windows 95 OSR2 (MS-DOS 7.10) en hoger. Pas vanaf Windows 95 OSR2 wordt FAT32 ondersteund. |} <sub>bron: wikipedia.org</sub> :*'''NTFS''' New Technology File System is het bestandssysteem dat gebruikt wordt door Microsoft Windows NT en zijn opvolgers (Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 en Windows 7). Het is gebaseerd van HPFS, voluit High Performance File System, die eerder speciaal ontwikkeld was door IBM en Microsoft voor OS/2 om de tekortkomingen van FAT weg te werken. Op vlak van ondersteuning van metagegevens en bestandsbeveiliging was HPFS een betere structuur als FAT en daarbij ook nog beter de schijfruimte gebruikte, sneller en meer betrouwbaar was. NTFS voegde nadien vooral nog beveiliging aan het bestandssyteem toe. '''Mac''' :*'''HFS''' Hierarchical File System is een bestandssysteem ontworpen door Apple voor gebruik voor computers die het besturingssysteem Mac OS draaien. Het was oorspronkelijk ontworpen voor floppy's en harde schijven maar het kan ook gebruikt worden voor read-only media zoals cd-rom's. HFS Plus of HFS+ is dan een verbeterde versie van HFS en wordt ook gerefereerd als Mac OS Extended. HFS+ ondersteunt veel grotere bestanden en gebruikt Unicode ipv Mac OS Roman voor de naamgevingen van de bestanden en folders. '''Linux''' :*'''Ext''' Het extended file system is het eerste bestandssysteem dat specifiek voor linux-besturingssystemen werd geschreven en diende als vervanging voor het Minixsysteem. Doordat linux open-source is en toegang verschaft tot het bestandssyteem was het Minixsysteem niet echt geliefd door de beperkingen bij de 16-bitsadressering van datablokken, max. 64 MB groot bestandssyteem en max. 14 tekens voor de bestandsnamen. Zo werd ext geïntroduceerd die de maximale grootte van het bestandssysteem verhoogde naar 2 GB en bestandsnamen van max. 255 tekens toeliet. Nadien waren er opvolgers die steeds voor een verbetering zorgden: :*ext2: maximum datagrootte 4 TB en een maximum lengte voor de bestandsnaam van 255 tekens. Onder Linux ext2-bestandssysteem slechts 2047 GB data. :*ext3: kent vrijwel geen fragmentatie door de toevoeging van een journaal. Telkens als er veranderingen moeten gebeuren in het bestandssysteem wordt dit eerst opgenomen in het journaal vooralleer de operaties effectief op het bestandssysteem worden uitgevoerd. Dit zorgt ervoor dat de consistentie van het bestandsysteem vlugger gecontroleerd kan worden. Het hele bestandssysteem moet immers niet meer volledig doorlopen worden om inconsistenties als gevolg van een systeemcrash of stroomonderbreking te detecteren, zoals dat het geval was bij ext2 door fsck. Ext3 is tegenwoordig de standaard voor de meeste Linux-distributies. :*ext4: grotere schijven kunnen gebruikt worden, grotere bestanden en meer submappen, extra zekerheden, schijfindeling geoptimaliseerd voor snelheid (opstarten duurt minder lang), van tevoren een bepaald stuk op de schijf aanvragen zodat een groot bestand niet in vele kleine stukjes opgeslagen wordt, maar achter elkaar als een aaneengesloten groot stuk. Ext4 was oorspronkelijk een uitbreiding op ext3 maar kreeg zijn eigen naam door al zijn verbeteringen. Nog niet alle verbeteringen worden benut maar daar is men mee bezig. Ubuntu koos ext4 als standaard. '''Solaris''' :*'''ZFS''': Zettabyte File System is een bestandssysteem ontworpen en geïmplementeerd door Sun en wordt gebruikt op Solaris systemen. Dit bestandssysteem is genoemd naar zijn datalimiet, namelijk een zettabyte. ZFS is een 128-bit bestandssysteem, wat betekent dat het 18 miljard miljard (18 triljoen) keer meer data kan opslaan dan de huidige 64-bit bestandssystemen. ===Partitieschema=== Een van de voordelen van Linux (en UNIX-sytemen in het algemeen) is dat je directories aan aparte partities kan toekennen. Je hebt op zijn minst een 'root-partitie' (voor de root-directory '''/''') en de swap-partitie nodig. Hieronder volgen enkele directories die vaak een eigen partitie hebben, met redenen om dat te doen. :'''/boot''': deze directory bevat de Linux-kernel. Na opstarten van het systeem heb je die in principe niet meer nodig, en je kan er voor kiezen die niet te mounten. Zo vermijd je dat de kernel (per ongeluk of moedwillig) overschreven of gewijzigd wordt. :'''/home''': Je /home map kan eventueel op een ander schijf staan of op een network share. :: Als een gebruiker per ongeluk de /home map volledig opvult, loopt je systeem niet vast. :: Je raakt persoonlijke bestanden niet kwijt bij een herinstallatie waarbij de andere partities geformatteerd worden. :'''/opt''': Is bedoeld voor programma’s die niet tot de distributie behoren. Deze zullen niet moeten geherinstalleerd worden wanneer je de distributie herinstalleert. :'''/usr''': Je kan je /usr partitie aparte permissies geven voor de veiligheid, bijvoorbeeld read-only mounten. De '''/home'''-map op een aparte partitie zetten heeft vooral zin op desktop- of laptopsystemen, minder op servers. '''/home''' zal in alle waarschijnlijkheid veel meer plaats innemen (muziekcollectie, filmbestanden, documenten) dan het besturingssysteem en de programma’s zelf. Op een typisch systeem voor persoonlijk gebruik heb je daar met 20GB meer dan genoeg. De andere directories ('''/opt''', '''/usr''', '''/tmp''', '''/var''', enz.) zullen eerder op serversystemen op een aparte partitie gezet worden. In UNIX-systemen wordt alles weergegeven als een bestand, en dat geldt ook voor partities. Die vind je terug in de '''/dev''' directory. Harde schijven krijgen een aanduiding zoals '''/dev/hda1''' of '''/dev/sdb5'''. Schijven aangeduid met ‘hd’ zijn IDE-schijven en schijven aangeduid met ‘sd’ zijn SATA- of SCSI-schijven. De letter volgend op 'hd' of 'sd' slaat op de hoeveelste schijf dit is op de controller. Voor IDE zijn er dat maximaal vier: de Primary Master (hda) en Slave (hdb) en de Secondary Master (hdc) en Slave (hdd). Op SCSI en SATA-controllers kunnen meer schijven aangesloten worden, dus daar loopt de lettering verder op. Tenslotte krijgt elke partitie binnen een schijf een nummer. De nummers 1 t/m 4 slaan op primaire partities. Op een schijf kunnen er maximaal vier zulke primaire partities bestaan. De opstartschijf van Windows moet zich op een primaire partitie bevinden. Typisch wordt één van de vier een zgn. Extended partitie, die je kan opdelen in logische partities. Op deze manier kan je meer dan 4 partities aanmaken. Deze logische partities krijgen dan een nummer vanaf 5. Een harde schijf die 2 primaire partities heeft, waarvan één extended, zal dus partities 3 en 4 missen, maar wellicht wel partities met nummer 5, 6, enz. hebben. Data lezen of schrijven naar deze bestanden is geen goed idee: de partitiebestanden geven rechtstreekse toegang, byte per byte, naar de inhoud van de partitie of schijf. Op deze manier kan je directorygegevens overschrijven en bestanden beschadigen. Door partities te mounten kan je wel op een veilige manier aan de opgeslagen gegevens geraken. De partitiebestanden kunnen wel gebruikt worden bij het maken van een exacte back-up van de partitie (bv. '''dd if=/dev/sda5 of=/media/usbdisk/home-partition.img'''). ==Self-Monitoring Analysis and Reporting Technology (S.M.A.R.T)== SMART is ontwikkeld door een aantal grote producenten van harde schijven om de betrouwbaarheid van harde schijven te verhogen. SMART is een technologie die toelaat om fouten in harde schijven te detecteren en zelfs te voorspellen. In de laatste jaren is het een standaard geworden in de industrie voor harde schijven. Een SMART systeem gaat alles op de harde schijf monitoren wat kan duiden op eventuele fouten. SMART gaat dit alles dan documenteren en analyseren. Als het iets vind wat op de fout wijst, is het mogelijk om de gebruiker of systeem administrator hiervan op de hoogte te brengen. Dit gaat over: snelheid van de schijf, fout sectoren, recalibratie, CRC fouten, drive spin-up time, drive heads, afstand tussen de heads en de schijf platen, schijf temperatuur, enz. Wanneer bepaalde meetpunten een zekere drempel overschrijden (bv. sectorfouten), kan dit duiden op een komende schijfcrash. Tegenwoordig zou SMART 70% van alle fouten kunnen voorspellen. De systeembeheerder kan dan tijdig backups nemen en de schijf vervangen. Onder Linux kan je toegang krijgen tot de functionaliteit van SMART kan via het ''smartmontools'' package, hierin heb je 2 utilities: *'''smartd''': Is de service zelf, aanpassingen kan je dan doorvoeren door de smartd.conf file aan te passsen. *'''smartctl''': hiermee kan je informatie opvragen, of een schijf testen. Enkele voorbeelden van gebruik <pre> $ smartctl -a /dev/hda # informatie opvragen $ smartctl -s off /dev/hda # SMART monitoring uitschakelen $ smartctl -t long /dev/hda # Een uitgebreide schijftest opstarten </pre> ==Logical Volume Manager (LVM)== LVM wordt gebruikt voor het flexibel beheren van partities over verschillende fysieke schijven. LVM kan bekeken worden als een kleine software laag bovenop de harde schijven, die voor het besturingssysteem de illusie creëert dat er maar één grote harde schijf is. Schijven kunnen toegevoegd of vervangen worden, partities kunnen verdeeld worden over fysieke schijven, enz. Fedora zal standaard LVM installeren. ==RAID== De afkorting RAID staat voor 'Redundant Array of Independent Disks'. Dit is de benaming van een set methodieken voor de fysieke opslag van data op een harde schijf. RAID kan er voor zorgen dat gegevens redundant op meerdere harde schijven worden opgeslaan, wat dus zorgt voor betere betrouwbaarheid en minder dataverlies. Of het kan er anderzijds voor zorgen dat meerdere harde schijven worden beschouwd als één geheel en verdeelt de data dan over dit geheel. Ook is RAID gekend als 'Redundant Array of Inexpensive Disks (of Drives)', dit is omdat voorheen goedkope harde schijven vaak ook onbetrouwbaar waren. Betere harde schijven waren vaak te duur. Om de betrouwbaarheid te verhogen was bij deze goedkope schijven maakte men gebruik van RAID, dat er voor zorgde dat kapotte schijven konden vervangen worden zonder gegevensverlies. Tegenwoordig zijn de harde schijven op de consumentenmarkt aanzienlijk verbeterd en is er slechts een beperkte vraag naar meer betrouwbaarheid en/of meer snelheid. RAID wordt typisch aangeboden als een hardware-systeem dat de behuizing, de controller en eventueel de schijven zelf omvat. In Linux kan je sommige types van RAID in software emuleren, wat men Software RAID noemt. Dit is uiteraard een heel stuk trager dan hardware RAID, maar wel een heel stuk goedkoper. '''RAID niveaus''' Er bestaan verschillende niveaus met elk hun eigen kenmerken en doeleinden. Sommige zijn min of meer standaard, andere zijn typisch voor bepaalde producenten van hardware RAID-systemen. Onderstaande tabel geeft een overzicht van de meest gangbare niveaus: {| class=wikitable ! RAID-niveau ! Minimum aantal schijven ! Pluspunten ! Minpunten |- ! JBOD | 2 | Eenvoudige opzet, eenvoudig in te voeren | Geen foutcorrectie: bij een defect gaan de data op de defecte schijf verloren |- ! 0 | 2 | Snelste doorvoer van data voor alle data, eenvoudige opzet, eenvoudig in te voeren | Geen foutcorrectie: bij een defect gaan alle data op de schijven verloren |- ! 1 | 2 | Volledige foutcorrectie, eenvoudige opzet, goede leesprestaties | Relatief duur |- ! 2 | 3 | Foutcorrectie, ook voor schijven zonder ingebouwd correctiesysteem | Geen praktische toepassing |- ! 3 | 3 | Snelle doorvoer voor aaneengesloten data, efficiënte foutcorrectie | Kan niet gelijktijdig schrijven en lezen |- ! 4 | 3 | Goede leesprestaties, efficiënte foutcorrectie | Langzaam schrijven |- ! 5 | 3 | Goede leesprestaties, efficiënte foutcorrectie, beste voor netwerktoepassingen | Schrijfsnelheid vanwege pariteitsberekeningen afhankelijk van de gebruikte processor of controller |- ! 6 | 4 | Robuuste foutcorrectie, tolereert twee falende schijven | Nog rekenintensiever dan RAID-5: controller mogelijk duurder |} Sommige RAID-configuraties kunnen gecombineerd worden zodat de minpunten van de ene door de andere weggewerkt worden en resulteren tot een beter geheel. Zo kan je bijvoorbeeld RAID-0 met RAID-1 combineren tot RAID 0+1. Hier heb je wel 4 harde schijven nodig, wat duur kan uitvallen om dit te configureren, maar je zal uiteindelijk wel de snelheid van RAID-0 en de betrouwbaarheid van RAID-1 behouden. zie onderstaande afbeelding als verduidelijking: [[Bestand:RAID10.png]] <span style="font-size: small;">bron:wikipedia.org</span> '''JBOD''' JBOD ('Just a Bunch Of Disks') is het simpelweg achter elkaar plakken van een aantal schijven waarbij de totale grootte de som is van de ruimte op alle schijven. Dit is op zich geen RAID maar wordt wel ondersteund door veel RAID-controllers. JBOD is ten opzichte van RAID-0 'veiliger'. Als een schijf stukgaat in een JBOD-set blijft de data op de andere schijven onaangetast. Bij RAID-0 is de hele set verbroken en is alle data verloren. '''RAID-0''' RAID-0 (ook bekend als striping); een aantal schijven wordt in een array geplaatst en benaderd als één grote schijf. De gegevens worden in kleine (enige tientallen kilobyte) blokken (ook wel 'stripes' genoemd) verdeeld en op de verschillende schijven weggeschreven. Hiermee wordt een snelheidsverhoging bereikt omdat meerdere schijven tegelijkertijd gegevens kunnen ophalen of wegschrijven. Theoretisch zou de snelheidsverhoging recht evenredig kunnen zijn met het aantal schijven, in de praktijk wordt dit echter meestal niet bereikt. RAID-0 biedt geen foutcorrectie. De term 'redundant' is hier dan eigenlijk ook niet van toepassing. Als één schijf uitvalt dan zijn alle gegevens van de hele array verloren. De (qua capaciteit) kleinste schijf in de array bepaalt de omvang van alle RAID-systemen. Als bijvoorbeeld een 50 GB-, 100 GB- en een 250 GB-schijf in een RAID-0 array worden gezet, dan zal de controller aan de pc een schijf aanbieden van 150 GB (50 GB × 3). Hierbij gaat bij veel controllers dus effectief 250 GB verloren. Sommige controllers kunnen echter de overblijvende ruimte nog gebruiken voor een andere RAID-set. Software RAID-0 wordt ook wel aangeduid als Volume Sets. Hierbij is echter niet altijd sprake van striping op blokniveau, maar worden directory's en de daarin aanwezige bestanden door het filesysteem op die schijf binnen de Volume Set geplaatst die op dat moment de meeste vrije ruimte heeft. '''RAID-1''' RAID-1 (ook bekend als mirroring) slaat de data twee (of meer) keren op op verschillende schijven. Als een schijf uitvalt zal het computersysteem hier geen hinder van hebben en gewoon blijven werken. De controller zal dan alle I/O laten lopen over de andere schijf (of schijven). De controller zal de gebruiker natuurlijk wel een hint geven dat er iets fout is - maar het systeem werkt gewoon door. Als de defecte schijf wordt vervangen zal de inhoud van de goede schijf teruggeschreven worden op de nieuwe. Lezen gebeurt hier theoretisch op dubbele snelheid, maar schrijven gaat even snel als op 1 enkele schijf. Hoewel RAID-1 de meest efficiënte manier van databeveiliging is en voor conventionele SCSI RAID-systemen een tamelijk dure oplossing is, biedt dit voor IDE-oplossingen een simpele maar erg betrouwbare oplossing als het om veiligheid van de data gaat. Als er 1-op-1 mirroring toegepast wordt met twee 160 GB-schijven, dan zal het systeem maar 1 schijf ter grootte van 160 GB zien. Ook hier is de kleinste schijf bepalend voor de uiteindelijke opslagcapaciteit van het gehele RAID-systeem. Voor de pc is de logische schijf zo groot als de kleinste schijf uit de set. NB Bij gebruik van RAID-1 met twee schijven als Master en Slave op één enkele IDE poort kan het gebeuren dat de defecte schijf de hele IDE bus ophangt, en dat de andere schijf daardoor ook niet meer bruikbaar is. Hoewel het systeem wel weer zal werken zodra de defecte schijf verwijderd is biedt dit niet de betrouwbaarheid die van RAID-1 verwacht mag worden. Naast de mirroring versie van RAID-1 is er ook een duplexing versie. Waar bij mirroring de schijven alle aangesloten zijn op een enkele controller, worden de schijven bij duplexing aangesloten op verschillende controllers. '''RAID-2''' RAID-2 gebruikt parallel datatransport (zie ook striping bij RAID-0) aangevuld met een zogenaamde Hamming Error Correction Code (ECC), bedoeld voor schijven die geen eigen foutcorrectie hebben. Alle moderne harde schijven hebben tegenwoordig wel een ingebouwde foutcorrectie. Omdat bij gebruik van een Hammingcode extra bits worden toegevoegd, heeft men meer dan 1 schijf nodig voor de opslag van deze code. Deze RAID-variant heeft geen voordelen ten opzichte van RAID-3. '''RAID-3''' RAID-3 werkt bijna hetzelfde als RAID-2 met het verschil dat men een aparte schijf gebruikt voor het opslaan van een berekende pariteit voor de Hamming Error Correct Code. Ook hier wordt parallel gewerkt zoals we dat bij striping in RAID-0 zagen. De pariteit wordt per setje bytes (A0, A1 en A2) berekend en opgeslagen. Als een disk uitvalt, kan men terug berekenen wat de verloren byte had moeten zijn. Door deze pariteitsdata kan een RAID-3-systeem echter vaak niet gelijktijdig schrijven en lezen. '''RAID-4''' RAID-4 is identiek aan RAID-3 maar nu wordt de pariteit niet per byte maar per datablok (stripe) berekend. Een dergelijk datablok is bijvoorbeeld 32 of 64 kilobyte groot. Hierdoor kan gelijktijdig geschreven en gelezen worden mits er geen overlapping plaats vindt. Wel is het zo dat de schijf die voor de pariteit gebruikt wordt, voor iedere schrijfactie aangesproken moet worden en dus een snelheidsbeperkende factor is. '''RAID-5''' RAID 5 werkt identiek aan RAID-4, met het verschil dat de pariteitblokken niet op een enkele schijf opgeslagen worden maar verdeeld over de schijven in de array. Hierdoor geldt het nadeel van de pariteitsschijf die de snelheid beperkt dus niet meer. In de praktijk wordt RAID-5 dan ook vaak toegepast in tegenstelling tot de andere RAID-varianten met pariteit. '''RAID-6''' RAID 6 kan je omschrijven als "RAID-5, maar meer". Net zoals bij RAID-5 wordt de pariteit per datablok berekend, met het verschil dat er niet 1 maar 2 sets zijn. Dit wordt gedaan met het oog op fouttolerantie. De schrijfperformantie zal over het algemeen iets lager liggen dan bij RAID-5. '''Toepassing''' Raid kan je gebruiken door het mdadm package te installeren. Hiervoor kijk je best eerst of je systeem RAID ondersteunt met: <pre>$ cat /proc/mdstat</pre> Creëer /etc/raidtab file: <pre>$ mkraid /dev/md0</pre> en starten: <pre>$ mdadm -S /dev/md0</pre> == Toetsvragen == # Het Linux installatieprogramma stelt meestal zelf een geschikte partitionering voor. Dikwijls is het echter zo dat je best zelf manueel de partities instelt. Hieronder volgen enkele directories die vaak een eigen partitie hebben. Geef voor elk enkele redenen waarom je dat zou doen: ## '''/boot''' ## '''/home''' ## '''/opt''' ## '''/usr''' ## '''/var''' # Hoe bepaal je een geschikte grootte voor je swap-partitie? # Stel dat je een desktopsysteem hebt met een harde schijf van ca. 160 GB. Je wil de '''/home''' in een aparte partitie onderbrengen. Hoeveel plaats reserveer je (bij benadering) voor de root-partitie en hoeveel voor de '''/home'''? Motiveer. # Wat is het verschil tussen partities die aangeduid zijn met '''/dev/hd''x''''' en die met '''/dev/sd''x'''''? # Bij het partitioneren van een harde schijf krijgt elke partitie een nummer, bijvoorbeeld '''/dev/hda1''', '''/dev/hda2''', enz. De toewijzing van de nummers is niet willekeurig, maar ook niet incrementeel. Soms krijg je bijvoorbeeld een systeem met drie partities: '''/dev/hda1''', '''/dev/hda2''' en dan ineens '''/dev/hda5'''. Verklaar waarom dit zo is. Meer bepaald, zoek uit wat de betekenis is van de nummers van de partities. {{Sub}} {{Bron|bronvermelding= https://nl.wikipedia.org/wiki/RAID<br> https://nl.wikipedia.org/wiki/Bestandssysteem (en links naar types)<br> https://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel6-c.html }} {{Sub}} 8pvmlodglrzlbctw02rj45toskec1np Linux Systeembeheer/Netwerkinstellingen configureren 0 20948 422791 372075 2026-04-15T17:12:10Z Erik Baas 2193 422791 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Leerdoelen == * De nodige instellingen kennen die een host toelaten het netwerk te gebruiken, en ze kunnen opvragen: ** IP-adres: commando '''ifconfig''' ** Routering (i.h.b. default route): commando '''route''' ** DNS-servers: het bestand '''/etc/resolv.conf''' * De netwerkconfiguratie van een Linux-systeem kunnen instellen, zowel met een GUI (vb. '''system-config-network[-tui]''' onder Fedora) als manueel * Problemen met de netwerkverbinding van een Linux-systeem kunnen identificeren en oplossen == Netwerkcommando's == Om een pc toe te laten op het web te surfen, dienen op het niveau van het OS (we hebben het dus niet over hardware) drie voorwaarden voldaan te zijn: * de pc moet een correct IP-adres hebben; * de routetabel moet correct ingesteld zijn; * de pc moet toegang hebben tot DNS-servers. In dit hoofdstuk bekijken we hoe je deze instellingen onder een Linux-systeem kan controleren of aanpassen. Dit komt van pas bij netwerkproblemen. Eerst kijk je de hardware na (is de netwerkkabel correct aangesloten, werkt de switch, enz.) en als je daarover uitsluitsel hebt deze drie instellingen. === IP-instellingen bekijken en instellen: '''ifconfig''' === Het commando '''ifconfig''' zonder opties kan worden gebruikt om de instellingen van je netwerkkaarten te bekijken. Je krijgt o.a. informatie over MAC-, IP- en broadcast-adres en het netwerkmasker. Met de optie '''-a''' krijg je alle netwerkdevices te zien inclusief de devices die down zijn. Je kan ook instellingen aanpassen: * Om het IP-adres en het netwerkmasker van de netwerkkaart te veranderen typ je bv.: $ sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0 * Om het MAC-adres te veranderen: $ sudo ifconfig eth0 down # eerst netwerkkaart uitschakelen $ sudo ifconfig eth0 hw ether 00:11:22:33:44:55 # daarna MAC adres veranderen $ sudo ifconfig eth0 up # netwerkkaart terug inschakelen === Routetabel bekijken en instellen: '''route''' === Het commando '''route''' wordt gebruikt om de IP routeringstabel te bekijken of aan te passen. Hiermee kan je de statische routes opzetten naar een specifieke host of een ander netwerk. Je voegt een nieuw adres toe met het commando '''add''' en haalt ze weg met '''delete'''. Met de optie '''target''' kun je de doelhost specifiëren door het IP of de netwerknaam mee te geven. Wanneer we het commando route ingeven in het netwerklabo krijgen we deze output: $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface vpn-campus-2-in 172.17.0.254 255.255.255.255 UGH 0 0 0 wlan0 172.17.0.0 * 255.255.248.0 U 2 0 0 wlan0 link-local * 255.255.0.0 U 1000 0 0 wlan0 default * 0.0.0.0 U 0 0 0 tun0 De eerste kolom is destination. Hier wordt de hostnaam of ip van de bestemmeling getoond. De kolom gateway toont de gebruikte gateway of zet een '*' als er geen gateway gespecifieerd is. De kolom Genmask toont het netwerkmasker van de bestemmeling. De kolom Flags geeft meer informatie over de status van de link. Mogelijke flags: U (route is up) H (target is a host) G (use gateway) R (reinstate route for dynamic routing) D (dynamically installed by daemon or redirect) M (modified from routing daemon or redirect) A (installed by addrconf) C (cache entry) ! (reject route) De kolom 'Metric' toont het aantal hops voor je bij de bestemming bent. De kolom 'Use' geeft het aantal raadplegingen voor de route. De kolom 'Iface' toont de gebruikte netwerkinterface. Met de optie '''-n''' kan je name resolution uitschakelen. Zonder deze optie zal '''route''' proberen alle IP-adressen om te zetten in een domeinnaam via een 'reverse DNS lookup'. Als er een probleem is met DNS, zal dit niet werken en duurt de uitvoering van het commando tamelijk lang. Een paar handige commando's: $ route add -net 10.0.0.0 netmask 255.0.0.0 reject Dit commando zet een route op die niet mag benaderd worden door het "10.x.x.x" netwerk. === Name resolution: ''/etc/resolv.conf'' === het bestand ''/etc/resolv.conf'' bevat alle ip's van de DNS-servers. Je kan een DNS-server zien als een groot telefoonboek: geef een (host-)naam in en je krijgt een nummer terug (IP-adres). Wanneer je in het bestand '''search''' ''domein'' invult, zorg je ervoor dat aan hostnamen zonder domeinnaam (bv. ''helium'') automatisch dit domein toegevoegd wordt (bv. ''helium.hogent.be''). Op het campusnetwerk van de Hogeschool Gent ziet het ''resolv.conf'' bestand er zo uit:<br> # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 193.190.126.26 nameserver 193.191.155.1 search hogent.be == Netwerkinstellingen aanpassen via de GUI == ===GUI via Terminal === De netwerkconfiguratie kan via de GUI aangepast worden met het commando sudo system-config-network-tui Hier krijg je twee opties (zie afbeelding) ==== Apparaatconfiguratie ==== [[Afbeelding:GUI2.png|300px]][[Afbeelding:GUI3.png|300px|none]] Hier kan er gekozen worden tussen het gebruik van DHCP of men kan statische IP-instellingen gebruiken. Verder kan ook een eventuele DNS-server ingesteld worden. ==== DNS-configuratie ==== [[Afbeelding:GUI4.png|thumb|none]] Hier kan men de DNS-instellingen voor de huidige PC instellen. De hostname waaronder de PC bekend zal zijn in het netwerk, en het IP-adres van de DNS-server. Ook het DNS-zoekpad kan ingesteld worden. Dit is een lijst van domeinen waarin de host zal zoeken om een hostname te vertalen naar een ip-adres. === GUI via het menu === Kies voor de optie netwerkverbindingen. [[Afbeelding:GUI5.png|400px|none]] ===== Eerste tabblad ===== We krijgen een venster waarop we alle mogelijke netwerkverbindingen te zien krijgen onderverdeeld per media: kabel, draadloos, mobiel breedband, VPN en DSL [[Afbeelding:GUI6.png|300px|none]] Als we de netwerkinstellingen van een adapter willen wijzigen kiezen we voor edit. We komen in een venster met meerdere tabbladen. Als eerste krijgen we “Kabel”, waar het mac-adres van de computer te zien is en waar men MTU (maximum transmission unit) kan instellen. MTU is de grootte van het grootste datapakketje dat over het netwerk kan verzonden of ontvangen worden. ===== Tweede tabblad ===== In het tweede tabblad is voor de 802.1x beveiliging. Hier kan de netwerkbeveiliging worden ingesteld op 3 verschillende manieren: TLS, getunnelde TLS en PEAP. [[Afbeelding:GUI7.png|300px|none]] * TLS: Het TLS-protocol laat cliënt / server-applicaties over een netwerk communiceren op een manier ontwikkeld om afluisteren en manipulatie te voorkomen. Een TLS cliënt en server onderhandelen over een stateful verbinding door middel van een handshaking procedure. Tijdens deze handshake, de cliënt en server eens worden over verschillende parameters gebruikt om de verbinding van de beveiliging vast te stellen. # De handdruk begint wanneer een cliënt verbinding maakt met een TLS-enabled server bij het aanvragen van een beveiligde verbinding en presenteert een lijst van ondersteunde CipherSuites (ciphers en hashfuncties). # Uit deze lijst, de server pakt de sterkste cipher en hash-functie die ook het ondersteunt en informeert de opdrachtgever van het besluit. # De server stuurt de identificatie in de vorm van een digitaal certificaat. Het certificaat bevat meestal de naam van de server, de vertrouwde certificeringsinstantie (CA) en de server publieke encryptiesleutel. # De klant kan contact opnemen met de server die het certificaat heeft afgegeven (het vertrouwde CA zoals hierboven) en bevestigen dat het certificaat geldig is voordat u verdergaat. # Om de sessie sleutels gebruikt voor de beveiligde verbinding te genereren, de client versleutelt een willekeurig getal met de openbare sleutel van de server en stuurt het resultaat naar de server. Alleen de server moet kunnen om het te decoderen, met zijn private sleutel. # Met het random number, kunnen beide partijen beginnen met het genereren van de belangrijkste grondstof voor encryptie en decryptie. Dit concludeert de handdruk en begint de beveiligde verbinding, die is gecodeerd en gedecodeerd met de sleutel materiaal totdat de verbinding wordt gesloten. Als een van de bovenstaande stappen niet lukt, de TLS-handshake mislukt en de verbinding wordt niet gemaakt. * Getunneld TLS (TTLS): Ondernemingen die de veiligheid van TLS willen, maar gebruik maken van legacy authenticatie methoden of token-gebaseerde authenticatie methods, zullen waarschijnlijk kiezen voor TTLS. TTLS is in wezen een uitbreiding van TLS. De authenticatie van TLS is typisch wederzijds. Beide partijen te verifiëren elkaar. TTLS-verificatie gebruikt certificaten de server kant te verifiëren en een eenvoudiger methode om de authenticiteit van de cliënt te controleren, met behoud van een vergelijkbare veiligheidseigenschappen, zoals de wederzijdse. TTLS is in feite beter dan TLS in ten minste 1 manier: Een afluisteraar kan niet eens de identiteit van de gebruiker zien, want het wordt alleen verzonden nadat de TLS-tunnel is gevestigd. TTLS doet dit door een andere verificatieprotocol te gebruiken in de TLS-tunnel wanneer het tijd is om de gebruiker te authentiseren. Dat is waar de "getunneld “in "getunneld TLS" vandaan komt. De netbeheerder heeft de mogelijkheid om een zeer eenvoudige tunnel authenticatie protocol, zoals duidelijke tekst wachtwoorden of challenge-response wachtwoorden, of een meer geavanceerde techniek, zoals token-gebaseerde authenticatie te gebruiken. Het grootste nadeel van TTLS is dat de Internet-gemeenschap nog niet akkoord heft bereikt om dit, als de beste aanpak voor omgevingen waar digitale certificaten zijn niet beschikbaar zijn, te gebruiken. Een ander voorstel van de IETF is PEAP (Protected EAP), die veel van dezelfde problemen als TTLS oplost. * PEAP: PEAP is een nieuw lid van de protocolfamilie Extensible Authentication Protocol. PEAP gebruikt TLS voor het maken van een gecodeerd kanaal tussen een geverifieerde PEAP-client, bijvoorbeeld een draadloze computer, en een PEAP-verificator, bijvoorbeeld een IAS- of RADIUS-server (Remote Authentication Dial-In User Service). PEAP geeft geen verificatiemethode aan, maar voorziet in aanvullende beveiliging voor andere EAP-verificatieprotocollen, die kunnen gebruikmaken van het gecodeerde kanaal dat door PEAP met TLS is gemaakt. PEAP wordt gebruikt als verificatiemethode voor draadloze 802.11-clientcomputers, maar wordt niet ondersteund voor VPN- of andere RAS-clients. PEAP voorziet op de volgende manieren in uitbreiding van de EAP-protocollen en betere netwerkbeveiliging: # Beveiliging van de onderhandeling over een EAP-methode die via een TLS-kanaal plaatsvindt tussen client en server. # Ondersteuning voor het fragmenteren en opnieuw samenstellen van berichten, waardoor er EAP-typen kunnen worden gebruikt die deze voorziening niet bieden. # Draadloze clients met de mogelijkheid om de IAS- of RADIUS-server te verifiëren, ook de server verifiëert de client dus is er sprake van wederzijdse verificatie. # Beveiliging tegen de implementatie van een niet-geverifieerd draadloos toegangspunt (Wireless Access Point of WAP) wanneer de EAP-client het certificaat van de IAS-server verifieert. # Snel opnieuw verbinding maken, waardoor er minder vertraging optreedt tussen een verificatieaanvraag van een client en het antwoord van de IAS- of RADIUS-server, en draadloze clients verschillende toegangspunten kunnen gebruiken zonder herhaling van verificatieaanvragen. Eens de methode gekozen is kunnen de certificaten, identiteiten en wachtwoorden worden ingevuld. ===== Derde tabblad ===== Het voorlaatste tabblad behandelt de IPv4 instellingen. Als eerste kiezen we de DHCP instellingen. Normaalgezien staat deze op automatisch, maar kunnen deze ook handmatig instellen als de machine laten werken als DHCP server. In dat geval moeten we een statisch ip-adres, netmask en gateway invullen. [[Afbeelding:GUI8.png|300px|none]] ===== Vierde tabblad ===== Als laatste kunnen we ook nog de IPv6 instellingen aanpassen. Die werken volledig hetzelfde als de IPv4 instellingen. {{Sub}} 4hxng2dirc95wku34f54hghej0lmki2 Linux Systeembeheer/Bestanden en printers delen 0 20949 422793 372072 2026-04-15T17:12:32Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422793 wikitext text/x-wiki {{Index Linux Systeembeheer}} ==Inleiding== Tegenwoordig kan je voor weinig geld een netwerk-harde schijf (Network Attached Storage of NAS) kopen. Meestal draait op dit soort apparaten een vorm van Linux. Zelf een NAS bouwen is helemaal niet zo moeilijk. Bij het maken van deze opdracht zijn enkele mensen op problemen gestoten die ze niet direct konden oplossen. Voor iedereen die met de gewone stappen niet tot het gewenste resultaat komen, staat er onderaan een alternatief pad om deze opdracht te vervullen. Dit is getest op CentOS, en zou volledig moeten werken. == Leerdoelen == In een Redhat-gebaseerd Linux-systeem: * Een NFS-server kunnen opzetten ** basisconfiguratie '''/etc/exports''' *** permissies instellen *** hosts toelaten (in /etc/exports, hosts.allow/deny) ** op afstand een NFS-directory mounten * Een Samba-server kunnen opzetten ** bestanden delen ** printer delen ** permissies instellen *** security = user/share/... *** wachtwoorden beheren ** verschillende manieren om een share vanuit de client aan te spreken (Windows explorer, Gnome Nautilus, smbclient, mounten) * Een eenvoudige FTP-server kunnen opzetten == Bestanden delen, de UNIX-manier: NFS == NFS staat voor Network File System en is een protocol dat oorspronkelijk ontwikkeld werd door Sun Microsystems in 1984. NFS maakt het mogelijk om bestanden op te vragen over het netwerk op dezelfde manier als men dit zou doen voor bestanden op de lokale schijf. De meest recente versie is NFSv4. === Installatie === ''De opdrachtregels die verder volgen zijn getest op een minimale installatie van CentOS 5.5.'' We beginnen met de installatie van het pakket ''nfs-utils'', wat meteen ook de nodige ''dependencies'' installeert zoals onder andere ''portmap'' en ''nfs-utils-lib''. $ yum install nfs-utils === Configuratie === In het bestand ''/etc/exports'' bepalen we welke map(pen) we met welke hosts willen delen. Een configuratieregel heeft volgende syntax: :<export> <host1>(<options>) ... <hostN>(<options>) Mogelijke opties zijn onder andere: :ro/rw, async/sync, wdelay, all_squash, no_root_squash De optie ''all_squash'' maakt dat gebruikers die verbinding maken met het NFS, de account en permissies van de ''nobody'' account krijgen. Met de optie ''no_root_squash'' kan het NFS benaderd worden als ''root'' gebruiker. Als voorbeeld delen we de map ''/shares/Public'' met hosts op de netwerken 192.168.1.0/24 en 10.0.0.0/16. Uitsluitend in de map ''/shares/Public/upload'' mag het mogelijk zijn bestanden te schrijven naar het NFS. $ vi /etc/exports /shares/Public 192.168.1.0/24(rw,sync,all_squash,fsid=0) 10.0.0.0/16(rw,sync,all_squash,fsid=0) Met de optie ''fsid=0'' vertellen we de server dat deze export de root van het NFS is. Bemerk ook dat we voor de optie ''rw'' kiezen, hoewel we hosts geen schrijfrechten gunnen. We doen dat omdat we aan de map ''upload'' wel schrijfrechten willen toevertrouwen. Een alternatief is twee configuratieregels te definiëren, een met ''ro'' en een met ''rw'', maar dat garandeert geen probleemloos resultaat. Doordat we in het bestand ''exports'' al hosts definiëren, hoeven we geen gebruik te maken van de bestanden ''hosts.allow'' en ''hosts.deny''. Vervolgens maken we de te delen mappen aan en verlenen iedereen schrijfrechten op de map ''upload''. We maken voor het voorbeeld ook enkele testbestanden aan. $ mkdir -p /shares/Public/upload $ chmod 777 /shares/Public/upload $ for i in 0 1 2; do touch /shares/Public/file$i; done Tenslotte stellen we de firewall in om NFS verkeer toe te laten. $ system-config-securitylevel-tui Security Level: Enabled SELinux: Enforcing Klik op 'Customize' en vink 'NFS4' aan. De configuratie is klaar. We starten de nodige services. $ service portmap start $ service nfs start $ service nfslock start Als we de services automatisch willen starten bij het opstarten van de server kunnen we het commando ''chkconfig'' gebruiken. $ chkconfig --list $ chkconfig nfs on Als het bestand ''/etc/exports'' gewijzigd wordt, kan de nieuwe configuratie gebruikt worden zonder de nfs service te herstarten met het ''exportfs'' commando. $ exportfs -ra Bemerk dat de poorten die NFS gebruikt standaard niet vastliggen. Controleren op welke poorten de services draaien kunnen we doen met ''rpcinfo''. $ rpcinfo -p === Testen === In het voorbeeld is het adres van de server 192.168.1.115. '''1. Op de CentOS server zelf''' $ mount -vt nfs4 192.168.1.115:/ /mnt $ ls /mnt file0 file1 file2 upload $ touch /mnt/writetest touch: cannot touch '/mnt/writetest': Permission denied # OK # $ touch /mnt/upload/writetest; ls /mnt/upload writetest # OK # $ umount /mnt '''2. Op een CentOS client''' $ yum install nfs-utils $ service portmap start $ service nfs start $ service nfslock start $ mount -vt nfs4 192.168.1.115:/ /mnt $ vi /mnt/upload/writetest blah :wq # OK # $ umount /mnt '''3. Op een Debian/Ubuntu client''' $ sudo apt-get install nfs-common $ sudo modprobe nfs $ sudo mount -vt nfs4 192.168.1.115:/ /mnt $ ls /mnt file0 file1 file2 upload $ umount /mnt === Alternatief met vaste poorten en hosts.allow/deny === Maak eerst de nodige mappen aan. $ mkdir /shares /shares/Public /shares/Public/upload $ chcon -R -t public_content_t /shares/Public $ chcon -R -t public_content_rw_t /shares/Public/upload Nu gaan we het exportsbestand aanpassen om de nodige rechten op de shares in te stellen. $ nano /etc/exports Daarin voegen we volgende regels toe. /shares/Public *(ro,sync,all_squash) /shares/Public/upload *(rw,all_squash) De instellingen hieronder zijn van toepassing in het netwerklokaal, pas deze aan voor je eigen configuratie indien nodig. Eerst stellen we de server-host in. $ echo ’10.0.3.250 server’ >> /etc/hosts Vervolgens stellen we de hosts in die we willen toelaten tot de server. $ nano /etc/hosts.allow portmap:10. : allow lockd: 10. : allow mountd: 10. : allow rquotad: 10. :allow statd: 10. : allow {{Bericht | titel=Opmerking: | bericht=Indien je gebruik maakt van notatie 10.*.*.*/255.0.0.0 kan dit volgende fout opleveren: "RPC: Program not registered". | type=opmerking }} Tot slot stellen we de hosts in die geen toegang krijgen tot de server. $ nano /etc/hosts.deny portmap:ALL lockd:ALL mountd:ALL rquotad:ALL statd:ALL Omdat de poorten variabel zijn bij NFS, is het geen slecht idee om deze vast in te stellen, wat het configureren van de firewall daarna makkelijker maakt. $ nano /etc/sysconfig/nfs RQUOTAD_PORT=9403 LOCKD_TCPPORT=8001 LOCKD_UDPPORT=8002 MOUNTD_PORT=9402 STATD_PORT=9401 Vervolgens voegen we de juiste poorten toe aan de firewall (/etc/sysconfig/iptables): -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp --dport 111 -j ACCEPT -A INPUT -p udp --dport 111 -j ACCEPT -A INPUT -p tcp --dport 2049 -j ACCEPT -A INPUT -p udp --dport 2049 -j ACCEPT -A INPUT -p tcp --dport 9401 -j ACCEPT -A INPUT -p udp --dport 9401 -j ACCEPT -A INPUT -p tcp --dport 9402 -j ACCEPT -A INPUT -p udp --dport 9402 -j ACCEPT -A INPUT -p tcp --dport 9403 -j ACCEPT -A INPUT -p udp --dport 9403 -j ACCEPT -A INPUT -p tcp --dport 8001 -j ACCEPT -A INPUT -p udp --dport 8002 -j ACCEPT Als allerlaatste inspanning veranderen we nog de instellingen van SELinux. $ setsebool -P nfs_export_all_rw on $ setsebool -P samba_share_nfs on Nu dienen we juist nog de service te starten en deze ook automatisch te laten starten bij het booten van de server. $ chkconfig --level 2345 nfs on $ service nfs start Indien het starten van de service faalt ligt het probleem waarschijnlijk bij de portmap service die niet draait. $ service portmap start # of $ service rpcbind start Nu kunnen we de NFS testen door ze te mounten op een andere pc/client. We zullen proberen een bestand aan te maken. $ mkdir /mnt/Public $ mkdir /mnt/upload $ mount 10.0.3.250:/home/shares/Public /mnt/Public $ mount 10.0.3.250:/home/shares/Public/upload /mnt/upload $ touch /mnt/Public/alleenlezen.txt (dit lukt niet aangezien ro) $ touch /mnt/upload/lezenenschrijven.txt (dit lukt wel aangezien rw) {{Bericht | titel=Opmerking: | bericht=Mount werkt niet altijd. Bij fout: ''mount.nfs : mount system call fail''. Probeer ''mount -t nfs4'' voor een beter resultaat. | type=opmerking }} De client moet ook NFS ondersteunen, indien dit niet het geval is krijg je een error. $ sudo mount server:/shares/Public /mnt/Public mount: wrong fs type, bad option, bad superblock on server:/shares/Public, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program) In some cases useful info is found in syslog - try dmesg | tail or so Je kan dit oplossen door: $ sudo apt-get install nfs-common portmap # Ubuntu/Debian $ sudo yum -y install nfs-utils portmon # Fedora/CentOS Toen ik deze stappen de eerste maal volgde werkte alles zonder problemen. Bij een tweede poging werd mijn /shares/Public/upload folder steeds als "read-only" gemount. Ik ging ervan uit dat ik iets verkeerd gedaan had de tweede maal maar blijkbaar zijn er nog mensen bij wie deze folder als read-only mount. Ik heb dit "opgelost" door eerst de folder te mounten op de host en dan op de VM de rechten van de folder te veranderen als volgt: $ sudo chmod ugo+rw /shares/Public/upload Ik betwijfel of dit DE oplossing is, maar het werkt. Indien dit niet zou lukken kunnen we altijd controleren of alle poorten open staan via het commando op de client in te geven: $ rpcinfo –p 10.0.3.250 Of op de server met: $ rpcinfo -p Als alternatief kan je ook ''netstat'' of ''nmap'' gebruiken: $ netstat -ntl == Bestanden delen, de Windows-manier: Samba == Samba is een open source softwarepakket dat gebruik maakt van het SMB protocol. De technologie wordt vooral gebruikt om UNIX-machines te laten communiceren met Windows-machines. === Installatie === ''De opdrachtregels die verder volgen zijn getest op een minimale installatie van CentOS 5.5.'' $ yum install samba === Configuratie === $ vi /etc/samba/smb.conf [global] workgroup = WORKGROUP server string = Samba Server Version %v netbios name = Samba log file = /var/log/samba/%m.log # max 50KB per log file, then rotate max log size = 50 security = user encrypt passwords = true map to guest = bad user passdb backend = tdbsam [public] path = /shares/Public public = yes read only = yes printable = no write list = +student guest ok = yes We wijzigen de ''security context'' van de map die we delen. $ chcon -R -t samba_share_t /shares/Public We maken een gebruiker ''student'' aan, en verlenen hem toegang tot de Samba share. $ useradd student # lokale gebruiker op server aanmaken $ passwd student # wachtwoord voor gebruiker instellen $ smbpasswd -a student # samba wachtwoord voor gebruiker instellen Tenslotte stellen we de firewall in met ''system-config-securitylevel-tui'' $ system-config-securitylevel-tui Security Level: Enabled SELinux: Enforcing Klik op 'Customize' en vink 'Samba' aan. De configuratie is klaar. We starten de service. We zorgen ook dat de service opstart bij het opstarten van de server. $ service smb start $ chkconfig smb on === Testen === In het voorbeeld is het adres van de server 192.168.1.115. '''1. Met Ubuntu 10.10''' Places => Connect to Server => Windows Share :Server: 192.168.1.115 :Share: public :Username: (blanco = "guest" account) Resultaat: De schijf wordt ''read-only'' aangekoppeld. Places => Connect to Server => Windows Share :Server: 192.168.1.115 :Share: public :Username: student Resultaat: We kunnen inloggen met het Samba wachtwoord van de gebruiker ''student''. De map ''upload'' is zoals verwacht schrijfbaar.<br> '''2. Met Ubuntu 13.04''' Bestanden => Bestanden (menu bovenaan) => Verbinden met serveradres 192.168.1.115 '''3. Met Windows 7''' Ga in Windows Explorer naar de locatie \\192.168.1.115. == Een FTP-server opzetten == FTP staat voor File Transfer Protocol en maakt het mogelijk bestanden uit te wisselen over TCP/IP. === Installatie === ''De opdrachtregels die verder volgen zijn getest op een minimale installatie van CentOS 5.5.'' $ yum install vsftpd === Configuratie === Als voorbeeld configureren we een FTP-server waar je als anonieme gebruiker de inhoud van ''/shares/Public'' kan zien. :$ vi /etc/vsftpd/vsftpd.conf :anonymous_enable=YES :anon_root=/srv/shares/Public :no_anon_password=YES :local_root=/srv/shares :chroot_local_user=YES uit commentaar halen We stellen de firewall in met ''system-config-securitylevel-tui''. $ system-config-securitylevel-tui Security Level: Enabled SELinux: Enforcing Klik op 'Customize' en vink 'FTP' aan. Naast het toelaten inkomende FTP verbindingen is het ook nodig enkele SELinux booleans te wijzigen, zodat de variabelen' effect heeft. :setsebool -P ftp_home_dir on :setsebool -P allow_ftpd_anon_write on :setsebool -P allow_ftpd_full_access on Nu moeten er ook nog wat rechten aangepast worden op de mappen: :chown root:student /srv/shares/upload :Sudo chmod 775 /srv/shares/public :Sudo chkconfig vsftpd on Het enige wat ons verder rest is de service te starten, alsook maken dat deze start bij het opstarten van de server. $ service vsftpd start service iptables restart $ chkconfig vsftpd on === Testen === In het voorbeeld is het adres van de server 192.168.1.115. De server testen kunnen we doen door met een FTP-client of webbrowser verbinding te maken met ftp://192.168.1.115/. == De firewall instellen == Naast gebruik te maken van ''system-config-securitylevel(-tui)'' kan je de [[Linux Systeembeheer/Firewalls|firewall]] uiteraard ook configureren met ''iptables''. Een overzicht van de iptables voor een NAS met NFS, Samba en FTP: # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] #LOOPBACK INTERFACE -A INPUT -i lo -j ACCEPT #NFS CONFIG -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp --dport 111 -j ACCEPT -A INPUT -p udp --dport 111 -j ACCEPT -A INPUT -p tcp --dport 2049 -j ACCEPT -A INPUT -p udp --dport 2049 -j ACCEPT -A INPUT -p tcp --dport 9401 -j ACCEPT -A INPUT -p udp --dport 9401 -j ACCEPT -A INPUT -p tcp --dport 9402 -j ACCEPT -A INPUT -p udp --dport 9402 -j ACCEPT -A INPUT -p tcp --dport 9403 -j ACCEPT -A INPUT -p udp --dport 9403 -j ACCEPT -A INPUT -p tcp --dport 8001 -j ACCEPT -A INPUT -p tcp --dport 8002 -j ACCEPT #SAMBA -A INPUT -p udp --dport 137 -j ACCEPT -A INPUT -p udp --dport 138 -j ACCEPT -A INPUT -p tcp --dport 139 -j ACCEPT -A INPUT -p tcp --dport 445 -j ACCEPT #FTP -A INPUT -p tcp --dport 21 -j ACCEPT -A INPUT -p tcp --dport 20 -j ACCEPT # FTP server poorten voor toegang vanuit een browser (niet nodig voor FTP-clients) #-A INPUT -p tcp --dport 6400:65535 -j ACCEPT COMMIT == Labo-opdracht == Tegenwoordig kan je voor weinig geld een netwerk-harde schijf (Network Attached Storage of NAS) kopen. Meestal draait op dit soort apparaten een vorm van Linux. De bedoeling van dit labo is zelf zo'n NAS te bouwen. # Zet een NFS fileserver op met volgende eigenschappen: ## Het SELinux-niveau moet op Enforcing blijven ## De directory '''/var/shares/Public''' moet voor alle hosts uit het klasnetwerk leesbaar zijn ## De directory '''/var/shares/Public/upload''' moet voor alle hosts uit het klasnetwerk leesbaar én schrijfbaar zijn ## Test uit vanop een andere computer # Zet op dezelfde machine een Samba fileserver op met volgende eigenschappen: ## Het SELinux-niveau moet op Enforcing blijven ## De directory '''/var/shares/Public''' moet voor alle hosts uit het lokale leesbaar zijn en inloggen is niet nodig (“gast-toegang”) ## De directory '''/shares/Public/upload''' moet voor alle hosts uit het lokale netwerk leesbaar zijn én schrijfbaar voor de gebruiker student (die moet inloggen) ## Test uit vanop een andere computer, zowel vanuit Windows als vanuit Linux. Probeer op een Linux client een gedeelde directory te mounten. # Zet op dezelfde machine een FTP server op waar je als anonieme gebruiker de inhoud van '''/var/shares/Public''' kan zien. ==Bibliografie== {{Sub}} c5fca8ygfhffsv8mrdvxqkdyqyqkg2s Linux Systeembeheer/Elektronische post 0 20951 422794 372070 2026-04-15T17:12:47Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422794 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Inleiding == Elektronische post is niet meer weg te denken in een moderne wereld. Al deze mails moeten natuurlijk opgeslagen worden. Dit gebeurt door mailservers. In dit hoofdstuk leren we hoe je zelf een mailserver kan opstellen, en hoe je deze kan beveiligen. Verder worden er verschillende begrippen toegelicht. == Leerdoelen == * Het de begrippen MSA, MTA, MUA, MDA kennen en de verschillen ertussen ** MSA: Mail Submission Agent, cfr RFC4409 ** MTA: Mail Transfer Agent ** MUA: Mail User Agent (= mail client) ** MDA: Mail Delivery Agent * Een volwaardige e-mailserver kunnen installeren op een RedHat-gebaseerd Linux-systeem ** Een Postfix SMTP-server kunnen opzetten *** De basisinstellingen in '''main.cf''' kunnen aanpassen *** Mailboxes kunnen aanmaken voor gebruikers en aliassen definiëren *** Mail lokaal versturen *** Mail kunnen doorsturen naar een andere mailserver *** Een mailserver kunnen beveiligen **** HELO, restricties op binnenkomende mails, attachments blokkeren **** Een spamfilter (SpamAssassin) en virusscanner (ClamAV) kunnen installeren en koppelen aan PostFix ** Een Dovecot POP/IMAP server kunnen installeren en doorverbinden met Postfix ** Een Webmail server (Horde, Squirrelmail) kunnen installeren en doorverbinden met Postfix == Postfix == Installeren postfix:<br> $ yum install postfix system-switch-mail Runlevel systeemservice aanpassen:<br> $ chkconfig --level 2345 postfix on Het bestand main.cf aanpassen:<br> $ vi /etc/postfix/main.cf inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 192.168.0.0/24, 127.0.0.0/8 relay_domains = home_mailbox = Maildir/ relayhost = [mail-out.hogent.be] '''#mail-out.hogent.be is de smtp server op school, afhankelijk van de ISP kan dit veranderen (bv. voor Telenet is dit "uit.telenet.be" en voor Belgacom "relay.belgacom.net")''' Iptables aanpassen:<br> $ iptables –I INPUT –p tcp --dport 25 –j ACCEPT $ service iptables save $ service iptables restart Instellen als default email agent: $ system-switch-mail <br> '''Beveiliging'''<br> <br> Het bestand main.cf aanpassen:<br> $ vi /etc/postfix/main.cf <nowiki>#</nowiki>HELO restrictions: smtpd_delay_reject = yes smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, permit <nowiki>#</nowiki>Sender restrictions: smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, permit <nowiki>#</nowiki>Recipient restrictions: smtpd_recipient_restrictions = reject_unauth_pipelining,reject_non_fqdn_recipient,reject_unknown_recipient_domain, permit_mynetworks, reject_unauth_destination, check_sender_access hash:/etc/postfix/sender_access, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, check_policy_service unix:postgrey/socket, permit <nowiki>#</nowiki>Controle attachments: mime_header_checks = regexp:/etc/postfix/mime_header_checks Ook het mime_header_checks bestand moet aangepast worden:<br> $ vi /etc/postfix/mime_header_checks <nowiki>/^content-(type|disposition):.*name[[:space:]]*=.*\.(bat|com|dll|scr|exe|vbs|pif)/ REJECT Bad attachment file name extension: $2</nowiki> Service starten:<br> $ service postfix start == Dovecot == Installatie Dovecot:<br> $ yum install dovecot Runlevel systeemservice aanpassen:<br> $ chkconfig --level 2345 dovecot on Iptables aanpassen:<br> $ iptables –I INPUT 1 –p tcp --dport 110 –j ACCEPT $ iptables –I INPUT 1 –p tcp --dport 143 –j ACCEPT $ service iptables save $ service iptables restart Config-bestand aanpassen:<br> $ vi /etc/dovecot.conf protocols = imap imaps pop3 pop3s mail_location = maildir:~/Maildir pop3_uidl_format = %08Xu%08Xv Config-bestand aanpassen voor fedora 15 en hoger:<br> $ vi /etc/dovecot/dovecot.conf Regel 20: protocols = imap pop3 # imaps en pop3s worden niet meer ondersteund in fedora 16 $ vi /etc/dovecot/conf.d/10-auth.conf Regel 99: auth_mechanisms = plain login $ vi /etc/dovecot/conf.d/10-mail.conf Regel 30: mail_location = maildir:~/Maildir Mailbox toevoegen:<br> $ Mkdir /home/admin/Maildir $ chmod –R 700 /home/admin/Maildir Alias toevoegen:<br> $ vi /etc/aliases root: admin Service starten:<br> $ service dovecot start == Webmail<br> == Webmail installeren:<br> $ yum install httpd php mod_ssl Runlevel van systeemservice aanpassen:<br> $ chkconfig --level 2345 httpd on Iptables aanpassen:<br> $ iptables –I INPUT 1 –p tcp --dport 80 –j ACCEPT $ service iptables save $ service iptables restart Installeren Squirrelmail:<br> $ yum install squirrelmail Configuratie squirrelmail:<br> $ /usr/share/squirrelmail/config/conf.pl Laad de pre-defined settings voor dovecot (D) Stel het domein in en verander sendmail naar SMTP (2) Save (S) Quit (Q) httpd.conf aanpassen:<br> $ vi /etc/httpd/conf/httpd.conf <VirtualHost *:80><br> DocumentRoot /usr/share/squirrelmail<br> </VirtualHost> SELinux instellen om toegang te krijgen tot IMAP via apache:<br> $ setsebool -P httpd_can_network_connect=1 Service starten:<br> $ service httpd start == Virusscanner<br> == Voor CentOS 5.5 dienen we eerst een nieuwe repository toe te voegen om clamav te kunnen installeren.<br> Eerst downloaden we de laatste versie van de repo ( te vinden op <s>https://packages.sw.be/rpmforge-release/</s> ).<br> $ wget <s>https://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm</s> Installeren van DAG's GPG-key en package: $ rpm --import <s>https://apt.sw.be/RPM-GPG-KEY.dag.txt</s> $ rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm Installeren ClamAV (antivirus) en SpamAssassin (spamfilter):<br> $ yum install amavisd-new clamav clamav-devel clamd spamassassin Het config bestand clamd aanpassen: $ vi /etc/clamd.conf TCPSocket 3310 Het config bestand freshclam aanpassen: $ vi /etc/freshclam.conf # Example #In commentaar zetten Antivirus databank bijwerken: $ freshclam Het config-bestand van clamsmtpd aanpassen: vi /etc/clamsmtpd.conf OutAddress: 127.0.0.1:10026 Listen: 127.0.0.1:10025 Header: X-Virus-Scanned: ClamAV using ClamSMTP Action: drop amavisd.conf aanpassen: $ vi /etc/amavisd.conf $mydomain = '3tina.org'; $MYHOME = '/var/amavis'; $helpers_home = "$MYHOME/var"; $lock_file = "$MYHOME/var/amavisd.lock"; $pid_file = "$MYHOME/var/amavisd.pid"; $virus_admin = "postmaster\@$mydomain"; $mailfrom_notify_admin = "postmaster\@$mydomain"; $mailfrom_notify_recip = "postmaster\@$mydomain"; $mailfrom_notify_spamadmin = "postmaster\@$mydomain"; $myhostname = ‘fedora’; ### https://www.clamav.net/ ['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], qr/\bOK$/, qr/\bFOUND$/, qr/^.*?: (?!Infected archive)(.*) FOUND$/ ], master.cf van postfix aanpassen:<br> $ vi /etc/postfix/master.cf amavisfeed unix - - n - 2 smtp -o lmtp_data_done_timeout=1200 -o lmtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o smtpd_restriction_classes= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters,no_address_mappings -o local_header_rewrite_clients= -o smtpd_milters= -o local_recipient_maps= -o relay_recipient_maps= Main van postfix aanpassen:<br> $ vi in /etc/postfix/main.cf content_filter=amavisfeed:[127.0.0.1]:10024 Services herstarten:<br> $ service postfix restart $ service amavisd start $ service clamd start <br> '''Aanpassingen in SELINUX'''<br> $ vi amavisdlocal.te module amavisdlocal 1.0; require { type traceroute_port_t; type pgpkeyserver_port_t; type amavis_var_lib_t; type amavis_t; type clockspeed_port_t; class udp_socket name_bind; class lnk_file { read create unlink getattr }; } #============= amavis_t ============== allow amavis_t clockspeed_port_t:udp_socket name_bind; allow amavis_t pgpkeyserver_port_t:udp_socket name_bind; allow amavis_t traceroute_port_t:udp_socket name_bind; allow amavis_t amavis_var_lib_t:lnk_file { read create unlink getattr }; Nieuwe file clamlocal.de aanmaken:<br> $ vi clamlocal.de module clamlocal 1.0; require { type proc_t; type var_t; type sysctl_kernel_t; type clamd_t; class file { read getattr }; class dir { read search }; } #============= clamd_t ============== allow clamd_t proc_t:file { read getattr }; allow clamd_t sysctl_kernel_t:dir search; allow clamd_t sysctl_kernel_t:file read; allow clamd_t var_t:dir read; allow clamd_t var_t:file { read getattr }; Policies toevoegen: $ checkmodule -M -m -o amavisdlocal.mod amavisdlocal.te $ semodule_package -o amavisdlocal.pp -m amavisdlocal.mod $ semodule -i amavisdlocal.pp $ checkmodule -M -m -o clamlocal.mod clamlocal.te $ semodule_package -o clamlocal.pp -m clamlocal.mod $ semodule -i clamlocal.pp == Labo-opdracht == # Zet een Postfix mailserver op en configureer hem zodat je hem kan gebruiken om vanop een andere pc op het netwerk een mail te sturen naar je eigen e-mailadres (bijv. @telenet.be, @hotmail.com, @gmail.com, ...). ## Test of je op de machine zelf een mail kan versturen naar een lokale gebruiker ## Test of je vanop een andere machine een mail kan sturen naar een lokale gebruiker ## Test of je vanop een andere machine een mail kan sturen naar een extern e-mailadres # Installeer en configureer Dovecot naast Postfix zodat je vanop een andere pc mails kan lezen via een mailclient. Maak enkele mailboxen aan. # Zorg voor Webmail-toegang (met Squirrelmail of Horde) # Installeer ClamAV en SpamAssassin == Bibliografie == {{Sub}} 7cimvon8vo4b0eybjfw6qrmaxc5x8yk Linux Systeembeheer/Firewalls 0 20952 422795 372074 2026-04-15T17:13:16Z Erik Baas 2193 422795 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Inleiding == Om aanvallen op een netwerk te voorkomen of tegen te houden is een firewall op de router onontbeerlijk. De Linux-kernel heeft een ingebouwde firewall die je kan manipuleren met het commando iptables. Nu is het opstellen van een goede firewall niet zo evident en daarom zijn er intussen tientallen applicaties beschikbaar die deze taak vergemakkelijken (o.a. Firestarter, ufw, enz.). Het gebruiken van die tools is echter niet zonder gevaar: de details van de werking blijven verborgen, de kwaliteit van de firewall is niet langer 100% zeker en het is wellicht niet langer mogelijk om alle functionaliteiten van iptables te gebruiken. Voor een goed begrip van de werking van Linux-firewalls is het daarom belangrijk met iptables te leren werken. == Leerdoelen == * De basisstructuur van Linux firewalls begrijpen ** de begrippen “table” en “chain” kennen en begrijpen ** de standaard tables (filter, nat, mangle) en hun functie kennen ** de standaard chains (INPUT, OUTPUT, FORWARD) kennen en hun functie begrijpen * Het commando '''iptables''' kunnen gebruiken om de Linux firewall te manipuleren ** de standaard policies (ACCEPT, DROP, REJECT, LOG) kennen en kunnen instellen ** regels en chains kunnen toevoegen en verwijderen ** filteropties kunnen gebruiken: *** filteren op protocol, IP-adres, MAC-adres, netwerkinterface, protocol *** TCP, UDP uitbreidingen *** trafiek limiteren *** connection tracking *** Network Address Translation * De firewall-configuratie kunnen aanpassen en persistent maken op een RedHat-achtig systeem ** firewall opstarten/stoppen: '''service iptables {start,stop,restart,status}''' ** firewall-configuratie opslaan: '''service iptables save''' ** De meegeleverde GUI-tools ('''system-config-firewall''' of '''system-config-securitylevel''') voor firewall-beheer kunnen gebruiken == Basisstructuur Linux Firewalls == === Iptables === Iptables is de front-end van het netwerk packet filter framework Netfilter. Netfilter is onderdeel van de Linux kernel en kan worden gebruikt om diverse acties met data packets uit te voeren, zoals: accepteren, weigeren, NAT, etc. Met iptables kan de systeembeheerder de firewall configureren voor het IPv4-protocol. Andere protocols brengen andere programma's of ''modules'' met zich mee. Bijvoorbeeld: * ip6tables (IPv6) * arptables (ARP) * ebtables (Ethernet frames) === Tables en Chains === Het uitgangspunt van iptables is dat de regels waaruit een firewall bestaat zijn ingedeeld in drie ''tables'' of tabellen; ''filter'', ''nat'' en ''mangle''. In elk van deze tabellen vindt u een aantal chains. Deze chains zijn de verzamelingen regels waaruit de firewall is opgebouwd. Welke chains u kunt gebruiken, is afhankelijk van de tabel. ==== De filter tabel ==== De filter tabel zorgt voor packet filtering en bestaat uit drie ingebouwde chains. Let overigens op de notatie van de chains, die is altijd in hoofdletters. * INPUT * OUTPUT * FORWARD De INPUT-chain wordt gebruikt om binnenkomende pakketjes te filteren, de OUTPUT-chain wordt gebruikt voor het verwerken van pakketjes die op de lokale machine gedefinieerd zijn en naar buiten verstuurd moeten worden en de FORWARD-chain verwerkt alle pakketjes die door de firewall gerouteerd worden. ==== De nat tabel ==== Ook de nat table bestaat uit drie chains. * PREROUTING * OUTPUT * POSTROUTING Door middel van de nat table worden twee soorten NAT ondersteund. Om te beginnen is dit het veel gebruikte masquerading. Dit is de vorm van NAT waarin hosts op het privé-netwerk het internet op kunnen door gebruik te maken van het IP-adres van de firewall. Computers op internet zien in dat geval niets anders dan de firewall en zijn zich er niet van bewust dat er achter die firewall een volledig netwerk schuilt. Daarnaast is het ook mogelijk het omgekeerde te doen. Dit betekent dat u nodes op het interne netwerk met behulp van de nat tabel toegankelijk kunt maken voor de buitenwereld door er een geregistreerd IP-adres aan toe te wijzen. Dit verschijnsel wordt ook aangeduid als statisch NAT. Dit betekent dat u aan de interface van de router een tweede IP-adres toekent en er door middel van de nat tabel voor zorgt dat alles wat op dat secundaire IP-adres binnenkomt wordt doorgestuurd naar de betreffende host op het privénetwerk. Van de drie chains wordt de PREROUTING chain gebruikt om pakketjes te behandelen zodra ze binnenkomen; dat wil zeggen nog voordat het routingproces er mee aan de slag kan. De OUTPUT-chain wordt gebruikt om pakketjes te behandelen die door het lokale systeem gegenereerd worden, nog voordat het routing proces er mee aan de slag gaat. De POSTROUTING chain tot slot wordt gebruikt om pakketjes te behandelen voordat ze het systeem verlaten, maar nadat het routingproces er mee aan de slag is geweest. ==== De mangle-tabel ==== De mangle-table zorgt voor TCP header wijzigingen en bestaat uit twee ingebouwde chains. * PREROUTING * OUTPUT De PREROUTING chain behandelt alle inkomende pakketjes voordat ze gerouteerd worden, de OUTPUT chain behandelt uitgaande pakketjes voordat ze gerouteerd worden. De mangle-tabel wordt alleen in speciale gevallen gebruikt, bijvoorbeeld wanneer speciale services zoals Quality of Service (QoS) gebruikt worden om pakketjes een hogere prioriteit te geven. === Regels === Bij het definiëren van een chain wordt gebruik gemaakt van verschillende regels (''rules''). Het is belangrijk dat in deze regels de juiste volgorde gebruikt wordt. In normale gevallen gaat een pakketje door alle regels in de chain. Dit is niet het geval als er een DENY of REJECT in de regel voorkomt. In dat geval wordt het pakketje direct tegengehouden. In alle andere gevallen worden dus alle regels verwerkt. Als geen enkele regel een match oplevert met het betreffende pakketje, wordt de laatste regel in de chain toegepast. Deze regel staat ook bekend als de ''policy''. In het Nederlands mag u dit gerust vertalen in “standaardbeleid”. Dit is dus de standaardregel die wordt toegepast voor alle pakketjes waarvoor geen specifieke regel gevonden kon worden. === Policies === Er zijn standaard vier policies: {| class="wikitable" |- ! Policy !! Betekenis |- | ACCEPT || Iptables stopt de verdere verwerking van het pakket en geeft het door aan de applicatie of het besturingssysteem. |- | DROP || Iptables stopt de verdere verwerking van het pakket en dropt het. |- | REJECT || Doet hetzelfde als DROP maar met het verschil dat het een foutmelding weergeeft aan de verzender van het geblokkeerde pakket. |- | LOG || Eerst wordt het pakket doorgezonden naar de systemlog daemon om een log-notitie aan te maken, vervolgens wordt de volgende regel in de chain uitgevoerd. |} === Werken met tables en chains === Geen documentatie is vollediger dan de iptables man page. Daarom: $ man iptables Een compact overzicht van de meestgebruikte vlaggen en opties vindt u in de tabel hieronder. Merk op dat om een nieuwe chain te definiëren, u als eerste moet aangeven tot welke tabel de chain behoort. Als u dit niet doet, wordt de nieuwe chain automatisch toegewezen aan de tabel ''filter''. $ iptables [-t table] -[ADIRLFNPX] chain rule-specification [options] {| class="wikitable" |- ! Vlag !! Uitleg |- | -A, --append || Voegt een of meer rules toe achteraan aan de gespecificeerde chain. Als argument moet aangegeven worden op welke chain dit commando uitgevoerd moet worden en welke regel er aan toegevoegd moet worden. |- | -D, --delete || Verwijdert een of meer rules uit de aangegeven table. Als argument moet aangegeven worden in welke chain gewerkt wordt en welke regel uit de chain bewerkt moet worden. U kunt verwijzen naar de betreffende regel door middel van een regelnummer (gebruik de optie -L voor een overzicht van alle regelnummers). |- | -I, --insert || Voeg een regel toe in een chain. De syntaxis hiervoor is iptables -I chain regelnummer regel. |- | -R, --replace || Gebruik deze optie om een regel te vervangen. De syntaxis van deze optie is: -R chain regelnummer regelspecificatie. |- | -L, --list || Toont alle regels. Bij deze optie kan aangegeven worden dat alleen regels uit één bepaalde chain getoond moeten worden. Als dit niet gebeurd, worden alle regels uit alle chains getoond. |- | -F, --flush || Verwijdert alle regels uit een chain. |- | -N, --new-chain || Definieer een nieuwe chain. U mag zelf bepalen welke naam die chain moet krijgen. Uiteraard moet deze naam wel uniek zijn. |- | -P, --policy chain target || Stelt een standaard policy (bvb DROP, ACCEPT,...) in voor de chain. |- | -X, --delete chain || Verwijdert een zelfgemaakte chain. |- ! Rule specs !! Uitleg |- | -p, --protocol [!] protocol || Een protocol meegeven dat moet gecontroleerd worden. Dit kan zowel tcp, udp, ..., all zijn of een numerieke waarde (0 is all in dit geval). De waarde 'all' is de default warde. Een uitroepteken inverteert de controle. |- | -s, --source [!] address[/mask] || De bron. Het adres kan een netwerk naam, hostnaam, ip addres (met /mask) of zonder mask zijn (zowel de /255.255.255.255 als /32 notatie is goed) Het adres 0.0.0.0 dient als wildcard. Een uitroepteken inverteert de controle. |- | -src || zie -s |- | -d, --destination [!] address[/mask] || De besteming. Het adres kan een netwerk naam, hostnaam, ip addres (met /mask) of zonder mask zijn (zowel de /255.255.255.255 als /32 notatie is goed) Het adres 0.0.0.0 dient als wildcard. Een uitroepteken inverteert de controle. |- | -dst || zie -d |- | -j, --jump target || Dit specifiëert het doel van de regel, wat gebeurt er als een packet met de regel matcht. |- | -i, --in-interface [!] name || Naam van de interface via dewelke het packet werd ontvangen (enkel te gebruiken bij de INPUT, FORWARD, PREROUTING chains). Je kan de naam laten eindigen op een "+" teken als jokerteken. Een uitroepteken inverteert de controle. |- | -o, --out-interface [!] name || Naam van de interface via dewelke het packet zal verzonden worden (enkel te gebruiken bij de FORWARD, OUTPUT, POSTROUTING chains). Je kan de naam laten eindigen op een "+" teken als jokerteken. Een uitroepteken inverteert de controle. |- | --sport <port> || Source port, dit kan een enkele waarde zijn of een range hebben. Bvb: -p tcp --sport 234:240 |- | --dport <port> || Destination port, dit kan een enkele waarde zijn of een range hebben. Bvb: -p tcp --dport 235 |- ! Algemeen !! Uitleg |- | -n en -v || Voorbeeld: de huidige configuratie tonen: iptables -L -n -v (-n is numeric en -v is verbose) |} Een toegepast voorbeeld vindt u in het Bash script verder op deze pagina. == samenvatting firewalls == enkele overzichten met frequente functies van de iptables {| class="wikitable" |- ! Queue Type !! Queue Function !! Packet Transformation Chain in Queue & Chain function!! |- | Filter|| Packet filtering|| {| |- | Forward|| Filters packets to servers accessible by another NIC on the firewall. |- | Input|| Filters packets destined to the firewall. |- | Output|| Filters packets originating from the firewall |} |- | Nat|| network adress translation|| {| |- | prerouting||Address translation occurs before routing. Facilitates the transformation of the destination IP address to be compatible with the firewall's routing table. Used with NAT of the destination IP address, also known as destination NAT or DNAT. |- | postrouting|| Address translation occurs after routing. This implies that there was no need to modify the destination IP address of the packet as in pre-routing. Used with NAT of the source IP address using either one-to-one or many-to-one NAT. This is known as source NAT, or SNAT. |- | output|| Network address translation for packets generated by the firewall. (Rarely used in SOHO environments) |} |- | mangle|| TCP header modification || {| |- | prerouting<br> postrouting<br> output<br> forward<br>|| Modification of the TCP packet quality of service bits before routing occurs. (Rarely used in SOHO environments) |} |} {| class="wikitable" |- ! target!! description !! most common options |- | accept|| * iptables stops further processing. * The packet is handed over to the end application or the operating system for processing || N/A |- | drop|| * iptables stops further processing. * The packet is blocked || N/A |- | log|| * The packet information is sent to the syslog daemon for logging * iptables continues processing with the next rule in the table * As you can't log and drop at the same time, it is common to have two similar rules in sequence. The first will log the packet, the second will drop it. || --log-prefix "string"<br> Tells iptables to prefix all log messages with a user defined string. Frequently used to tell why the logged packet was dropped |- | reject|| * Works like the DROP target, but will also return an error message to the host sending the packet that the packet was blocked || --reject-with qualifier<br> The qualifier tells what type of reject message is returned. Qualifiers include: * icmp-port-unreachable (default) * icmp-net-unreachable * icmp-host-unreachable * icmp-proto-unreachable * icmp-net-prohibited * icmp-host-prohibited * tcp-reset * echo-reply |- | dnat|| * Used to do destination network address translation. ie. rewriting the destination IP address of the packet || --to-destination ipaddress<br>Tells iptables what the destination IP address should be |- | snat|| * Used to do source network address translation rewriting the source IP address of the packet * The source IP address is user defined || --to-source <address>[-<address>][:<port>-<port>]<br>Specifies the source IP address and ports to be used by SNAT. |- | masquerade|| * Used to do Source Network Address Translation. * By default the source IP address is the same as that used by the firewall's interface || [--to-ports <port>[-<port>]]<br> Specifies the range of source ports to which the original source port can be mapped. |} == Labo-opdracht: Een bastion firewall opzetten == Bedoeling is een firewallscript uit te werken voor een zgn. “bastion firewall” dat een lokaal netwerk, bestaande uit een DMZ (''demilitarized zone'') met publiek toegankelijke servers en een intranet dat niet toegankelijk is van buitenaf. Onderstaande figuur en adressentabel verduidelijken de opstelling. [[Afbeelding:BastionFirewall.png|frame|Structuur van het netwerk]] {| border="1" style="border-collapse:collapse;border:1px solid silver;" ! Host || Interface || IP-adres || Network Mask || Opmerkingen |- | rowspan="3" | router || eth0 || 172.16.1.253 || 255.255.255.252 || verbonden met router van ISP |- | eth1 || 192.0.2.126 || 255.255.255.248 || DMZ, met publieke IP-adressen |- | eth2 || 10.0.0.1 || 255.0.0.0 || Itern netwerk, met private IP-adressen |- | apollo || eth0 || 192.0.2.123 || 255.255.255.248 || Webserver |- | mars || eth0 || 192.0.2.124 || || Mailserver |- | ns1 || eth0 || 192.0.2.121 || || DNS1 |- | ns2 || eth0 || 192.0.2.122 || || DNS2 |} '''Opm.''' 192.0.2.0 is het zgn. TEST-NET, een klasse-C netwerk dat is voorbehouden voor het gebruik in voorbeelden, handleidingen, enz. Je mag het beschouwen als een publiek IP netwerk, maar het komt nergens “in het echt” voor. Zet een firewall op met volgende eigenschappen: * pakketten die tegengehouden worden (DROP), moeten ook gelogd worden. Maak daarvoor een nieuwe chain aan. * pc's op het intranet kunnen de services van de DMZ gebruiken (gebruik zo strikt mogelijke regels). * pc's op het intranet kunnen vrij naar “buiten” (via NAT). * computers van buiten kunnen de services van de DMZ gebruiken (ook met zo strikt mogelijke regels). * computers van buiten kunnen GEEN verbinding aangaan met computers op het intranet. * blokkeer flooding op de DMZ services. * op de router draaien geen services, dus alle verkeer van en naar de router zelf moet geblokkeerd worden. == Bibliografie == *https://linux.about.com/od/commands/l/blcmdl8_iptable.htm *https://www.yolinux.com/TUTORIALS/ManPage_ipchains.html *https://www.lammertbies.nl/comm/info/nl_iptables.html *https://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-iptables.html *https://www.lammertbies.nl/picture/iptables-flow.png *Leerboek Linux deel 3 (Sander Van Vugt) *https://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables {{Sub}} pwkbq2y8lwyc79ym511fm9dui61fs9k Linux Systeembeheer/VirtualBox 0 25920 422797 372078 2026-04-15T17:19:13Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422797 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Inleiding == VirtualBox is een vrij computerprogramma om besturingssystemen te draaien binnen een (ander) besturingssysteem. Dit gebeurt op basis van virtualisatie. VirtualBox is beschikbaar voor verscheidene besturingsystemen en verscheidene talen. VirtualBox komt in twee soorten: de complete versie onder de VirtualBox Personal Use and Evaluation License, en de open source editie onder de GPL-licentie. Hierbij moet worden opgemerkt dat in de open source editie enkele belangrijke mogelijkheden ontbreken, zoals USB- en SATA-ondersteuning. == Guest Additions == Na de installatie van een OS in een VirtualBox VM is het een goed idee om ook de Guest Additions op het gast OS te installeren. De Guest Additions zijn ontworpen om de performantie en bruikbaarheid van het gast OS te optimaliseren. Zo voorzien zij onder andere het volgende: ;Mouse pointer integratie:De Host Key wordt overbodig. Het is voldoende om de muis uit de VM te bewegen om terug naar de host keren. ;Gedeeld klembord:Knippen en plakken tussen het gast en het host OS, en vice versa. ;Betere video ondersteuning:De resolutie van het gast OS past zich automatisch aan aan de grootte van het venster waar het in draait. Ook 3D hardware acceleratie wordt ondersteund. ;Gedeelde mappen:Bestanden delen tussen het gast en het host OS, en vice versa. ;Seamless modus:Applicaties van het gast OS worden gemapt op de desktop van het host OS, net alsof de applicaties op de host zelf draaien. == Troubleshooting == === Installatie Guest Additions in Fedora 13 mislukt === ;Probleem: Building the VirtualBox Guest Additions kernel modules [FAILED] ;Oorzaak: De broncode van de kernel is niet beschikbaar op het systeem. ;Oplossing: De pakketten ''gcc'' en ''kernel-devel'' installeren. ;Procedure: Alvorens de installatie te beginnen, verzekeren we dat ons systeem up to date is. $ yum update Herstart de machine. $ reboot Klik in het menu van de VM op ''Devices -> Install Guest Additions...''.<br> Fedora koppelt de image niet automatisch aan het bestandssysteem. Dus mounten we de image manueel. $ mkdir /media/VBoxGA $ mount /dev/cdrom /media/VBoxGA Installeer nu de GNU C Compiler en de broncode van de kernel. $ yum install -y gcc kernel-devel Voor Fedora 13 moest ik volgende packages installeren: $ yum install kernel-devel kernel-headers dkms gcc gcc-c++ {{Bericht | titel=Voorkom het breken van de kernel! | bericht=Let er op dat de broncode van de kernel overeenstemt met de juiste kernelversie.<br>Bij de installatie van het pakket ''kernel-devel'' controleert Fedora niet op welke kernel je werkt, maar installeert sowieso de broncode van de laatste kernelversie. Dat betekent dat als jij op een andere kernel werkt, de broncodes niet volledig correct zijn. De installatie van de Guest Additions zal schijnbaar probleemloos verlopen, maar wanneer je reboot zal de machine vastlopen. | type=tip }} Voer het installatiescript uit. $ cd /media/VBoxGA $ ./VBoxLinuxAdditions-x86.run # 32 bit $ ./VBoxLinuxAdditions-amd64.run # 64 bit Herstart de machine. $ reboot === CPU gebruik host nadert 100% als CentOS guest draait. === ;Probleem: De core die de VM toewijst aan de CentOS guest draait constant aan 100%, terwijl CentOS zelf aangeeft ''idle'' te zijn. ;Oorzaak: De CentOS kernel werkt op een frequentie van 1000Hz, de kernel van de host op een lagere snelheid. We kunnen de kloksnelheid van de kernel als volgt verifiëren: $ cat /boot/config-$(uname -r) | grep CONFIG_HZ ;Oplossing: De CentOS kernel laten werken op 100Hz. ;Procedure: Het aangekaarte probleem kan op twee manieren opgelost worden.<br> Een eerste oplossing is een ''custom kernel'' te ''builden'', waarbij je de kloksnelheid verlaagt. Hier gaan we niet verder op in.<br> Een tweede, en vooral minder omslachtige methode, is om aan de kernel opties mee te geven. De optie die we nodig hebben is ''divider''.<br> Kernel opties kunnen we vastleggen in de configuratie van de GRUB boot loader. $ vi /boot/grub/menu.lst Een regel beginnend met ''title'' komt overeen met een entry in het GRUB menu. Bijvoorbeeld: title CentOS (2.6.18-194.17.1.e15) root (hd0,0) kernel /vmlinuz-2.6.18-194.e15 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-194.e15.img Een kernel optie kunnen we toevoegen op het einde van de regel beginnend met ''kernel''. Zodoende: title CentOS (2.6.18-194.17.1.e15) root (hd0,0) kernel /vmlinuz-2.6.18-194.e15 ro root=/dev/VolGroup00/LogVol00 divider=10 initrd /initrd-2.6.18-194.e15.img De CentOS kernel zal nu zijn werk doen op 1000Hz/divider = 1000Hz/10 = 100Hz < 250Hz = kloksnelheid kernel host OS. Het spreekt vanzelf dat we de optie moeten toevoegen aan elke GRUB entry waar we de optie toegepast willen zien. Zodus, wanneer we ons systeem updaten met een nieuwe kernel, zullen we de optie terug moeten gaan toevoegen aan de nieuwe GRUB entry.<br> We herstarten de machine. $ reboot == Bibliografie == * [https://www.virtualbox.org/ www.virtualbox.org] {{Sub}} hhytkfc1n5dkaovvvjfyxk0bhp42jt2 Linux Systeembeheer/Firewall probleem met remote SSH 0 25930 422798 372079 2026-04-15T17:19:33Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422798 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Inleiding == == Situatieschets == Na het installeren van de CentOS server wou ik van op andere hosts in mijn netwerk via SSH verbinden met de CentOS server.<br> Na het volgen van de tutorial op [https://wiki.centos.org/HowTos/Network/SecuringSSH de CentOS Wiki] en wat zoeken bleek dat de firewall de remote SSH blokkeerde.<br> De hosts binnen 192.168.2.0/24 konden wel pingen naar de CentOS Server.<br> <br> We proberen opnieuw poort 22 (SSH) open te zetten voor het interne netwerk door, zoals beschreven in de wiki, de regel '''-A INPUT -p tcp -s 192.168.2.0/24 --dport 22 -j ACCEPT''' aan iptables toe te voegen, en herstarten vervolgens de iptables service.<br> $ service iptables restart Mogelijke output van ping en SSH op Laptop0 na het uitvoeren van vorige stappen:<br> $ scorpion@Scorpion:~$ ''ping 192.168.2.2'' PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data. 64 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=1.23 ms 64 bytes from 192.168.2.2: icmp_seq=2 ttl=64 time=1.09 ms … $ scorpion@Scorpion:~$ ''ssh thepegasus@192.168.2.2'' ssh: connect to host 192.168.2.2 port 22: No route to host == Oplossing == Input gaat default via ''RH-Firewall-1-INPUT'' en niet via ''INPUT'', zie de eerste regel in iptables: ''-A INPUT –j RH-Firewall-1-INPUT''.<br> Door de voorheen aan iptables toegevoegde regel te wijzigen in '''-A RH-Firewall-1-INPUT –p tcp –s 192.168.2.0/24 –dport 22 –j ACCEPT''' kunnen we, na een herstart van de iptables service, verbinden via SSH met de CentOS server van overal binnen het 192.168.2.0/24 netwerk. $ service iptables restart == Resultaat == Verbinden over SSH van PC1 naar 192.168.2.2 (de CentOS server) lukt. == Hoe voorkomen == Configureer SELinux aan de hand van de Text User Interface. $ system-config-securitylevel-tui == Uitbreiding: extern netwerk == Om te verbinden met de CentOS server van een netwerk buiten 192.168.2.0/24 moeten we de iptables uitbreiden, de poort 22 laten forwarden en een route toevoegen in beide routers.<br> In mijn voorbeeld zal 192.168.1.0/24 verbonden worden met 192.168.2.0/24.<br> Router 1: (192.168.1.1) Destination: 192.168.2.0 Netmask: 255.255.255.0 Gateway: 192.168.1.6<br> Router 2: (192.168.2.1) Destination: 192.168.1.0 Netwask: 255.255.255.0 Gateway: 192.168.1.1<br> == Bibliografie == https://wiki.centos.org/HowTos/Network/SecuringSSH {{Sub}} igdqfetu65o8nioq3wdyjm7y8m61j77 Linux Systeembeheer/Beveiliging 0 26019 422789 372077 2026-04-15T17:10:18Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422789 wikitext text/x-wiki {{Index Linux Systeembeheer}} == Leerdoelen == * Werkwijze van computer-inbraken kennen en begrijpen ** Stappen: verkenning (passief/actief), exploits toepassen (toegang verkrijgen, privileges verhogen, spoofing, buffer overflow attack, Denial of Service), toegang behouden (trojans, backdoors, rootkits), sporen uitwissen ** De werking van volgende tools gebruikt bij aanvallen op computersystemen begrijpen en ze kunnen gebruiken: dig, nmap, ping, traceroute/tracepath/..., whois, wireshark ** De volgende tools kennen die gebruikt worden bij aanvallen op computersystemen: kismet, nessus * Weten hoe een systeembeheerder zich kan beschermen tegen technieken gebruikt door inbrekers ** Principes: laagst mogelijke privileges, zo weinig mogelijk software draaien, default deny, encryptie (SSL), goede wachtwoorden kiezen, ** Logbestanden kennen, weten hoe je ze kan gebruiken: '''/var/log/messages''', logs voor logins ** Soorten beveiligingstools kennen: vulnerability scanners (vb. Nessus), Intrusion Detection Systems (vb. tripwire, snort), Intrusion Prevention Systems * Beveiligingsvoorzieningen in Fedora en CentOS kennen en kunnen gebruiken: SELinux, iptables (zie hoofdstuk firewalls) == Tekst == === Bespreken van de stappen === Merk op dat niet steeds alle stappen gevolgd moeten worden. Als bijvoorbeeld al genoeg informatie is losgekomen kan men stappen overslaan. De volgorde hoeft ook niet per se gevolgd te worden, bijvoorbeeld als de aanvaller denkt genoeg informatie te hebben gaat hij door naar stap 3. Achteraf blijkt echter dat hij niet genoeg informatie heeft, dus kan hij terugkeren naar stap 1 of 2. ==== Stap 1: Passieve verkenning ==== Om een systeem te kunnen exploiteren heeft de aanvaller eerst algemene informatie nodig, anders weet hij niet wat hij aanvalt. Nadat de hacker een bedrijf gekozen heeft om in te breken moet hij uitzoeken waar dat bedrijf zich bevindt op het internet. Met passieve verkenning kan (in extreme gevallen) soms al genoeg informatie bekomen worden, denk aan wat je zelf zegt tegen iemand in vertrouwen als je denkt dat niemand luistert. Onder passieve verkenning classificeren we alle vormen van informatieverzameling die niet detecteerbaar zijn voor het doelwit. ===== Sniffing ===== Dit is één van de populairste methoden voor passieve verkenningen. Hierbij wordt het netwerkverkeer van een bepaald netwerksegment bestudeerd en opgenomen. Dit werkt bij uitstek goed op onvoldoende beveiligde draadloze netwerken. Als de hacker zoekt voor één specifiek gegeven kan deze manier wel wat tijd in beslag nemen, anderzijds als hij het patroon kent van de pakketten die hij zoekt kan het al heel wat simpeler zijn. Er bestaan tools voor paswoord sniffing, hierbij zal de tool zoeken naar authenticatiepakketten. Wanneer hij er een vindt, zal het geëncrypteerde paswoord opgeslagen worden. De aanvaller kan dan een passwoordkraker gebruiken om het paswoord te achterhalen. ===== Information gathering ===== Hierbij zoekt de aanvaller naar informatie in publiek toegankelijke databanken die bruikbaar is bij het opstellen van een actieve aanval. Voorbeelden zijn whois (geeft informatie over o.a. DNS-servers, contactgegevens van systeembeheerders, telefoonnummers, enz.), ARIN of RIPE (geeft informatie over netwerkblokken toegekend aan de organisatie), tijdschrift- of krantenartikels, persberichten, enz. ==== Stap 2: Actieve verkenning ==== In deze stap gebruikt de aanvaller technieken die in principe gedetecteerd kunnen worden door het doelwit. De aanvaller zal het systeem peilen om zo bijkomende informatie te vinden, bijvoorbeeld met een portscanner als ''nmap''. Dit zijn enkele voorbeelden van wat de aanvaller zal proberen te ontdekken: * Hosts die toegankelijk zijn * Locaties van routers en firewalls * Poorten die openstaan * Welk OS draait * Services die runnen * Versies van applicaties die runnen ===== Social Engineering ===== Social engineering is een information gathering techniek waarbij een hacker een aanval op computersystemen tracht te ondernemen door de zwakste schakel in de computerbeveiliging, namelijk de mens, te kraken. De aanval is erop gericht om vertrouwelijke of geheime informatie los te krijgen, waarmee de hacker dichter bij het aan te vallen object kan komen. De beroemdste hacker die van deze techniek gebruik maakte is [https://en.wikipedia.org/wiki/Kevin_Mitnick Kevin Mitnick]. Hij heeft zijn ervaringen verwoord in het boek The Art of Deception. Kenmerkend voor Social engineering is dat er geen aanval op de techniek zelf wordt uitgevoerd. Een aanvaller tracht om * de nieuwsgierigheid van een slachtoffer te wekken, * medelijden bij een slachtoffer te wekken, * een slachtoffer bang te maken. De aanvaller doet zichzelf voor als iemand anders. Dit doet de aanvaller met het doel om via de aangenomen, vertrouwenwekkende, rol informatie te verkrijgen die op een andere manier niet of met aanzienlijk meer inspanning of hogere kosten te krijgen is. Een amusante presentatie over social engineering is die van [https://en.wikipedia.org/wiki/Johnny_Long Johnny Long] op DefCon 15 genaamd No Tech Hacking. https://www.youtube.com/watch?v=5CWrzVJYLWw ==== Stap 3: Het systeem exploiteren ==== Meestal denken we hierbij enkel aan toegang krijgen maar privileges verhogen en denial of service zijn hier ook onderdeel van. Deze drie zijn nuttig afhankelijk van welk type aanval de aanvaller wil starten. Ze kunnen ook door elkaar gebruikt worden. Een aanvaller kan bijvoorbeeld toegang hebben tot een bepaald gebruikersaccount maar omdat deze geen root toegang heeft hij geen rechten tot een bepaald bestand. Dan zal de aanvaller een aanval uitvoeren die de privileges verhoogd zodat zijn toegangslevel verhoogd wordt zodat hij toegang heeft tot het bestand. De aanvaller kan ook een systeem aanvallen om het later te gebruiken bij een aanval op een ander systeem. ===== Toegang krijgen ===== ====== Aanval op het OS ====== De standaardinstallatie van het merendeel van de besturingssystemen heeft een grote hoeveelheid services die starten en poorten die geopend zijn. Vanuit het standpunt van een OS ontwikkelaar is dit logisch, ze willen dat de klant hun product kan installeren en configureren in een minimum tijdspanne met zo weinig mogelijk moeite en problemen. Als de services niet aanwezig zouden zijn, zouden de klanten hulp opzoeken bij de makers van het besturingssysteem en dit zou dan uitdraaien in extra kosten voor de OS ontwikkelaar. Vanuit het standpunt van beveiliging is dit niet logisch. Waarom zou iemand een onveilig besturingssysteem installeren? Meestal gebeurd dit uit onwetendheid, de gebruiker / beheerder beseft mogelijk het risico niet van hoe kwetsbaar het besturingssysteem is. Als dit nog niet erg genoeg is denken bedrijven ook nog eens dat hun job gedaan is nadat het besturingssysteem geïnstalleerd is. Ze updaten niet of zelden. Dit zorgt ervoor dat bedrijven bij een versie van het besturingssysteem zitten die uitgefaseerd / verouderd is. Deze besturingssystemen hebben een groot aantal kwetsbaarheden die meestal ook reeds gekend zijn door de aanvallers. ====== Aanval op de applicatie ====== Deze aanvallen maken gebruik van de imperfecte manier van beveiliging die vandaag aan te treffen zijn bij software. Programmeurs zitten vaak onder grote tijdsdruk en daarom wordt het testen van software vaak niet grondig genoeg uitgevoerd. De meeste software heeft vandaag ook zoveel extra functionaliteiten dat zelfs als er meer tijd was de kans bestaat dat niet alles getest zou kunnen worden. Gebruikers zijn niet bezorgd om beveiliging, als het programma doet wat ze nodig hadden zijn ze tevreden. Veiligheid zou niet mogen aanzien worden als een extra maar meer als een vereiste. Om een hoge graad van beveiliging te voorzien zou het dus ook moeten ingebouwd zijn in de applicatie vanaf het begin. ====== Scripts en voorbeeldprogramma aanvallen ====== Vooral voor UNIX zijn veel voorbeeldscripts en voorbeeldprogramma's beschikbaar. Het is zeer handig een voorbeeld te hebben maar ook zeer dom om het uit te voeren zonder exact te weten wat erin staat. Vroeger had Apache een reeks basisscripts ter beschikking waarbij de meesten kwetsbaarheden hadden. Active Server Pages (ASPs) hebben meestal veiligheidslekken. Een voorbeeld hiervan is de standaard website die meegeleverd is met IIS. Deze heeft de admintools op afstand beschikbaar vanaf de startpagina. Deze tool kan dan gebruikt worden door de aanvaller. ====== Verkeerde configuratie aanvallen ====== In meerdere gevallen wordt ingebroken in systemen omdat ze fout geconfigureerd zijn. Bijvoorbeeld een beheerder werkt met een systeem en is niet zeker hoe het in te stellen. Hij probeert een aantal dingen uit en wanneer het werkt, stopt hij met verder zoeken. Het probleem hierbij is dat hij nooit de moeite doet om te zien wat het deed werken en het overbodige werk niet opruimt. Om een systeem optimaal te beveiligen moeten onnodige services en software verwijderd worden. Op deze manier zijn enkel de strikt noodzakelijk zaken aanwezig en hoeven ook enkel deze beveiligd te worden. Fout configureren is eenvoudig te voorkomen aangezien de beheerder hier zelf voor zorgt. ===== Privileges verhogen ===== Het uiteindelijke doel van de aanvaller is steeds root of administrator toegang te verkrijgen. In sommige gevallen kan de aanvaller deze toegang onmiddellijk verkrijgen. Meestal zal hij eerst echter minimale toegang verkrijgen en daarna via het verhogen van privileges volledige toegang krijgen. Dit type aanval, waar een aanvaller onrechtstreeks root of administrator toegang krijgt door meerdere toegangslevel te verkennen heet het verhogen van privileges. ===== Denial of service ===== DoS zijn aanvallen die bevoegde gebruikers toegang ontzeggen tot een bron. Dit kan gaan van gebruikers toegang verlenen tot een bepaalde website of gebruikersaccounts uitschakelen zodat ze niet kunnen inloggen. Als je bijvoorbeeld van thuis werkt en dus je internet nodig hebt om te verbinden met de server van het bedrijf, als dan iemand je internetkabel doorknipt veroorzaakt hij een DoS die je ervan weerhoudt je werk te doen. Jammer genoeg zijn deze aanvallen relatief simpel uit te voeren op het internet aangezien geen toegang vereist is. Tools voor deze aanvallen uit te voeren zijn vaak makkelijk te vinden en uit te voeren. ==== Stap 4: Programma's uploaden ==== In de meeste gevallen zal de aanvaller programma's laden in het systeem. Deze kunnen dan zorgen voor meer toegang, systemen op het netwerk beschadigen of tools op de server plaatsen die gebruikt zullen worden om andere systemen te beschadigen. Om schade aan te richten of informatie te bekomen moet de aanvaller succesvol inbreken in een site en de nodige informatie achterhalen. Het internet voegt hier echter een nieuwe dimensie aan toe. Sommige tools hebben aanzienlijk meer processorkracht nodig en een betere verbinding tot het internet. Daarom kan de aanvaller er misschien op doelen het veroverde systeem te gebruiken bij een volgende aanval naar een ander systeem. Op deze manier is het ook moeilijker te achterhalen wie achter de aanval zit aangezien deze afkomstig is van een ander gekraakt systeem. ==== Stap 5: Data downloaden ==== Bij sommige aanvallen, zoals bedrijfsspionage, is de aanvaller uit op data. Deze data kan gaan van nieuwe onderzoeken, nieuwe producten, het klantenbestand, de toekomstvisie van het bedrijf. In al deze gevallen zal de aanvaller data willen downloaden naar een andere locatie. Nadat de data gedownload is naar de andere locatie kan de aanvaller de data analyseren. Deze aanval kan enkel voorkomen worden tijdens dat de aanvaller de data download (of ervoor) want nadien heeft hij reeds alles tot zijn beschikking. ==== Stap 6: Toegang behouden ==== In de meeste gevallen plaatst de aanvaller een backdoor nadat hij toegang verkregen heeft. Door later gebruik te maken van deze backdoor moet hij alle voorgaande stappen niet herhalen om opnieuw toegang te verkrijgen tot het systeem. Een backdoor kan zo simpel zijn als gewoon een extra gebruikersaccount toe te voegen aan het systeem. Dit is makkelijk te doen met de bekomen root / administrator rechten. Als het bedrijf echter zijn actieve accounts bekijkt is de kans groot dat het account gedetecteerd wordt. Als het een groot systeem is met duizenden gebruikers bestaat de kans dat het niet gemerkt wordt. Een meer geavanceerde manier om een backdoor te maken is het overschrijven van een systeembestand met een versie dat een verborgen functie heeft. Zo kan men bijvoorbeeld de logon daemon overschrijven die verzoeken van het inloggen van gebruikers verwerkt. Voor de gewone gebruikers werkt het normaal, maar met een bepaald user-id en paswoord heb je alle rechten. Deze bewerkte programma's heten trojan versions omdat ze verborgen functies hebben. Een nog andere manier om een backdoor te maken is het schrijven van een programma dat werkt op een bepaalde poort. Als de aanvaller connectie legt met die poort krijgt hij volledige toegang tot het systeem of zelfs het hele netwerk. Een aanvaller kan ook gebruik maken van een trojan horse, deze voorziet toegang tot het systeem en maakt een backdoor op hetzelfde moment. ==== Stap 7: Sporen uitwissen ==== De logbestanden wissen is een manier om sporen uit te wissen. de logbestanden houden bij wanneer welke persoon wat heeft opgevraagd. Dus de aanvaller zal het logbestand raadplegen en de entries met betrekking tot zijn daden verwijderen. Het gehele logbestand verwijderen zou argwaan wekken bij de beheerder en bovendien voegen meeste systemen een entry toe in het logbestand dat aangeeft dat het bestand verwijderd is. Daarom is het belangrijk om als beheerder het logbestand op te slaan op een andere server en ideaal zou zijn dat die een write-only server is. Op deze manier is de kans minimaal dat de sporen kunnen gewist worden. De aanvaller kan ook het loggen van acties uitschakelen zodra hij toegang heeft gekregen tot de machine. Dit vereist wel meer kennis maar is zeer effectief. In het geval dat de aanvaller bestanden overschreven heeft moet hij er ook voor zorgen dat de gewijzigde bestanden geen argwaan opwekken. De meeste bestanden hebben datums van wanneer ze geopend zijn en de grootte van het bestand. Er zijn programma's die bestanden flaggen als gewijzigd wanneer deze gewijzigd worden. Om dit te voorkomen, kan de aanvaller na het wijzigen van de bestanden hun eigenschappen opnieuw aanpassen naar hun oude waarden. Een goede manier van beveiliging is werken met checksums. De checksum zal pas gelijk zijn alles beide bestanden identiek zijn. {{Bericht | titel=Tip: een GUI voor het instellen van SELinux | bericht=Installeer volgende package: <code>yum install -y policycoreutils-gui</code> Kies dan in het menu Systeem → Beheer → SELinux Beheer of System → Administration → SELinux Management | type=tip }} == Nmap == Nmap staat voor "Network Mapper" en is een opensource tool om de beveiliging van een netwerk te monitoren. Nmap gebruikt ip-pakketten om het aantal hosts op een netwerk te bepalen en om gegevens over deze hosts te weten te komen, zoals bv: * welke services deze hosts aanbieden, * op welk besturingssysteem deze draaien, * welke firewalls ze draaien. Nmap kan gebruikt worden om beveiligingslekken te zoeken in netwerken. Installeer de service $ yum -y install nmap Wanneer het commando gebruikt wordt zonder opties mee te geven, krijgen we een globaal beeld van welke opties allemaal kunnen gebruikt worden: $ nmap * Target Specification -iL <inputfilename> Leest een lijst met targets in vanuit een bestand. Dit bestand is handiger in gebruik dan vele hosts in te geven via command line -iR <num hosts> Kies een aantal willekeurige hosts op het internet en scan deze. Gebruik deze optie op wijselijk! * Host Discovery -sL List Scan. Geeft een lijst van alle IP-addressen op het netwerk weer, zonder pakketjes naar de hosts te sturen -sn No Port Scan. Nmap doet geen port scan na host discovery. Enkel de beschikbare hosts worden geprint. Staat ook bekend als 'Ping Scan' -Pn No Ping. Host discovery wordt niet uitgevoerd -PS <port list> TCP SYN Ping. Stuur een leeg TCP pakket met de SYN bitop 1. De standaard destination poort is 80 -PA <port list> TCP ACK Ping. Stuur een leeg TCP pakket met de ACK bit op 1. Voor de rest gelijkaardig aan -PS -PU <port list> UDP Ping. Stuur een UDP pakket naar de opgegeven poorten -PY <port list> SCTP INIT Ping. Stuur een SCTP pakket dat een klein INIT deeltje bevat naar de opgegeven poorten -PO <protocol list> IP Protocol Ping. Stuur IP pakketten met het opgegeven protocolnummer -PR ARP Ping. Scan een ethernet LAN * Scan Techniques -sS TCP SYN Scan -sT TCP connect scan -sU UDP scan -sA TCP ACK scan -sO IP protocol scan. Geeft weer welke IP protocollen ondersteund worden door het opgegeven doel * Port Specification and Scan order -p <Port ranges> Scant enkel de poorten uit de opgegeven lijst -F Fast Scan. Scan 100 poorten ipv 1000 (default) -r Als default scant nmap de poorten in willekeurige volgorde, bij de -r vlag scant nmap in sequentiële volgorde. * Service and Version Detection -sV Geeft terug welke services de host aanbiedt * OS Detection -O Geeft terug welk OS er draait op de opgegeven host. * Nmap Scripting Engine -sC Geeft terug welke services er draaien op de host * Timing and Performance -T paranoid|sneaky|polite|normal|aggressive|insane Stel manueel in hoe 'agressief' Nmap de hosts moet scannen * Firewall/IDS Evasion and spoofing -f Fragment Packets. Nmap gebruikt mini gefragmenteerde IP pakketjes. Hierdoor verlaagt de 'agressiviteit' (zie timing and performance) -D <decoy1>[,<decoy2>] Nmap gebruikt 'decoys', zodat het lijkt alsof de decoys het netwerk aan het scannen zijn en niet onze machine. Hiervoor wordt het voor de doelhost moeilijker om de source te ontdekken -S <ip_address> Spoof ip-address. Gebruik een vals ip-adres * Output -oN <filespec> normal output -oX <filespec> XML output -oS <filespec> ScRipT KIdd|3 oUTpuT -oG <filespec> grepable output -oA <basename> output in alle formaten -v Increase verbosity level. Nmap schrijft meer details weg over de uitgevoerde scans -d Increase debugging level * Miscellaneous Options -6 Enable IPv6 scanning -A Aggressive scan options -V Geeft de huidige versie van Nmap -h Help optie vb: $ nmap 192.168.1.100 //toont welke poorten er openstaan op het ipadres <pre>Starting nmap 3.83.DC13 ( https://www.insecure.org/nmap/ ) at 2005-11-02 12:18 CET Interesting ports on odin.asgard (192.168.1.100): (The 1658 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 111/tcp open rpcbind 139/tcp open netbios-ssn 445/tcp open microsoft-ds 631/tcp open ipp 873/tcp open rsync 891/tcp open unknown 2049/tcp open nfs 32771/tcp open sometimes-rpc5 32772/tcp open sometimes-rpc7 Nmap finished: 1 IP address (1 host up) scanned in 0.546 seconds</pre> == DIG == DIG (Domain Information Groper) is een flexibele Linux tool voor het ondervragen van DNS-servers. Het doet DNS-lookups en geeft de informatie die hij terugkrijgt weer van de ondervraagde DNS-servers. De meeste DNS-administrators gebruiken DIG ook om problemen te lokaliseren. Alhoewel DIG normaal wordt gebruikt met command-line argumenten, heeft het een batch modus om DNS lookup requests vanuit een bestand te halen. DIG maakt deel uit van het BIND-softwarepakket en vervangt oudere tools als nslookup en host. Synopsis dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-pport#] [-q name] [-t type] [-x addr] [-y [hmac:]name:key] [-4] [-6] [name] [type] [class] [queryopt...] dig [-h] dig [global-queryopt...] [query...] vb: $ dig any example.com //dig is het commando, any is welk type van record en example.com de domein naam die je wilt onderzoeken. <pre> ; <<>> DiG 9.7.0-P1-RedHat-9.7.0-9.P1.fc13 <<>> any example.com //de versie van dig die je gebruikt. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7359 //de status bepaald of de domein naam correct: NOERROR is goed, NXDOMAIN staat voor een niet bestaand domein. ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 //de vlaggen tonen het aantal lijnen in de toegewezen section. Authority staat op 0 omdat het ip geen autoritaire functie heeft. ;; QUESTION SECTION: ;example.com. IN ANY //toont naar wat je zocht ;; ANSWER SECTION: //het antwoord de domein naam zijn IP adressen. example.com. 80548 IN A 192.0.32.10 example.com. 12790 IN AAAA 2620:0:2d0:200::10 ;; Query time: 12 msec //extra informatie ;; SERVER: 192.168.15.5#53(192.168.15.5) ;; WHEN: Fri Jan 7 14:57:32 2011 ;; MSG SIZE rcvd: 73 </pre> == Ping == PING is uw eerste verdedigingsmiddel bij het oplossen van problemen. PING is een voorziening waarmee u IP-connectiviteit kunt controleren door een ICMP-echopakket te versturen naar een IP-adres of doel-NetBIOS-naam. Met PING kunt u hardwareproblemen in het netwerk, incompatibele configuraties en gebrekkige connectiviteit achterhalen. Probeer eerst het IP-adres van de doelhost te pingen. $ ping ipadres <pre> SYNOPSIS ping [-mqw] [-c count] [-i wait] [-p pattern | -z] [-s packetsize] [ignored-options] host [host...] or ping -t [-mqw] [-c count] [-i wait] [-p pattern | -z] [-s packetsize] [ignored-options] host [host...] ignored-options: [-dfrRv] [-l preload] </pre> * ping het standaard loopback-adres om de lokale installatie en configuratie te controleren. $ ping 127.0.0.1 * ping het IP-adres van de lokale computer om te controleren of het wordt herkend door het netwerk. * Controleer vervolgens de connectiviteit van de standaardgateway. Hierdoor controleert u niet alleen de werking van de gateway (router), maar ook de communicatie tussen de host en de gateway. * ping het IP-adres van de externe host om de communicatie naar de router te controleren. vb: $ ping 192.168.15.5 –c 5 //-c 5 staat voor het verzenden van 5 requests <pre>PING 192.168.15.5 (192.168.15.5) 56(84) bytes of data. //icmp_seq = nummer van het pakket; ttl = de time to live; time= de round-trip time 64 bytes from 192.168.15.5: icmp_seq=1 ttl=64 time=2.21 ms 64 bytes from 192.168.15.5: icmp_seq=2 ttl=64 time=1.29 ms 64 bytes from 192.168.15.5: icmp_seq=3 ttl=64 time=1.33 ms 64 bytes from 192.168.15.5: icmp_seq=4 ttl=64 time=2.48 ms 64 bytes from 192.168.15.5: icmp_seq=5 ttl=64 time=1.23 ms --- 192.168.15.5 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4008ms //het succes percentage en de gebruikte tijd rtt min/avg/max/mdev = 1.235/1.714/2.483/0.527</pre> == Traceroute == traceroute/tracert is een TCP/IP-tool om na te gaan welke route TCP-pakketten afleggen naar een bepaalde host. Het werkt door de time to live (TTL) waarde bij elke tussenliggende host met 1 te verlagen, als de TTL waarde 1 bereikt zal de laatste host deze afwijzen en de melding ICMP time exceeded (tijd verlopen) retourneren. De tool mtr is identiek aan tracert maar geeft daarnaast ook de packetloss op de route weer. Het programma gebruikt de meldingen van de hosts tussen start en bestemming van de route om na te gaan welke hosts de tussenliggende zijn. Hierbij wordt ook de reactietijd van deze hosts (in milliseconden) weergegeven. Deze hosts worden aangegeven door zogeheten 'hops' (waarbij de eerste host in de route hop 1 is, de tweede hop '2', enzovoorts). Om deze reden wordt traceroute vaak gebruikt om na te gaan waar fouten in een computernetwerk optreden. <pre>Synopsis traceroute [-46dFITUnrAV] [-f first_ttl] [-g gate,...] [-i device] [-m max_ttl] [-p port] [-s src_addr] [-q nqueries] [-N squeries] [-t tos] [-l flow_label] [-w waittime] [-z sendwait] host [packetlen] traceroute6 [options] tracert [options] tcptraceroute [options] </pre> vb: $ traceroute nl.wikipedia.org <pre>traceroute to rr.knams.wikimedia.org (145.97.39.155), 30 hops max, 38 byte packets // het max aantal hops en de grote van de pakketjes. 1 Router (192.168.0.254) 0.401 ms 0.842 ms 0.920 ms // de trace heeft 8 hops nodig om zijn bestemming te bereiken. 2 213.197.27.154 (213.197.27.154) 9.036 ms 8.292 ms 7.605 ms 3 213.197.27.117 (213.197.27.117) 7.978 ms 8.232 ms 7.057 ms 4 XSR03.Asd001A.surf.net (195.69.144.50) 8.251 ms 8.735 ms 8.552 ms 5 AF-500.XSR01.Amsterdam1A.surf.net (145.145.80.9) 8.979 ms 8.593 ms 9.002 ms 6 KNCSW001-router.Customer.surf.net (145.145.18.158) 8.867 ms 8.662 ms 8.497 ms 7 145.97.32.29 (145.97.32.29) 8.656 ms 8.775 ms 8.450 ms 8 rr.knams.wikimedia.org (145.97.39.155) 9.892 ms 8.610 ms 8.725 ms</pre> == Mtr == Mtr combineert de functionaliteiten van traceroute en ping in één enkel diagnostisch commando. Wanneer mtr wordt uigevoerd, onderzoekt het de netwerkverbinding tussen de host waar mtr op draait en de doelhost door pakketten met een lage TTL (Time To Live) waarde te verzenden. Het blijft deze pakketjes verzenden terwijl het let op de reactietijd van de tussenliggende routers. Hierdoor kan mtr de responstijden en antwoordpercentages van alle hops op de route weergeven. vb: $ mtr www.google.com My traceroute [v0.75] ilse.localdomain (0.0.0.0) Thu Dec 17 00:08:20 2009 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings HOST: ilse.localdomain Loss% Snt Last Avg Best Wrst StDev 1. 10.0.2.2 0.0% 10 0.0 1.4 0.0 2.3 0.6 2. 12.118.134.5 2.0% 100 14.5 18.8 14.0 124.9 13.2 3. 12.17.165.97 0.0% 100 15.4 19.1 14.3 100.8 11.1 4. .... == Netstat == Netstat wordt gebruikt om de status van alle openstaande netwerkverbinding te bekijken. Dit is handig om te detecteren of iemand op uw systeem aan het werken is. Ook de routing-tabel en de netwerkinterfaces worden weergegeven. Let op: ook sockets die in gebruik zijn worden weergegeven. Enkele handige vlaggen: $ netstat -t: Weergave van TCP-verbindingen die naar de host openstaan -u: Weergave van UDP-verbindingen die naar de host openstaan -r: Lees de kernel routing tables uit -s: Toon beknopte statistieken voor elk protocol --interface=<iface>, -i: Toon een tabel met alle netwerkinterfaces, of de opgegeven iface == Whois == Whois is een protocol om gegevens van een domeinnaam of IP-adres te achterhalen door middel van een query/vraag aan een database. In een whois staan meestal de naam en contactgegevens van de eigenaar, de provider en nameservers van de DNS-servers. Traditioneel werden whois-zoekopdrachten gedaan via de command-line maar tegenwoordig zijn er ook veel websites die deze service bieden. Deze resultaten kunnen per domein verschillen. SYNOPSIS whois [ -h HOST ] [ -p PORT ] [ -aCFHlLMmrRSVx ] [ -g SOURCE:FIRST-LAST ] [ -i ATTR ] [ -SSOURCE ] [ -T TYPE ] object whois [ -t ] [ -v ] template whois [ -q ] keyword vb: https://www.ip-adress.com/whois/hogent.be of via linux $ whois hogent.be <pre>Domain: hogent Status: REGISTERED Registered: Thu Dec 14 1995 Licensee: Not shown, please visit www.dns.be for webbased whois. Agent Technical Contacts: First Name: Service Support Team Last Name: BELNET Company Name: BELNET Language: en Street: Wetenschapsstraat 4 Rue de la Science Location: 1000 Brussels Country: BE Phone: +32.27903333 Fax: +32.27903334 Email: hostmaster@belnet.be First Name: Service Support Team Last Name: BELNET Company Name: BELNET Language: en Street: Rue de la Science, 4 Location: 1000 Brussels Country: BE Phone: +32.27903333 Fax: +32.27903332 Email: hostmaster-be@belnet.be Agent: Name: BELNET Website: domains.belnet.be Nameservers: ens3.hogent.be (193.190.88.189) ns.belnet.be ens1.hogent.be (193.190.172.1)</pre> == Nessus == Nessus is een open-source vulnerability scanner die het systeem uitvoering aftast op zijn kwetsbaarheden. Zijn doel is potentiële kwetsbaarheden op de geteste systemen te ontdekken. Bv: * de computer controleren op open ports, * testen op bekendste vulnerabilities, * het systeem testen op lege of default wachtwoorden. De controle gebeurd via plug-ins die automatisch up-to-date worden gehouden door de Nessus-server. Download en installeer Nessus. https://www.nessus.org/download/ Voor fedora 14 (32bit) is Adobe Flash vereist. Download Nessus-4.4.0-fc14.i386.rpm $ rpm -ivh Nessus-4.4.0-fc14.i386.rpm $ /opt/Nessus//sbin/nessus-adduser Vul een gewenste gebruikernaam en wachtwoord in met de nodige privileges. Registreer je op https://www.nessus.org/register zodat je de nieuwste plug-ins kunt gebruiken. Deze plug-ins heb je nodig om het systeem te kunnen testen. Op de website kies je voor thuisgebruiker en geef je je e-mailadres in zodat je een activatiecode krijgt. $ /opt/nessus/bin/nessus-fetch –register “activatiecode” Nessus is nu geregistreerd. $ service nessusd start Ga nu naar je webbrowser en voer https://[ipadres]:8834/ in. Dit brengt je naar de gui van Nessus. Introductiefilmpje van Nessus om je op weg te helpen: https://www.youtube.com/watch?v=3RgOtjv4v8E == SSH == SSH staat voor "Secure Shell" en is een protocol dat vanop afstand op een veilige manier kan inloggen op een linux systeem. Het is de opvolger van telnet en maakt in tegenstelling met zijn voorganger gebruik van encryptie. SSH gebruikt poort 22. * SSH installeren: $ yum install ssh * De SSH daemon starten: $ service sshd start * Gebruik: $ ssh [-l gebruikersnaam] doel-ip Standaard logt SSH de client die het commando oproept in op het doel IP-adres, maar er kan ook een gebruikersnaam opgegeven worden. == Bronnen == * Eric Cole, ''[https://books.google.be/books?id=fNRuUrhyd4QC Hackers Beware: Defending Your Network From The Wiley Hacker],'' New Riders, 2002 * Nmap Reference Guide, [https://nmap.org/ https://nmap.org] {{Sub}} h8edvuz2iz72vdya7sourdjugtz8ogg Linux Systeembeheer/Computerparken opvolgen en beheren 0 26021 422796 377750 2026-04-15T17:16:23Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422796 wikitext text/x-wiki {{Index Linux Systeembeheer}} In dit hoofdstuk van de cursus netwerken laten wij enkele manieren zien om een computerpark te beheren en op te volgen. <!-- START DHCP --> == DHCP == === Inleiding === Het DHCP (Dynamic Host Configuration Protocol) geeft client machines de mogelijkheid om zichzelf via het netwerk te configureren, inclusief netwerkadres. Via een DHCP server kunnen machines worden geconfigureerd met hun IP adres, een subnet mask, een default route, DNS server, WINS server etc. Als hiermee alle configuratiegegevens worden ingesteld die geraakt worden bij een omnummering, kan een omnummering voor deze machines dus volstaan met het aanpassen van de DHCP server configuratie. DHCP kan ook gebruikt worden voor servers en printers, die veelal een vast IP adres nodig hebben (in verband met hun DNS entries). Veel DHCP servers ondersteunen dit doordat ze aan het MAC adres een vast nummer kunnen toewijzen. Het kan erg handig zijn om zo veel mogelijk machines via DHCP te configureren. De DHCP server is dan ook een vrij essentiële netwerk component: als die gestoord is kan er geen machine worden opgestart. Het protocol maakt gebruik van twee componenten; de DHCP-server en de DHCP-client. De client verstuurt tijdens het opstarten een DHCP-verzoek (de '''DHCP-request''') in de vorm van een broadcast naar de server. Omdat het een broadcast is, gaat het pakketje dus niet verder dan de lokale router en kan een DHCP-server op een ander netwerksegment niet bereikt worden. De DHCP-server stuurt als reactie op de DHCP-request een pakketje terug met daarin de benodigde informatie. Dit pakketje wordt ook wel de '''DHCP-offer''' genoemd. De client antwoordt hierop met een '''DHCP-ack''' om aan te geven dat hij met deze DHCP-server in zee wil gaan. Om een DHCP-verzoek succesvol te laten verlopen, is het nodig dat de DHCP-server op hetzelfde netwerksegment als de client voorkomt; het verzoek wordt immers verstuurd in de vorm van een Broadcast. Als de DHCP –server op een ander segment voorkomt, kan op de router gebruik gemaakt worden van de '''DHCP-relay-agent'''. Dit is een stukje software dat in staat is een DHCP-request door te sturen naar een DHCP-server op een ander netwerk. DHCP-relay agents zijn beschikbaar voor vrijwel elke router. === Leerdoelen === * De functie van een DHCP-server begrijpen * Een Linux DHCP-server kunnen opzetten === DHCP: Algemene uitleg === De DHCP-server die wij opstellen kent adressen toe aan de hand van dynamische allocatie. Hierbij krijgt een client alleen voor een bepaalde periode de beschikking over een IP-adres. De duur van deze periode wordt gedefinieerd in de zogenaamde lease. Hierbij moet een reeks adressen die uitgedeeld kunnen worden (de range) gedefinieerd worden. Deze reeks bestaat uit een begin- en een eindadres. Elk adres dat tussen het begin en het eindadres voorkomt kan uitgedeeld worden. Nadat de lease-periode verstreken is, moet de client opnieuw vragen of hij het adres nog een tijdje kan gebruiken. Hoe lang de lease periode precies duurt en welke parameters er ingesteld worden, wordt bepaald in het algemene configuratiebestand dhcpd.conf. === Installatie en configuratie van een DHCP-server === Installeer de service. $ yum -y install dhcp Zorg ervoor dat de dhcp-service start bij het opstarten van de server: $ chkconfig dhcpd on Bovenstaand commando is gelijk aan "chkconfig --level 2345 dhcpd on && chkconfig --level 016 dhcpd off", maar korter.<br> In runlevel 0 (shutdown), 1 (single user mode) en 6 (reboot), staat de DHCP-server uit. In runlevel 2, 4 (user defined run levels), 3 (console), en 5 (gui), staat de DHCP-server aan. Om de DHCP-server naar eth0 te laten luisteren, wijzigen we de systeemconfiguratie. $ vi /etc/sysconfig/dhcpd DHCPDARGS=eth0 Vooraleer we de service starten gaan we deze configureren. Het configuratiebestand vind je ergens in de map /etc, vaak /etc/dhcpd.conf maar soms ook /etc/dhcp/dhcpd.conf. Een voorbeeld configuratiebestand is eveneens beschikbaar, zie /usr/share/doc/dhcp-*/dhcpd.conf.sample. Volgende lijnen voegen we toe aan de outer scope, dat is bovenaan het bestand. ddns-update-style interim; ignore client-updates; authoritative; Voor meer informatie over bovenstaande parameters verwijzen we naar de man-page. $ man dhcpd.conf Een subnet definiëren we met het sleutelwoord ''subnet''. Voorbeeld: subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time range 192.168.1.10 192.168.1.100; } Een client met een statisch IP adres definiëren we met het sleutelwoord ''host''. Voorbeeld: host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } Syntaxcontrole van het configuratiebestand (optioneel). $ service dhcpd configtest Starten van de DHCP-service. $ service dhcpd start Bij mislukking raadplegen we /var/log/messages. $ tail /var/log/messages === Labo-opdracht: configuratie van een DHCP-server === We willen in een computerlokaal alle desktop-pc's een vast IP-adres geven via een DHCP-server. Bezoekers die met een laptop op het netwerk in het lokaal aansluiten, krijgen een dynamisch toegewezen IP-adres. Het schrijven van een DHCP-configuratie die geschikt is voor deze opstelling is een saai en repetitief werkje dat we best kunnen automatiseren, bijvoorbeeld met een Bash script. Dat is het doel van dit labo. Als invoer gebruiken we een tekstbestand met de gewenste IP-adrestoewijzingen per pc. Op elke lijn van het bestand staan de gewenste hostnaam, het MAC-adres, het gewenste IP-adres (enkel host-deel ervan) en (eventueel) commentaar, gescheiden door TAB-tekens, bijvoorbeeld: server1 00:04:e2:2a:c4:ad 10.0.0.1 Router server2 00:04:e2:2a:bf:4a 10.0.0.2 File-server labo-01 00:04:e2:03:cc:b7 10.0.1.1 Desktop labo-02 00:04:e2:2a:bf:45 10.0.1.2 Desktop labo-03 00:04:e2:03:cc:70 10.0.1.3 Desktop labo-04 00:04:e2:03:cc:94 10.0.1.4 Desktop [...] De volgende algemene instellingen, moeten configureerbaar zijn m.h.v. variabelen: * De standaard-locatie van het invoerbestand (zie hierboven) en uitvoerbestand (bijv. '''/etc/dhcpd.conf''') * Domeinnaam * Het network-mask en broadcast-adres * IP-adressen van gateway, en DNS server(s) * Bereik van de dynamisch uit te delen IP-adressen (= laagste en hoogste IP) * Standaard en maximale lease-tijd Het resulterende configuratiebestand moet conform de syntaxis van '''/etc/dhcpd.conf''' zijn en makkelijk leesbaar (commentaar, indentatie, ...). Er is een deel met de vaste instellingen voor het hele netwerk (routers, subnet masker, broadcast-adres, lease-tijd en bereik van IP adressen. Daarna volgen de toewijzingen van IP-adressen per pc. Afhankelijk van het MAC-adres wordt een vast IP toegekend en een hostnaam ("fully qualified", d.w.z. met de domeinnaam er bij). Merk op dat Linux-hosts deze hostnaam zullen aanvaarden en gebruiken, maar dat Windows pc's deze optie negeren. Verifieer de werking van je script door een opstelling te maken met een DHCP-server en een client. In het geval van fysieke pc's verbind je die best met een cross-overkabel, losgekoppeld van het netwerk. Je kan ook op een virtueel netwerk testen, maar zorg dan wel dat de virtuele DHCP-server (gesimuleerd door de virtualisatiesoftware) uit staat. === Testen === Stap 1: De DHCP-service van VirtualBox uitschakelen (File -> Preferences -> Network -> Host Only Ethernet adapter -> Enable DHCP Server uitzetten).<br> Stap 2: In de network settings (Settings -> Network) van de VM waar de DHCP-service op draait een bridged network adapter instellen.<br> Stap 3: VM starten en controleren of de DHCP-service aan staat.<br> Stap 4: Computer to computer wireless network opzetten. Vervolgens een andere computer verbinden met dat netwerk.<br> Stap 5: Controleren of de IP-adressen door de DHCP-server zijn toegekend.<br> <!-- EINDE DHCP --> <!-- START DNS --> == DNS == === Inleiding === DNS (intern en extern) Het Domain Name System (DNS) is het systeem en protocol dat op het Internet gebruikt wordt. Alle domeinnamen en IP-adressen staan in een database en een DNS-server matcht deze gegevens. Een DNS-server vertaalt niet, omdat er geen enkele logica zit tussen de domeinnamen en IP-adressen. Een DNS-server of Domain Name Server is op deze technologie gebaseerd, en maakt deze matchen, zodat computers niet alleen via het (onpraktische) IP-adres benaderd kunnen worden, maar ook via een hostname (computernaam). Ook het omgekeerde is mogelijk (reverse DNS): een IP-adres wordt gematcht naar de ingestelde hostname. Hoewel dit de meest gebruikte mogelijkheden zijn, wordt DNS ook op andere manieren gebruikt, bijvoorbeeld voor het bepalen van de mailservers voor een domein. Daarnaast kan ook het Sender Policy Framework (SPF) aan TXT records in een DNS-server worden toegevoegd. Mailservers kunnen aan de hand van dit record checken of de herkomst van de e-mail klopt. SPF is één van de instrumenten die zijn ingezet ter bestrijding van wereldwijde spam. De Domain Name Servers spelen een belangrijke rol in een omnummer proces. Omdat ze namen op IP adressen afbeelden (en andersom) is dit de plaats waar de meeste aandacht nodig is. Organisaties met een firewall hebben meestal twee DNS systemen: één waarin alle adressen voorkomen, voor intern gebruik, en een waarin alleen een aantal extern zichtbare adressen voorkomen, een zogenaamde splitDNS. DNS werkt met expiration: aan de client wordt verteld hoe lang een bepaald gegeven geldig is. Deze periode staat meestal op een paar dagen. Het is verstandig dit voor een migratie terug te brengen naar een uur. Oude gegevens zullen dan minder lang overleven, ten koste van een verwaarloosbaar hogere belasting op de DNS servers. Het is van essentieel belang dat het hele DNS beheer van een organisatie op orde is voordat aan een omnummering wordt begonnen. Zoals eerder is aangegeven is het verstandig dit beheer in overeenstemming te brengen met het beheer van machines en nummerplannen. === Leerdoelen === * De werking van DNS begrijpen * Statische toewijzing van hostnamen aan IP-adressen via '''/etc/hosts''' kunnen instellen * Een Linux DNS relay server kunnen opzetten met Dnsmasq * Een Linux DNS server kunnen opzetten met BIND ** de syntax van '''/etc/named.conf''' begrijpen en kunnen toepassen ** de syntaxis van zone files begrijpen ** ''zone files'' en ''reverse zone files'' voor een bepaald domein kunnen opstellen *** Name-servers toewijzen (NS) *** IP-adrestoewijzingen voor hosts instellen (A en AAAA, PTR) *** Aliassen toekennen (CNAME) *** Mailservers voor een domein instellen (MX) *** Diensten in een domein adverteren (SRV) ** een ''slave'' DNS-server voor een domein kunnen opzetten ** de functie van de ''root hints file'' begrijpen === BIND9 (Berkeley Internet Name Deamon) === [https://nl.wikipedia.org/wiki/BIND BIND] (of Berkeley Internet Name Daemon) is de meest gebruikte DNS-server-software. De software werd ontwikkeld aan de Universiteit van Californië, Berkeley. Het project werd ondersteund en later overgenomen door het Internet Systems Consortium. ==== Installatie ==== $ yum install bind bind-utils Het pakket bind-utils bevat enkele handige tools zoals ''nslookup'', ''host'' en ''dig''. Je kan het versienummer van de zojuist geïnstalleerde bind daemon controleren met het commando ''named''. $ named -v ==== Configuratie ==== $ vi /etc/named.conf options { directory "/var/named"; // the default forwarders { 195.238.2.22; // Primary ISP DNS server 195.238.2.21; // Secondary ISP DNS server }; }; zone "localhost" in { type master; file "localhost.zone"; }; zone "a.net" in { type master; file "a.net.db"; }; We kopiëren het BIND9 voorbeeldbestand ''localhost.zone'' naar de map ''/var/named''. $ cp /usr/share/doc/bind-9.3.6/sample/var/named/localhost.zone /var/named/ Wordt er geen voorbeeldbestand geleverd bij de installatie, maak dan zelf het bestand ''/var/named/localhost.zone'' aan en voeg er onderstaande configuratie aan toe. $TTL 86400 $ORIGIN localhost. @ 1D IN SOA @ root ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum 1D IN NS @ 1D IN A 127.0.0.1 Vervolgens maken we het bestand ''/var/named/a.net.db'' aan. $ vi /var/named/a.net.db $TTL 86400 @ IN SOA phobos.a.net. admin.a.net ( 2010062801 ; serial 10800 ; refresh 3600 ; retry 604800 ; expire 86400 ; TTL ) a.net. IN NS phobos.a.net. a.net. IN NS deimos.a.net. phobos.a.net. IN A 192.0.2.1 deimos.a.net. IN A 192.0.2.2 mercurius.a.net. IN A 192.0.2.10 www.a.net. CNAME mercurius venus.a.net. IN A 192.0.2.11 mars.a.net. IN A 192.0.2.12 ftp CNAME mars a.net. IN MX 10 venus.a.net. We voegen nu onze DNS-server toe aan het bestand ''/etc/resolv.conf''. $ vi /etc/resolv.conf search a.net nameserver 192.0.2.1 Tenslotte configureren we de firewall. $ iptables -A INPUT -p udp --dport 53 -s $dnsserverip -m state --state NEW -j ACCEPT $ iptables -A INPUT -p tcp --dport 53 -s $dnsserverip -m state --state NEW -j ACCEPT $ service iptables save $ service iptables restart We starten de DNS-server met de service ''named''. $ service named start '''Een slave-server opzetten''' Om een slave-server op te zetten moeten we het configuratiebestand named.conf aanpassen. zone "a.net" in { type slave; file "slave/a.net"; masters { 192.0.2.1; }; }; Deze regels geven aan dat we een slave-server opzetten voor het domein ''a.net'', dat daarvoor een bestand met de naam ''slave/a.net'' wordt bijgehouden, en dat er gebruik gemaakt wordt van de master-server op ''192.0.2.1''. Het ''a.net.db'' bestand van de master-server kunnen we gewoon kopiëren. Als dit allemaal gedaan is kan je de DNS-server starten. De server neemt dan automatisch contact op met de root-server en haalt daar de gegevens op. ==== Testen ==== Een DNS-server ondervragen kunnen we doen met de tool ''dig'' (Domain Information Groper). $ dig @localhost phobos.a.net [[Bestand:Dns-server ondervragen.png]] Een query uitvoeren kunnen we doen met behulp van ''nslookup''. === Labo-opdracht: een Linux DNS-server opzetten met BIND === We gaan met BIND een DNS-server opzetten voor het domein ''a.net'' met de volgende hosts: {| class="wikitable" ! Hostnaam || IP-adres || Functie |- | Phobos || 192.0.2.1 || DNS1 |- | Deimos || 192.0.2.2 || DNS2 |- | mercurius || 192.0.2.10 || Webserver |- | venus || 192.0.2.11 || Mailserver |- | mars || 192.0.2.12 || FTP-server |} Zorg er voor dat: # De server beschikt over een root hints file # Elke server het correcte IP-adres toegewezen krijgt # De webserver kan bereikt worden via "www.a.net" # Mail verstuurd naar "naam@a.net" wordt afgeleverd bij de mailserver venus # Mars geadverteerd wordt als een FTP server (prioriteit 10, weight 0, poort 21) <!-- EINDE DNS --> <!-- START LDAP --> == LDAP == === Inleiding === '''OpenLDAP''' is het Open Source project voor het netwerkprotocol ''L''ightweight ''D''irectory ''A''ccess ''P''rotocol (LDAP). Dat is een protocol dat gebruikt wordt om informatie van een zgn. ''directory-server'' op te zoeken. Dit is eigenlijk een soort databank, maar informatie zit niet opgeslagen in tabellen zoals we gewend zijn bij relationele databanken. In plaats daarvan is de informatie georganiseerd in een hiërarchische structuur (een boom). Bij de wortel van de boom gebruikt men voor deze structuren vaak DNS-domeinen. Dieper in de boom vinden we vaak ''records'' die organisatorische eenheden (afdelingen in een bedrijf, bijvoorbeeld) voorstellen, personen, apparatuur, enz. Je kan een LDAP-server “from scratch” manueel opzetten, maar dat is niet direct voor de hand liggend. Recentelijk heeft men binnen het Fedora project inspanningen gedaan om dit proces wat makkelijker te maken. Het resultaat is [https://directory.fedoraproject.org/ 389 Directory Server]. In wat volgt zetten we een LDAP-server op die toelaat het inloggen op computers te centraliseren. === Leerdoelen === * Het inloggen op computers binnen een netwerk centraliseren met een LDAP-server === Installatie 389 Directory Server === Eerst voegen we een nieuwe gebruiker ''ldapuser'' toe op de machine die als LDAP-server zal dienen. Op client-machines zullen we als ''ldapuser'' kunnen inloggen terwijl die gebruiker op dat systeem lokaal niet bestaat. $ adduser ldapuser Wijzig het wachtwoord van de zojuist aangemaakte gebruiker:<br> $ passwd ldapuser ==== Installatie van de server ==== 1. Installeer de 389 directory server via yum. De Fedora Directory server heet nu 389-ds.<br> $ yum install 389-ds Voor Centos is dit: $ yum install centos-ds Installeer de server en de clients: $ yum -y install openldap openldap-clients openldap-devel openldap-servers <br> 2. Voer het installatiescript uit vanuit een root console: $ setup-ds-admin.pl :'''''Het doorlopen van het installatie script''''' :'''2.1.''' ''Would like to continue with set up? [yes]''<br> ::Druk op enter<br> :'''2.2.''' ''Do you agree with the license terms? [no]''<br> ::Voer Yes in<br> :'''2.3.''' ''Would you like to continue? [no]:''<br> ::Voer Yes in<br> :'''2.4.''' ''Choose a setup type [2]:''<br> ::Kies voor de standaard optie 2 (Typical Installation), om de setup te doorlopen.<br><br> ::De ''typical installation'' is de standaard en meest genomen setup mode. Deze mode helpt extra informatie te verschaffen bij de directory service,<br> zoals ''suffix'' en de configuratie directory informatie, terwijl de procedure snel doorheen het setup-proces gaat.<br> :'''2.5.''' ''Computer name [''computernaam'']:''<br> ::Druk ENTER om de standaard waarde te aanvaarden (dit is de volledige naam van de localhost).<br><br> ::Deze hostname wordt gebruikt om de Directory Server instantienaam , de administration domain en de basissuffix te creëren. Zorg ervoor dat deze naam verwijst naar een geldig IP-adres en dat dit IP-adres overeenkomt met de hostname. :'''2.6.''' ''System User [ldapuser]'' en ''System Group [ldapuser]'':<br> ::Geef het user ID en group onder welke je de Directory Server wenst te draaien. :::<span style='color: red'>'''NOTE''': If you enter ''root'' for the System User name, the Administration Server cannot start. The Administration Server runs as a component of the Apache server, and the HP-UX Apache-based Web Server does not allow the Apache server to run with the user ID root.</span> :'''2.7''' ''Do you want to register this software with an existing cofiguration Directory Server [no]?''<br> ::Druk op enter<br> :'''2.8''' ''Configuration directory server administrator ID [admin]:''<br> ::Druk op ENTER om de default waarde te gebruiken of geef zelf een ID in. Geef daarna een paswoord in. :'''2.9.''' ''Administration Domain[computername]'':<br> ::Druk op ENTER om de default waarde te gebruiken of geef ze manueel in. :'''2.10.''' ''Directory server Network port [389]:'':<br> ::Druk op ENTER om de default waarde te gebruiken. :'''2.11.''' ''Directory server Identifier [...]:'':<br> ::Druk op ENTER om de default waarde te gebruiken. :'''2.12.''' ''Suffix[dc=...]:'':<br> ::Druk op ENTER om de default waarde te gebruiken (Let erop dat voor elk deel in je computername gescheiden door een punt een dc=DeelVanComputername bestaat. :'''2.13.''' ''Directory Manager DN [cn=Directory Manager]:'':<br> ::Druk op ENTER om de default waarde te gebruiken of geef het manueel in. Geef daarna een paswoord in. :'''2.14.''' ''Password:'':<br> ::Geef hier een wachtwoord in en bevestig het daarna. :'''2.15.''' ''Administration port number [9830]:'':<br> ::Druk op ENTER. Dit poortnummer wordt gebruikt om de instantie te gebruiken. :'''2.16.'''''Are you ready to set up your servers? [yes]'':<br> ::Dit is het einde van de installatie procedure, druk hier dus ENTER. <br> Indien er iets fout gelopen is tijdens de installatie, voer dan volgend commando uit: $ remove-ds-admin.pl <br> 3. Maak dit toegankelijk voor SSL<br> $ wget https://github.com/richm/scripts/raw/master/setupssl2.sh -O setupssl2.sh $ chmod +x setupssl2.sh :: Als je fouten krijgt ga je naar de site zelf '''https://github.com/richm/scripts/tree/master%2Fsetupssl2.sh?raw=true''' en zoek je daar in de lijst van scripts naar '''setupssl2.sh'''. Kopieer het script en paste het in het reeds aangemaakte setupssl2.sh script ::'''#./setupssl2.sh /etc/dirsrv/slapd-(computernaam)''' <br> 4. Zowel administation server als directory server zouden nu moeten geïnstalleerd zijn en draaien<br> <br> 5. Download nu de migrationtools via yum:<br> $ yum install migrationtools <br> 6. de lokale users importeren in de LDAP database via commando: $ 389-console De url om in te voeren in de 389-console login is vaak: {{Http}}://localhost:9830. (Indien de melding wordt gegeven dat de server niet gestart is, geef dan het commando /etc/init.d/slapd start in.) vanuit /usr/share/migrationtools/ $ migrate_base > base.ldif via 389-console (via een root console: 389-console invoeren) base.ldif importeren in root console: export ETC_SHADOW=/etc/shadow $ migrate_passwd.pl /etc/passwd people.ldif via 389-console people.ldif importeren <br> 7. Start de 389-console via het commando '''389-console'''. Als deze niet wil opstarten voer dan volgende commando's uit: '''service dirsrv start''' en '''service dirsrv-admin start'''. Ga naar de directory server en voeg daar een nieuwe gebruiker toe (bij keuzelijst kies voor "people") zelf users aanmaken in de 389-console: '''ENABLE POSIX USER ATTRIBUTES''' !!!!!! (dit is hét euvel der euvels, seriously) en zelf een UID toekennen (speelt geen role) en home directory instellen ==== Configuratie van de clients ==== Vanuit een root console: $ authconfig-tui Kies er voor om LDAP te gebruiken als authenticatiemethode en MD5 als wachtwoordtype<br> [[Afbeelding:Auth1.png]]<br> Geef vervolgens het IP adres van de LDAP server in. Vergeet niet om er '''ldap://''' voor te zetten<br> Vul daarna het domain dat je bij de configuratie van de LDAP server hebt gebruikt in.<br> [[Afbeelding:Linux-Auth2.gif]]<br> De nodige configuratiebestanden zijn nu bijgewerkt === Labo-opdracht === Configureer een RedHat-gebaseerd Linux-systeem om LDAP-authenticatie te centraliseren. # Voeg op de machine waarop de LDAP-server zal draaien een gebruiker '''ldapuser''' toe # Zet een LDAP-server op die gebruikersinformatie bijhoudt # Configureer een andere pc zodat die bij inloggen de LDAP-server zal aanspreken voor de wachtwoordcontrole # Test dit door op de "client"-pc in te loggen als ldapuser Je mag 389 Directory Server gebruiken voor het uitvoeren van de opdracht. Merk op dat je de software niet moet downloaden van de website. De applicatie zit in de repositories, dus een eenvoudige '''yum install''' volstaat. <!-- EINDE LDAP --> <!-- START SNMP --> == SNMP == === Inleiding === Niet aan iedere server wordt een toetsenbord en een scherm gekoppeld, dus is het handig deze van op afstand te kunnen beheren en bekijken. SNMP wordt veelal gebruikt om bij apparaten zoals servers en switches van op afstand toezicht te kunnen houden en ze te beheren. SNMP geeft de data van de server weer in de vorm van variabelen. Via een management applicatie zoals Nagios kan je die gegevens opvragen, bekijken en met sommige managers beheren. === Leerdoelen === * Het Simple Network Management Protocol (SNMP) en de functie ervan kennen ** Volgende gerelateerde termen kennen en begrijpen: agent, manager, fetch/store operaties, Management Information Base (MIB), Structure of Management Information (SMI) tree ** Net-snmp kunnen installeren onder Fedora of CentOS als agent en als manager, vanuit de manager informatie opvragen aan een agent ** Geavanceerde SNMP software kennen: Nagios, ZenOSS, OpenNMS === Wat is SNMP === SNMP maakt gebruik van het applicatie protocol om een server op afstand te monitoren en te beheren. * manager: monitoring / beheer applicatie op de sysadmin's computer (= client) * agent: applicatie die draait op de server Je hebt 2 operaties: * fetch: een waarde verkrijgen van de server (monitor) * store: een waarde instellen (control) '''Management Information Base (MIB)''' MIB is een databank die alle objecten bevat die SNMP kan raadplegen. Ieder object heeft zijn unieke naam (Object ID, OID) en een definitie. Dit maakt het eenvoudig om een 'fetch & store' operaties uit te voeren. Alle MIB variabelen om protocollen zoals UDP, TCP, IP, Ethernet, ARP en apparaten zoals bridges, switches en printers zijn aanwezig. Maar de databank kan eenvoudig worden uitgebreid om nieuwe netwerk protocollen of nieuwe hardware apparaten te kunnen implementeren. '''Structure of Management Information tree (SMI)''' Bevat de structuur van de OID's. Dit is vastgelegd in de SNMP standaard. === Installatie SNMP op de agent === Installatie SNMP op de client (de server die je wil volgen op afstand). $ yum install net-snmp net-snmp-utils ==== Instellen SNMP ==== $ cd /etc/snmp/ Een backup maken van het configuratiebestand, en vervolgens het bestand legen. $ cp snmpd.conf snmpd.conf-orig $ echo "" > snmpd.conf Je hebt verschillende mogelijkheden wat betreft configuratie en beveiliging. * Minimaal en onveilig (SNMPv1) $ vi snmpd.conf rocommunity craz33guy # rocummunity: read-only toegang tot SNMP agent # craz33guy: community string (wachtwoord) * Beperkte toegang voor vertrouwde hosts (SNMPv1&2) $ vi snmpd.conf ## System location and contact information syslocation Gent syscontact Jan Janssens ## sec.name source community ## ======== ====== ========= com2sec local localhost craz33guy com2sec network_1 172.16.1.0/24 craz33guy com2sec network_2 192.168.2.0/24 craz33guy ## Access.group.name sec.model sec.name ## ================= ========= ======== group MyROGroup_1 v1 local group MyROGroup_1 v1 network_1 group MyROGroup_2 v2c network_2 ## MIB.view.name incl/excl MIB.subtree mask ## ============== ========= =========== ==== view all-mibs included .1 80 ## MIB ## group.name context sec.model sec.level prefix read write notif ## ========== ======= ========= ========= ====== ==== ===== ===== access MyROGroup_1 "" v1 noauth exact all-mibs none none access MyROGroup_2 "" v2c noauth exact all-mibs none none * Beveiligde verbinding (SNMPv3) Een SNMP user aanmaken met behulp van net-snmp-config $ net-snmp-config --create-snmpv3-user -ro -a MD5 \ -A mandeville -x DES -X savlamar securev3user # -ro: user can only fetch data # -a MD5: user password will be hashed with MD5 # -A mandeville: user authentication password # -x DES: use DES encryption algorithm # -X savlamar: password for encryption # securev3user: user name ==== Opstarten SNMP ==== $ chkconfig snmpd on $ service snmpd start ==== Testen SNMP ==== $ snmpwalk -v 1 -c craz33guy localhost system $ snmpwalk -v 1 -c craz33guy localhost interface === Installatie van een manager === Er zijn verschillende software pakketten om de server op te volgen, voorbeelden zijn Zenoss en Nagios. ==== Zenoss ==== ===== Installatie ===== Installeer eerst MySQL als dit nog niet gebeurd is. Er mag default geen wachtwoord ingesteld zijn, indien dat wel het geval is voer dit commando uit: $ mysqladmin -u root -p'oud_wachtwoord' password <nowiki>''</nowiki> (nieuw paswoord leeglaten) Installatie van andere benodigde software. $ yum install -y gmp libgomp libgcj liberation-fonts libaio Download en installeer de Zenoss software. $ wget https://downloads.sourceforge.net/zenoss/zenoss-3.0.3.el5.i386.rpm # 32 bit $ wget https://downloads.sourceforge.net/zenoss/zenoss-3.0.3.el5.x86_64.rpm # 64 bit $ rpm -ivh zenoss-3.0.3.el5.*.rpm Iptables aanpassen. $ vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -p tcp --dport 8080 -j ACCEPT Firewall herstarten. $ /sbin/service iptables restart Zenoss starten. $ service zenoss start ===== Testen ===== Surfen naar poort 8080 en de Zenoss pagina zou zichtbaar moeten zijn. Daar wordt je gevraagd om een nieuw account aan te maken. De standaard username is "admin", het wachtwoord "zenoss". ==== Nagios ==== ===== Installatie ===== $ yum install nagios gcc glibc glibc-common gd gd-devel Email verificatie, voor als je alerts wilt ontvangen. $ vi /etc/nagios/objects/contacts.cfg Account aanmaken voor web interface. $ htpasswd -c /etc/nagios/passwd nagiosadmin $ service httpd (re)start $ service nagios start $ chkconfig nagios on Je kan nu per host, een generieke config file maken in de map /etc/nagios/objects en deze inladen in nagios.cfg. Voor de opzet van de nieuwe config file kan je localhost.cfg als voorbeeld gebruiken. ===== Testen ===== Bereikbaar via: {{Http}}://localhost/nagios/. Als je problemen hebt bij het inloggen, kijk je best eens de nagios.cfg file na. Verifiëer dat je username effectief op je gekozen username staat. Om je config te testen op eventuele fouten kan je in commandline het volgende uitvoeren /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg === Methode Kevin Van den Bossche en Nicolas Van de Casteele === Deze methode implementeert zowel v1, v2c als v3. Deze methode is deels gebaseerd op bovenstaande tutorial. Werkt op Fedora 14. ==== Installatie en configuratie SNMP ==== $ su - $ yum install net-snmp net-snmp-utils $ cd /etc/snmp $ cp snmpd.conf snmpd.conf.bak net-snmp-create-v3-user Enter a SNMPv3 user name to create: test Enter authentication pass-phrase: snmptest Enter encryption pass-phrase: snmptest $ service snmpd start $ chkconfig snmpds on gedit snmpd.conf #community name rocommunity public #community name mappen in security names com2sec local localhost public com2sec mynetwork 10.0.0.0/24 public #security names mappen in group names group MyRWGroup v1 local group MyRWGroup v2c local group MyRWGroup usm local group MyROGroup v1 mynetwork group MyROGroup v2c mynetwork group MyROGroup usm mynetwork #view maken view all included .1 80 #groepen toegang geven tot 1 view met verschillende permissies access MyROGroup "" any noauth exact all none none access MyRWGroup "" any noauth exact all all none $ service snmpd restart ==== SNMP testen ==== V1 testen: lokaal: $ snmpwalk -v 1 -c public localhost system remote: $ snmpwalk -v 1 -c public 10.0.0.5 system V2C testen: lokaal: $ snmpwalk -v2c -c public localhost system remote: $ snmpwalk -v2c -c public 10.0.0.5 system V3 testen: lokaal: $ snmpwalk -u test -l authPriv -a MD5 -A snmptest -x DES -X snmptest localhost system remote: $ snmpwalk -u test -l authPriv -a MD5 -A snmptest -x DES -X snmptest 10.0.0.5 system ==== Extra: syslocation en syscontact ==== Je kan zelf ook variabelen definiëren, wij gaan in dit geval syslocation en syscontact instellen. $ gedit snmpd.conf syslocation Server DL380G4 Rack 2, Companyname Ghent syscontact Admins <admins@companyname.be> $ service snmpd restart Lokaal testen $ snmpwalk -v 1 -c public localhost syslocation ==== Nagios ==== Installatie $ yum install nagios $ htpasswd -c /etc/nagios/passwd nagiosadmin nagios $ service httpd restart $ service nagios restart Test Surf naar {{Http}}://localhost/nagios Login met nagiosadmin//nagios <!-- EINDE SNMP --> == Bibliografie == DHCP<br> * Bronvermelding inleiding + algemene uitleg: Leerboek Linux Deel 3 - Linux in een netwerk (Sander van Vugt) SNMP<br> * https://www.it-slav.net/blogs/2008/11/11/install-and-configure-snmp-on-rhel-or-centos/<br> * https://www.net-snmp.org/<br> * https://www.webaj.com/how-install-zenoss-1-1-2-centos-5-0-server-and-network-monitoring.htm<br> * https://heanet.dl.sourceforge.net/project/zenoss/Documentation/zenoss-3.0.x-docs/zendocs-3.0.3/Zenoss_Core_Installation_04-102010-3.0-v05.pdf {{Sub}} 78upn6mqc0l5momzayfvcm0it6n6bpa Linux Systeembeheer/Servers op afstand beheren met VPN 0 26781 422799 372080 2026-04-15T17:19:47Z Erik Baas 2193 {{Index Linux Systeembeheer}} 422799 wikitext text/x-wiki {{Index Linux Systeembeheer}} Download de onderstaande bestanden:<br> a) OpenSWAN 2.6.14 via https://www.openswan.org<br> b) l2tpd 0.69<br> c) l2tpd Legacy PTY patch<br> d) l2tpd SysV PTY patch<br> e) l2tpd startup file<br> Installeren OpenSwan:<br> cd /usr/local/src yum install openswan openswan-doc Het voorbeeld « ipsec.conf » bestand verplaatsen om zo het origineel te behouden. mv /etc/ipsec.conf /etc/ipsec.conf.old Pas het volgende aan in het bestand:<br> version 2.0 config setup interfaces=%defaultroute klipsdebug=none plutodebug=none overridemtu=1410 nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16 conn %default keyingtries=3 compress=yes disablearrivalcheck=no authby=secret type=tunnel keyexchange=ike ikelifetime=240m keylife=60m conn roadwarrior-net leftsubnet=192.168.0.0/16 also=roadwarrior conn roadwarrior-all leftsubnet=0.0.0.0/0 also=roadwarrior conn roadwarrior-l2tp leftprotoport=17/0 rightprotoport=17/1701 also=roadwarrior conn roadwarrior-l2tp-updatedwin leftprotoport=17/1701 rightprotoport=17/1701 also=roadwarrior conn roadwarrior pfs=no left=150.150.150.150 leftnexthop=150.150.150.1 right=%any rightsubnet=vhost:%no,%priv auto=add # Disable Opportunistic Encryption include /etc/ipsec.d/examples/no_oe.conf Het ip-adres “150.150.150.150” dien je te vervangen door je externe IP-adres, “150.150.150.1” vervang je door de default gateway.<br> Wijzig het bestand “/etc/ipsec.secrets” and typ het volgende: vi /etc/ipsec.secrets 150.150.150.150 %any: PSK "sleuteltje" Ook hier verander je “150.150.150.150.” naar je externe IP-adres.<br> '''L2tpd installatie en configuratie''' Installeren van l2tpd en de patch toepassen: cd /usr/local/src tar zxf l2tpd-0.69.tar.gz mv l2tpd-0.69.sysv.patch l2tpd-0.69/ mv l2tpd /etc/rc.d/init.d/ cd l2tpd-0.69 patch &lt; l2tpd-0.69.sysv.patch make cp l2tpd /usr/sbin chmod 755 /usr/sbin/l2tpd Start configuratie in orde brengen: chmod 755 /etc/rc.d/init.d/l2tpd chkconfig --add l2tpd chkconfig l2tpd on De map "/etc/l2tpd" aanmaken en configuratiebestand erin stoppen (l2tpd.conf).<br> [global] port = 1701 [lns default] ip range = 192.168.1.101-192.168.1.254 local ip = 192.168.1.100 require chap = yes refuse pap = yes require authentication = yes name = LinuxVPN ppp debug = yes pppoptfile = /etc/ppp/options.l2tpd length bit = yes PPP configuratie.<br> In "/etc/ppp/options.l2tpd" ipcp-accept-local ipcp-accept-remote noccp auth crtscts idle 1800 mtu 1410 mru 1410 nodefaultroute debug lock proxyarp connect-delay 5000 silent "/etc/ppp/chap-secrets" wijzigen:<br> (voorbeeld van invoer)<br> # Secrets for authentication using CHAP # client server secret IP addresses username * "wachtwoord" 192.168.1.0/24 * username "wachtwoord" 192.168.1.0/24 Nu kan je de VPN configuratie testen. {{Sub}} k4ux9ejz69aa193u9i6bh2dguswxjkr Computersystemen/Computerbussen 0 31590 422778 422774 2026-04-15T16:25:36Z Erik Baas 2193 Lintfouten: Onjuist opgegeven opties mediabestand 422778 wikitext text/x-wiki {{Index Computersystemen}} == Doelstellingen == Onderstaande doelstellingen komen in meer of mindere mate aan bod. De <span style="color:lightgrey;">grijze</span> doelstellingen komen hier niet aan bod. Dat zijn bv. praktijkoefeningen die aansluiten bij deze theorie, maar die in dit Wikibook niet behandeld worden. Of bv. theorie die in een ander hoofdstuk wordt behandeld. Uit het leerplan van '''Applicatie- en Databeheer'''&nbsp;<ref>[https://pro.katholiekonderwijs.vlaanderen/iii-apda-da Leerplan Informatica- en communicatiewetenschappen B + S - 3de graad - D-finaliteit]</ref>, een deel van leerplandoel 23: * LPD 23: De leerlingen lichten de opbouw en werking van een computersysteem met zijn basiscomponenten en optionele componenten toe. ** Aansluitingen en connectoren ** <span style="color:lightgrey;">Functie van controller en driver</span> * <span style="color:lightgrey;">Lexicon. De basiscomponenten van een computersysteem zijn: moederbord, processor, intern geheugen (werkgeheugen, cache geheugen, systeemgeheugen, CMOS), koeling, voeding, grafische kaart, klok</span>. * Lexicon. De optionele componenten van een computersysteem zijn hardwarecomponenten die dienen voor invoer, uitvoer of opslag * Wenk. Enkel de gangbare actuele basiscomponenten en optionele componenten van een computersysteem worden besproken. Je kan ook sensoren als mogelijk invoerapparaat voor een smartphone behandelen. Uit het leerplan Toegepaste Informatica van de richting '''Informaticabeheer'''&nbsp;<ref>Meer informatie op [https://ond.vvkso-ict.com/vvksomainnieuw/leerplanpubliek.asp?NR=2015/003 leerplan D/2015/7841/003]</ref>: * 1.2.1 In het inwendige van een actuele computer de belangrijkste componenten aanwijzen, benoemen en hun functie omschrijven. * 1.2.2 Het gegevenstransport tussen verschillende componenten op een moederbord toelichten, onder meer processor, bussen, geheugen. * 1.3.2 De verschillende standaarden voor de interne en externe aansluiting van optionele componenten toelichten en de corresponderende connectoren en symbolen herkennen. == Connector-medium-protocol== [[Bestand:Eniac.jpg|right|250px|thumb|De ENIAC]] Als je een bepaald '''apparaat''' (opslag, videokaart, ...) wil verbinden met een [[Computersystemen/Moederbord|moederbord]] dan is meestal een '''connector''' (SATA, USB-C, HDMI, M.2,...) nodig om via een bepaald '''medium''' (koper, glasvezel, ether) informatie te versturen door een '''protocol''' (een set van afspraken) vast te leggen. Strikt gezien is er een onderscheid tussen het gebruikte ''protocol'', de gebruikte ''connector'' en het gebruikte ''medium''. Zo is Thunderbolt een hardware interface die PCI Express combineert met DisplayPort, met als medium koper of glasvezel. Thunderbolt 3 gebruikt de USB-C connector. {{Wp|Wireless USB|Wireless USB}} gebruikt het USB-protocol, maar verstuurt dit draadloos. De {{Wp|Raspberry Pi|Raspberry Pi}} heeft bij model B en B+ een USB-chip die ook Ethernet aanbiedt, dankzij een USB-Ethernet adapter. In wat volgt maken we voor de eenvoud dit strikt onderscheid tussen protocol, connector, medium en bus niet altijd. Bij de eerste computers (bv. de {{Wp|ENIAC|ENIAC}} uit 1946) kon je zo'n computerbus heel goed zien als draden&nbsp;<ref>Een uitgebreidere geschiedenis kan je bekijken op [https://www.youtube.com/watch?v=4diPtsUv3sg Computer history]</ref>, maar nu kennen we deze "draden" vooral als heel fijne "lijntjes" op de achterkant van het moederbord. Gecombineerd volgens functie hebben we het over '''computerbussen''', bv. de PCI-bus en de USB-bus. De snelheid van een computerbus wordt bepaald door de ''kloksnelheid'', de ''transfers'' en de ''busbreedte''. Er is een verschil tussen ''seriële en parallelle communicatie''. Deze aspecten worden besproken bij het Wikibook [[Basiskennis informatica/Snelheid|Basiskennis informatica > Snelheid]]. == Gegevensverwerking == De meest eenvoudig manier om gegevensverwerking voor te stellen is als invoer (''input'') ➡️ verwerken (''processing'') ➡️ uitvoer (''output''). Dit kan je verder uitbreiden: {{IPOS structuurschema Babbage.svg|right}} [[Bestand:Information processing system (english).svg|thumb|400px]] [[Bestand:Computing Devices.PNG|thumb|400px]] * Vaak wil je ook iets kunnen bewaren en is er opslag nodig. Merk de dubbele pijl in de eerste afbeelding op. * De tweede afbeelding toont aan dat er informatie uit de buitenwereld als invoer gegeven wordt aan een gegevensverwerkend systeem. Idem voor de uitvoer. Merk ook op dat de afbeelding ook weergeeft dat er niet altijd opslag nodig is. * Bij de derde afbeelding is communicatie hier niet onder invoer of uitvoer geplaatst, maar als een apart item. Je ziet er ook enkele concrete voorbeelden van de onderdelen. ** Invoer: toetsenbord, muis, scanner, OCR lezer, tekentablet, microfoon, webcam, touchscherm ** Opslag: harde schijf, USB stick, optische schijven (Blu-Ray, CD, DVD), SD-kaart ** Verwerking: processor ** Communicatie: modem, Wi-Fi-kaart, Netwerkkaart, Bluetooth ** Uitvoer: printer, beeldscherm, projectie, brailleschermen, luidsprekers, hoofdtelefoon, tv-scherm I.v.m. '''invoer''': * Er zijn de "klassieke" voorbeelden zoals toetsenbord, muis, scanner, microfoon, webcam, of aanraakscherm. * Ook de gsm gebruikt {{Wp|Sensor|sensoren}} (die je bv. in de {{Wp|MIT App Inventor|MIT App Inventor}} of Phyphox-app kan benaderen&nbsp;<ref>Zie [https://ai2.appinventor.mit.edu/reference/components/index.html de MIT App Inventor component reference] > Sensor</ref>): ** {{Wp|Versnellingsmeter|Accelerometer}}: voor detectie beweging en oriëntatie. Bv. oriëntatie telefoon, stappenteller, spelbesturing, valdetectie, afspeellijst shufflen,... ** {{Wp|Gyroscoop|Gyroscoop}}: rotatiebeweging en oriëntatie. Bv. kompas, navigatie, aanvulling bij accelerometer. ** {{Wp|magnetometer|Magnetometer}}: meet magnetische velden. Bv. kompas, kaartoriëntatie. ** {{Wp|en:Biometric device|Biometric apparaat}}. Bv. vingerafdruksensor, gezichtsherkenning of hartslag. ** {{Wp|Afstandssensor|Proximity sensor}}: nabijheidssensor. Bv. om het scherm te dimmen als je jouw gsm tegen je oor houdt. ** {{Wp|en:Ambient light sensor|Ambient light sensor}}. Bv. om het schermlicht aan te passen aan het omgevingslicht. * Binnen een elektronicaproject kan data door verschillende sensoren vergaard worden, bv. in combinatie met microcontrollers. {{Commonscat|Electronic sensors}} <gallery> IPhone 3GS - Proximity Sensor 821-0841-A-9932.jpg|iPhone Proximity Sensor Proximity Meter with Sound Speed Calibration.jpg|Ultrasonic sensor Induktivsensor an Gewindestab+Langmutter.jpg|Capacitive sensor PIR Motion Sensor-Sensinova (SN-PR11).png|PIR sensor </gallery> == Gegevenstransport == Tussen verschillende componenten op een moederbord is communicatie nodig, waarvoor bussen kunnen worden gebruikt. We lichten dit gegevenstransport toe d.m.v. de {{Wp|Systeembus|systeembus}}: een enkele computerbus die o.a. de processor met het werkgeheugen verbindt. Afhankelijk van de situatie is er een lees- of een schrijfoperatie. De systeembus bestaat uit drie deelbussen, ingedeeld volgens hun functie: * '''databus''' (of gegevensbus) voor het transport van gegevens; * '''adresbus''' voor het transport van geheugenadressen; * '''controlebus''' (of besturingsbus) voor het signaal van de bewerking (lezen of schrijven), maar ook voor het doorgeven klokpulsen van de klokgenerator naar de processor. === Lezen === Programma's worden in eerste instantie ingeladen in het geheugen (MEM), maar om het te kunnen uitvoeren moet dit gebeuren in de CPU. Stel dat twee getallen moeten opgeteld worden, dan is "optellen" de instructie. Er zijn echter ook twee getallen nodig, dus ook data komt van het geheugen. Er is dus een leesoperatie nodig van het geheugen naar de processor. [[Bestand:Cpu-mem-read.png]] # CPU stuurt het adres van de geheugenplaats langs de adresbus naar het geheugen (MEM). # CPU zet het leessignaal op de controlebus en de CPU doet ondertussen iets anders (de CPU is namelijk veel sneller dan MEM en hem met zijn vingers laten draaien zou zonde van de tijd zijn). # Door 1 en 2 weet het geheugen dat hij verwacht wordt om de waarde te zoeken die staat op het aangegeven geheugenadres. Eens gevonden zet hij deze klaar op de databus. # Geheugen geeft via de controlebus door dat de waarde klaarstaat op de databus. # CPU neemt de gegevens over vanop de databus. === Schrijven === Als de CPU een bepaald resultaat berekend heeft moet dit bewaard kunnen worden. Dit resultaat moet dus geschreven worden in/naar het geheugen (MEM). [[Bestand:Cpu-mem-write.png]] # CPU stuurt het adres van de geheugenplaats langs de adresbus naar het geheugen. # CPU zet het schrijfsignaal op de controlebus. # CPU stuurt de data naar het geheugen. De CPU zijn schrijftaak zit erop en dus kan hij iets anders doen. # Door 1 en 2 weet het geheugen dat er data zal verstuurd worden over de databus en dat hij verwacht wordt om die data (zie 3) op te slaan in zijn geheugen op het adres zoals aangegeven bij stap 1. == Externe bussen == Intern en extern zijn altijd relatieve begrippen. Wat extern is voor een moederbord, kan intern zijn t.o.v. de computerkast (denk bv. aan harde schijven). Bij externe bussen bedoelt men meestal bussen die extern zijn t.o.v. de CPU. Het is niet de bedoeling om dit encyclopedisch te behandelen. Volgende bussen worden niet besproken: * {{Wp|Industry Standard Architecture|ISA}}-bus; * de bij servers gebruikte {{Wp|SCSI|SCSI}} of {{Wp|Serial Attached SCSI|SAS}}; * {{Wp|Accelerated Graphics Port|AGP}}, wat diende voor grafische kaarten (en dus te beschouwen als de voorganger van {{Wp|PCI Express|PCI Express}}); * {{Wp|FireWire|Firewire}}, wat een zekere populariteit heeft gekend, maar uiteindelijk de duimen heeft moeten leggen t.o.v. USB. === PCI === [[Bestand:AGP and PCI slots at ECS P4VMM2 motherboard.JPG|thumb|300px|Onderaan twee witte PCI-slots (met erboven een bruin AGP-slot)]] De {{Wp|Peripheral Component Interconnect|Peripheral Component Interconnect}}-bus of kortweg PCI-sleuf is vaak te herkennen aan hun witte kleur (zie foto). De sleuven kunnen worden gebruikt voor insteekkaarten zoals geluidskaarten, netwerkkaarten of televisiekaarten. In het begin werd dit ook gebruikt voor videokaarten, maar met de gestegen eisen is een PCI-bus onvoldoende gebleken voor deze toepassing. Deze bus is half-duplex en kent vier uitvoeringen: * 32 bit op 33 MHz en dus een snelheid van 133 MB/s (de standaarduitvoering) * 32 bit op 66 MHz en dus een snelheid van 266 MB/s * 64 bit op 33 MHz en dus een snelheid van 266 MB/S * 64 bit op 66 MHz en dus een snelheid van 533 MB/s <gallery> D-Link_WLAN_PCI.jpg|WLAN File:Mad-Dog-Entertainer-Sound-Card.jpg|Geluidskaart AVerMedia TVPhone98.jpg|TV tuner (2000) Fitting-expansion-card.JPG|Expansion card </gallery> {{Commonscat|PCI}} === PCI-Express === [[Afbeelding:PCI-E & PCI slots on DFI LanParty nF4 SLI-DR 20050531.jpg|thumb|300px|Voorbeeld van meerdere PCI Express-slots(van boven naar beneden: x4, x16, x1 en x16<br>Onderste sleuf is een PCI-sleuf, geen PCI-Express)]] In 2005 volgt {{Wp|PCI Express|PCI Express}} de oudere AGP op. PCI Express is een seriële point-to-point technologie die niet beperkt is tot het gebruik met grafische kaarten, biedt een veel grotere snelheid en tal van nieuwe eigenschappen.&nbsp;<ref>Het Ars Technica artikel [https://arstechnica.com/features/2004/07/pcie/4/ PCI Express: An Overview] legt d.m.v. afbeeeldingen heel goed uit hoe de evolutie van PCI naar PCIe is ontstaan (en dus van een gedeelde parallelle naar een seriële point-to-point architectuur), net als deze van [https://computer.howstuffworks.com/pci-express2.htm HowStuffWorks]. Ook [https://www.ni.com/white-paper/3767/en/ PCI Express – An Overview of the PCI Express Standard] en [https://www.directron.com/expressguide.html What is PCI Express? A Layman's guide to high speed PCI-E technology] is de moeite om te lezen.</ref> Bij de PCIe slots op het moederbord kunnen vermeldingen staan van x1 t.e.m. x32. Dit verwijst naar het aantal '''lanes''' van dit PCIe slot. Per lane is er een paar voor het ontvangen van data en een paar voor het verzenden (dus zijn er per lane 4 "draden" nodig). De connectie is ''full duplex'', zodat tezelfdertijd kan worden verstuurd en ontvangen. Bovendien is de technologie hot-swappable, waardoor een PCIe-kaart vervangen kan worden, terwijl de machine aanstaat. Er kan wel een verschil zijn tussen de fysische lengte van het slot, de fysische lengte van de kaart en het effectief aantal gebruikte lanes. Dit wordt genegotieerd, zodat de best beschikbare elektrische connectie wordt gekozen. Belangrijk is om de specificaties van moederbord en kaart goed na te lezen. Zo kan het zijn dat een x16 kaart in een x8 slot wordt geplaatst. Ook kan het zijn dat een x8 slot eigenlijk op x1 snelheid draait. Zo'n slot laat dan x1, x2, x4, x8 kaarten toe, wat betekent dat het fysisch tot x8 kaarten accepteert, maar toch maar op x1 snelheid draait. Sommige slots hebben ook een "open einde", zodat fysisch grotere kaarten toch in een kleiner slot passen. Het voordeel is dat er een grotere reeks aan PCIe kaarten kan aangesloten worden, zonder dat het moederbord de volledige transfer rate moet ondersteunen. Zo worden ontwerp- en implementatiekosten laag gehouden. Als men misverstanden wil vermijden, wordt de bus interface soms concreter aangegeven als <code>PCI Express versie ×size@×capacity</code>. Zo betekent <code>PCI-E 3.0 ×16@×8</code> dan dat er sprake is van PCIe versie 3.0, waarbij de PCIe-bus fysisch een lengte heeft van x16, maar op een snelheid draait van x8. Opgelet: het is niet zo dat hardware aangesloten via x8 per definitie half zo snel werkt als via x16!&nbsp;<ref>[https://www.techpowerup.com/reviews/Intel/Ivy_Bridge_PCI-Express_Scaling/23.html techpowerup.com]: Ivy Bridge PCI-Express Scaling with HD 7970 and GTX 680.</ref> Er bestaan verschillende versies van PCIe, met "snelheid" als belangrijkste verschilpunt tussen versies.&nbsp;<ref>Van PCIe v1 naar v2 laat men ook toe om kabels van maximaal 10 meter externe apparatuur aan de PCI Express bus te koppelen. Dit kan handig zijn om bijvoorbeeld een laptop een krachtige GPU te geven wanneer hij gebruikt wordt ter vervanging van een volwaardige desktopcomputer.</ref> Bij extra lanes, neemt de snelheid toe: {| class="wikitable" |+ PCI Express link performance<br>(transfer rate in GT/s, x1-x16 in GB/s) |- ! Versie !! Jaar !! Transfer rate !! x1 !! x2 !! x4 !! x8 !! x16 |- | 1.0 || 2003 || 2.5 || 0.25 || 0.5 || 1 || 2 || 4 |- | 2.0 || 2007 || 5.0 || 0.5 || 1 || 2 || 4 || 8 |- | 3.0 || 2010 || 8.0 || 0.985 || 1.969 || 3.938 || 7.877 || 15.754 |- | 4.0 || 2017 || 16.0 || 1.969 || 3.938 || 7.877 || 15.754 || 31.508 |- | 5.0 || 2019 || 32.0 || 3.938 || 7.877 || 15.754 || 31.508 || 63.015 |- | 6.0 || 2022 || 64.0 || 7.563 || 15.125 || 30.25 || 60.5 || 121 |- | 7.0 || 2025 || 128.0 || 15.125|| 30.25 || 60.5 || 121 || 242 |- | 8.0 || 2028 || 256.0 || 30.25 || 60.5 || 121 || 242 || 484 |} <gallery> ATI_Radeon_HD_5870_Graphics_Card-oblique_view.jpg|Videokaart TP-LINK Archer T9E AC1900 2 2016-05-20.jpg|WLAN Sound Blaster Recon3D.jpg|Geluidskaart PCIe_card_full_height.jpg|SSD x4 PCI Express </gallery> {{Commonscat|PCIe}} === PATA === [[Bestand:ATA on mainboard.jpg|thumb|200px|Twee PATA-aansluitingen op een moederbord.]] [[Bestand:IDE cable 40 pin & 80 pin.jpg|thumb|200px|Een 80-aderige en een 40-aderige flat cable]] '''{{Wp|Parallel ATA|PATA}}''' (Parallel ATA, vroeger bekend als IDE), is een (oudere) standaardinterface die de communicatie tussen het moederbord van een computer en opslagmedia ({{Wp|harde schijf|harde schijven}}, {{Wp|CD-ROM|CD-ROM}}-stations,...). Vroeger hadden de meeste moederborden twee IDE-aansluitingen. Later kwamen moederborden met maar één IDE-aansluiting, omdat {{Wp|Serial ATA|Serial ATA}} de nieuwe norm werd. Nu hebben de meeste moederborden enkel nog SATA aan boord. Er is toch besloten om het op te nemen in dit overzicht, omdat je mogelijks nog een oudere pc hebt staan, waarvan je je afvraagt wat die IDE-connector doet. Op één aansluiting op het moederbord is het mogelijk om twee schijfstations samen aan te sluiten met eenzelfde {{Wp|Flatcable|flatcable}}. Er is hier sprake van een gedeelde bus, waardoor er conflicten zouden ontstaan. Het ene station wordt dan met {{Wp|jumper (computer)|jumpers}} als ''master'' ingesteld en het andere als ''slave''. De controller van de slave is uitgeschakeld en de controller van de master bedient beide stations. Sluit men twee masters of twee slaves op dezelfde kabel aan, dan ontstaat er een conflict waardoor de stations niet kunnen werken. De jumperinstellingen zijn vaak: * Master (MA) * Slave (SL) * Cable select (CS): de volgorde van aansluiting bepaalt of het gaat om master of slave. Normaal zit de master dan op het einde van de kabel (vaak een zwarte connector) en de slave in het midden van de kabel (vaak een grijze connector). De aansluiting op het moederbord heeft vaak een blauwe connector. De termen "master" en "slave" zijn gebruikelijk, maar de officiële standaard heeft het over “device 0” en “device 1”. Eigenlijk zijn dit betere termen, omdat de master/slave lijkt te suggereren dat de ene een hogere prioriteit krijgt t.o.v. de andere. Dat is echter niet het geval.&nbsp;<ref>Bron: [https://en.wikipedia.org/wiki/Parallel_ata#Master_and_slave_clarification en.wikibooks.org > Parallel ATA > Master and slave clarification]. Het gevolg voor de snelheid, als twee apparaten eenzelfde kabel delen, wordt er ook besproken.</ref>&nbsp;<ref>Vooral in de VS zijn de termen master en slave nogal controversieel. Er zijn Amerikaanse gerechtelijke uitspraken dat het, waar mogelijk, de voorkeur verdient de standaard benamingen device 0 en device 1 te gebruiken.</ref> Bij het aansluiten van een HDD of ODD is het belangrijk te letten op het soort flat cable. Er is nl. een 40-aderige flatcable en een 80-aderige. Sluit je een oude 40-aderige kabel aan op een recente PATA-HDD, dan zal de kabel een bottleneck vormen! === SATA === [[Bestand:SATA2 und eSATA-Stecker.jpg|thumb|SATA (links) en eSATA (rechts) connector]] {{Wp|Serial ATA|'''SATA'''}} (Serial ATA) is een computerbus ontworpen voor het transport van gegevens tussen de computer en het opslagmedium (bv. de {{Wp|harde schijf|HDD}}, {{Wp|Optische schijf|ODD}} of {{Wp|Solid state drive|SSD}}). SATA is de opvolger van PATA en is gebaseerd op een seriële signaleringstechniek. Voordelen van SATA t.o.v. PATA: * Er is sneller dataverkeer mogelijk. * Er is een mogelijkheid tot hot swapping (of hot plugging): terwijl je systeem aan het draaien is kan je een SATA-opslagmedium aankoppelen. Dit maakte het mogelijk om een externe versie van SATA te ontwikkelen, nl. eSATA (zoals je ziet op de foto zijn de aansluitingen niet identiek). * Er worden dunnere kabels gebruikt, waardoor er meer ruimte in de computerkast is en er dus een betere koeling kan zijn. * Het aansluiten is gemakkelijker (er is namelijk geen gedeelde bus meer en dus zijn master- en slaveinstellingen zoals bij PATA niet meer nodig). Er zijn verschillende versies bij SATA: * SATA150 (2003) werkt met een maximale doorvoersnelheid van 1,5 Gb/s. * SATA II/SATA300 (2004) met een maximale doorvoersnelheid van 3 Gb/s. * SATA III/SATA600 (2008) met een maximale doorvoersnelheid van 6 Gb/s. <gallery> SATA_Data_Cable.jpg|SATA data cable SATA-Kabel Innenaufbau (smial).jpg|In de data cable SATA_power_cable.jpg|SATA power cable 2.5-inch_SATA_drive_on_top_of_a_3.5-inch_SATA_drive,_close-up_of_data_and_power_connectors.jpg|2.5 en 3.5 HDD </gallery> {{Commonscat|Serial_ATA}} === M.2 en NVMe === {{Wp|M.2|'''M.2'''}} (uitgesproken als ''em dot two'') definieert een fysieke connector die verschillende businterfaces (zoals PCIe, SATA, USB) kan doorgeven en waarop vervolgens protocollen zoals NVMe of AHCI worden gebruikt. M.2 wordt vaak gebruikt om SSD's op een computer aan te sluiten, maar ook WLAN-kaartjes kunnen. Verwar M.2 niet met de oudere mSATA: ze lijken op elkaar, maar zijn niet compatibel. Om te zorgen dat de businterface tussen de kaartconnector (mannelijk) en socket (vrouwelijk) compatibel is, is M.2 “gekeyed” d.m.v. fysieke inkepingen aan de connectoren. Zo kan je ze niet fout aansluiten. De meest voorkomende sleutels zijn B, M en B+M. Als vormfactor zijn er verschillende groottes mogelijk, waardoor je op het moederbord soms op meerdere afstanden ''mouting posts'' ziet om met een bout het kaartje vast te zetten. Een 2280-kaartje zal bv. 22 × 80 mm groot zijn. {{Wp|NVM Express|'''NVMe'''}} (NVM Express) is een vaak gebruikt communicatieprotocol voor SSD's, vaak toegepast in combinatie met de M.2 connector. Het maakt gebruik van een PCI Express‑bus, waardoor het aanzienlijk hogere prestaties en lagere latenties biedt dan opslagoplossingen die werken via SATA met het AHCI‑protocol. NVM staat voor ''Non-Volatile Memory'' (niet-vluchtig geheugen) en dus langetermijnopslag, zoals flashgeheugen in een SSD. <gallery> Intel 512G M2 Solid State Drive.jpg|Een M.2 2280 SSD M.2_connector_on_a_computer_motherboard.jpg|M.2 connector mobo M2_Edge_Connector_Keying.svg|M.2 Keying SSD_size_variations.jpg|Vormfactor M.2_and_mSATA_SSDs_comparison.jpg|M.2 vs mSATA M.2_1630_and_M.2_2230_WiFi_cards_side_by_side.jpg|WLAN Delock USB m.2 NVMe docking station-oblique FS PNr°0912.jpg|USB m.2 NVMe docking station </gallery> {{Commonscat|M.2}} === USB === [[Bestand:Usb-svg.svg|64px|left|USB logo]] {{Wp|Universal Serial Bus|Universal Serial Bus}} (USB) is een populaire standaard (uitgevonden door Intel) voor de aansluiting van randapparatuur op computers. USB kwam (en is) snel populair: er zijn dan ook heel wat {{Wp|Universal_Serial_Bus#Toepassingen|toepassingen van USB}}. Enkele voordelen (oa. t.o.v. vroegere technieken) die zorgden voor de snelle populariteit zijn: * Voldoende snelheid (zodat het de bestaande langzamere parallelle en seriële poorten kon vervangen). * D.m.v. USB-hubs kunnen extra apparaten tegelijk aangekoppeld worden op een enkele host controller (tot een totaal van 127). * USB ondersteunt hot plugging of hot swapping, waardoor je apparaten kan aansluiten en ermee werken, zonder dat je je pc opnieuw moet opstarten. * Er is eenzelfde aansluiting voor verschillende apparaten, waarbij foutieve aansluiting uitgesloten is (waar je vroeger met PS/2 een aansluiting had voor toetsenbord en een aansluiting voor de muis). Er zijn verschillende versies van USB (de snelheden zijn theoretische snelheden en worden in de praktijk dus vaak niet gehaald): {| class="wikitable" |- ! Versie ! Snelheid ! Naam ! Jaartal ! Stroom |- | USB 1.0 | 1,5 Mbit/s | LowSpeed | 1996 | 500 mA |- | USB 1.1 | 12 Mbit/s | FullSpeed of Universal | 1998 | 500 mA |- | USB 2.0 | 480 Mbit/s | HighSpeed of Enhanced | 2000 | 500 mA |- | USB 3.0 | 4,8 Gbit/s | SuperSpeed of USB 3.1 Gen 1 | 2008 | 900 mA |- | USB 3.1 | 10 Gbit/s | SuperSpeed+ of USB 3.1 Gen 2 | 2013 | 2000 mA |- | USB 3.2 | 20 Gbit/s | USB 3.2 Gen 2x2 (dual lane) | 2017 | 2000 mA |- | USB 4.0 | 40 Gbit/s | USB 4 versie 1 | 2019 | |- | USB 4.0 2.0 | 80 Gbit/s | USB 4 versie 2 | 2022 | 5A 48V 240W PD3.1 |} Naast het USB-protocol heb je ook connectors nodig. Zoals je aan de foto merkt zijn er heel wat mogelijkheden, waarvan de bekendste wellicht de standaard A/B-plug en USB-C zijn. Deze laatste heeft een symmetrische 24-pins connector. [[Bestand:Usb connectors.JPG|thumb|none|600px|Verschillende types van USB connectoren. Links naar rechts: Micro-B plug, UC-E6 proprietary (non-USB) plug, Mini-B plug, Standard-A receptacle, Standard-A plug, Standard-B plug]] <gallery> USB Type‑C plug icon.svg|USB-C USB-C.png|USB-C stekker File:LeTV_X600_USB_Type_C_port.jpg|USB-C op een smartphone </gallery> {{Commonscat|USB}} === Thunderbolt === {{Wp|Thunderbolt (interface)|Thunderbolt}} is een snellere en krachtigere variant van USB: via één kabel kun je meer data, betere video (meerdere schermen) en stroom tegelijk versturen. Thunderbolt gebruikt tegenwoordig dezelfde USB‑C‑connector als USB, maar met strengere technische vereisten (vroeger was het een Mini DisplayPort als connector). Met ‘Thunderbolt over USB4’ bedoelt men dat USB4 de technische basis vormt, met daarbovenop de volledige Thunderbolt‑functionaliteit. Dit laat zien dat connector, medium en protocol in de evolutie van Thunderbolt door elkaar kunnen lopen.&nbsp;<ref>Tweakers.net: [https://tweakers.net/reviews/8758/tien-jaar-thunderbolt-van-eigen-interface-naar-integratie-in-usb4.html Tien jaar Thunderbolt, van eigen interface naar integratie in USB4]</ref> <gallery> ThunderboltFulmine.svg|Logo Thunderbolt_3_interface_USB-C_ports.jpg|Thunderbolt 3 met USB-C Apple MacBook Pro, model A1278-8118.jpg|Connector (''vrouw'') USB & Thunderbolt Speed Comparison.svg|USB vs Thunderbolt </gallery> {{Commonscat|Thunderbolt (interface)}} === De snelste? === Onder de IT'ers ontstaan verhitte discussies rond wat het beste is.&nbsp;<ref>Lees maar eens de commentaren bij het Tweakers.net-artikel [https://tweakers.net/nieuws/78221/usb-30-moet-als-chip-interconnect-gaan-dienen.html Usb 3.0 moet als chip-interconnect gaan dienen]</ref> Om optimale snelheden te halen mag geen enkel onderdeel achterblijven. Als je bv. je planten water geeft met je tuinslang, dan zal de snelheid waarmee dat lukt zowel bepaald worden door de kraan, de slang zelf, als je sproeier. Als je bij USB een 2.0-kabel gebruikt om een 3.0-stick aan te sluiten op een 1.1-poort, dan zal de maximaal haalbare snelheid bepaald worden door de traagste component. In dit geval dus van USB 1.1. Bovendien moet ook altijd een verschil gemaakt worden tussen de theoretisch haalbare snelheden (zoals in onderstaande tabel en grafiek), de snelheden van benchmarks (met vooraf bepaalde testen) en de snelheden die in de praktijk gehaald worden (en die dus afhangen van de concrete situatie op dat moment)! Dit is te vergelijken met een auto die in theorie 250 km/u kan, op circuit 230 km/u kan, maar in de praktijk gemiddeld 130 km/u op de {{Wp|Autobahn (Duitsland)|autobahn}} doet en 40 km/h in de bebouwde kom (bv. door verkeersdrempels, ander verkeer, rode lichten, weersomstandigheden). <div style="color: inherit; background-color:#EEEEFF; font-size: smaller; border: 1px #1E90FF solid; border-left-width: 10px; padding: 5px;"> '''PCIe 5.0-lanes Intel Core Ultra 200-cpu's blijken te langzaam voor snelste ssd's''' De PCIe 5.0-lanes voor de M.2-slots op Intel socket 1851-moederborden blijken te langzaam om het maximale uit de snelste PCIe 5.0-ssd's te halen. De nieuwste generatie ssd's, waaronder de Samsung 9100 PRO, haalt daardoor maar ongeveer 12GB/s leessnelheid van de mogelijke 14GB/s. {{Voetnoot web | titel=PCIe 5.0-lanes Intel Core Ultra 200-cpu's blijken te langzaam voor snelste ssd's | uitgever=tweakers.net | datum=2025-05-07 | taal=nl | url=https://tweakers.net/nieuws/234710/pcie-50-lanes-intel-core-ultra-200-cpus-blijken-te-langzaam-voor-snelste-ssds.html }} </div> [[Bestand:Datenuebertragungsraten.png|thumb|350px|Vergelijking tussen ISA, PCI, AGP en PCIe]] {| class="wikitable" ! colspan=3 | Bandbreedte van USB, FireWire en Thunderbolt |- | USB 1.0 || 1,5 Mbit/s || 0,19 MB/s |- | USB 1.1 || 12 Mbit/s || 1,5 MB/s |- | USB 2.0 || 480 Mbit/s || 60 MB/s |- | USB 3.0 || 4,8 Gbit/s || 600 MB/s |- | FireWire 400 || 400 Mbit/s || 50 MB/s |- | FireWire 800 || 800 Mbit/s || 100 MB/s |- | FireWire 3200 || 3,2 Gbit/s || 400 MB/s |- | Thunderbolt || 2 x 10 Gbit/s || 2 x 1250 MB/s |} {{Appendix|refs}} {{Sub}} 0yll17lsky3sll8cc71yg26qheome6f Schilderen/Vlakverdeling 0 33877 422814 422372 2026-04-16T00:48:47Z CommonsDelinker 1053 Replacing A_Little_Sea_Maiden.jpg with [[File:William_Henry_Margetson_-_A_Little_Sea_Maiden.jpg]] (by [[:c:User:CommonsDelinker|CommonsDelinker]] because: [[:c:COM:FR|File renamed]]: [[:c:COM:FR#FR2|Criterion 2]] (meaningless or ambiguous name)). 422814 wikitext text/x-wiki Natuurlijk kan je je vlakverdeling maken zoals je het wilt. Er zijn echter ook een aantal methodieken die je kan toepassen. Deze worden hier besproken. ==De vorm van het doek== In elk geval bepaalt de vorm van het doek dat je voor je werk hebt uitgekozen al deels de vlakverdeling, zoals toegelicht in het wikibook over [[Schilderen/Afmetingen_en_vormen|afmetingen en vormen]]. ==Diagonale compositie== In het algemeen bereik je met een diagonale compositie dat je schilderij beweging of snelheid laat zien. Het oog van de kijker beweegt van de ene naar de andere hoek van het schilderij. Deze compositievorm wordt zeer vaak gebruikt, vooral bij het afbeelden van mensen. {{Schildervoorbeeld|File:Maja desnuda (museo del Prado).jpg|File:William Henry Margetson - A Little Sea Maiden.jpg|{{Wp|Francisco de Goya|Goya}}, De naakte Maja, 1795-1800.|{{Wp|William Henry Margetson|William Henry Margetson}}, (1861–1940), een kleine zeemeermin|In deze twee voorbeelden zijn mooie naakte vrouwen afgebeeld met een diagonale compositie. Als je naar de werken kijkt, loopt je oog van de ene naar de andere hoek, zodat je het gehele schilderij in je opneemt. Hierdoor is er geen vast aandachtspunt, alle elementen op de diagonaal het schilderij zijn van belang. Bij de zeemeermin gaat het om het haar dat op het water drijft, de hand, de mond en de lichte schouder, waarbij je af en toe afwijkt naar de ogen. Bij het naakte meisje van Goya kijk je van tenen naar hoofd, waarbij je af en toe zal afwijken naar de armen en ellebogen. De navel ligt trouwens precies in het midden, op het kruispunt met de andere diagonaal. Kijk ook eens bij beide schilderijen naar de restvormen.}} ==Vlakverdeling in de vorm van een rechthoek.== De voorwerpen staan in het midden van het schilderij, in een rechthoek opgesteld. Hiermee bereik je een vorm van rust en stabiliteit. Een vierkant kan natuurlijk ook. {{Schildervoorbeeld|File:Albertus Verhoesen Chickens and park vase.jpg|File:StillLifeWithASkull.jpg|{{Wp|Albertus Verhoesen|Albertus Verhoesen }} (1806-1881), kippen en een tuinvaas|{{Wp|Philippe de Champaigne|Philippe de Champaigne}} (1602–1674), stilleven, ca. 1671|Voorbeelden met de voorwerpen in een rechthoek geplaatst}} ==Driehoekige of pyramidale compositie== De onderwerpen in het schilderij staan in een driehoek. Er is duidelijk een bovenste punt en een onderste stabiele lijn. De top van de driehoek zal de meeste aandacht van de kijker krijgen, daar staat het belangrijkste onderwerp. De driehoek kan echter ook op zijn kop staan. Denk dan bijvoorbeeld aan een schilderij van een vogel, met een breed lichaam en smalle poten. {{Schildervoorbeeld4|File:Kitchen still life c1800.jpg|File:Ivan Vavpotič - Ruth kot plesalka.jpg|File:Domenico Ghirlandaio Madonna and Child enthroned with Saint c 1483.jpg|File:JACOPO AMIGONI BACCHUS AND ARIADNE.jpg|Schilderij van een anonieme kunstschilder,<br>ca. 1800|{{Wp|Ivan Vavpotič|Ivan Vavpotič}},<br>Danseres, 1932|{{Wp|Domenico Ghirlandaio|Domenico Ghirlandaio}} (1449–1494),<br>Madonna met kind omringd door heiligen|Jacopo Amigoni (1682–1752)<br>Bachus en Ariadne|In het linker schilderij krijgen door de driehoekige compositie de eieren bovenaan de meeste aandacht, hoewel de theedoek, door de lichte kleur, ook het oog trekt. Het tweede schilderij toont een ballerina, die door de wijde stand van de benen een driehoek laat zien. Het derde schilderij heeft een driehoekige compositie met de punt naar beneden. De punt wordt gevormd door de vaas en de ruitvorm van het tapijt. In het laatste schilderij rechts vormen 3 figuren een driehoek met de punt naar boven.}} ==Cirkelvormige of ovale compositie== De voorwerpen staan, al dan niet met hun uitsteeksels (zoals de armen of benen van mensen) in een cirkelvormige of ovale groep. {{Schildervoorbeeld|File:Willem Witsen - Pink Roses in a Vase.jpg|File:Van Ruisdael, Jacob - Landscape with a Church - Google Art Project.jpg|{{Wp|Willem Witsen|Willem Witsen}}, Roze rozen in een vaas, circa 1920|{{Wp|Jacob van Ruysdael|Jacob van Ruysdael}}, Landschap met kerk, rond 1640|Voorbeelden van cirkelvormige of ovale composities. De rozen staan gerangschikt in een ruwe cirkel. In het landschap zorgen de bomen, de lucht en de donkere bodem voor een ovale vorm, waardoor je de kerk in het midden ziet staan}} ==Centrale compositie== Het onderwerp staat in het midden, in tegenstelling tot een decentrale compositie, waar de onderwerpen aan de rand staan. {{Schildervoorbeeld3|File:Alarma-JPT.jpg|File:Girl with a Pearl Earring.jpg|File:Redon.coquille.jpg|Alfacentauro, Alarm, voor 2008|{{Wp|Johannes Vermeer|Johannes Vermeer}}, Meisje met oorbel, ca. 1665|{{Wp|Odillon Redon|Odillon Redon}}, schelp, 1912|Voorbeelden van een centrale compositie. De nadruk ligt volledig op het onderwerp dat wordt afgebeeld}} {{Schildervoorbeeld|File:The four elements with scenes from the Creation beyond in Color by Hendrick de Clerck and Denis van Alsloot 1.jpg|File:Room Corner with Curiosities (c 1712) Jan van der Heyden.jpg|{{Wp|Hendrick de Clerck|Hendrick de Clerck}}, (1560/1570–1630) en<br>{{Wp|Denis van Alsloot|Denis van Alsloot}} (circa 1570–circa 1626),<br>Paradijs, ca. 1607|{{Wp|Jan van der Heyden|Jan van der Heyden}}, hoek van een kamer met curiosa, ca. 1607|Voorbeeelden van een sterk verspreide compositie, waardoor het oog over het gehele schilderij blijft dwalen, zonder door de schilder opgelegde richting}}. ==Symmetrische compositie== Symmetrie is het plaatsen van de elementen in je schilderij zodat er een symmetrisch geheel ontstaat. Hoewel heel veel van wat we om ons heen zien symmetrisch is, zoals het menselijk lichaam, talloze gebouwen, bomen, vlakke landschappen zoals we dat in Nederland kennen, worden in schilderijen zelden symmetrische afbeeldingen gemaakt. Het is goed om te weten dat een perfect symmetrisch schilderij weinig spanning vertoont en daardoor snel saai is. {{Schildervoorbeeld3|File:Sahebgheraniye Hozkhane.jpg|File:Yepes-1642-frutero delft-prado.jpg|File:Brooklyn Museum - Sunset at Sea - Thomas Moran - overall.jpg|Een schilderij uit 1883, Iran|Tomás Yepes, Stilleven in een Delftsblauwe schaal, 1642|{{Wp|Thomas Moran|Thomas Moran}}, Zonsondergang op zee, 1906|Het interieur van het Iraanse paleis is perfect symmetrisch, met uitzondering van de lichtval. Dit verschil tussen links en rechts maakt het schilderij toch spannend.<br>De bloemstukken zijn naar de mening van de schrijver een voorbeeld van een heel saai werk door de vrijwel perfecte symmetrie<br>Het schilderij van de zonsondergang op zee is, al staat de zon in het midden, door de golven en de wolken toch niet geheel symmetrisch geworden. Bij de meeste schilderijen van een zonsondergang staat de zon buiten het midden.}} ==Verspreide compositie== Alle voorwerpen staan verspreid, er is geen richting of voorkeur te vinden. Het resultaat is vooral decoratief; dit is waarschijnlijk de reden dat deze compositievorm niet veel in de schilderkunst voorkomt. Het komt wel vaak voor op andere vormen, in behang, gordijnen, pakpapier etc. {{Schildervoorbeeld|File:Leo Gestel Olijfgaard Mallorca 1914.jpg|File:H.Hirschfelder-Stüve Stillleben.jpg|{{Wp|Leo Gestel|Leo Gestel}}, Olijfgaard Mallorca, 1914|{{Wp|Hella Hirschfelder-Stüve|Hella Hirschfelder-Stüve}}, Stilleven met zonnebloemen, 1958|Voorbeelden van een verspreide compositie. Er is weinig diepte in deze twee schilderijen, het gaat de schilder waarschijnlijk alleen om het ritme en de kleurindruk.}} ==Compositie op een raster== Dit wil zeggen dat de voorwerpen regelmatig over het doek worden verspreid. Deze vorm leent zich vooral voor het afbeelden van verzamelingen. {{Schildervoorbeeld|File:Giuseppe Maria Crespi - Bookshelves - WGA05755.jpg|File:Alexandre-Isidore Leroy De Barde - Selection of Shells Arranged on Shelves - WGA12903.jpg|{{Wp|Giuseppe Crespi|Giuseppe Crespi}}, Boekenplanken, circa 1725|{{Wp|Alexandre-Isidore Leroy|Alexandre-Isidore Leroy}} (1777–1828), Schelpen op planken|Schilderijen met de voorwerpen regelmatig verdeeld}} ==Herhaling in je compositie== Voorwerpen worden herhaald, op verschillende afstand van elkaar, in verschillende kleuren, etc. {{Schildervoorbeeld|File:Pieter de Hooch - Cardplayers in a Sunlit Room.jpg|File:Piet Mondriaan - Paysage 1.jpg|{{Wp|Pieter de Hooch|Pieter de Hooch}}, De kaartspelers, 1658|{{Wp|Piet Mondriaan|Piet Mondriaan}}, Bomen aan het Gein bij opkomende maan, 1907|Pieter de Hooch was geïnteresseerd in herhaling. Dat is niet alleen te zien in de tegels, maar ook in het raam met kleine ruitjes, het raster tussen de stoelpoten, de planken van de deur. Zelfs de doorkijkjes herhalen zich, evenals de diverse figuren met hun hoofddeksels. Zijn naamgenoot Piet Mondriaan interesseerde zich al vroeg voor herhaling en patronen, hier te zien bij de zich herhalende bomen, tevens weerspiegeld in het water.}} ==De derden-regel== Ten slotte voor zover bekend een vrij moderne manier om een interessante compositie te krijgen. Deze techniek wordt vooral in de fotografie toegepast, bijvoorbeeld bij een portret, maar ook wel in de schilderkunst. Bij de derden-regel legt de schilder de punten waarvan hij wil dat de aandacht ernaartoe gaat op een derde afstand van elke zijde. Hij verdeelt het schilderij tevens in 9 vlakken. {{Schildervoorbeeld|File:Photo 3x3.svg|File:Photo 3x3 portrait.svg|Liggend formaat|Staand formaat|De derden-regel op liggend en staand formaat. De blauwe stippen geven de plaats van de aandachtspunten aan. De rode lijnen geven aan hoe het schilderij als het ware in negen vakken wordt verdeeld.}} {{Schildervoorbeeld|File:Mädchen am Strand.jpg|File:Rule of thirds applied on Mädchen am Strand.jpg|Schilderij van Max Nonnenbruch uit 1920|Hetzelfde schilderij met de lijnen en punten van de derden-regel|Hoewel je natuurlijk nooit kan weten hoe een schilder tot het eindresultaat is gekomen, lijkt het waarschijnlijk dat de schilder van dit meisje op het strand de derden-regel bij de opzet heeft gebruikt. De voorkant van het meisje ligt op ongeveer 1/3 gerekend vanaf de linkerkant. De horizon ligt op precies 1/3 van de bovenkant van het schilderij. Daardoor zijn de aandachtspunten van het schilderij vooral de borsten en de knie. Naar het afgewende hoofd gaat je aandacht minder snel, daar moet je je echt toe dwingen.}} {{Sub}} {{Links}} fggytt1c42llc32gyh0uabcsm43ymyh Wikibooks:Wachtruimte/Borduren 4 36839 422807 410773 2026-04-15T21:10:25Z Erik Baas 2193 lf (1x) 422807 wikitext text/x-wiki {{Wachtruimte}} ==Borduurwerk== *[[Borduren/Mediciwerk]] ==Borduursteken== {{Kolommen automatisch|inhoud= {{Sort list |asc| *[[/Kruissteek/]] *[[/Halve kruissteek/]] *[[/Dubbele kruissteek/]] *[[/Flanelsteek/]] *[[/Platsteek/]] *[[/Spaarsteek/]] *[[/Ingrijpsteek/]] *[[/Roostersteek/]] *[[/Rijgsteek/]] *[[/Stiksteek/]] *[[/Steelsteek/]] *[[/Kettingsteek/]] *[[/Festonsteek/]] *[[/Flanelsteek/]] *[[/Vliegsteek/]] *[[/Varensteek/]] *[[/Taksteek/]] *[[/Sterrensteek/]] *[[/Cordonsteek/]] *[[/Wafelsteek/]] *[[/Hokjessteek met venstertjes/]] *[[/Maassteek/]] *[[/Losse kettingsteek/]] *[[/Frans knoopje/]] *[[/Franjesteek/]] *[[/Zoomsteek/]] *[[/Knoopsgatensteek/]] }} }} <!-- {{Boek}}{{Fase|1}} --> [ [Categorie:Vrije tijd]] 41gx73wjdhd4qy4czeuxeooe9ur9h7n 422808 422807 2026-04-15T21:10:44Z Erik Baas 2193 /* Borduurwerk */ 422808 wikitext text/x-wiki {{Wachtruimte}} ==Borduurwerk== *[[/Mediciwerk/]] ==Borduursteken== {{Kolommen automatisch|inhoud= {{Sort list |asc| *[[/Kruissteek/]] *[[/Halve kruissteek/]] *[[/Dubbele kruissteek/]] *[[/Flanelsteek/]] *[[/Platsteek/]] *[[/Spaarsteek/]] *[[/Ingrijpsteek/]] *[[/Roostersteek/]] *[[/Rijgsteek/]] *[[/Stiksteek/]] *[[/Steelsteek/]] *[[/Kettingsteek/]] *[[/Festonsteek/]] *[[/Flanelsteek/]] *[[/Vliegsteek/]] *[[/Varensteek/]] *[[/Taksteek/]] *[[/Sterrensteek/]] *[[/Cordonsteek/]] *[[/Wafelsteek/]] *[[/Hokjessteek met venstertjes/]] *[[/Maassteek/]] *[[/Losse kettingsteek/]] *[[/Frans knoopje/]] *[[/Franjesteek/]] *[[/Zoomsteek/]] *[[/Knoopsgatensteek/]] }} }} <!-- {{Boek}}{{Fase|1}} --> [ [Categorie:Vrije tijd]] bkj6g5qxtumsywslk0tv4f1lt3jque8 Sjabloon:Boekenplank/Onderwijs 10 40288 422802 400590 2026-04-15T20:33:01Z Erik Baas 2193 Categorie:Sjablonen boekenplank 422802 wikitext text/x-wiki [[Afbeelding:P_Education.png|30px]] <span style="font-size: large;">'''[[Boekenplank:Samenleving|67. Onderwijs en opleiding]]'''</span><br> {{Leren}} <noinclude>[[Categorie:Sjablonen boekenplank]]</noinclude> qb8g24jdfge3qpz46c4nnunc93p79k0 Sjabloon:Boekenplank/Spel 10 40289 422804 372757 2026-04-15T20:33:20Z Erik Baas 2193 Categorie:Sjablonen boekenplank 422804 wikitext text/x-wiki [[Bestand:P_Architecture.png|30px]] <span style="font-size: large;">'''[[Boekenplank:Vrije expressie|84. Spel]]'''</span><br> [[Schaken]]{{75%|Datum=Volgens infobox}} - [[Schaken voor beginners]]{{75%|Datum=Volgens infobox}} - [[Schaken voor gevorderden]]{{50%|Datum=Volgens infobox}} - [[Schaken voor experts]]{{25%|Datum=Volgens infobox}} - [[Schaken door meesters]]{{75%|Datum=Volgens infobox}} <noinclude>[[Categorie:Sjablonen boekenplank]]</noinclude> 8qa5q3711qijljfgaq9vuivpjaj65ow Sjabloon:Boekenplank/Psychologie 10 40429 422803 352092 2026-04-15T20:33:10Z Erik Baas 2193 Categorie:Sjablonen boekenplank 422803 wikitext text/x-wiki [[Bestand:WikiProject_Psychology_Logo_(Deus_WikiProject).png|30px]] <span style="font-size: large;">'''[[Boekenplank:Samenleving|68. Psychologie]]'''</span><br> [[Hypnotherapie]]{{100%|Datum=Volgens infobox}} - [[Mindfulness]]{{75%|Datum=Volgens infobox}} - [[Visualisatie]]{{75%|Datum=Volgens infobox}} <noinclude>[[Categorie:Sjablonen boekenplank]]</noinclude> fw4jj5aab4ut5n2129rrerymft2jxpz Sjabloon:Boekenplank/Filosofie 10 40895 422801 400591 2026-04-15T20:32:49Z Erik Baas 2193 Categorie:Sjablonen boekenplank 422801 wikitext text/x-wiki [[Afbeelding:Philly Thinker.JPG|30px]] <span style="font-size: large;">'''[[Boekenplank:Levensbeschouwing|71. Filosofie]]'''</span><br> [[Filosofie]]{{100%|Datum=Volgens infobox}} - [[Filosofisch onderwijs]]{{100%|Datum=Volgens infobox}} - [[Geschiedenis van de filosofie]]{{100%|Datum=Volgens infobox}} - [[Filosofisch woordenboek]]{{100%|Datum=Volgens infobox}} - [[Bekende filosofen uit de geschiedenis]]{{100%|Datum=Volgens infobox}} <noinclude>[[Categorie:Sjablonen boekenplank]]</noinclude> q370dzbhfy5xi4yu8kq63kiu5se423w MediaWiki:Coll-book creator intro 8 40998 422776 412161 2026-04-15T15:50:15Z Erik Baas 2193 Tekst vervangen door "-- test --" 422776 wikitext text/x-wiki -- test -- dwq2p0pl1kx2czlv4f7b6y3qsj1hkjp 422777 422776 2026-04-15T15:57:11Z Erik Baas 2193 Versie [[Special:Diff/422776|422776]] van [[Special:Contributions/Erik Baas|Erik Baas]] ([[User talk:Erik Baas|overleg]]) ongedaan gemaakt - WERKT NIET!! 422777 wikitext text/x-wiki <span style="font-size: larger;">Met de ''Boekenmaker'' kunt u naar eigen inzicht een collectie wikipagina's samenstellen, waarvan door [https://pediapress.com/ PediaPress] een gedrukt boek gemaakt kan worden.</span> btie5tnt2eojrjvsqtapbp7vlootyop Categorie:Moduledocumentatie 14 42732 422809 416056 2026-04-15T21:21:48Z Erik Baas 2193 422809 wikitext text/x-wiki {{Post-it/Modules}} <span style="font-size: smaller;">Beknopt (incompleet!) overzicht van public functions in de aanwezige modules:</span> {| class="wikitable vatop" style="font-size: smaller;" |- !Module !Functies |- |[[Module:Alphabet|Alphabet]] |az_anchors() |- |[[Module:CheckIfUserNameIsIP|CheckIfUserNameIsIP]] |isIpV4(), isIpV6(), testip() |- |[[Module:Functions|Functions]] |maandnaam(), pagesInNamespace() |- |[[Module:Graph|Graph]] |chart(), mapWrapper(), chartWrapper(), chartDebuger(), encodeTitleForPath() |- |[[Module:Kolommen2Var|Kolommen2Var]] |kolom() |- |[[Module:Layout|Layout]] | ... |- |[[Module:Legallink|Legallink]] |legal() |- |[[Module:Math|Math]] |decimalToHex(), hex2Decimal() |- |[[Module:Sort list|Sort list]] |asc(), desc() |- |[[Module:String|String]] |len(), sub(), sublength(), match(), pos(), find(), str_find(), replace(), rep() |- |[[Module:String2|String2]] |asc(), chr(), len(), repeatx(), replace_all(), trim() |- |[[Module:SVG|SVG]] |draw() |- |[[Module:SVG example|SVG example]] |drawCircle(), drawGraph() |- |[[Module:Wikidata|Wikidata]] |badges(), claim(), debug(), descriptionIn(), findClaims(), formatDate(), getSiteLink(), getSnakValue(), getValue(), labelIn(), labelOf(), pageId(), sitelinkOf() |- |[[Module:Zandbak|Zandbak]] | ... |} :Bevat de documentatie van Scribunto/Lua-modules :Wordt gevuld via [[MediaWiki:Scribunto-doc-page-header]] :Modules: [[:Categorie:Module]] :Modules zonder documentatie: [[:Categorie:Module zonder documentatie]] :Help: [[Help:Lua]] (in aanbouw) [[Categorie:Module| ]] pvpy3r80j3q4gcvj2vx780y7nvuahbr Kookboek/Vegetarische nasi 0 44237 422815 417410 2026-04-16T10:05:38Z JopkeB 18060 /* Bereidingswijze */ 422815 wikitext text/x-wiki {{Recept | Afbeelding = {{Afbeelding |afbeelding = Butter chicken rice bowl - chaiiwala 2024-02-10.jpg |onderschrift = |grootte = 400 |rotatie = 0 |clip-breedte = 283 |clip-hoogte = 280 |offset-x = 45 |offset-y = 4 |border = 0 |margin = 0 }} | Categorie = Vegetarisch recept | Porties = 4 | Energie = | Tijd = 1 nacht weken + ± 45 minuten bereiden | Stippen = 3 }} ==Ingrediënten== * 200 g gedroogde {{Kb|p=kikkererwt|kikkererwten}} of ± 450 g gekookte (netto, uitgelekt; al of niet uit blik of pot) * 350 g {{Kb|p=rijst|zilvervliesrijst}} * bij elkaar 1 kg rauwe {{Kb|p=groente|groenten}}; maak een keuze uit: ** sperziebonen, wortelen, bleekselderij of knolselderij: meekoken met de rijst ** uien, prei, paprika, spitskool: stoven ** taugé: niet koken, pas 1 minuut voor het einde toevoegen * 4 eetlepels plantaardige olie * 3 eetlepels [[Kookboek/Nasikruiden|nasikruiden]] * 4 teentjes knoflook * 1 eetlepel bladselderij * 1 eetlepel platte peterselie * 2-3 {{Kb|p=ei|eieren}} * 8 {{Kb|p=augurk|augurken}} * 0,5 liter (of meer) [[Kookboek/Satésaus|pindasaus]] * 4 theelepels {{Kb|p=sambal|sambal goreng}} * ketjap ==Keukengereedschap== * 1 kookpan voor de kikkererwten * 1 (grotere) kookpan voor de rijst en groenten * 1 grote braadpan * 1 steelpan voor de pindasaus * 1 koekenpan voor de omelet ==Bereidingswijze== * Bereid gedroogde kikkererwten volgens de aanwijzingen op [[Kookboek/Kikkererwt]]; NB zet ze 1 nacht vantevoren in de week. * Kook de rijst volgens de aanwijzingen op de verpakking. Kook de laatste 10-15 minuten de schoongemaakte en in stukjes gesneden sperziebonen, wortelen en/of selderij mee. * Laat in de braadpan de olie op een laag vuur warm worden, tezamen met de nasikruiden. * Snipper de ui en snijd de knoflook fijn of gebruik daarvoor een knoflookpers. Fruit ze zachtjes in de olie. * Maak de rest van de groenten schoon en snijd ze klein. Voeg ze toe in de braadpan, maar niet de taugé. Zet het vuur even hoog, roer alles gedurende ± 2 minuten goed door elkaar. Doe dan het deksel op de pan en zet het vuur laag. Laat de groenten zo in ± 10 minuten gaar stoven. Roer af en toe. * Maak onderwijl de pindasaus en bak een [[Kookboek/Omelet|omelet]] van de eieren; snijd de omelet in kleine reepjes. * Snijd de bladselderij, peterselie en augurken in stukjes. Doe de augurken in een schaaltje met een lepeltje en zet die op tafel. * Giet de rijst met groenten en de kikkererwten af. Voeg ze bij de groenten in de braadpan en roer door elkaar. Zet het vuur uit. * Voeg sambal, omeletreepjes, taugé en tuinkruiden toe. * Zet de pindasaus, ketjap en de braadpan op tafel en laat iedereen zelf opscheppen. ==Varianten== * Serveer er ook een schaaltje seroendeng of pinda's bij. * Serveer er ook een schaaltje [[Kookboek/Atjar tjampoer|atjar tjampoer]] bij, al of niet in plaats van de augurken. * Serveer er ook een schaal vegetarische kroepoek bij. * Vervang de rijst door {{Kb|mie}} voor een vegetarische bami. {{Sub}} {{Recepten}} [[Categorie:Vegetarisch recept|Nasi]] [[Categorie:Rijstrecept|Nasi]] [[Categorie:Peulvruchtrecept|Nasi]] e1bkbg0tif7owawi85avibki95s559x Sjabloon:Index Linux Systeembeheer 10 46477 422780 2026-04-15T16:50:15Z Erik Baas 2193 Nieuwe pagina aangemaakt met '{{Index basis |inhoud = Inleiding * [[../Opzet van het boek/]] * [[../Vereiste voorkennis/]] * [[../Informatiebronnen/]] * [[../Linuxdistributies/]] Systeembeheer * [[../Linux installeren/]] * [[../Applicaties beheren/]] * [[../De gereedschapskist van een systeembeheerder/]] * [[../Opslagapparaten beheren/]] * [[../Beveiliging/]] * [[../Servervirtualisatie/]] Linux in een netwerk * [[../Netwerkinstellingen configureren/]] * [[../Webservers/]] * ../Bestanden…' 422780 wikitext text/x-wiki {{Index basis |inhoud = Inleiding * [[../Opzet van het boek/]] * [[../Vereiste voorkennis/]] * [[../Informatiebronnen/]] * [[../Linuxdistributies/]] Systeembeheer * [[../Linux installeren/]] * [[../Applicaties beheren/]] * [[../De gereedschapskist van een systeembeheerder/]] * [[../Opslagapparaten beheren/]] * [[../Beveiliging/]] * [[../Servervirtualisatie/]] Linux in een netwerk * [[../Netwerkinstellingen configureren/]] * [[../Webservers/]] * [[../Bestanden en printers delen/]] * [[../Elektronische post/]] * [[../Firewalls/]] * [[../Computerparken opvolgen en beheren/]] Troubleshooting * [[../VirtualBox/]] * [[../Firewall probleem met remote SSH/]] Tips en trucs * [[../Servers op afstand beheren met VPN/]] }}<noinclude> [[Categorie:Sjablonen index]] </noinclude> dp6s2683gm7hhm45dlnbqiik92fqtz0 Categorie:Sjablonen boekenplank 14 46478 422805 2026-04-15T20:33:59Z Erik Baas 2193 Categorie:Sjablonen|boekenplank 422805 wikitext text/x-wiki [[Categorie:Sjablonen|boekenplank]] cfjxagv2g60be3jzzb0wc9hypht3inb