Kursus vierter Teil

Download der Kursunterlagen 4. Abend

Schulungstext__4neu_1.pdf

Schulungsunterlagen für den vierten Abend.

81 K

Schulungstext__4neu_2.pdf

Schulungsunterlagen für den vierten Abend.

204 K

Kursus 4. Abend

Der Netzzugang

Die Netzwerkschnittstellen:

Auch ohne Netzwerkkarte oder irgendwelche Anschlüsse gibt es immer eine „interne“ Netzwerkschnittstelle, genannt „localhost“. Ein Rechner ohne Verbindung zu anderen Rechnern kann damit Netzwerkdienste einrichten und testen.

Die am weitesten verbreitete Schnittstelle ist der Ethernet-Anschluss. Ihn gibt es in verschiedenen Geschwindigkeitsstufen, d.h. es gibt eine Obergrenze der Rohdatenrate von 10 Mbit/sek, 100 Mbit/sek, 1000 Mbit/sek. Der topologische Netzaufbau ist busartig und wird heutzutage durch eine sternförmige Verkabelung realisiert. Ring- oder Schleifenbildung sind nicht zulässig.

Ein Rechner kann mehrere Netzwerkschnittstellen besitzen, diese werden mit einer laufenden Nummer unterschieden (eth0,eth1,...)

Wenn einmal nur 2 Rechner direkt verbunden werden sollen (ohne Sternpunkt), dann ist darauf zu achten, dass ein spezielles Kabel mit gekreuzten Anschlüssen verwendet wird. Bei normalen Verbindungskabeln zum Sternpunkt (Hub, Switch) werden Sende- und Empfangsleitungen 1:1 verbunden (siehe Schema)

Es ist auch möglich, zwei Rechner mit „Firewire“(IEEE1394)-Schnittstelle direkt zu verbinden, bei Linux gibt es entsprechende Module, die das Ethernet-Protokoll physikalisch über Firewire leiten. Firewire ist eine schnelle (bis zu 400 Mbit/sek), bidirektionale, serielle Verbindung, die keine verschiedenen (gekreuzten) Kabel braucht.

Immer stärker verbreitet sind drahtlose Verbindungstechniken, insbesondere WLAN (wireless LAN). Die Unterstützung durch Linux ist im selben Maße stark verbessert worden. Viele gängigen PC-Cards für WLAN laufen ohne Probleme. Jeder sollte sich beim Einsatz dieser Technik über die Sicherheitsproblematik im klaren sein, selbst die gängigen Verschlüsselungstechniken, die bei WLAN vorgesehen sind, schützen nicht 100%tig vor Hackern. Sicherheitsrelevante Daten müssen zusätzlich geschützt werden, z.B. durch weitere Verschlüsselung ( Stichwort VPN – virtual private network), Zugangsbeschränkungen auf bestimmte Rechner (IP- und MAC-Adressen).

Der Aufbau der Internetadresse

Ich vereinfache die Darstellung auf das für das Verständnis der Vorgänge notwendige Maß. Zur Zeit ist das noch weit verbreitete Protokoll IPv4, die Adressierung erfolgt durch eine 32-bit-Dualzahl, sie wird zur besseren menschlichen Lesbarkeit unterteilt in 4 Bytes mit Punkten dazwischen: 0.0.0.0 bis 255.255.255.255

Bestimmte Adressen, bzw. Adressgruppen haben eine bestimmte Bedeutung:

  • 0.0.0.0 --- steht für das ganze Internet
  • x.y.z.0 --- bezeichnet ein Netzwerk (mit Rechnernr. 1..254)
  • x.y.z.255 --- ist die Broadcast-Adresse des Netzwerkes (alle Rechner im Netzwerk x.y.z.0 werden angesprochen)
  • 127.0.0.1 --- ist die localhost Adresse (intern)
  • 255.255.255.255 --- steht für einen allgemeinen Broadcast

Für den Aufbau privater Netze sind bestimmte Adressbereiche reserviert worden, die nicht ins Internet weitergeleitet (gerouted) werden:

  • 10.0.0.0 bis 10.255.255.255 --- hier kann ein großes, privates Netz mit bis zu 16777214 Rechnern erstellt werden
  • 172.16.0.0 bis 172.31.255.255 --- hier sind 16 verschiedene Netze mit jeweils bis zu 65534 Rechnern möglich
  • 192.168.0.0 bis 192.168.255.255 --- hier sind 256 verschiedene Netze mit jeweils bis zu 254 Rechnern möglich

