Sie sind auf Seite 1von 51

Webbasierte Anwendungen

Grundlegende Dienste
Univ.-Prof. Dr.-Ing. habil. Gero Mühl

Architektur von Anwendungssystemen (AVA)


Fakultät für Informatik und Elektrotechnik (IEF)
Universität Rostock
Überblick

> Domain Name Service (DNS)


> E-Mail
> File Transfer Protocol (FTP)
> Secure Shell (SSH)

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 2


Domain Name Service (DNS)

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 3


Domain Name Service (DNS)
> Dienst zur Abbildung von Namen auf IP-Adressen

> Hierarchisches Domänen-Konzept


> Domänen unabhängig von physischen Netzen
> Beispiel: informatik.uni-rostock.de
> uni-rostock ist Subdomain von de

> Syntax der Namen


> <256 Zeichen, Teile <64 Zeichen
> Groß-/Kleinschreibung unerheblich

> Skalierbarkeit von DNS beruht auf


> Replikation  Robustheit
> Caching  Performance
> Hierarchische Organisation  dezentrale Namensvergabe

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 4


DNS – Top Level Domains

> Organisatorisch COM, EDU, GOV, MIL,


ORG, NET, INT, ...
> Geographisch DE, UK, US, AU, TO, ...

root

com edu ... de org Top Level Domains

ibm ... purdue ... uni-rostock ... heise

ee cs ... informatik

db ai … ... ...

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 5


Platzierung von Name Servern
> DNS-Namensraum wird in nicht überlappende Zonen eingeteilt
> Jede Zone enthält einen Primary Name Server und evtl. weitere
Secondary Name Server zur Erhöhung der Zuverlässigkeit
> Jeder Name Server kennt mindestens einen übergeordneten Server
> Primary Name Server kennen die Root Name Server
root

com edu ... de org

ibm ... princeton ... uni-rostock ... heise

ee
cs ... informatik physik

db ai … ... ...

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 6


Namensdienst
.edu
> Iterative Kooperation der Name Server
Root
> Beispiel 2 Name
Server

3
.princeton.edu
1 4
Lokaler cicada.cs.princeton.edu
Princeton
cicada.cs.princeton.edu
Client Name Name
128.112.136.60 cs.princeton.edu, 128.112.136.10 Server
Server
8 5

6
.cs.princeton.edu
 Caching des Ergebnisses im
lokalen Name Server CS
Name
 Bereinigung des Caches entsprechend der 7 Server
Time-to-Live des Eintrags

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 10


Namensdienst

> Beispiel: E-Mail an „smith@cs.princeton.edu“

Benutzer

2 cs.princeton.edu smith@cs.princeton.edu 1

Name Mail
Mail
Server program
Program
128.112.136.15
3 128.112.136.15 4

Nicht TCP, TCP


sondern die
Anwendung 5
128.112.136.15
löst den
Namen auf!
IP

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 11


Fragen?

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 12


E-Mail

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 13


E-Mail
> Zuverlässiges Verschicken von > Protokolle / Standards
Text und Daten an einzelne > SMTP: Versenden von
E-Mails und Übertragung
Personen und Gruppen
zwischen Mail Servern
> Entkoppelte, Store-and- > IMAP/POP3: Abholen der
Forward-Übertragung (ggf. E-Mails (statt direktem Lesen
mit Auslieferungsbestätigung) der Server Mail Queue)
> MIME: Strukturierte
Nachrichten mit klarer
Thunderbird, Outlook, Trennung der Teile
pine, mutt, mail, …

User User
Agent Agent

Mail Mail Mail


Server Server Server

Postfix, Exim,
Sendmail, …

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 14


Simple Mail Transfer Protocol (SMTP)
> Spezifiziert in RFC 821 bzw. RFC 2821
> Einfaches ASCII-Protokoll
> Auslieferung von Mail über TCP-Verbindung (Port 25)
> Der Absender (= SMTP Client) kommuniziert mit dem
SMTP Daemon des Empfängers (= SMTP Server)

> Client-Kommandos (Text)


> HELO, MAIL FROM, DATA, QUIT, ...
> Server-Antworten (Ziffern + Text)
> 220 (= service ready)
> 250 (= other party OK)
> 354 (= send mail)
> ....

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 15


SMTP – Beispieldialog E-Mail von onkel@otto.edu
an emil@fritz.com

