Nutzerkommandos - Netzwerk
|
|
Aufruf: ftp [OPTIONEN] [host] |
Das File Transfer Protocol ermöglicht den Austausch von Daten
zwischen einem FTP-Server und den Clients. Beim Kommando ftp handelt es sich um
einen einfachen, kommandozeilen-orientierten FTP-Client, der jeder Distribution beiliegen
sollte.
Der Zugang auf einen FTP-Server erfordert prinzipiell die Angaben von
Nutzerkennzeichen und einem Passwort. Alle Server, die allgemein zugängliche Daten
zur Verfügung stellen, ermöglichen daher die Anmeldung als Nutzer ftp
oder anonymous. Als Passwort ist die Angabe der eigenen email-Adresse üblich
(aber nicht unbedingt erforderlich).
ftp startet, wird es ohne Angabe eines Zielrechners aufgerufen, im interaktiven
Modus und erwartet weitere Eingaben. Als eine der ersten Aktionen ist die Verbindung zu
einem Server mit dem Kommando open Servername sicherlich sinnvoll:
user@sonne> ftp
ftp> open localhost
Connected to localhost.
220 sonne.galaxis.de FTP server (Version 6.2/OpenBSD/Linux-0.11) ready.
Name (localhost:user): ftp
331 Guest login ok, send your complete e-mail address as password.
Password:
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> |
Zur Login-Aufforderung gelangt man unmittelbar, wenn der Zielrechner per Kommandozeile
angegeben wird.
Die Kommandos von ftp lassen sich grob in drei Gruppen einordnen: Kommandos zur
Zugriffssteuerung, Kommandos zur Vereinbarung der Übertragungsparameter und
Kommandos zum Datentransfer, wobei in diesem Abschnitt einzig elementare Kommandos zur
Datenübertragung von Interesse sein sollen.
Den Inhalt des aktuellen Verzeichnisses (Kommando pwd) auf dem FTP-Server
zeigen ls oder dir an. Um das Verzeichnis auf dem Server zu wechseln, gibt
man cd [Verzeichnisname] ein. Ohne Angabe des Verzeichnisses landet man im
FTP-Basisverzeichnis des Servers.
Datenübertragungen finden nun zwischen aktuellem Serververzeichnis und aktuellem
Verzeichnis auf dem lokalen Rechner statt. Letzteres kann mit dem Befehl lcd
[Verzeichnisname] geändert werden. Dateien vom Server lädt man mit get
Datei herunter, möchte man Metazeichen im Dateinamen verwenden, nutzt man
mget Datei_mit_Metazeichen:
user@sonne> ftp localhost
Connected to localhost.
220 spitz.maus.de FTP server (Version 6.2/OpenBSD/Linux-0.11) ready.
Name (localhost:user): ftp
331 Guest login ok, send your complete e-mail address as password.
Password:
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd ftp1
250 CWD command successful.
ftp> pwd
257 "/pub/ftp1" is current directory.
ftp> lcd /tmp
Local directory now /tmp
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for '/bin/ls'.
foo1 foo2 foo3
226 Transfer complete.
ftp> mget f*
mget foo1? y
200 PORT command successful.
150 Opening BINARY mode data connection for 'foo1' (0 bytes).
226 Transfer complete.
mget foo2? n
mget foo3? n
ftp> bye
221 Goodbye. |
Die Gegenrichtung, das Senden von Dateien zum Server, ist bei anonymem FTP
meist untersagt. Möglich ist es mit den Kommandos put Datei bzw. mput
Datei_mit_Metazeichen. Auch ein Anlegen von Verzeichnissen kann bei
entsprechender Konfiguration erlaubt sein mkdir [Verzeichnisname].
Aufruf: ifconfig [interface] |
Das Kommando ifconfig dient dem Administrator zur Konfiguration der
Netzwerkschnittstellen. Der "normale" Benutzer kann sich einzig die aktuellen
Konfigurationseinstellungen anzeigen lassen. Ohne Argumente aufgerufen, listet
ifconfig die Einstellungen aller Schnittstellen auf, mit dem Namen einer
Schnittstelle nur deren Charakteristiken:
# Der Pfad /sbin ist selten in $PATH eines Nutzers
enthalten, deswegen Aufruf mit vollständigem Pfad
user@sonne> /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr
00:90:27:8F:FC:86
inet addr:192.168.99.127
Bcast:192.168.99.255 Mask:255.255.255.0
UP brOADCAST RUNNING
MULTICAST MTU:1500 Metric:1
RX packets:8203 errors:0
dropped:0 overruns:0 frame:0
TX packets:7363 errors:0
dropped:0 overruns:0 carrier:0
collisions:0
txqueuelen:100
Interrupt:10 Base
address:0x8000
lo Link encap:Local Loopback
inet addr:127.0.0.1
Mask:255.0.0.0
UP LOOPBACK RUNNING
MTU:3924 Metric:1
RX packets:94 errors:0
dropped:0 overruns:0 frame:0
TX packets:94 errors:0
dropped:0 overruns:0 carrier:0
collisions:0
txqueuelen:0 |
Die interessanteren Informationen zu einer Schnittstelle sind sicherlich die
IP-Adresse (inet addr), die Broadcast-Adresse (Bcast), die Subnetzmaske (Mask). "UP"
besagt, dass die Schnittstelle aktiv ist, unter "RX" und "TX" sind einige Informationen
über empfangene und gesendete Pakete abzulesen.
Aufruf: ping [OPTIONEN] host |
Ob ein Rechner derzeit im Netzwerk ansprechbar ist, verrät ping. Das
Kommando sendet kleine Pakete an den Zielrechner und misst die Antwortzeiten. Der Rechner
kann mittels seiner IP-Adresse oder als symbolischer Name angegeben werden. In letzterem
Fall muss dieser aber auflösbar sein (irgendein Mechanismus muss zum Namen die
entsprechende Adresse liefern können.
user@sonne> ping erde
PING erde.galaxis.de (192.168.100.111): 56 data bytes
64 bytes from 192.168.100.111: icmp_seq=0 ttl=253 time=23.118 ms
64 bytes from 192.168.100.111: icmp_seq=1 ttl=253 time=9.612 ms
64 bytes from 192.168.100.111: icmp_seq=2 ttl=253 time=11.366 ms[Ctrl]+[C]
--- erde.galaxis.de ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 9.612/14.698/23.118 ms |
ping wiederholt den Sendevorgang bis zum expliziten Abbruch durch Eingabe von
[Ctrl]-[C]. Anschließend verrät es eine Statistik mit u.a. verlorenen
Paketen (Zeitüberschreitung beim Empfang der Antwort), und den Zeiten der
schnellsten/durchschnittlichen/langsamsten Übertragung.
Mit der Option -c Anzahl lässt sich die Anzahl der Testdurchläufe von
vornherein beschränken. Ist man an der Aufzeichnung des Weges, den das Paket
nimmt, interessiert, ist die Option -R nütze. Die weiteren Optionen betreffen
im Wesentlichen die Manipulation spezieller Felder des IP-Headers sowie das Aussehen
der Testpakete (zum Ändern der Paketgröße (normal 56 Bytes) wähle
man -s Bytes):
user@sonne> ping -R -c 1 -s 512
www.linuxfibel.de
PING www.linuxfibel.de (195.211.141.227): 512 data bytes
520 bytes from 195.211.141.227: icmp_seq=0 ttl=125 time=30.403 ms
RR: sonne.galaxis.de (192.168.99.127)
erde.galaxis.de (192.168.51.1)
mars.galaxis.de (192.168.5.2)
aura.saxsys.de (195.211.141.226)
www.linuxfibel.de (195.211.141.227)
base.saxsys.de (192.168.5.1)
amor.saxsys.de (192.168.51.10)
192.168.99.2
sonne.galaxis.de (192.168.99.127)
0.0.0.89 (truncated route)
--- www.linuxfibel.de ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 30.403/30.403/30.403 ms |
Aufruf: netstat [OPTIONEN] |
netstat ist ein Kommando, um Fehler oder Schwachpunke in der
Netzwerkkonfiguration zu lokalisieren. Die Behebung der Fehler bleibt zwar dem
Administrator vorbehalten, aber die verschiedenen Informationen werden auch dem normalen
Benutzer nicht vorenthalten.
Aus der Fülle der Optionen möchten wir nur einige wenige vorstellen.
Ohne Option gerufen, listet netstat den Status aller geöffneter
Sockets (Kommunikationsendpunkte) auf. Etwas Licht ins Dunkel bringt da -p, das
die Namen der Programme anzeigt, die den Socket eröffnet haben:
user@sonne> netstat -p | head -7
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local
Address Foreign
Address State
PID/Program name
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags
Type
State I-Node PID/Program
name Path
unix 1 [ N ]
StrEAM CONNECTED 2675
-
@000004b8
unix 1 [ N ]
StrEAM CONNECTED 2271
394/netscape @000003ee
unix 1 [
] StrEAM
CONNECTED 623
360/kpanel @000000bf
|
Eine Statistik der aktiven Verbindungen erhält man mit der Option -a
user@sonne> netstat -a | head
-10
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign
Address State
tcp 0 0
*:6000
*:*
LISTEN
tcp 0 0
*:auth
*:*
LISTEN
tcp 0 0
*:ssh
*:*
LISTEN
tcp 0 0
*:swat
*:*
LISTEN
tcp 0 0
*:http-rman
*:*
LISTEN
tcp 0 0
*:finger
*:*
LISTEN
tcp 0 0
*:pop3
*:*
LISTEN
tcp 0 0
*:login
*:*
LISTEN |
Die Routing-Tabelle bringt die Option -r zum Vorschein:
user@sonne> netstat -r
Kernel IP routing table
Destination Gateway
Genmask Flags MSS Window irtt
Iface
loopback
*
255.0.0.0 U 0
0 0 lo |
Und die Statistiken bezüglich der verschiedenen Protokolle sollen auch noch
Erwähnung finden (Option -s):
user@sonne> netstat -s
Ip:
580 total packets received
0 forwarded
0 incoming packets discarded
0 incoming packets delivered
580 requests sent out
Icmp:
...
Tcp:
35 active connections openings
0 passive connection openings
0 failed connection attempts
0 connection resets received
0 connections established
580 segments received
580 segments send out
0 segments retransmited
0 bad segments received.
0 resets sent
Udp:
...
TcpExt: |
Aufruf: nslookup [-option ...] [host-to-find |
-[server]] |
Wie erhält man zu einem Rechnernamen dessen IP-Adresse? Oder man kennt die
Adresse und würde gern den zugehörigen Namen erfahren? Dann sollte man den
Domain Name Service befragen und mit dem Werkzeug nslookup eine Anfrage
stellen.
user@sonne> nslookup www.gnu.org
Server: localhost
Address: 127.0.0.1
Name: www.gnu.org
Address: 198.186.203.18
user@sonne> nslookup 198.186.203.18
Server: localhost
Address: 127.0.0.1
Name: gnudist.gnu.org
Address: 198.186.203.18 |
Im interaktiven Modus (Aufruf ohne Angabe eines Rechnernamens) lassen sich dem Server
eine Reihe weiterer Informationen entlocken. Da die damit verbundenen Möglichkeiten
den Rahmen des Erträglichen sprengen würden, schauen wir uns nur an, welche
Information zu "www.gnu.org" verfügbar sind:
user@sonne> nslookup
Default Server: localhost
Address: 127.0.0.1
> set type=any
> www.gnu.org
Server: localhost
Address: 127.0.0.1
Non-authoritative answer:
www.gnu.org internet address = 198.186.203.18
Authoritative answers can be found from:
gnu.org nameserver = ns1.gnu.org
gnu.org nameserver = sfi.santafe.edu
gnu.org nameserver = nic.cent.net
gnu.org nameserver = ns2.cent.net
ns1.gnu.org internet address = 158.121.106.18
> exit
user@sonne> |
Mit "Non-authoritative answer" deutet uns das Programm schon an, dass andere
DNS-Server eventuell genauere Informationen liefern könnten. Also versuchen wir eine
Anfrage bei "ns1.gnu.org", indem wir den Servernamen auf der Kommandozeile einem
Minus/Leerzeichen folgen lassen:
user@sonne> nslookup -
ns1.gnu.org
Default Server: ns1.gnu.org
Address: 158.121.106.18
> set type=any
> www.gnu.org
Server: ns1.gnu.org
Address: 158.121.106.18
www.gnu.org CPU = INTEL-686 OS = GNU/LINUX
www.gnu.org preference = 10, mail exchanger =
mescaline.gnu.org
www.gnu.org preference = 20, mail exchanger = tug.org
www.gnu.org internet address = 198.186.203.18
gnu.org nameserver = ns1.gnu.org
gnu.org nameserver = sfi.santafe.edu
gnu.org nameserver = nic.cent.net
gnu.org nameserver = ns2.cent.net
mescaline.gnu.org internet address =
158.121.106.21
tug.org internet address = 158.121.106.10
ns1.gnu.org internet address = 158.121.106.18
sfi.santafe.edu internet address = 192.12.12.1
nic.cent.net internet address = 140.186.1.4
ns2.cent.net internet address = 140.186.1.14
> exit
user@sonne> |
Jetzt wissen wir, dass Linux den Gnu-Rechner dirigiert, ein Pentium (oder Klone) in
seinem Inneren den Takt angibt und wir kennen die verantwortlichen Mailserver und...
Aufruf: telnet [OPTIONEN] [host [port]]
|
telnet ermöglicht eine Terminal-Sitzung auf einem entfernten Rechner, d.h.
man arbeitet bei bestehender Verbindung (fast) genauso, als würde man auf dem
lokalen Rechner die Befehle eintippen.
telnet wird aus Sicherheitsgründen (z.B. fehlender
Passwort-Verschlüsselung) häufig deaktiviert, aber dieses Vorgehen wie auch die
Möglichkeiten zur Konfiguration sind Bestandteil des Netzwerkkapitels zu Telnet.
Ohne Argumente gerufen, wechselt das Kommando in den interaktiven Modus und deutet die
Bereitschaft zur Entgegennahme der Kommandos an:
user@sonne> telnet
telnet> help
Commands may be abbreviated. Commands are:
close close current
connection
logout forcibly logout remote
user and close the connection
display display operating
parameters
mode try to enter
line or character mode ('mode ?' for more)
open connect to a
site
quit exit
telnet
send transmit
special characters ('send ?' for more)
set set
operating parameters ('set ?' for more)
unset unset operating
parameters ('unset ?' for more)
status print status
information
toggle toggle operating
parameters ('toggle ?' for more)
slc change
state of special charaters ('slc ?' for more)
z
suspend telnet
!
invoke a subshell
environ change environment variables
('environ ?' for more)
?
print help information
telnet> quit
user@sonne> |
Um die Verbindung zu einem Rechner herzustellen, ist nun open Rechnername
[Port] einzugeben.
telnet> open localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Welcome to Linux (i386) - Kernel 2.2.16 (pts/3).
sonne login: |
Als Nutzerkennzeichen ist nun ein auf dem entfernten Rechner existierendes Kennzeichen
zu wählen. Nach anschließender Verifizierung des Passwortes eröffnet man
eine Sitzung, auf der analog zu einem lokalen Konsolen-Login verfahren wird. Die Sitzung
beendet man mittels logout oder exit.
telnet kann dem Zielrechner auch per Kommandozeilenargument mitgeteilt werden,
dann wird unverzüglich mit dem Verbindungsaufbau begonnen und mit Beenden der
entfernten Terminalsitzung ist auch telnet beendet. Der Telnet-Dienst verwendet Port 23,
durch Angabe eines alternativen Ports kann auch mit anderen Diensten kommuniziert werden,
als Beispiel führen wir eine kurzen Dialog mit dem sendmail-Mailserver (am
Port 25):
user@sonne> telnet sonne smtp
Trying 192.168.10.101...
Connected to sonne.galaxis.de
Escape character is '^]'.
220 sonne.galaxis.de ESMTP Sendmail 8.8.8/8.8.8; Mon, 19 Apr 1999 14:44:05 +0200
HELO galaxis.de
250 sonne.galaxis.de Hello user@sonne.galaxis.de [192.168.10.101], pleased to meet
you
HELP
214-This is Sendmail version 8.8.8
214-Topics:
214- HELO EHLO MAIL RCPT DATA
214- RSET NOOP QUIT HELP VRFY
214- EXPN VERB EtrN DSN
214-For more info use "HELP <topic>".
214-To report bugs in the implementation send email to
214- sendmail-bugs@sendmail.org.
214-For local information send email to Postmaster at your site.
214 End of HELP info
MAIL FROM:user@galaxis.de
250 user@galaxis.de... Sender ok
RCPT TO:root@sonne.galaxis.de
250 root@sonne.galaxis.de... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
<ENTER>
Date: Mon Apr 1 11:11:11 MEST 2000
From: <user@sonne.galaxis.de>
To: <root@sonne.galaxis.de>
Subjects: demonstration
this is the mail body.
.
250 OAA01356 Message accepted for delivery
QUIT
221 sonne.galaxis.de closing connection
Connection closed by foreign host. |
Von der Optionen sind -l Nutzer (kleines L) und -x interessant. Ersteres
teilt telnet mit, dass wir eine Verbindung unter dem Nutzerkennzeichen "Nutzer"
wünschen. Die "login"-Aufforderung entfällt damit. Und "-x" ermöglicht
eine verschlüsselte Datenübertragung, allerdings nur, wenn Client und Server
diese unterstützen.
Aufruf: traceroute [OPTIONEN] host
[Paketgröße] |
traceroute verfolgt die Route, die ein Paket zu einem Zielrechner (anzugeben
als IP-Adresse oder symbolischer Name) nimmt. Das Kommando nutzt die Tatsache, dass ein
jedes IP-Paket nur eine bestimmte Lebensdauer haben kann (TTL time to live). Ist diese
Dauer abgelaufen, wird der Rechner, bei dem der Verfall auftrat, eine Fehlernachricht an
den Absender schicken.
traceroute erhöht nun in jedem Schritt das TTL-Feld des Paketes, so dass
es vom jeweils nächsten Vermittlungsrechner verworfen wird. Pro Knotenrechner wird
der Vorgang drei Mal wiederholt (Ändern mit -q Anzahl) und die Zeiten
gemessen. Auf die Reaktion eines Rechners wird 3 Sekunden gewartet (Ändern mit -w
Sekunden).
user@sonne> /usr/sbin/traceroute
www.gnu.org
traceroute to www.gnu.org (198.186.203.18), 30 hops max, 40 byte packets
1 erde.galaxis.de (194.180.239.1) 0 ms 0 ms 1 ms
2 sphere.galaxis.de (192.168.5.1) 1 ms 1 ms 1 ms
3 195.211.141.1 (195.211.141.1) 3 ms 3 ms 3 ms
4 br2.frankfurt.gigabell.net (195.211.224.12) 18 ms 19
ms 18 ms
5 cr1.frankfurt.gigabell.net (195.211.199.30) 17 ms 19
ms 17 ms
6 atm1-145.cr1.newyork.gigabell.net (195.211.114.30) 111 ms
113 ms 113 ms
7 usa-gate1.cr2.newyork.lightning.net (216.66.2.77) 110 ms
112 ms 110 ms
8 a4-0-0.br1.nycmny.us.lightning.net (216.66.3.1) 188 ms 173
ms 139 ms
9 a2-0-0.br1.snvaca.us.lightning.net (216.66.3.6) 179 ms 177
ms 186 ms
10 s0-1-0.br1.plalca.us.lightning.net (216.66.2.90) 182 ms 186
ms 180 ms
11 paix2.via.net (198.32.175.80) 185 ms 180 ms 183 ms
12 209.81.23.54 (209.81.23.54) 185 ms 180 ms 181 ms
13 gnudist.gnu.org (198.186.203.18) 184 ms 182 ms 186
ms |
Aufruf: ypwhich [OPTIONEN]
|
ypwhich soll hier stellvertretend für die Kommandos des Network Information Systems stehen. Dieses System ist ein
Verzeichnisdienst, mit dem bestimmte Konfigurations- und Verwaltungsdateien für
einen Bereich des Netzwerkes (die NIS-Domäne) gleichsam zur Verfügung gestellt
werden können. Somit ist es z.B. möglich, dass sich die Benutzer an einem
beliebigen Rechner eines NIS-Bereiches anmelden und überall dieselbe Umgebung
vorfinden.
Ohne Argumente aufgerufen, meldet das Kommando den konfigurierten NIS-Server, der
für den Rechner verantwortlich ist. Mit der Option -x werden alle Dateien
aufgelistet, die anstatt lokal vom NIS-Server bezogen werden:
user@sonne> ypwhich
nis.galaxis.de
user@sonne> ypwhich -x
Benutze "ethers" für Map
"ethers.byname"
Benutze "aliases" für Map "mail.aliases"
Benutze "services" für Map "services.byname"
Benutze "protocols" für Map "protocols.bynumber"
Benutze "hosts" für Map
"hosts.byname"
Benutze "networks" für Map "networks.byaddr"
Benutze "group" für Map
"group.byname"
Benutze "passwd" für Map
"passwd.byname" |
|