Rechner, die in einem privaten Netzwerk liegen und auf das Internet zugreifen wollen, müssen sich eines sogenannten „Gateways“ bedienen. Das ist ein Rechner (od. Router), der neben der Verbindung ins private Netz auch eine Verbindung zum Internet hält. Er hat für die Internetverbindung eine weltweit gültige, einmalige Adresse zugeteilt bekommen (statisch=fest oder dynamisch=vom Provider nach Bedarf aus seinem Adresspool zugeordnet). Dieser Rechner versieht nun alle Anfragen aus dem privaten Netzbereich mit der gültigen Internetadresse (Masquarading bzw. NAT (Network Adress Translation)).

Wie können verschiedene Dienste über eine IP-Adresse abgewickelt werden?

Neben der IP-Adresse gibt es noch Portnummern (1..65536), die unterscheidbare Datenströme zu einer IP-Adresse ermöglichen. Ein Rechner kann mehrere Verbindungen gleichzeitig aufbauen und bedienen. Bestimmte Portnummern sind festen Diensten zugeordnet, eine Tabelle hierzu findet sich unter „/etc/services“. Die Portnummer muss nicht immer angegeben werden, da bestimmte Internetprotokolle (HTTP, FTP,..) implizit immer die richtigen Ports ansprechen, ansonsten ist die richtige Schreibweise : w.x.y.z:NNNNN

In der Un*x Geschichte hat sich eingebürgert, die Portnummern bis 1023 als privilegierte Ports zu bezeichnen, sie sind Serverdiensten vorbehalten, die root-Rechte erfordern.

Was ist die Netzwerkmaske (netmask)?

Sie gibt an, welche Rechner in einem gemeinsamen Netz zusammengeschaltet sind und sich damit unmittelbar erreichen können. Rechner in anderen Netzwerken können nur über einen „Gateway“-Rechner erreicht werden. Beispiel: netmask 255.255.255.0 bezeichnet ein Netz mit max 254 Rechnern, wie 192.168.100.x

Firewalls

Sie sind eine Möglichkeit, den Datenverkehr über Netzwerkschnittstellen zu überwachen und einzuschränken. Wir behandeln an dieser Stelle die sogenannten Paketfilter-Firewalls, d.h. Filterkriterium sind IP-Adressen und Portnummern. Wir können für jede Netzwerkschnittstelle getrennt nach Eingang und Ausgabe IP-Adressen und Portnummern blockieren oder freigeben. Neben der grundsätzlichen Haltung, nur unbedingt nötige Serverdienste auf dem eigenen Rechner laufen zu lassen, können wir bei den verbliebenen Diensten den potentiell gefährlichen Zugriff aus dem Internet verhindern. Bei Vorhandensein eines lokalen Netzwerks, welches auch Kontakt zum Internet hat, ist besonders exakt auf die erstellten Regeln zu achten (insbesondere beim SMB-Protokoll bzw. W*-Rechnern im Netz). Wir werden beispielhaft Regeln mit Hilfe des graphischen Programms „Guarddog“ erstellen, es erleichtert uns die Handhabung und entbindet uns davon, das eigentlich benutzte „iptables“ bzw. „ipchains“ mit seiner komplizierten Syntax benutzen zu müssen. Interessierte können sich das von „Guarddog“ erstellte Script mal ansehen (zu finden unter /etc/rc.firewall).

Paketfilter können zwar schon sehr viele Angriffe aus dem Internet stoppen, jedoch ist keine Inhaltskontrolle möglich. Es wird z.B. nicht geprüft, ob das zulässige Paket zu einem Webserver (auf dem eigenen Rechner) gefährlichen Code enthält, eine Kontrolle auf der Anwendungsebene ist anderen Programmen vorbehalten.

Wir gehen ins Internet

Welche Verbindungsmöglichkeiten gibt es?

1. Analoges Modem

  • serieller Anschluss – praktisch alle Modems mit AT-Befehlssatz werden unterstützt
  • USB-Anschluss – nur teilweise von Linux unterstützt
  • Netzwerkanschluss (Ethernet) – neueste Entwicklung für eine problemlose Einwahl ins Internet, basiert auf dem PPPoE Protokoll, wird von Linux problemlos unterstützt.