Client Server
220 otto.edu SMTP service ready
HELO client.otto.edu
250 OK
MAIL FROM: <onkel@otto.edu>
250 sender OK
RCPT TO: <emil@fritz.com>
250 recipient OK
DATA
354 send mail; end with "."-line
text text text text ......
.
250 message accepted
QUIT
221 otto.edu closing connection

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 16


Nachrichtenformate [RFC 822, 2822]
> Aufbau einer Nachricht
> Umschlag (Envelope) + Briefkopf (Header) + Rumpf (Body)

Body

> Umschlag wird von den Transfer Agents benutzt und gebildet

> Header-Felder
> To: (primäre) Empfänger
> Cc: (sekundäre) Empfänger
> Bcc: (unsichtbare) Empfänger
> From: Briefschreiber
> Sender: Absender (falls unterschiedlich von From)
> Received: pro Zwischen-Transfer-Agent eine Zeile
> Return-Path: Rückweg für Antworten

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 17


Nachrichtenformate [RFC 822, 2822]

> Weitere Header-Felder


> Date: Datum und Zeit des Abschickens
> Reply-To: Adresse für Antworten
> Message-Id: eindeutige Nummer
> In-Reply-To: Bezug ("Message-Id")
> References: andere relevante Message-Ids
> Keywords: vom Benutzer angegebene Keywords
> Subject: Betreff
> X-?????: benutzerdefinierte Felder

> Leerzeile trennt Header(-Felder) vom Inhalt (Body)

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 18


Motivation für MIME

> SMTP ist ein (7 Bit) US-ASCII-Protokoll


> E-Mails bestehen aus Text im US-ASCII-Format

> Problem: Versenden von Nachrichten


> mit Texten in anderen Sprachen
(die nicht in US-ASCII darstellbar sind)
> mit binären Inhalten (z.B. Grafiken, Audio, Video)

> Lösung: Multipurpose Internet Mail Extensions (MIME)


> Vorgeschlagen RFC 1341 und überarbeitet in weiteren RFCs
> Transport von (Binär)daten als US-ASCII  Kodierung
> Keine Änderung von SMTP  Kompatibilität zu Mail-Servern
> Aber: Anpassung der Mail-Clients erforderlich

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 19


MIME Header
> Erweiterung des E-Mail Headers um fünf neue Felder
> MIME-Version
> Kennzeichnet eine MIME Nachricht
> Aktuelle Version 1.0 (trotz mehrfacher Erweiterungen)

> Content-Description
> Optionale, menschen-lesbare Beschreibung des Inhalts

> Content-Id
> Optionaler eindeutiger Bezeichner für den Inhalt

> Content-Transfer-Encoding
> Bezeichnet die Kodierung (Art der Verpackung) des Inhalts

> Content-Type
> Art des Inhalts (z.B. Text, Bild, Audio, etc.)

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 20


Content-Transfer-Encoding
> 7Bit
> Bezeichnet ursprüngliches SMTP-E-Mail-Format
> ASCII Zeichen (Oktetts im Bereich 0x00 – 0x7F) angeordnet
in Zeilen mit max. 1000 Zeichen (inkl. abschließendes CRLF)
> 8Bit
> Beliebige Oktetts in Zeilen mit max. 1000 Zeichen (inkl. CRLF)
> Verletzt ursprünglichen Standard (SMTP-Erweiterung 8BITMIME)
> Binary
> Beliebige Oktetts (für 8BITMIME) ohne Zeilen
> Quoted-Printable
> Lesbare Kodierung für ASCII-Text mit wenigen Sonderzeichen
> Base64
> Dichte Kodierung für binäre Daten

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 21


Quoted-Printable [RFC 2045]

Hüte H=FCte
(Latin-1) (Quoted-Printable)

> Oktetts werden als Gleichheitszeichen (=) gefolgt vom


Hexadezimalwert des Oktetts kodiert
> Beispiel: ä (Latin-1)  =E4, ü (Latin-1)  =FC
> Druckbare Zeichen (ASCII 32–126) bleiben erhalten
> Ausnahme Gleichheitszeichen (=)  =3D
> Ausnahme Leerzeichen/Tabulator vor Zeilenumbruch
 =20 / =09
> Harte Zeilenumbrüche (mit Bedeutung) stets als CRLF kodiert
> Einfache Werte 10 und 13  =0A bzw. =0D
> Zeilen umfassen max. 76 Zeichen
> Einfügen weicher Zeilenumbrüche  = gefolgt von CRLF

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 22


