<!-- $Id: netwerk.xml,v 1.1.1.1 2004/03/21 21:02:22 cor Exp $ -->

<chapter id="netwerk"> <?dbhtml filename="netwerk.html"?>
<title>Netwerktools</title>

<sect1>
<title>De basis</title>

<bridgehead>ping</bridgehead>

<para>
<command>ping</command>(8) is een stuk gereedschap dat zogenaamde ICMP ECHO_REQUEST 
packets naar hosts stuurt. Dat wil zeggen dat er een verzoek wordt gedaan
aan een host om te antwoorden. Dat maakt deze tool uitermate geschikt om
te testen of bepaalde hosts bereikbaar zijn of om te controleren of je 
internet connectie goed werkt. Laten we kijken naar een voorbeeld van
het gebruik van dit commando: 
</para>

<screen>
bash-2.05a$ <command>ping tazzy.blowgish.org</command>
PING tazzy.blowgish.org (192.168.1.1): 56 octets data
64 octets from 192.168.1.1: icmp_seq=0 ttl=64 time=0.0 ms
64 octets from 192.168.1.1: icmp_seq=1 ttl=64 time=0.0 ms
64 octets from 192.168.1.1: icmp_seq=2 ttl=64 time=0.0 ms

--- tazzy.blowgish.org ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
</screen>

<para>
Zoals te zien is de eenvoudigste syntaxis van dit commando
"<command>ping hostnaam</command>". Aan dit voorbeeld is al veel
informatie af te leiden. In de eerste regel wordt het IP adres
van de computer getoond. Mocht dit niet gebeuren, dan zijn
waarschijnlijk de nameserver instellingen niet goed of bestaat
de hostnaam simpelweg dan niet. Daarna zal <command>ping</command>
constant doorgaan met het sturen van beantwoordingsverzoeken. Je 
kunt elke keer zien wat de benodigde tijd was, wat bruikbaar is
om simpele snelheidsmetingen te doen. <command>ping</command> is te
stoppen door tegelijkertijd de "control" en "c" toetsen in te drukken.
Hierna verschaft <command>ping</command> nog enige informatie, waaronder
het percentage pakketverlies (packet loss). Om te zien of een verbinding
betrouwbaar is kunt je <command>ping</command> een tijdje laten draaien
en na be&iuml;ndiging de packet loss bekijken.
</para>

<bridgehead>host</bridgehead>

<para>
Met het commando <command>host</command>(1) kun je informatie over
hosts opvragen met DNS. Standaard geeft <command>host hostnaam</command>
het IP adres van de desbetreffende host:
</para> 

<screen>
$ <command>host www.nedslack.org</command>
www.nedslack.org has address 213.239.135.210
</screen>

<para>
Ook kun je andere records/informatie opvragen voor hosts en/of domeinen.
Lees voor meer informatie de <command>host</command> man pagina.
</para>  

<bridgehead>traceroute</bridgehead>

<para>
<command>traceroute</command>(8) probeert alle gateways te tonen
die gepasseerd worden bij het contact maken met een bepaalde host.
Zo is te zien hoeveel "hops" er nodig zijn voor een pakket om bij 
een bepaalde host te komen en die tijd die ervoor nodig was.
Hier is een voorbeeld van <command>traceroute</command> in aktie: 
</para>

<screen>
$ <command>traceroute www.nedslack.org</command> 
traceroute to www.nedslack.org (213.239.135.210), 30 hops max, 38 byte packets
 1  192.168.1.69 (192.168.1.69)  0.726 ms  0.667 ms  0.562 ms
 2  nas.euronet.nl (194.134.5.1)  153.248 ms  158.397 ms  194.148 ms
 3  F0-0.dr2-rt2.nl.euro.net (194.134.250.67)  312.472 ms  173.391 ms  146.758 ms
 4  P1-1-0.dr2-asd3.nl.euro.net (194.134.181.81)  343.253 ms  252.822 ms  211.670 ms
 5  P4-0.xr1-fft1.de.euro.net (194.134.181.78)  454.119 ms  219.295 ms  446.982 ms
 6  ge1-2-0.de-cix.fra3.trueserver.de (80.81.192.51)  153.319 ms  156.294 ms  162.161 ms
 7  www.nedlinux.nl (213.239.135.210)  166.122 ms  167.412 ms  165.502 ms
</screen>

</sect1>

<sect1>

<title>Secure Shell (OpenSSH)</title>

<para>
Vroeger werden de <command>telnet</command> en <command>rsh</command>
utilities gebruikt om op andere systemen in te loggen om er vervolgens
op afstand op te kunnen werken. Het nadeel van beide programma's is
dat zowel de wachtwoorden als data (toetsenbordinvoer en schermuitvoer)
ongecodeerd over het netwerk gestuurd wordt. Iemand die een netwerk
"afluistert" kan op die manier de inloggegevens voor shell accounts
achterhalen en misbruiken. Secure Shell (SSH) maakte een einde aan
deze onbeveiligde gegevensoverdracht door sessies te coderen, op die
manier zijn verstuurde wachtwoorden en andere data niet te achterhalen
door eventuele afluisteraars.
</para>

