5. Im Netz

1. Internet-Zugang
5.1.1. Netzwerkgrundlagen & -dokumenation?
5.1.2. Linux und PPP?
5.1.3. Wie stelle ich die Geschwindigkeit einer PPP-Verbindung fest?
5.1.4. Linux und ISDN?
5.1.5. Linux und österreichische ADSL-, ISDN- oder Kabelzugänge?
2. Mein eigenes Netzwerk
5.2.1. Welchen IP-Adreßbereich kann ich für ein privates Netz nutzen?
5.2.2. Mein Netzwerk geht nicht. Wie finde ich den Fehler?
5.2.3. Funktioniert meine Netzwerkkarte?
5.2.4. Warum kann ich andere Rechner nicht anpingen?
5.2.5. ping oder traceroute?
5.2.6. Appletalk und Linux?
3. ipchains, Firewall, Masquerading, Port-Forwarding
5.3.1. Dokumentation zu iptables, ipchains, ipfwadm
5.3.2. Wie ermögliche ich über meinen Linux-PC anderen Rechnern den Zugang zum Internet?
5.3.3. Welche Programme gibt es sonst noch für Router/Firewall/Gateway?
5.3.4. Ich habe eine Firewall, und das Programm bzw. Protokoll xyz funktioniert nicht!
5.3.5. Wie kann ich feststellen, ob mein Linux-Rechner gehackt worden ist?
4. Secure Shell
5.4.1. Was ist so gefährlich am telnet-Zugang für root?
5.4.2. Wie logge ich mich mit telnet als root ein?
5.4.3. Wo gibt es Dokumentation zur ssh?
5.4.4. Kostenlose ssh-Clients für Windows?
5.4.5. Wie logge ich mich mit ssh als root ein?

1. Internet-Zugang

5.1.1. Netzwerkgrundlagen & -dokumenation?

5.1.3. Wie stelle ich die Geschwindigkeit einer PPP-Verbindung fest?

Das Script /etc/ppp/ip-up wird laut man pppd mit fünf Parametern aufgerufen.

  1. interface-name

  2. tty-device

  3. speed

  4. local-IP-address

  5. remote-IP-address

  6. ipparam

Dieser dritte Parameter gibt aber nur die serielle Geschwindigkeit an. Für die Leitungsgeschwindigkeit kann man im Chat-Script ein REPORT CONNECT einfügen. Mit der Option -r filename kann man sich sogar die Datei aussuchen.

5.1.5. Linux und österreichische ADSL-, ISDN- oder Kabelzugänge?

Die definitive Referenz ist das „Austrian Highspeed Internetconnection & Linux HOWTO“.

http://howto.htlw16.ac.at/AT-HIGHSPEED-HOWTO.html

2. Mein eigenes Netzwerk

5.2.1. Welchen IP-Adreßbereich kann ich für ein privates Netz nutzen?

Class A:10.0.0.0 bis 10.255.255.255Netmask 255.0.0.0
Class B:172.16.0.0 bis 172.31.255.255Netmask 255.255.0.0
Class C:192.168.0.0 bis 192.168.255.255Netmask 255.255.255.0

Die Adreßbereiche für private TCP/IP-Netze sind in RFC-1918 „Address Allocation for Private Internets“ festgelegt. http://www.faqs.org/rfcs/rfc1918.html

5.2.2. Mein Netzwerk geht nicht. Wie finde ich den Fehler?

Zunächst einmal muss die Ausgabe folgender Kommandos stimmen:

ip addr
ip route
iptables -L -v -n
iptables -L -v -n -t nat

Bei manchen Distributionen fehlt das Programm ip bzw. gehört nicht zum Kern ip (Debian: apt-get install iproute). Statt dessen gibt es ifconfig und route -n.

Die nächste Frage ist dann, was genau nicht geht. Also welches Protokoll, welcher Client, welcher Server, Proxy oder nicht. Und ob der Fehler alle Dienste der Server-Maschine betrifft, oder alle Server-Maschinen, oder überhaupt jeden Teil von TCP/IP. Siehe dazu F: 5.2.3., F: 5.2.4. und F: 5.2.5..