Base64 [RFC 2045]

Hüte SPx0ZQ==
(Latin-1) (Base64)

> 3 Oktetts (24 Bits) werden in vier 6-Bit-Einheiten zerlegt


 26 = 64 Werte
> Jede 6-Bit-Einheit erhält nach ihrem Wert ein Zeichen
> 0  A, 1  B, …, 25  Z,
> 26  a, 27  b, …, 51  z,
> 52  0, 53  1, …, 61  9, 62  + , 63  /
> Markierungen = und == kennzeichnen die letzte
Eingabegruppe, sofern diese nur aus 16 bzw. 8 Bit besteht
> Nach 76 Zeichen wird ein weicher Zeilenumbruch eingefügt
> Bei Dekodierung werden Zeichen außerhalb des obigen
Alphabets ignoriert (z.B. eingefügte weiche Zeilenumbrüche)

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 23


Base64 Beispiel
3 x 8 Bit

Text M a n

ASCII 0x4D (77) 0x61 (97) 0x6E (110)

Bit Pattern 010011010110000101101110

Index 0x13 (19) 0x16 (22) 0x05 (5) 0x2E (46)

Base64 T W F u

4 x 6 Bit
G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 24
Base64 Tabelle
Wert Zeichen Wert Zeichen Wert Zeichen Wert Zeichen
0x00 (00) A 0x10 (16) Q 0x20 (32) g 0x30 (48) w
0x01 (01) B 0x11 (17) R 0x21 (33) h 0x31 (49) x
0x02 (02) C 0x12 (18) S 0x22 (34) i 0x32 (50) y
0x03 (03) D 0x13 (19) T 0x23 (35) j 0x33 (51) z
0x04 (04) E 0x14 (20) U 0x24 (36) k 0x34 (52) 0
0x05 (05) F 0x15 (21) V 0x25 (37) l 0x35 (53) 1
0x06 (06) G 0x16 (22) W 0x26 (38) m 0x36 (54) 2
0x07 (07) H 0x17 (23) X 0x27 (39) n 0x37 (55) 3
0x08 (08) I 0x18 (24) Y 0x28 (40) o 0x38 (56) 4
0x09 (09) J 0x19 (25) Z 0x29 (41) p 0x39 (57) 5
0x0A (10) K 0x1A (26) a 0x2A (42) q 0x3A (58) 6
0x0B (11) L 0x1B (27) b 0x2B (43) r 0x3B (59) 7
0x0C (12) M 0x1C (28) c 0x2C (44) s 0x3C (60) 8
0x0D (13) N 0x1D (29) d 0x2D (45) t 0x3D (61) 9
0x0E (14) O 0x1E (30) e 0x2E (46) u 0x3E (62) +
0x0F (15) P 0x1F (31) f 0x2F (47) v 0x3F (63) /

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 25


Content-Type [RFC 2046]
> Charakterisieren den Inhalt  Bestimmen Art der Darstellung
> Registrierung der Medientypen bei der IANA [RFC 4288,4289]
> Liste registrierter Typen: http://www.iana.org/assignments/media-types/

Typ / Subtyp Beschreibung


text html HTML-Dateien
plain Reintext
image jpeg JPEG-Dateien
png PNG-Dateien
audio basic Sound-Dateien
video mpeg MPEG-Dateien
application octet-stream Unbekannte Anwendungsdaten
postscript Postscript
message external-body Nachricht referenziert externen Inhalt
partial Nachricht mit Teilinhalt
rfc822 Nachricht nach RFC 2822
multipart alternative Mehrteilige Daten alternativ
digest Mehrteilige Daten auswahl
mixed Mehrteilige Daten gemischt
parallel Mehrteilige Daten parallel

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 26


X-Typen

> Verwendung nicht-standardisierter Subtypen ist zulässig


> Kennzeichnung mit Präfix „x-“
> Keine Eindeutigkeit
> Aber viele Subtypen im Gebrauch

Typ / Subtyp Beschreibung


application x-dvi DVI-Dateien
x-framemaker Framemaker-Dateien
x-gzip gzip-Archive
x-latex Latex-Dateien
x-shockwave-flash Adobe Flash-Dateien
x-tar tar-Archive
audio x-ms-wma Windows Media Audio
x-wav WAV Dateien
video x-ms-wmv Windows Media Video

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 27


