Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Einleitung
1 Was ist Ubuntu?
2 Die Versionen im Detail
3 Die Shell
4 Migration und Synchronisation
5 Die Installation
6 Erste Schritte
7 Ubuntu mobil
8 Derivate
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia und Spiele
13 Programmierung und Design
14 Hardware-Konfiguration
15 Software- und Paketverwaltung
16 Architektur
17 Backup und Sicherheit
18 Server-Installation
19 Datei- und FTP-Server
20 Weitere Server-Dienste
21 Kontrolle und Monitoring
22 Desktop-Virtualisierung
23 Server-Virtualisierung mit KVM
24 Server-Virtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz Ubuntu Linux
A Übersicht: Software für (K)Ubuntu
B Mark Shuttleworth
C Glossar
D Häufig gestellte Fragen
Stichwort

Download:
- ZIP, ca. 36,6 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Ubuntu GNU/Linux von Marcus Fischer
Das umfassende Handbuch, aktuell zu Ubuntu 9.04 - Jaunty Jackalope
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
4., aktualisierte und erweiterte Auflage, geb.
1.120 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1439-1
Pfeil 20 Weitere Server-Dienste
Pfeil 20.1 DHCP-Server
Pfeil 20.2 DNS-Server
Pfeil 20.2.1 BIND-Konfiguration
Pfeil 20.2.2 DNS-Zonen
Pfeil 20.2.3 Sekundärer Name-Server
Pfeil 20.2.4 BIND absichern
Pfeil 20.3 Proxy-Server
Pfeil 20.4 Web-Server Apache
Pfeil 20.5 Datenbankserver MySQL
Pfeil 20.6 E-Mail-Versand mit Exim4
Pfeil 20.7 Print-Server


Galileo Computing - Zum Seitenanfang

20.2 DNS-Server Zur nächsten ÜberschriftZur vorigen Überschrift

Sie können ein freien DNS-Server für Linux mithilfe von BIND (Berkeley Internet Name Domain) einrichten. Nachfolgend erfahren Sie, wie Sie einen Name-Server für eine eigene Domain einrichten, die entweder weltweite oder private IP-Adressen besitzen kann.


Galileo Computing - Zum Seitenanfang

20.2.1 BIND-Konfiguration Zur nächsten ÜberschriftZur vorigen Überschrift

Im beschriebenen Beispiel gibt es zwei Subnetze im lokalen Netz. Sie können anhand dieses Beispiels natürlich BIND auch in einem einfachen lokalen Netz oder einem Netz mit mehr als zwei Subnetzen einrichten, indem Sie die Konfiguration für ein Subnetz weglassen oder sie für ein drittes vornehmen.

Die wichtigsten Eckdaten für die Konfiguration sind:

  • zwei lokale Netze mit Adressen 172.30.2.x und 172.30.3.x
  • ein Router (router.artemis.home), der die beiden Netze verbindet
  • ein nicht permanenter Internet-Zugang über den Server
  • der Server 'hermes.artemis.home' (mit BIND 8.1) mit der IP-Adresse 173.30.2.1 und gleichzeitig mit der dynamischen Adresse 'hermes.mars.de'

Resolver

Der Resolver verwendet die Dateien /etc/hosts, /etc/host.conf und /etc/resolv.conf. Mit libc6, die in allen Distributionen mittlerweile Standard ist, kommt noch /etc/nsswitch.conf hinzu.

Die Konfiguration des DNS-Servers erfolgt in diesem Beispiel in der Reihenfolge, wie sie in /etc/hosts angegeben ist. So können auch Namen, die außerhalb der privaten Domain liegen, ohne Befragen eines externen Name-Servers aufgelöst werden.

order   hosts, bind 
multi   on 
hosts: files dns

Obwohl in dieser Datei recht viel stehen kann (siehe die Manpage), genügt uns eine einzige Zeile. Diese legt im Prinzip dasselbe fest wie /etc/host.conf. Sie ist nicht nötig auf älteren Systemen, die libc5 verwenden.