http://www.jrksoftware.com/articles/troubleshooting-network-errors-tcp-ip.html

5.2.3. Funktioniert meine Netzwerkkarte?

Wenn der richtige Treiber den I/O-Bereich der Karte richtig erkannt hat und eine „vernünftige“ Ethernet-Adresse ausliest, dann ist die Hälfte des Weges geschafft. Die betreffenden Kernelmeldungen sieht man so:

dmesg | grep eth

Siehe dazu auch F: 4.4.6..

Mit richtig erkanntem I/O-Bereich kann man Pakete senden, aber erst mit einem funktionierenden Interrupt wird auch empfangen. Das lässt sich so überprüfen:

grep eth /proc/interrupts

Wenn keine Ausgabe kommt, oder der Zähler (das zweite Feld) auf Null bleibt, ist der Fehler offensichtlich. Wenn die Netzwerkkarte sich allerdings den Interrupt mit anderen Geräten teilt, wird einerseits die Diagnose schwierig, andererseits macht ein geteilter Interrupt an sich manchmal schon Probleme. Mittels BIOS, Jumper (ISA-Bus-Karten) oder Einstellungen im EEPROM lässt sich das unter Umständen ändern. Siehe dazu http://www.scyld.com/ethercard_diag.html.

5.2.4. Warum kann ich andere Rechner nicht anpingen?

Ich kann von meinem Linux-Rechner aus keinen Rechner anpingen (100% packet loss). Netzwerk-Einstellungen (und Kernel-Konfiguration) habe ich aber korrekt und ganz genau nach Anleitung vorgenommen, die Netzwerkkarte wird richtig erkannt. Am Kabel kann es auch nicht liegen, das habe ich getestet. Was mache ich bloß falsch?

Mit einem ping auf eine IP-Adresse überprüft man viele Dinge auf einmal.

  1. Die Netzwerkkarte kann senden.

  2. Pakete des Typs ICMP ECHO_REQUEST passieren alle Paketfilter und Router bis zum Ziel.

  3. Der Zielrechner antwortet mit ICMP ECHO_RESPONSE

  4. Pakete dieses Typs passieren alle Paketfilter und Router auf dem Weg zurück.

  5. Die Netzwerkkarte kann empfangen.

Bei einem ping auf einen Rechnernamen kommt auch noch die Auflösung von Namen auf IP-Adressen hinzu.

Im Fehlerfall muss man diese Dinge dann einzeln angehen. Wichtig ist auch, dass man klein anfängt. 127.0.0.1, dann Adresse der Netzwerkkarte, dann Adresse eines Rechner im selben Segment, Vorderseite des Routers, Rückseite des Routers, …

5.2.5. ping oder traceroute?

traceroute liefert in nicht-trivialen Netzwerken meist mehr Hinweise als ping.

Allerdings arbeitet die traditionelle Implementierung von traceroute mit UDP-Paketen (Port 33434 laut /etc/services) während ping Pakete des Typs ICMP/ECHO verwendet. Unter Umstände wird eines der Verfahren durch einen dazwischenliegenden Paketfilter blockiert.

tracert unter Windows verwendet genau wie ping Pakete des Typs ICMP/ECHO. Manche Implementierung von traceroute bieten dieses Verhalten mit der Option -I.

Will man ganze Adressbereiche in einem Durchgang pingen, empfiehlt sich nmap.

nmap -n -sP 192.168.1.0/24

3. ipchains, Firewall, Masquerading, Port-Forwarding

5.3.1. Dokumentation zu iptables, ipchains, ipfwadm

Es gibt eine ganze Reihe von HOWTOs

http://www2.uibk.ac.at/linuxdoc/LDP/HOWTO/HOWTO-INDEX/networking.html#NETSECURITY