Multipart Beispiel (Message Parts)

MIME-Version: 1.0 Eine eindeutige Zeichenkette als


From: Alice Alisson <alice@alisson.com> Begrenzer trennt einzelne
TO: Bob Bobington <bob@bobington.com> Nachrichtenteile voneinander ab.
Subject: A multipart example
Content-Type: multipart/mixed; boundary=unique-boundary-1

This is the preamble area of a multipart message. Mail readers


that understand multipart format should ignore this preamble.
--unique-boundary-1

Some text appears here... Since no header fields were given the
text is assumed to be US-ASCII.

--unique-boundary-1
Content-type: text/plain; charset=US-ASCII

This could have been part of the previous part, but illustrates
explicit versus implicit typing of body parts.

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 28


Multipart Beispiel (Transfer Encodings)

--unique-boundary-1
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

This is Latin-1 text which is encoded using quoted printable=20=


in order to preserve German Umlaute: H=FCte and H=E4user.

--unique-boundary-1 This is UTF-8 text which is Base64


encoded to preserve German
Content-Type: text/plain; charset=UTF-8
Umlaute: Hüte and Häuser.
Content-Transfer-Encoding: Base64

VGhpcyBpcyBVVEYtOCB0ZXh0IHdoaWNoIGlzIEJhc2U2NCBlbmNvZGVkIHRvIHByZXN
lcnZlIEdlcm1hbiBVbWxhdXRlOiBIw7x0ZSBhbmQgSMOkdXNlci4=

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 29


Multipart Beispiel (Nesting)
--unique-boundary-1
Content-Type: multipart/parallel; boundary=unique-boundary-2

--unique-boundary-2
Content-Type: audio/basic
Content-Transfer-Encoding: base64

... base64-encoded 8000 Hz audio data goes here ...

--unique-boundary-2
Content-Type: image/png
Content-Transfer-Encoding: base64

... base64-encoded image data goes here ... Verschachtelung von


Multipart Nachrichten.
--unique-boundary-2
--unique-boundary-1
Content-type: text/richtext

This is richtext. Isn't it cool?

--unique-boundary-1

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 30


JavaMail API

> API und Referenzimplementierung von Sun


> Versenden von E-Mails mittels SMTP
> Empfangen/Abrufen von E-Mails mittels POP3 oder IMAP

> JavaMail API


> URL: http://www.oracle.com/technetwork/java/javamail
> Aufnehmen der mail.jar Bibliothek in den Klassenpfad
java -classpath /path/to/mail.jar MyProgram

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 31


JavaMail API: Verbindungen
> Klasse javax.mail.Session
> Repräsentiert eine Verbindung zum Server (SMTP, POP3, IMAP)
> Angabe der Konfiguration bei Objekterzeugung
> Einstellungen werden in Form von Schlüssel / Wert-Paaren
in einem Properties-Objekt (Hash-Tabelle) abgelegt
> Übersicht relevanter Schlüssel in Dokumentation der Pakete
com.sun.mail.{smtp | pop3 | imap | dsn} und javax.mail
> Versenden von Nachrichten erfolgt über den
Transport-Mechanismus der Verbindung
> Beispiel
Properties props = new Properties();
props.setProperty("mail.smtp.host", "mail.uni-rostock.de");
Session session = Session.getDefaultInstance(props);
Message msg = new MimeMessage(session);

Transport.send(msg);

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 32


JavaMail API: MIME-Nachrichten
> Klasse javax.mail.MimeMessage
> Repräsentiert eine einfache MIME-Nachricht
> Bietet Methoden zum Setzen
> des Absenders und der Empfänger
> des Betreffs und weiterer Header-Felder
> des Nachrichteninhalts
> Beispiel
InternetAddress from = new InternetAddress("alice@allison.com");
InternetAddress to = new InternetAddress("bob@bobington.com");
msg = new MimeMessage(session);
msg.setFrom(from);
msg.setRecipient(Message.RecipientType.TO, to);
msg.setSubject("JavaMail API example");
msg.setContent("It works! Isn't it cool?", "text/plain");
Transport.send(msg);

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 33


JavaMail API: MIME Multipart-Nachrichten
> Klasse javax.mail.internet.MimeMultipart
> Container für mehrere MIME Nachrichtenteile
> Angabe des Subtyps (mixed, alternative, …) bei Erzeugung

> Klasse javax.mail.internet.MimeBodyPart