Dies sind die wenigen verbleibenden Einträge in /etc/hosts. Auf die Zeile mit 127.0.0.1 kann man im Prinzip auch noch verzichten. Doch es ist wahrscheinlich effizienter, die häufig gebrauchte Adresse von localhost aus der Datei zu lesen, als sie von einem DNS-Server zu erfragen.

Der Eintrag hermes.mars.de ist ein übler Hack, da diesem Namen ja eigentlich keine statische IP-Adresse zugeordnet ist. Damit wird aber verhindert, dass ein externer Name-Server gefragt wird, was wiederum Telefonkosten spart.

# host database 
127.0.0.1       localhost loopback 
172.30.2.1      hermes.mars.de

Die private Domain (172.30.x.x) habe ich artemis.home getauft. Der Name-Server-Eintrag dürfte offensichtlich sein. »home« ist keine offizielle TLD (Top Level Domain), d. h. Namenskonflikte mit Servern, die im Internet erreichbar sind, sind ausgeschlossen.

domain artemis.home 
nameserver 172.30.2.1

BIND

Die Konfigurationsdatei von BIND ist /etc/named.conf. Dieser Name ist fest vorgegeben. Er könnte auch ein Link auf /var/named/conf sein. Frühere Versionen von BIND (vor 8.1) verwendeten die Datei /etc/named.boot.

options { 
        directory "/var/named"; 
        forward only; 
        forwarders { 
                212.227.14.1; 
        }; 
}; 
zone "artemis.home" { 
        type master; 
        file "named.artemis.home"; 
}; 
zone "2.30.172.in-addr.arpa" { 
        type master; 
        file "named.172.30.2"; 
}; 
zone "3.30.172.in-addr.arpa" { 
        type master; 
        file "named.172.30.3"; 
}; 
zone "0.0.127.in-addr.arpa" { 
        type master; 
        file "named.127.0.0"; 
}; 
zone "." { 
        type hint; 
        file "root.cache"; 
};

Diese Datei besagt Folgendes:

  • Alle weiteren Konfigurationsdateien werden in /var/named gefunden.
  • Es sind Primary-Name-Server für die Zonen artemis.home sowie 172.30.2, 172.30.3 und 127.0.0 (für den Reverse Lookup). Die entsprechenden Konfigurationsdateien sind named.artemis.home, named.173.30.2, named.172.30.3 und named.127.0.0 (frei wählbar).
  • Anfragen, die nicht beantwortet werden können, werden an die Systeme weitergeleitet, die in forwarders genannt sind.
  • Die Root-Name-Server stehen in root.cache. Diese Datei ist allerdings leer, da alle Anfragen über die forwarders abgewickelt werden.
  • Die Option forward only ist notwendig, sonst werden unbekannte Adressen überhaupt nicht aufgelöst.

named.artemis.home enthält alle Namen des lokalen Netzes, inklusive des lokalen Hosts und des Loop Back. Der SOA-Record muss immer vorhanden sein, ebenso der NS-Record.

Der Name postmaster.hermes.artemis.home ist der administrative Kontakt, der mit einer real existierenden E-Mail-Adresse postmaster@hermes.artemis.home korrespondiert. In einem offiziellen Netz müsste dies natürlich eine offiziell erreichbare E-Mail-Adresse sein. Meist wird hostmaster@... verwendet.

Die Seriennummer serial ist eine willkürliche Zahl, die bei jeder Änderung hochgezählt werden sollte. Eine gute Möglichkeit ist die hier gezeigte Konvention, das Datum der Änderung (20090502) und eine laufende Nummer aus zwei Ziffern (02) zu verwenden. Das $TTL 86400 gibt an, wie lange ein Eintrag im Cache behalten wird. Überall dort, wo ein Hostname ohne abschließenden Punkt steht, wird automatisch .artemis.home ergänzt. Statt localhost könnte man also auch Folgendes schreiben: localhost.artemis.home. Beachten Sie den Punkt am Ende! Fehlt der Punkt, wird nochmals .artemis.home angehängt.

$TTL 86400 
@       IN      SOA     hermes        postmaster.hermes ( 
        2009050202 10800 1800 3600000 259200 ) 