Die Website der Kernel-Entwickler bietet FAQ, HOWTOs und Tutorials in verschiedenen Sprachen

http://www.netfilter.org/documentation/

de.comp.security.firewall FAQ

http://www.iks-jena.de/mitarb/lutz/usenet/Firewall.html

Firewall Handbuch für LINUX 2.0 und 2.2

http://www.little-idiot.de/firewall/

5.3.2. Wie ermögliche ich über meinen Linux-PC anderen Rechnern den Zugang zum Internet?

Ein LINUX-PC als Internet-, Datei-, Druck-, Fax-, Scanner- und Einwahlserver (stark SuSE-lastig):

http://info.ccone.at/INFO/Linux/index.html

Zu den grundlegenden Stufen gibt es reichlich HOWTOs

http://www2.uibk.ac.at/linuxdoc/LDP/HOWTO/HOWTO-INDEX/networking.html

Und ein sehr ausführlicher „Linux Network Administrators Guide“

http://www2.uibk.ac.at/linuxdoc/LDP/guides.html#nag2

5.3.4. Ich habe eine Firewall, und das Programm bzw. Protokoll xyz funktioniert nicht!

Anleitungen für viele Protokolle gibt es unter http://www.tsmservices.com/masq/.

5.3.5. Wie kann ich feststellen, ob mein Linux-Rechner gehackt worden ist?

Und was mach ich dann!?

4. Secure Shell

5.4.1. Was ist so gefährlich am telnet-Zugang für root?

Mit telnet findet die Übertragung unverschlüsselt statt. Ein Abhören der Verbindung (z.B. mit tcpdump, dsniff oder ethereal) wirft jedem Eindringling das root-Passwort im Klartext vor die Füße. Siehe dazu auch Why your switched network isn't secure.

Dieses Argument gilt allerdings für alle Logins. Ganz besonders, wenn anschließend su ausgeführt wird. Besser ist es, stattdessen ssh oder telnet-ssl zu verwenden.

5.4.2. Wie logge ich mich mit telnet als root ein?

  • Der Oberlehrer:

    Pfui, so etwas sagt man nicht. Zur Strafe lernst du F: 5.4.1. auswendig.

  • Der Brutalo:

    mv /etc/securetty /etc/securetty.disabled
  • Die alte Antwort:

    In /etc/login.defs gibt es den Eintrag CONSOLE. Normalerweise verweist er auf /etc/securetty. Einfach auskommentieren.

  • Die neue Antwort:

    Im Verzeichnis /etc/pam.d/ verweisen einzelnen Konfigurationsdateien (etwa login) auf das PAM-Modul pam_securetty.so. Einfach auskommentieren.

  • 5.4.3. Wo gibt es Dokumentation zur ssh?

    Open SSH

    http://www.openssh.com/

    The Secure Shell TM Frequently Asked Questions

    http://www.employees.org/~satch/ssh/faq/
    http://www.ayahuasca.net/ssh/ssh-faq.html
    http://www.kleber.net/ssh/ssh-faq.html

    Ssh (Secure Shell) FAQ - Frequently asked questions

    http://www.rz.uni-karlsruhe.de/~ig25/ssh-faq/

    Ein Buch von O'Reilly (mit einer Schnecke auf der Titelseite)

    http://www.oreilly.com/catalog/sshtdg/

    SSH Communications Security

    http://www.ssh.com/

    5.4.4. Kostenlose ssh-Clients für Windows?

    Der Favorit ist PuTTY von Simon Tathamhttp://www.chiark.greenend.org.uk/~sgtatham/putty/

    Im FAQ zu SSH finden sich eine Liste von Alternativen
    http://www.kleber.net/ssh/ssh-faq-2.html#ss2.2

    5.4.5. Wie logge ich mich mit ssh als root ein?

    In /etc/ssh/sshd_config fehlt folgender Eintrag:

    PermitRootLogin yes

    Bei manchen Distribution ist dies auch der Default-Wert, dort funktioniert es auf Anhieb.