> Repräsentiert einen MIME Nachrichtenteil

> Beispiel
MimeBodyPart txt = new MimeBodyPart();
txt.setContent("This is plain text.", "text/plain");
MimeBodyPart html = new MimeBodyPart();
html.setContent("<html><body>This is <b>HTML</b>.</body></html>",
"text/html");
MimeMultipart content = new MimeMultipart("alternative");
content.addBodyPart(txt); content.addBodyPart(html);
Message msg = ...
msg.setContent(content);

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 34


Base64 Kodierung in Java
> JavaMail API
> Selbständige Wahl passender Transfer-Kodierung  Transparenz
> Manuelle Vorgabe durch explizites Setzen des MIME Headers:
msg.setHeader("Content-Transfer-Encoding", "Base64")

> Java SDK 8


> Klasse java.util.Base64 mit statischen Methoden
> Base64.getEncoder();
> Base64.getMimeEncoder();
> Base64.getUrlEncoder();
> Base64.getDecoder();
> Base64.getMimeDecoder();
> Base64.getUrlDecoder();

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 35


Literatur
> Simple Mail Transport Protocol (SMTP)
> http://tools.ietf.org/html/rfc821, http://tools.ietf.org/html/rfc2821
> E-Mail Message Format
> http://tools.ietf.org/html/rfc822, http://tools.ietf.org/html/rfc2822
> Multipurpose Internet Mail Extensions (MIME)
> http://tools.ietf.org/html/rfc1341, http://tools.ietf.org/html/rfc2045
> Quoted Printable
> http://tools.ietf.org/html/rfc1521
> Base64
> http://tools.ietf.org/html/rfc2045
> JavaMail API
> http://java.sun.com/products/javamail/

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 36


Fragen?

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 37


File Transfer Protocol (FTP)

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 38


File Transfer Protocol (FTP) [RFC 959]

> Ermöglicht den Transfer von Dateien zwischen Systemen


> Simpler als die Einbindung von entfernten Dateien
in das lokale Dateisystem (z.B. mittels NFS)
> Bietet einfache Möglichkeit auf gemeinsame Daten zuzugreifen
> Wird meist nur für nur lesbare (read only) Dateien benutzt
> Falls die Datei verändert wird, muss sie explizit per
erneutem Transfer zurückgeschrieben werden

> Zugang über Benutzerkennung und Passwort


> Benutzerkennung, Passwort und Daten werden
im Klartext übertragen  Sicherheitsrisiko
> Sowohl interaktiver Zugang als auch Programmierschnittstelle
> Verschiedene Datenformate (ASCII und binär)

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 39


FTP-Verbindungen

> Arbeitet mit zwei TCP-Verbindungen pro Übertragung


> Kontrollport = 21
> Datenport = 20

Client Server
Daten Steuerung Steuerung Daten

TCP

> Zusätzlich existiert ein Trivial File Transfer Protocol (TFTP)


> Aufbauend auf UDP, kleiner Umfang, einfache Implementierung

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 40


FTP-Sitzung
$ ftp diamant.vsb.informatik.uni-frankfurt.de
Connected to diamant.vsb.informatik.uni-frankfurt.de
220 diamant.vsb.informatik.uni-... FTP server ready.
Name (diamant:otto): anonymous
331 Guest login ok, send ident as password.
Password: onkel@otto.edu
230 Guest login ok, access restrictions apply.
ftp> cd pub
200 PORT command ok.
ftp> get some.file.data my.local.data
150 Opening data connection for /bin/ls (141.2.2.1, 2363)
(290455 bytes).
226 Transfer complete.
300000 bytes received in 99 seconds (30 Kbytes/s)
ftp> close
221 Goodbye.
ftp> quit
$

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 41


FTP mit Java
URL url = new URL(
"ftp://user01:passwd@ftp.foo.com/README.txt;type=i");

URLConnection urlc = url.openConnection();

InputStream is = urlc.getInputStream(); // To download


OutputStream os = urlc.getOutputStream(); // To upload

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 42


Telnet und SSH

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 43


Telnet [RFC 854]
> Liefert interaktiven Terminalzugang über das Netz
> Unsicher, da Benutzerkennung, Passwörter und Daten
im Klartext übertragen werden
> Client verbindet sich mittels TCP zu Port 23 des Servers
> Client registriert Tastaturanschläge, schickt sie zum Server,
empfängt die Ergebnisse und leitet sie zum Bildschirm
> Was geschieht bei Ctrl-c oder bei CR/LF?  BS-Integration
> Server leitet alle Daten an das lokale System weiter
und gibt Ergebnisse zurück