ISDN-Modem (Karte)

  • Die Unterstützung durch Linux ist sehr unterschiedlich, da es keine der CAPI unter W*****s vergleichbare Funktionalität gibt. Unterstützt werden viele passive ISDN-Karten durch ISDN4LINUX. Vereinzelt veröffentlichen Hersteller eigene Linux-Lösungen.

DSL-Modem

  • Anschluss über Ethernet-Netzwerkanschluss. Die IP Pakete werden in Ethernet-Frames verpackt, auch die Steuerung erfolgt über spezielle Frames (Verbindungsaufbau, -abbau). Das Protokoll heißt PPPoE (Point to Point over Ethernet) und wird von Linux voll unterstützt.

Router (mit und ohne DSL-Modem)

  • Er enthält die Funktionalität, selbstständig Verbindungen auf- und abzubauen, der eingebaute Minirechner kann noch weitere Aufgaben übernehmen (Firewall, Server (Festplatte, Drucker)).

Für alle diese Möglichkeiten enthält Linux entsprechende Einstellungs- und Verbindungsprogramme (-dialoge).

(rw)

DNS (Domain Name Service)

Wer soll sich alle IP-Adressen merken (es gibt rund 4 Mrd Ipv4-Adressen bzw. 32Bit und demnächst noch erheblich mehr, Ipv6 128Bit etwa 6*10^24 IP-Adressen pro m^2 !!!)?

Also schafft man sich eine Möglichkeit die Zahlen durch Namen zu ersetzen, und genau da setzt der DNS ein.

Dabei ist das gesamt Netz hierarchisch aufgebaut.

Ganz oben stehen die ROOT Name-Server (zu finden in /var/named/named.ca).

Diese sind die letzten Instanzen, wenn alle anderen Nameserver nicht mehr weiter wissen.

Im Grunde läuft es so, dass wenn eine DNS keine Auflösung machen kann, erst einmal ein anderer gefragt wird (dieser kann festgelegt werden). Wenn dieser es auch nicht weiß, dann fragt der einen übergeordneten DNS und so weit bis zu den ROOT Name-Servern.

Wenn keiner die aufgerufene Seite kennt, gibt es im Browser, oder wo auch immer man einen externen Rechner über einen Namen anruft, den es nicht gibt, eine Fehlermeldung.

Allerdings muss nicht hinter jeder IP-Adresse ein Namen stehen. So sind z.B. gewisse Server, die geklaute Softwareprogramme und/oder Filme usw. anbieten, oft nur über eine IP-Adresse zu erreichen.

Welchen DNS man gebrauchen soll ?

Normalerweise braucht man sich darüber keine Gedanken machen, wenn man sich über eine Modem einwählt, da der Provider alles zur Verfügung stellt, was man zur Teilnahme am Internet braucht. Manchmal stellt man aber fest, dass es lange dauert bis eine Seite beginnt sich aufzubauen (dies dann aber sehr schnell). Dies kann an dem DNS liegen, den der Provider zur Verfügung stellt. Dessen DNS wußte möglicherweise nicht welche IP-Adresse hinter einem gesuchten Namen steckte und musste seinerseits erst einmal einen anderen DNS fragen, was zu einer Verzögerung geführt hat.

Den DNS kann man aber in der Datei /etc/resolv.conf ändern. Um sich einen neuen DNS zu wählen, kann man mal versuchen den DNS herauszufinden, der eine viel besuchte Seiten auflöst oder der von einer Uni verwendet wird.

Z.B. auf einer Konsole mal

dig www.uni-goettingen.de

eingeben und man erhält folgende (gekürzte) Ausgabe.

;; AUTHORITY SECTION:

uni-goettingen.de. 86400 IN NS gwdu01.GWDG.de.

uni-goettingen.de. 86400 IN NS ws-kar1.win-ip.dfn.de.

;; ADDITIONAL SECTION:

gwdu01.GWDG.de. 86400 IN A 134.76.10.46

ws-kar1.win-ip.dfn.de. 63922 IN A 193.174.75.154

Hier steht im wesentlichen, dass die Domain uni-goettingen.de durch den NS (Nameserver) gwdu01.GWDG.de aufgelöst wird, der die IP-Adresse 134.76.10.46 besitzt. Wenn man diesen Server erreicht, was mit dem Befehl

ping 134.76.10.46