<para>
De SSH implementatie die in de meeste Linux distributies gebruikt wordt,
is ontwikkeld door het
OpenBSD team en heet OpenSSH. OpenSSH is een verzameling van commando's
die gebruikt kunnen worden voor beveiligde gegevensoverdracht. OpenSSH
kan onder andere gebruikt worden voor het werken op andere computers
(remote shell) en het versturen van bestanden.  
</para>

<bridgehead>ssh</bridgehead>

<para>
Het <command>ssh</command>(1) commando wordt normaliter gebruikt voor
het inloggen en werken op andere computers. De syntaxis is simpelweg
<command>ssh hostnaam</command>, waarin <emphasis>hostnaam</emphasis>
ook vervangen kan worden met het IP adres van het systeem waarop ingelogt
moet worden. Bijvoorbeeld:
</para>

<screen>
$ <command>ssh 192.168.1.69</command>
daniel@192.168.1.69's password:
</screen>

<para>
<command>ssh</command> zal standaard met dezelfde gebruikersnaam
proberen in te loggen als je ingelogt bent op de machine waarop
<command>ssh</command> gestart wordt. Een andere gebruikersnaam
kan opgegeven worden met de <emphasis>-l</emphasis> parameter
of met de e-mailnotatie. Een voorbeeldsessie met de
<emphasis>-l</emphasis> parameter:
</para>

<screen>
$ <command>ssh -l danieldk 192.168.1.69</command>
danieldk@192.168.1.69's password: 
Last login: Sat Mar  8 17:37:28 2003 from 192.168.1.1
NetBSD 1.6 (GENERIC) #0: Sun Sep 8 19:43:40 UTC 2002
Erase is backspace.                                                     
tweety: {1}
</screen>

<para>
Met e-mailnotatie:
</para>

<screen>
$ <command>ssh danieldk@192.168.1.69</command>
danieldk@192.168.1.69's password: 
Last login: Sat Mar  8 17:36:51 2003 from 192.168.1.1
NetBSD 1.6 (GENERIC) #0: Sun Sep 8 19:43:40 UTC 2002
Erase is backspace.                                                     
tweety: {1}
</screen>

<bridgehead>sftp</bridgehead>

<para>
<command>sftp</command> is een handig commando waarmee het mogelijk
is met normale ftp commando's bestanden te versturen tussen verschillende
systemen. Aan de serverkant is sftp een onderdeel van de
<command>sshd</command> daemon. Om met <command>sftp</command> een
verbinding te maken met een ander systeem moet je op dat systeem
een shell account hebben. De syntaxis is vrijwel identiek aan die van het
<command>ssh</command> commando:
</para>

<screen>
<command>sftp danieldk@192.168.1.69</command>
</screen>

<bridgehead>scp</bridgehead>

<para>
Ook is het mogelijk met OpenSSH bestanden te kopie&euml;ren op een
manier die vergelijkbaar is met het <command>cp</command> commando,
namelijk met <command>scp</command>. Bestanden op andere servers
worden als volgt aangegeven: <emphasis>gebruiker@host:bestandsnaam</emphasis>.
Stel dat ik het bestand <filename>logo.jpg</filename> naar mijn
account op <emphasis>192.168.1.69</emphasis> wil kopie&euml;ren, dan
kan dat als volgt:
</para>

<screen>
$ <command>scp logo.jpg danieldk@192.168.1.69:</command>
</screen>

<para>
Omdat ik geen directory of bestandsnaam heb gespecificeerd wordt
logo.jpg met het bovenstaande commando naar mijn home directory
gekopie&euml;rd. Stel dat ik het bestand naar de <filename>www/</filename>
directory in mijn home directory wil kopie&euml;ren, dan volstaat
het volgende commando:
</para>

<screen>
$ <command>scp logo.jpg danieldk@192.168.1.69:html/</command>
</screen> 

<para>
Andersom werkt het ook. Stel dat ik het bestand <filename>essay</filename>
wil kopie&euml;ren vanaf de server naar de huidige directory, dan
kan dat met het volgende commando:
</para>

<screen>
$ <command>scp danieldk@192.168.1.69:essay .</command>
</screen>

<para>
Overigens kun je net als bij <command>scp</command> recursief bestanden
kopie&euml;ren met de <emphasis>-r</emphasis> parameter:
</para>

<screen>
$ <command>scp -r danieldk@192.168.1.69:essays/ .</command>
</screen>

</sect1>

</chapter>