Terminal Client Server


telnet telnet
TCP
Betriebs- Betriebs-
system system

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 44


SSH [RFC 4250-4254]

> Sicherer Ersatz für Telnet (TCP / Port 22)


> SSH Suite
1. ssh: "shell" that connects to the remote machine.
2. scp: batch file transfers.
3. sftp: interactive file transfers.
4. ssh-keygen: generates private-public authentication keys
5. ssh-copy-id: copies public key to remote host.
6. ssh-agent: daemon for automating client authentication
7. ssh-add: loads private keys into ssh-agent process
8. ssh-keyscan: get public key of remote host
9. sshd: server program running on the remote machine
> Bekannte Implementierungen: openSSH, PuTTY

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 45


SSH – Einloggen ohne Passworteingabe

> Schlüsselpaar (öffentlicher und privater Schlüssel)


mit nicht-leerer Passphrase erzeugen
> ssh-keygen –t dsa

> Öffentlichen Schlüssel auf entferntem Host hinterlegen


> ssh-copy-id [-i identity_file]
[user@]machine

> Passphrase im ssh-agent hinterlegen


(z.B. beim Start von X)
> ssh-add [identity_file]

> Einloggen ohne Passwort


> ssh [-i identity_file] [user@]machine

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 46


SSH – Tunnel / Local Port Forwarding

> Einrichtung einer Weiterleitung eines lokalen Ports an


einen entfernten Port
> ssh -g -N -L 50022:public_host:22
user@public_host
> Nutzung der Weiterleitung bewirkt Anmeldung auf
entferntem Rechner public_host
> ssh –p 50022 user@private_host

Port Port
50022 22

private_host public_host

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 47


SSH – Tunnel / Remote Port Forwarding

> Einrichtung einer Weiterleitung eines entfernten Ports


auf einen lokalen Port
> ssh -g -N -R 50023:localhost:22
user@public_host
> Nutzung der Weiterleitung bewirkt Anmeldung auf
lokalem Rechner private_host
> ssh –p 50023 user@public_host

Port Port
22 50023

private_host public_host

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 48


Jakarta Commons Net

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 49


Jakarta Commons Net

> Sammlung von Java-Klassen unter Open Source-Lizenz


für den Bereich Internetprotokolle
http://commons.apache.org/net

> Unterstützte Protokolle


> FTP/FTPS
> NNTP
> SMTP
> POP3
> Telnet
> …

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 50


Fragen?

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 51


Exemplarische Fragen zur Lernkontrolle

DNS und E-Mail


1. Erläutern Sie den Zweck und die Funktionsweise von DNS!
2. Worin besteht der Unterschied zwischen einer rekursiven und einer
iterativen DNS-Anfrage?
3. Warum besitzen gecachte DNS-Einträge eine
begrenzte Lebensdauer?
4. Welche Faktoren tragen wesentlich zur Skalierbarkeit von
DNS bei?
5. Erläutern sie die Funktionsweise von E-Mail?
6. Was ist SMTP und welche Eigenschaften hat dieses Protokoll?
7. Was versteht man unter „Store-and-Forward“?
8. Aus welchen Teilen besteht eine E-Mail? Erläutern Sie MIME!
9. Erklären Sie Quoted Printable sowie Base64!

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 52


Exemplarische Fragen zur Lernkontrolle

Telnet, FTP, SSH


1. Was ist Telnet?
2. Was ist FTP?
3. Warum sind Telnet und FTP nicht sicher?
4. Wie viele Verbindungen werden bei einem FTP-Transfer
aufgebaut und wozu dienen diese?
5. Was ist SSH und welche Funktionalität umfasst
die SSH-Suite?
6. Erläutern Sie die Anwendungsfälle von SSH-Tunneln!
7. Worin besteht der Unterschied zwischen
Local Port Forwarding und Remote Port Forwarding?

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 53


Vielen Dank für Ihre
Aufmerksamkeit!
Univ.-Prof. Dr.-Ing. Gero Mühl
gero.muehl@uni-rostock.de
https://www.ava.uni-rostock.de

G. Mühl Webbasierte Anwendungen / Grundlegende Dienste 54

Das könnte Ihnen auch gefallen