geprüft werden kann, kann man diesen für sich als Nameserver verwenden. Der Vorteil ist, dass dieser NS sehr wahrscheinlich von vielen Mitarbeitern der Uni verwendet wird und somit über einen großen Cache verfügt. DNS verwenden diesen Cache als einen Speicher für Seiten, die sie bereits früher einmal aufgelöst haben, um sofort eine Antwort zu haben, und nicht erst lange zu suchen.

Ach ja übrigens, der Port der dabei benutzt wird, ist der Port 53 in UDP (also ohne zu testen ob die Antwort tatsächlich angekommen ist oder nicht, wie das bei TCP/IP der Fall ist. DNS muß schnell sein. Es geht zwar auch über Port 53 TCP/IP , was aber länger dauert.)

Für kleine Netzte gibt es, statt einen ausgewachsenen Name-Server zu betreiben, die Möglichkeit in einer Datei der /etc/hosts eine einfache Zuordnung zwischen Namen und IP-Adresse zu machen. Diese Einträge sehen dann etwa wie folgt aus:

192.168.0.15 laptop laptop.matthias-riepe.de

Diese Datei muß allerdings auf jeden Rechner innerhalb des Netzwerkes vorliegen, was den administrativen Aufwand bei einer kleinen Anzahl noch überschaubar läßt, aber so ab 10 Rechnern ist es wohl schon o.k. einen Nameserver aufzubauen. Hier braucht man dann nur einmalig auf allen Rechnern die /etc/resolv.conf anpassen und dann den Nameserver aufbauen, in dem nur noch eine Datei angepasst werden muß.

Den Aufbau dieses Servers wollen wir uns jetzt mal etwas genauer ansehen.

Unter RedHat oder FedoraCore-Systemen sind dabei die Dateien /etc/named.conf und das Verzeichnis /var/named entscheidend.

Die Datei /etc/named.conf :

 

options { directory "/var/named";

forwarders { 134.76.10.46; };

forward only; };

zone "." { type hint;

file "named.ca"; };

zone "localhost" { type master;

file "localhost.zone"; };

zone "0.0.127.in-addr.arpa" { type master;

file "named.local"; };

zone "15.0.168.192.in-addr.arpa" { type master;

file "db.15.0.168.192.in-addr.arpa"; };

zone "matthias-riepe.de" { type master;

file "db.matthias-riepe.de"; };

Dabei sagt :

options --- welchen DNS soll ich fragen wenn ich keine Antwort kenne

forward only --- verhindert das die ROOT-NS gefragt werden (die haben wichtigere Aufgaben als irgendwelche Fragen eine Internetusers zu beantworten)

zone "." --- schau auch wenn es nötig wird in den ROOT-Servern nach

zone "localhost" --- brauch ich, um zu entscheiden wer ich eigentlich bin Name --> IP

zone "0.0.127.in-addr.arpa" --- und natürlich auch umgekehrt IP --> Name

zone "matthias-riepe.de" --- siehe den vorletzten Eintrag

zone "15.0.168.192.in-addr.arpa" --- siehe den vorletzten Eintrag

jeder der letzten 5 Einträge zielt auf eine Datei im Verzeichnis /var/named mit dem Eintrag

file ”...”;

und zu denen kommen wir jetzt.

named.ca ist der ROOT-File, der nicht verändert werden sollte.

localhost.zone und named.local werden bei der Installation erzeugt und lösen localhost auf und umgekehrt. Aber jetzt wird es interessant wenn wir eine Domäne verwalten wollen und zwar in diesem Falle matthias-riepe.de. Sehen wir uns diese Datei mal genauer an....

$TTL 86400

@ IN SOA laptop.matthias-riepe.de. root.laptop.matthias-riepe.de. (

  42   ; serial (d. adams)
  3H   ; refresh
  15M   ; retry
  1W   ; expire
  1D )   ; minimum
@   IN NS laptop.matthias-riepe.de.
@   IN A 192.168.0.15
laptop.matthias-riepe.de.   IN A 192.168.0.15
www   IN A 192.168.0.15

ganz wichtig und immer als erstes $TTL (TimeToLive <SEKUNDEN>) für Name-Server, die cachen, wie lange diese, diesen RR (Resource Record) behalten sollen. Das @ steht hier für die Zone matthias-riepe.de in der SOA (Start of Authority) laptop.matthias-riepe.de, wobei bei Beschwerden doch bitte root@laptop.matthias.de angemacht werden soll.

 