@                       IN      NS      hermes 
localhost       IN      A       127.0.0.1 
loopback        IN      CNAME   localhost 
hermes        IN      A       172.30.2.1 
router          IN      A       172.30.2.2 
zeus         IN      A       172.30.2.3 
router          IN      A       172.30.3.1 
venus          IN      A       172.30.3.2

Syslog und mehrere Pipes

Programme schreiben in das Syslog, indem sie in die Pipe /dev/log schreiben. Diese Sd von Syslog angelegt. Unser eingesperrtes BIND kann aber nicht auf /dev/log zugreifen. Doch zum Glück kann man Syslog dazu bringen, mehrere solche Pipes anzulegen. Da wir eine Pipe in /home/dns/dev benötigen, fügen Sie in dem rc-Skript, in dem Syslog gestartet wird (z. B. /etc/init.d/syslog), die Argumente -a /home/dns/dev/log hinzu. Dann stoppen Sie Syslog und starten es wieder. Die Änderung ist nun aktiv.



Galileo Computing - Zum Seitenanfang

20.2.2 DNS-Zonen Zur nächsten ÜberschriftZur vorigen Überschrift

Diese Datei ergibt sich in offensichtlicher Weise aus named.artemis.home, jedoch sind localhost und die Hosts im Subnetz 172.30.3.x hier nicht enthalten, da sie in anderen Zonen liegen als 172.30.2.x. Hier treiben wir es mit den Abkürzungen auf die Spitze. Sie definieren mit $ORIGIN, was an die Einträge auf der linken Seite angehängt werden soll (natürlich nur, wenn diese keinen Punkt am Ende haben. Aus dem simplen 1 wird dadurch 1.2.30.172.in-addr.arpa., was für die IP-Adresse 172.30.2.1 steht.

$TTL 86400 
@       IN      SOA     hermes        postmaster.hermes.artemis.home. ( 
        1999010902 10800 1800 3600000 259200 ) 
@               IN      NS      hermes.artemis.home. 
1               IN      PTR     hermes.artemis.home. 
2               IN      PTR     router.artemis.home. 
3               IN      PTR     asterix.artemis.home. 
4               IN      PTR     obelix.artemis.home.

und

$TTL 86400 
@       IN      SOA     hermes        postmaster.hermes.artemis.home. ( 
        1999010902 10800 1800 3600000 259200 ) 
@               IN      NS      hermes.artemis.home. 
1               IN      PTR     router.artemis.home. 
2               IN      PTR     venus.artemis.home.

Das ist dasselbe in Grün, also für die Zone 127.0.0, die nur localhost enthält.

$TTL 86400 
@       IN      SOA     hermes        postmaster.hermes.artemis.home. ( 
        1997110901 10800 1800 3600000 259200 ) 
@                       IN      NS      hermes.artemis.home. 
1.0.0.127.in-addr.arpa. IN      PTR     localhost.artemis.home.

Galileo Computing - Zum Seitenanfang

20.2.3 Sekundärer Name-Server Zur nächsten ÜberschriftZur vorigen Überschrift

Ein sekundärer Name-Server erhöht die Fehlertoleranz, da er bei Ausfall des primären Servers dessen Aufgaben übernehmen kann. Es wird dieselbe Konfiguration verwendet wie oben beschrieben. In diesem Beispiel nehme ich an, dass der sekundäre Name-Server die Adresse 172.30.2.4 hat.

Resolver

Auf allen Rechnern muss die Datei /etc/resolv.conf um die Adresse des sekundären Name-Servers ergänzt werden. Das Resultat ist:

domain artemis.home 
nameserver 172.30.2.1 
nameserver 172.30.2.4

Das Einrichten des sekundären Name-Servers erfordert drei einfache Schritte:

1. Anlegen des Verzeichnisses /var/named:
mkdir /var/named
2. Anlegen der Datei /var/named/root.cache:
touch /var/named/root.cache
3. Kopieren der Datei /etc/named.conf vom primären Name-Server. Diese Datei muss geringfügig abgeändert werden. Ersetzen Sie alle Zeilen type master; durch type slave;. Dann ergänzen Sie jede Zone außer "." durch eine Zeile masters { 172.30.2.1;}.
options { 
        directory "/var/named"; 
        forward only; 
        forwarders { 
                212.227.14.1; 
        }; 
}; 
zone "artemis.home" { 
        type slave; 
        file "named.artemis.home"; 
        masters { 172.30.2.1; }; 
}; 
zone "2.30.172.in-addr.arpa" { 
        type slave; 
        file "named.172.30.2"; 
        masters { 172.30.2.1; }; 
}; 
zone "3.30.172.in-addr.arpa" { 
        type slave; 
        file "named.172.30.3"; 
        masters { 172.30.2.1; }; 
}; 
zone "0.0.127.in-addr.arpa" { 
        type slave; 
        file "named.127.0.0"; 
        masters { 172.30.2.1; }; 
}; 
zone "." { 
        type hint; 
        file "root.cache"; 
};

Die file-Einträge haben in dieser Datei eine andere Bedeutung als beim primären Name-Server. Sie müssen beim sekundären Name-Server nicht vorhanden sein, jedoch kann der Server, wenn er beendet wird, seine Zonen-Informationen in diese Dateien schreiben, um den nächsten Start zu beschleunigen. Nun muss der Name-Server nur noch gestartet werden.

Vergessen Sie nicht, in den Init-Files für einen automatischen Start zu sorgen!

Sie testen den neuen Name-Server, indem Sie den alten Name-Server stoppen.

Dann führen Sie ping und nslookup von verschiedenen Rechnern und mit verschiedenen Zieladressen aus. Starten Sie anschließend den alten Name-Server wieder. Ihr Netz ist jetzt gegen den Ausfall eines Name-Servers gesichert.


Galileo Computing - Zum Seitenanfang

20.2.4 BIND absichern topZur vorigen Überschrift

Der DNS-Server BIND, bei Weitem die am weitesten verbreitete Implementierung von DNS, hat eine lange Historie von Sicherheitslücken. Diese waren teilweise besonders übel, weil DNS mit Root-Rechten lief. Das war notwendig, da der Port des DNS-Protokolls, Port 53, nur von Root geöffnet werden kann.

Dieser Abschnitt zeigt, wie Sie BIND die Root-Rechte nehmen, und wie Sie andere Aspekte des Servers sicherer machen.

Sollten Sie noch nicht die Version 8.2.3 von BIND nutzen, dann ist es höchste Zeit für ein Update. Version 8.2.3 ist derzeit die einzige Version 8.x, die keine bekannten Sicherheitslücken hat. Es gibt zwar bereits die Versionen 9.0 und 9.1, doch sind diese im Moment noch nicht zu empfehlen. BIND 9.x ist eine komplette Neuimplementierung mit ihren eigenen Kinderkrankheiten.

Seit Version 8.2 ist BIND in der Lage, nach dem Binden von Port 53 die Root-Rechte abzugeben und als normaler Benutzer weiterzumachen.

Zusätzlich kann er in ein bestimmtes Directory wechseln und dort ein chroot ausführen, um dieses Directory niemals mehr zu verlassen.

Das Abgeben der Root-Rechte ist ohne nennenswerten Aufwand machbar. Sie legen einen Benutzer und eine Gruppe dns an. Starten Sie named mit der Option -u dns.

Das einzige Problem, dem Sie nun gegenüberstehen könnten, ist, dass named nun nicht mehr ausreichende Rechte in seinen Verzeichnissen hat.

Deswegen schieben Sie noch ein chown-Kommando nach:

groupadd -g 150 dns 
useradd -u 150 -g 150 -M -s /bin/false dns chown -R dns.dns /var/named

Wenn nun noch die Datei /etc/named.conf für dns lesbar ist, haben Sie es geschafft. Achten Sie auf die Log-Ausgaben in /var/log/messages, um zu sehen, ob nichts schiefgegangen ist. In den obigen Kommandos bin ich davon ausgegangen, dass BIND die Standard-Pfade verwendet. Die Nummern für Benutzer und Gruppe dns sind natürlich nur Beispiele.

Entwurzelung

Die obige Schnellmaßnahme schützt Sie davor, dass ein Angreifer unmittelbar Root-Rechte erlangen kann. Doch das ist nicht genug. Nun müssen Sie named aus seinen Standard-Pfaden entfernen und in eine chroot-Umgebung einbinden. Die chroot-Umgebung ist nichts anderes als eine abgemagerte Dateihierarchie, in der sich nur named und die von ihm benötigten weiteren Dateien befinden. Durch den Systemaufruf chroot(2) kann sich ein Programm selbst in dieser Umgebung einsperren und dann nie mehr daraus entweichen. Eine »Flucht« könnte allenfalls auf sehr trickreichen Wegen gelingen, wenn das Programm Root-Rechte hat. Diese sollten Sie ihm wie oben beschrieben nehmen.

Die chroot-Umgebung muss in irgendeinem Verzeichnis im normalen Dateisystem ihren Ursprung haben. Ich habe dafür /home/dns gewählt. Wenn Sie »von außen« eine Datei /home/dns/etc/localtime sehen, dann sieht ein Programm nach dem Ausführen von chroot /home/dns diese als /etc/localtime.

Der Nachteil einer chroot-Umgebung ist die Duplizierung einiger Dateien, darunter auch libc. Dies belegt zusätzlichen Platz auf der Festplatte, doch auf einem Name-Server dürfte davon genug zur Verfügung stehen.

Mit folgenden einfachen Schritten legen Sie die komplette chroot-Umgebung an:

mkdir -m 0700 /home/dns 
mkdir -m 0755 /home/dns/etc 
mkdir -m 0755 /home/dns/lib 
mkdir -m 0755 /home/dns/dev 
mkdir -m 0755 /home/dns/usr 
mkdir -m 0755 /home/dns/usr/sbin 
mkdir -m 0755 /home/dns/var 
mkdir -m 0755 /home/dns/var/named 
mkdir -m 0755 /home/dns/var/run 
mknod -m 666 /home/dns/dev/null c 1 3 
cp /etc/localtime /home/dns/etc/ 
cp /etc/named.conf /home/dns/etc/ 
cp /var/named/* /home/dns/var/named 
chown -R dns.dns /home/dns/var/named /home/dns/var/run 
cp /usr/sbin/{named,named-xfer} /home/dns/usr/sbin 
cp /lib/libc.so.6 /home/dns/lib 
cp /lib/libpthread.so.0 /home/dns/lib 
cp /lib/libnsl.so.1 /home/dns/lib 
cp /lib/ld-linux.so.2 /home/dns/lib 
cp /usr/local/lib/libdns.so.3 /home/dns/lib 
cp /usr/local/lib/libisc.so.3 /home/dns/lib 
cp /usr/local/lib/liblwres.so.1 /home/dns/lib 
cp /usr/local/lib/libomapi.so.3 /home/dns/lib

Die letzten cp-Befehle verweisen auf symbolische Links, doch das Kopieren bewirkt, dass die echte Library-Datei kopiert wird. Wenn Sie noch etwas Platz sparen möchten, führen Sie als letzten Befehl noch

strip /home/dns/lib/*

aus. Das verkleinert libc auf etwa 1,3 MB und die anderen Libs entsprechend.

Nun müssen Sie noch Syslog präparieren. Programme schreiben ins Syslog, indem sie in die Pipe /dev/log schreiben. Diese wird von Syslog angelegt. Unser eingesperrtes BIND kann aber nicht auf /dev/log zugreifen. Doch zum Glück kann man Syslog dazu bringen, mehrere solche Pipes anzulegen. Da Sie eine Pipe in /home/dns/dev benötigen, fügen Sie in dem rc-Skript, in dem syslog gestartet wird (z. B. /etc/init.d/syslog), die Argumente -a /home/dns/dev/log hinzu. Dann stoppen Sie Syslog und starten es wieder neu. Die Änderung ist nun aktiv.

Der Start von BIND in der neuen Umgebung ist unspektakulär. Sie stoppen BIND, sofern er noch läuft, und ändern dann das rc-Skript, in dem BIND gestartet wird. Fügen Sie dem Aufruf die Argumente -u dns -t /home/dns hinzu, speichern Sie die Datei, und starten Sie dann BIND neu. Prüfen Sie /var/log/messages. Dort muss sich BIND gemeldet haben und erklären, dass er bereit sei. (Bei manchen Distributionen ist es stattdessen /var/log/daemon.log).

Zone Transfer einschränken

Zone Transfer ist nötig zum Datenabgleich zwischen den DNS-Servern. Wenn Sie DNS nur für das Intranet verwenden, dann sollte ein Zone Transfer ins Internet überhaupt nicht möglich sein. Dies können Sie mit Bindung an spezifische Netzwerk-Interfaces und Paketfiltern (s. u.) erreichen. Am wirksamsten ist die Kombination dieser Maßnahmen.

Ist ein Zone Transfer zu einem Partner-DNS-Server nötig, so erlauben Sie diesen Transfer nur den jeweiligen Servern. Deren IP-Adressen sind ja ohnehin bekannt. Tragen Sie Folgendes in /home/dns/etc/named.conf ein (die IP-Adresse ersetzen Sie natürlich durch die Adressen Ihrer Partner-Server):

options { 
    ... 
    allow-transfer { 
        217.17.17.17; 
    } 
    ... 
};

Binden nur an die nötigen Netzwerk-Interfaces

Standardmäßig bindet BIND sich an alle vorhandenen Netzwerk-Interfaces. Dies können Sie mit einem Eintrag in /home/dns/etc/named.conf einschränken:

options { 
    ... 
    listen-on { 
        192.168.1.1; 
        192.168.2.1; 
    } 
    ... 
};

Die Adressen sind natürlich nur Beispiele. Wenn Sie irgendwo den Eintrag 127.0.0.1 als DNS-Server haben, sollten Sie auch 127.0.0.1 zu der Liste hinzufügen – ich sehe allerdings wenig Sinn in solch einer Konfiguration. Wenn Sie DNS nur für das Intranet verwenden, dann sollte das Netzwerk-Interface, das zum Internet führt, nicht in der Liste enthalten sein.


Unerwünschte BIND-Verbindungen unterdrücken

Wenn Sie BIND in einem lokalen Netz benutzen, das über eine Wählleitung ans Internet angeschlossen ist, und keine Flatrate besitzt, könnten die beiden folgenden Optionen Sie interessieren, die unter options in /home/dns/etc/named.conf eingetragen werden. Diese Optionen haben jedenfalls nichts mit Sicherheit zu tun, sondern sollen nur unerwünschte Verbindungsanforderungen unterdrücken:

  • dialup yes reduziert die Aktivitäten bei Zone Transfers.
  • notify no sendet keine NOTIFY-Nachrichten bei Konfigurationsänderungen.

Paketfilter

Paketfilter können unerwünschte Zugriffe auf den DNS-Server verhindern. Wie diese aussehen sollten, ist aber stark von der individuellen Netzwerk-Topologie und der Platzierung des DNS-Servers abhängig. Wenn Sie DNS nur für das Intranet verwenden, dann sollte er von außen nicht erreichbar sein. Man würde in diesem Fall also alle auf Port 53 ankommenden UDP-Pakete verwerfen. Zone Transfers sollten auch unterbunden werden. Das bedeutet, sämtliche TCP-Pakete von oder nach Port 53 zu verwerfen.

Soll der DNS-Server dagegen aus dem Internet erreichbar sein, können Sie mit Paketfiltern wenig machen. Es empfiehlt sich dann, für das Intranet und die nach außen sichtbaren Rechner separate DNS-Server aufzusetzen.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Ubuntu GNU/Linux





Ubuntu GNU/Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Linux






 Linux


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Webserver einrichten und administrieren






 Webserver einrichten
 und administrieren


Zum Katalog: Xen






 Xen


Zum Katalog: VirtualBox






 VirtualBox


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: Einstieg in Ubuntu 8.10 »Intrepid Ibex«





 Einstieg in Ubuntu
 8.10 »Intrepid Ibex«


Zum Katalog: Einstieg in Ubuntu Linux - Videotraining





 Einstieg in Ubuntu
 Linux - Videotraining


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de