ping(8) is een tool die 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 uw internet connectie goed werkt. Laten we kijken naar een voorbeeld van het gebruik van dit commando:
bash-2.05a$ ping tazzy.blowgish.org 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
Zoals te zien is de eenvoudigste syntax van dit commando "ping hostnaam". 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 ping 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. ping is te stoppen door tegelijkertijd de "control" en "c" toetsen in te druken. Hierna verschaft ping nog enige informatie, waaronder het percentage pakketverlies (packet loss). Om te zien of een verbinding betrouwbaar is kunt u ping een tijdje laten draaien en na beïndiging de packet loss bekijken.
Met het commando host(1) kunt je informatie over hosts opvragen met DNS. Standaard geeft host hostnaam het IP adres van de desbetreffende host:
$ host www.nedslack.org www.nedslack.org has address 213.239.135.210
Ook kun je andere records/informatie opvragen voor hosts en/of domeinen. Lees voor meer informatie de host man pagina.
traceroute(8) probeert alle gateways te tonen die gepaseerd 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 traceroute in aktie:
$ traceroute www.nedslack.org 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
Vroeger werden de telnet en rsh 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.
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.
Het ssh(1) commando wordt normaliter gebruikt voor het inloggen en werken op andere computers. De syntax is simpelweg ssh hostnaam, waarin hostnaam ook vervangen kan worden met het IP adres van het systeem waarop ingelogt moet worden. Bijvoorbeeld:
$ ssh 192.168.1.69 daniel@192.168.1.69's password:
ssh zal standaard met dezelfde gebruikersnaam proberen in te loggen als je ingelogt bent op de machine waarop ssh gestart wordt. Een andere gebruikersnaam kan opgegeven worden met de -l parameter of met de e-mailnotatie. Een voorbeeldsessie met de -l parameter:
$ ssh -l danieldk 192.168.1.69 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}
Met e-mailnotatie:
$ ssh danieldk@192.168.1.69 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}
sftp 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 sshd daemon. Om met sftp een verbinding te maken met een ander systeem moet u op dat systeem een shell account hebben. De syntax is vrijwel identiek aan die van het ssh commando:
sftp danieldk@192.168.1.69
Ook is het mogelijk met OpenSSH bestanden te kopieëren op een manier die vergelijkbaar is met het cp commando, namelijk met scp. Bestanden op andere servers worden als volgt aangegeven: gebuiker@host:bestandsnaam. Stel dat ik het bestand logo.jpg naar mijn account op 192.168.1.69 wil kopieëren, dan kan dat als volgt:
$ scp logo.jpg danieldk@192.168.1.69:
Omdat ik geen directory of bestandsnaam heb gespecificeerd wordt logo.jpg met het bovenstaande commando naar mijn homedirectory gekopieërd. Stel dat ik het bestand naar de www/ directory in mijn home directory wil kopieëren, dan volstaat het volgende commando:
$ scp logo.jpg danieldk@192.168.1.69:html/
Andersom werkt het ook. Stel dat ik het bestand essay wil kopieëren vanaf de server naar de huidige directory, dan kan dat met het volgende commando:
$ scp danieldk@192.168.1.69:essay .
Overigens kunt u net als bij scp recursief bestanden kopieëren met de -r parameter:
$ scp -r danieldk@192.168.1.69:essays/ .