Ja der erste Punkt in root.laptop.matthias-riepe.de. ist eigentlich ein @, das aber schon eine andere Bedeutung hat. Der Punkt am Ende von de. ist ebenfalls richtig.

 

Jeder RR hat eine Seriennummer, hier 42, danach folgt ein Kommentar. Diese Zahl ist für Slave DNS wichtig, die sich nur anhand diese Nummer orientieren, um festzustellen, ob sich ein RR geändert hat, also wenn man intelligent ist, hier am besten ein Datum hinterlegen.

 

dann 3H(ours) Kommentar : refresh --> erst nach dessen Ablaufen sollen Slave NS wieder beim Master nachfragen, ob sich irgendetwas geändert hat oder aber auch nicht (Seriennummer)

 

15M(inutes) Kommentar : retry --> Lieber Slave NS warte doch bitte so lange nachdem ein refresh schief gegangen ist.

 

1W(eek) Kommentar : expire --> Lieber Slave NS nutze doch bitte solange den Eintrag auch wenn alle refreshs schief gegangen sind erst danach lösche ihn.

 

1D ) Kommentar : minimum --> Zeit, die der NS die Antwort “No such host” speichern soll, um es danach erneut zu versuchen.

 

So und nun kommt die eigentlich Auflöse-Arbeit:

@   IN NS laptop.matthias-riepe.de.
@   IN A 192.168.0.15
laptop.matthias-riepe.de.   IN A 192.168.0.15
www   IN A 192.168.0.15

das @ hatte wir schon

also übersetzen wir doch mal

 

matthias-riepe.de. ist IN N(ame)S(erver) laptop.matthias-riepe.de. zu finden. Der . am Ende ist richtig.

 

matthias-riepe.de. ist IN der A(dresse) 192.168.0.15 zu finden

 

oder auch nur laptop ist IN der A(dresse) 192.168.0.15 zu finden

 

www oder auch www.matthias-riepe.de. ist IN der A(dresse) 192.168.0.15 zu finden

 

merkwürdig, hinter der Adresse 192.168.0.15 ist laptop.matthias-riepe.de und www.matthias-riepe.de zu finden. Ja das geht. So ist es z.B. möglich sogenanntes Multihosting zu veranstalten und unter einer IP mehrere Domains zu hosten (es lebe HTTP 1.1). Hätte ich jetzt einen Web-Server laufen könnte ich ihn über einen Browser erreichen.

 

Natürlich gibt es auch noch andere Optionen, die man setzten kann, z.B. einen einfachen Loadbalancer einrichten. Dieser arbeitet aber nur nach dem Round Robin Prinzip

 

(1. Anfrage bearbeitet 1.Server , 2. Anfrage der 2.Server , die 3.Anfrage wieder der 1.Server usw.)

 

Anfragen, die an Mailserver gerichtet werden, können zielgerichtet über sogenannte MX Einträge weitergeleitet werden.

 

nun schauen wir uns mal die Datei db.15.0.168.192.in-addr.arpa an

 

$TTL 86400

@ IN SOA laptop.matthias-riepe.de. root.laptop.matthias-riepe.de. (

      46 ; serial (d. adams)
      3H ; refresh
      15M ; retry
      1W ; expiry
      1D ) ; minimum
@   IN NS   laptop.matthias-riepe.de.
15.0.168.192.IN-ADDR.ARPA.   IN PTR   laptop.matthias-riepe.de.

(PoinTerRecords )

Interessant ist hier eigentlich nur der letzte Eintrag, der eine IP-Adresse in einen Namen verwandelt.

 

So jetzt das ganze gespeichert und die /etc/resolv.conf noch angepasst, so dass sie jetzt so aussieht:

 

search matthias-riepe.de

nameserver 192.168.0.15

 

den letzten Eintrag kann man auch weglassen oder nur ihn verwenden

und den Server gestartet

 

mit einem

dig matthias-riepe.de

erhält man nun folgende Antwort (verkürzt):

 

;; ANSWER SECTION:

matthias-riepe.de. 86400 IN A 192.168.0.15

 

;; AUTHORITY SECTION:

matthias-riepe.de. 86400 IN NS laptop.matthias-riepe.de.

 

;; ADDITIONAL SECTION:

laptop.matthias-riepe.de. 86400 IN A 192.168.0.15

 

;; Query time: 49 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

 

Hurra der Nameserver läuft.

 

(matthias riepe)

Nach oben

Letzte Änderung: 16.Sep.2008