Anzeige:
Ergebnis 1 bis 1 von 1

Thema: DEBUG/BETA Wie richte ich einen ISDN Router/Gatewayunter SUSE 7.0 ein? [txt]

  1. #1
    Registrierter Benutzer
    Registriert seit
    May 2001
    Ort
    Berlin
    Beiträge
    870

    Post Link: ISDN Router/Gateway unter SUSE 7.0 [txt]

    Dies ist ein unvollaendeter Text, der vielleicht auch etwas über
    den Titel hinausgeht.


    Es existieren einige Zitate, deren Herkunft natürlich noch erwähnt wird.


    Mails zu Ausdrucksvorschlägen, Bugs, Tips, und Kritik bitte an spam@








    Wie richte ich einen ISDN Router/Gateway ein? [Ascii txt]



    [ Im Posting nur Teil1

    Korrekturen/Änderungen

    2.10.2001 RFC Anhang, Quellen ausgelagert nach anhang.txt
    1.10.2001 Kerneloptionen ausgelagert nach kernel.txt

    todo:
    Schrift > Bedeutung (Konsole, Datei, )
    DNS als Slave (named.conf)





    1.EINLEITUNG

    1.1 Gründe
    1.2 Abgrenzung
    1.3 Strategien


    2.STRATEGIEN

    2.1 Baumdiagramm
    2.2 mögliche Strategien
    2.3 unsere Strategie
    2.3.1 Hardware
    2.3.2 Software


    3.INSTALLATION

    3.1 Yast1
    3.2 Grundsystem
    3.2.1 Partitionierung physikalisch
    3.2.2 Partitionierung logisch
    3.2.3 Packete sinnvoll aussuchen und einspielen
    3.2.4 Standard-Kernel installieren (yast1)
    3.2.5 Neuen Isdn Kernel kompilieren
    3.2.6 Neuen Isdn Kernel installieren
    3.2.7 Lilo anpassen
    3.2.8 Start/Stop Skripte
    3.2.x ISDNkarte konfigurieren Yast
    3.2.x ISDNkarte konfigurieren Konsole
    3.3 Inetd /Xinetd
    3.4 DNS
    3.4.1 Das Hosts.txt Problem
    3.4.2 Hosts einstellen
    3.4.3 DNS Einrichten
    3.4.4 DNS Konfigurieren
    -------------
    Ende Teil1

    3.5 Welche Dienste aktivieren



    4.KONFIGURATION

    4.1 Grundsystem
    4.2 INETD
    4.3 zusätzliche Dienste
    4.4 Security
    4.4.1 Sicherheitslücken aufspüren
    4.4.1.1 Suid-root Problematik
    4.4.1.2 Nmap - ein Portscanner
    4.4.2 Prävention mit Intrusion Detection Sytemen
    4.4.2.1 LIDS
    4.4.2.2 Snort - IDS System
    4.4.3 Integrität von Dateien
    4.4.3.1 Tripwire -Arbeiten mit Checksummen
    4.4.4 ipchains -Firewall
    4.4.4.x ipchains Einleitung
    4.4.4.x ipchains Kerneloptionen
    4.4.4.x ipchains Konfiguration mit Ipmasquerading
    4.4.5 Network Adress Translation - NAT
    4.4.5.1 NAT - Einführung
    4.4.5.2 NAT mit Firewall
    4.4.5.3 Masqerading als Spezialfall von NAT
    4.4.5.4 Masquerading ohne Firewall
    4.5 Hardensuse von Marc


    5.TEST, FINETUNING, LOG-AUSWERTUNG

    5.1 netstat -i,-M, -s , -a -l -r
    5.2 nmap Tests
    5.3 Finger


    6.FEHLER

    6.1 Typische Fehlermeldungen + Problembehebung
    6.1.1 typische Fehler bei ssh
    6.1.2 typische Fehler bei proftpd
    6.2 /sbin/init.d/named: -: command not found
    6.3 ISDN Einwahlproblem
    6.4 Untypische Fehler
    6.4.1 BOGUS
    6.4.2 I have no name@domain / You_dont_exist- go away!
    6.4.3 Lids und (e2fsck)

    7.0 Erkärung der Begriffe

    8.ANHANG

    8.1 Kontakt (Mail,
    8.2 Links
    8.3.1 referenzierende Links
    8.3.2 nicht-referenzierende Links
    8.4 Artikel
    8.5 Bücher
    8.6 RFC Verweise

    9 Materialsammlung
    9.1 Verweisdateien aus /etc
    9.2 Skripte
    9.3 Kerneloptionen [kernel.txt]










    1.EINLEITUNG
    ------------



    1.1 Gründe


    Warum sollte man einen Router/Gateway aufbauen?


    Sie haben ihr Netzwerk,ein paar Server und Clients
    die ans Internet angeschlossen werden sollen.
    Pro Rechner ein Anschluss.
    Wenn n PC ans Internet angeschlossen
    werden sollen, bündelt man diese über den Router/Gateway
    [->Anhang 1] und nutzt EINEN Anschluß
    statt n.

    Der Aufwand (Kosten für einen Internetzugang)
    wird erheblich gesenkt, und nebenbei hat der
    Administrator noch eine bessere Kontrolle
    über eingehende und ausgehende Verbindungen, bzw.
    es ist weniger quantitiver! Administrationsaufwand
    erforderlich um das Netzwerk zu sichern.
    Es wird das Geld für einen Hardware Router gespart.
    (Das geht u. Umständen in die 1000 DM und wer sagt
    daß man nur EINEN Router an EINEM Standort aufbaut.)
    Man setzt Linux dort ein, wo es seine Stärken
    hat.




    1.2 Abgrenzung



    Was hier nicht erklärt wird.
    Es geht nicht um Windows, Samba etc.
    Es geht nicht um Hardware Router.
    Dies ist keine Anleitung wie man ein Netzwerk,
    insbesondere ein heterogenes Netzwerk aufbaut.
    Es wird ein existentes Netzwerk vorausgesetzt.
    Befehle wie

    find / -name *ipchains\* -print oder
    ifconfig eth0 192.168.80.1 broadcast 192.168.80.255
    netmask 255.255.255.0 up

    sollte man verstehen. Grundkenntnisse
    der Bash, Lilo, TCP/IP sind von Vorteil.
    Es wird empfohlen ManPages und Howtos zu den einzelnen
    Programmen selbständig zu lesen, bzw. bereit zu halten.



    1.3 Strategien


    Bevor irgendetwas gekauft, konfiguriert wird,
    machen Sie sich einen Ablaufplan der ihren
    Strategien gerecht wird. (Ziel,Kosten,Aufwand
    Nutzen,Hardware, Software Packete)





    2. STRATEGIEN



    Grafik ist hier enthalten
    http://members.tripod.de/NetbeisserUnited/4-12-2001.txt

    Desktop
    Server
    ___ Home__|
    |
    Einsatzgebiet==|
    |
    |___ Buisness
    |__x_ Desktop
    |__ Server
    | |_x_ Fileserver
    |__ Router __Ls1 NAT
    | __Ls2 NAT > nur Masq
    | __Ls3 Firewall
    | __Ls4 Proxy
    |
    |_x______________VPN-Gateway


    2.2 mögliche Strategien


    Aus dem vereinfachten Diagram ersichtlich:
    Es gibt Lösungen für Zu Hause (Desktop, Server)
    und für die Firma.(Desktop, Server)
    VPN und Firewall sollten nie auf EINEN Rechner.




    2.3 unsere Strategie


    Man setzt Linux dort ein, wo es seine Stärken
    hat:

    * Netzwerk
    * Server
    * Routing

    Im folgenden geht es nur um Konfigurationen eines
    ISDN Routers unter SuSE Linux für kleinere Firmen
    im Serverbereich.





    2.3.1 Hardware


    Nach Strategie-Ls 1,2,3,4 suchen Sie ihre heraus.
    (Firewall, Masquerading, Routing allein)
    Es lassen sich selbstverständlich auch
    Möglichkeiten kombinieren, wenn Sie z.B. Masquerading
    ohne Firewall möchten.
    Seien Sie nicht zu geizig, fragen Sie: "Was soll errreicht werden?"
    Wählen Sie die Hardware so, daß sie den gegebenen
    Ansprüchen gerecht wird, ggf. ist ein Blick in eine, z.B.
    die SuSESupport-Hardwaredatenbank nötig.(http://cdb.suse.de)




    Die technischen Daten für unser Beispiel lauten



    Mainboard:
    CPU : Intel Pentium 75Mhz
    hdd : IBM DPEA -3208 PN-84G8998 1080MB
    RAM : 64mb 87536SMT
    Eth0 : 3com etherlink||| 1995 (3c509/3c579)
    Cdrom :
    Gehause : Yakumo mini AT
    Isdn Card: AVM Fritz PCI (passiv)
    Snd Card: Ess Audio Drive
    Gfx Card: 1995 Circus Logic CL-GD5434-QC-F51236-615JE9534T (TAIWAN-D)
    3,5 : Teac s/n C526847






    2.3.2 Software



    Nach Strategie-Ls 1,2,3,4 suchen Sie ihre heraus.
    Wählen Sie die Software so, daß sie den gegebenen
    Ansprüchen gerecht wird. Hier ist bei der Packetauswahl[->Anhang 2],
    bereits auf den Sicherheitsaspekt [-> 4.3] vorzugreifen.
    Die Auswahl der Packete sollte auf mögl. Schwachstellen
    in der Software hin untersucht werden, je weniger
    anfällig die Software desto besser.
    Lesen sie viel im Netz über neue Exploits. Nutzen Sie Mailinglisten.
    Ziel ist, das Gesamtrisiko zu minimieren. Dienste die laufen
    müssen werden durch Patches auf den aktuellen Stand gehalten.

    Sollte der Router in Unternehmenskritischen Gebiet eingesetzt
    werden, nehmen sie als Filesystem unbedingt ReiserFS, das
    ist schneller und sicherer im Notfall. [->Anhang 3]
    In einer Testumgebung nehmen Sie xFS.[->Anhang 4]



    Die Daten für unser Betriebsystem im Beispiel lauten


    SuSE Linux 7.0 Professional

    Kernel 2.2.16






    3.INSTALLATION


    3.1 Yast1




    Yast1 steht für "Yet another Setup Tool" und wurde von SuSE entwickelt.
    Es ist ein nützliches Konfigurationstool das Red Hats
    "linuxconf" gleicht, und folgende Dateien "bearbeitet":


    rc.config[->Anhang 5]

    Oft findet sich in bearbeiteten Dateien ein Hinweis derart:
    "Yast generated entry - Do not edit!"
    In vielen Fällen lässt Yast1 SuSEconfig laufen, bei Problemen hilft
    ein Blick in die SuSEconfig Skripte, sowie "man Yast" und
    "man SuSEconfig".[->Manpages 13]





    3.2 Grundsystem


    3.2.1 Partitionierung physikalisch


    Booten eines Festplattenpartionierungsprogramm z.B. Partition Magic
    oder FIPS von A:\\ und "reinigen" der Platte pysikalisch,
    es wird nicht nur die Partitonstabelle umgeschrieben.
    [->Was sind Partitionen? 6]



    3.2.2 Partitionierung logisch


    Starten von Yast1 und Einrichten der gewünschten Partitionen
    ext2 für die Bootpartition, Reiserfs [22] für Daten.
    Anschließend legen wir die SuSE Bootdiskette ein, booten und legen die
    Dateisysteme fest, boot=ext2fs andere Partitionen=Reiserfs.

    im Bsp:

    /dev/hda1 /boot ext2
    /dev/hda2 swap
    /dev/hda3 / reiserfs


    Neuerdings unterstützt auch Reiserfs das Booten [->Anhang 3]
    Da die /boot Partition allerdings sehr klein ist (so 8-20 mb), und das
    Journaling -in diesem Fall-eher groß (ab 30mb) legt man /boot
    Partitionen als ext2 an. Es ist auch anzumerken dass Reiserfs mit
    Dateien unter 10 Kilobyte Probleme hat. Laut Moshe Bar, dem
    Autor eines interssanten Reiserfs-Artikels in www.linuxmag.com
    beträgt die durchschnittliche Dateigröße auf Unix Servern 91 Kilobyte.





    3.2.3 Packete sinnvoll aussuchen und einspielen

    Jetzt SuSE CD 1 booten und Yast1 starten.
    Unter dem Menüpunkt "Konfiguration laden" minimal selektieren.
    Außerdem kopieren wir die SuSE-Kernelquellen und +i4l + i4l hardware
    [->Anhang 7] aus der Serie n auf die Festplatte.
    Die Kernelquellen werden NICHT gelöscht, da sie später für
    Patches gebraucht werden.


    Nun werden manuell Packete nachinstalliert bzw. deinstalliert und die
    Konfiguration gespeichert! Hier ist unsere Routerkonfiguration: sel [->Anhang 8]
    Diese Konfiguration kann dann bei jedem weiteren Router eingespielt und ange-
    passt werden, sodass einem die Packetauswahlknochenarbeit erspart bleibt.



    3.2.4 Standart-Kernel installieren (Yast1)

    Der SuSE Standardkernel wird installiert.

    Yast1 möchte das wir den lilo (linuxloader) anpassen:

    Möglicheit 1) auf Diskette
    Möglicheit 2) in die BootPartition
    Möglicheit 3) in die RootPartition
    Möglickeit 4) Installation in den MBR->[14])


    Wir nehmen 4)
    Yast1 fragt noch nach der Zeitzone usw.




    3.2.5 Neuen Isdn Kernel kompilieren



    Nachdem noch "einige Skripte laufen", das sind automatisierte,
    Anpassungskripte die man alt+f9 beobachten kann,
    öffnen wir eine Konsole, gehen nach /usr/src/linux
    um dort einen passenden ISDN-Router Kernel mit ausschließlicher
    Unterstüzung für synchrones PPP zu kompilieren. [->ISDN-FORMATE 15]


    im Bsp:


    cd /usr/src/linux

    1 make mrproper (entfernt alles, auch .config Dateien)
    2 make menuconfig (benötigte Optionen ankreuzen ISDN-Support)


    im Bsp: link kernel.txt Konfiguration auf Diskette sichern!
    Die Befehle werden einzeln ausgeführt, damit eine bessere
    Fehlerkontrolle möglich ist. An Linux lernt man wie PRODUKTIV
    Fehlermeldungen seien können.
    Am besten die ganze "Kompilierung" VORHER mit dem Befehl
    "script -a /dein/log/verzeichnis/kernelkomp.log" protokollieren.
    Oder einfach " | tee /dein/log/verzeichnis/kernelkomp.log" anhängen.



    3 make dep
    4 make clean
    5 make bzImage

    4 make modules (module werden generiert)
    5 make modules_install
    6 mit "exit" script -a Befehl beenden


    Mit make dep (vgl. 1) werden die Abhängigkeiten gesetzt.
    make clean löscht Dateien einer früheren Kompilierung.
    Mit make bzImage wird alles übersetzt und gelinkt.
    Die durch die Konfiguration,also im Makefile festgelegten
    C-Quelldateien werden in ein Binary auch "Kernel" genannt
    übersetzt. Ein Blick ins Makefile empfiehlt sich, um ggf.
    den gcc (2.95.2) anzupassen.

    Version = 2
    Patchlevel = 2
    Sublevel = 16
    Extraversion = -9

    Die letzte Zeile wird besonders bei mehreren Kerneln wichtig.



    [->Anhang http://42.fht-esslingen.de/~adrian/kernel.pdf 9]


    3.2.6 Neuen Isdn Kernel installieren


    Den fertig complilierten Kernel
    aus /usr/src/linux/arch/i386/boot/compressed bzImage nach /boot
    kopieren und umbennen, hier = vmlinuz.t5 // + auf Diskette
    Ggf.noch andere Kernel, z.B. backup von diskette einspielen!



    3.2.7 Lilo anpassen

    Bei mehreren Kerneln ist die Differenz in den System.maps zu
    beachten. Unter www.dhaller.de/linux/multikernel findet sich eine
    ausführliche Anleitung mehrere Kernel mit mehren System.maps und
    modules.conf zu betreiben. Anschließend wieder lilo anpassen,und
    /etc/lilo.conf MANUELL editieren.

    im Bsp:

    append="mem=64M"
    vga = normal
    boot=/dev/hda
    read-only
    prompt
    timeout=50
    #linear # Erzeugt anstelle von 3-D-Adressen (Sektor, Kopf, Zylinder) lineare Sektoradressen,
    # die nicht von der Plattengeometrie abhängig sind.
    #ignore table ### ignoriert kaputte Partitionstabelle
    password="Passwortz" ### man beachte daß am Lilo Eingabe Prompt Passworty eingegeben werden muss


    #
    image = /boot/vmlinuz
    root = /dev/hda3
    label = linux

    #
    image = /boot/vmlinuz.t5
    root = /dev/hda3
    label = t5

    #
    image = /root/vmlinuz.t5
    root = /dev/hda3
    label = backup

    Anschließend an der Konsole lilo eingeben:

    izr:/boot # lilo
    Added linux *
    Added t5
    Added backup




    Wobei * den Standard-Kernel makiert.


    Es gibt globale Optionen und für jedes Image spezifisch.
    So ist es etwa möglich read-only in die globalen Optionen
    am Anfang der Datei zu setze, oder eben nur für das betreffende
    Image. prompt gibt an dass lilo stehen bleiben soll und zwar
    nach dem timeout 50 Sekunden?. Mit append lassen sich Parameter
    an den Kernel übergeben, hier "mem=64M". boot gibt die Festplatte an
    von der gestartet werden soll. /dev/hda Also die erste Festplatte.

    (Ausführliches Lilo.log link)









    3.2.8 Start/Stop Skripte

    Eine feine Sache ist es Dienste zu automatisieren.
    Beim Booten werden die in /etc/rc.config eingetragenen,
    auf "yes" gesetzen Dienste automatisch gestartet.
    Von "Hand" gibt man "/sbin/init.d/Dienst start
    oder/stop/oder/restart" ein.

    im Bsp:


    izr:/#/sbin/init.d/named start
    Starting name server. done



    (ab SuSE 7.2 liegen die Dienste in /etc/init.d/* wie es bei
    Red Hat und anderen schon vorher üblich war)
    Der Quellcode eines solchen Skripts, dass einen Dienst aufruft
    sei hier am Beispiel "Snort" gezeigt.





    #! /bin/sh
    # Copyright (c) 1995-2000 SuSE, Germany.
    #
    # Author: Matthias Eckermann, SuSE Linux Solutions AG
    #
    # /etc/rc.d/snort
    #
    # snort This shell script takes care of starting and stopping
    # snort packet-sniffer/logger.
    #

    . /etc/rc.config

    # Determine the base and follow a runlevel link name.
    base=${0##*/}
    link=${base#*[SK][0-9][0-9]}

    # Force execution if not called by a runlevel directory.
    test $link = $base && START_SNORT=yes
    test "$START_SNORT" = yes || exit 0

    # The echo return value for success (defined in /etc/rc.config).
    return=$rc_done
    case "$1" in
    start)
    echo -n "Starting snort: "
    startproc /usr/local/src/snort/snort $SNORT_OPTS || return=$rc_failed
    echo -e "$return"
    ;;
    stop)
    echo -n "Shutting down snort"
    killproc -TERM /usr/local/src/snort/snort || return=$rc_failed
    echo -e "$return"
    ;;
    restart)
    $0 stop && $0 start || return=$rc_failed
    ;;
    *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
    esac

    # Inform the caller not only verbosely and set an exit status.
    test "$return" = "$rc_done" || exit 1
    exit 0



    case unterscheidet die Fälle start) stop) restart) und *).
    Mit "startproc/pfadname/program" startet das entsprechende
    Program. Dieses Konzept ist hilfreich, will man
    später selbstcompilierte Programme per /sbin/init/* (automatisch) starten.

    echo gibt aus ob das Programm erfolgreich (0) oder
    nicht-erfolgreich (1) gestartet werden konnte. (Auf die Konsole)
    Das "äußert sich in einem "done" oder "failed".

    $SNORT_OPTS startet Snort mit den in rc.config unter $SNORT_OPTS definierten Optionen
    "-i eth0 -D -v -u snort -g snort -c /etc/snort.conf -l /var/log/snort"

    *) "sagt" weder start) noch stop) noch restart) bekamen den Wert wahr, die EINGABE war
    falsch, d.h. das "Script" referiert auf sich selbst und gibt seinen
    eigenen Gebrauch aus, also Usage: $0 {start|stop|status|restart}.

    Um einen Dienst erfolgreich zu starten
    muss 1. der Fall wahr sein, daß der Dienst in rc.config auf yes gesetzt ist,
    Ferner muss die Datei existieren, und der User /sbin/init.d/Dienst start eingeben,
    wobei sich bei denen über startproc aufgerufenen Diensten um Daemons handelt,
    die in den Hintergrund geschickt werden. Ein Skript
    lässt sich mit startproc nicht aufrufen. Zitat aus der Man Page von startproc:


    "... Note that startproc is designed to start
    a deamon but not a kernel thread or a programm which enables a kernel thread..."


    startproc sagt: arbeite (im Hintergrund)
    exec sagt: arbeitet ab und fertig.


    sodaß also ein Skript, welches
    kernelbasierte Einstellungen "macht" wie die Firewall Regeln setzen, nicht
    über startproc ausgeführt werden kann.








    Netzwerkkarte konfigurieren

    An der Konsole: /sbin/init.d/network stop
    Jetzt stellen wir die Netzwerkkarte ein.
    Yast1 aufrufen
    >Hardware in System integrieren
    >Netzwerkkarte konfigurieren.

    im Bsp:


    Typ des Netzwerks: eth0
    Art der Netzwerk-Karte 3com 3c509/3c579




    3.2.x ISDNkarte konfigurieren Yast


    Jetzt stellen wir die ISDNkkarte ein. (Yast1>hardware in system
    integrieren>ISDN konfigurieren.

    im Bsp:


    i4l Starten [x]

    ISDN-protokoll [Euro-ISDN (EDSS1) ]

    Typ der Karte [AVM Fritz!PCI ]



    Netzwerk einrichten (Teil1 Grundkonfiguration)




    Wir richten das Netzwerk ein.
    (Yast1>Netzwerk Grundkonfiguration)

    Nummer Aktiv Netzwerktyp Device-Name IP-Adresse PCMCIA PtP-Adresse

    [0] [x]Ethernet eth0 192.168.80.1
    [1] [x]ISDN SnycPP ippp0 192.168.80.1 192.168.1.1

    Während SuSEconfig noch irgendwo läuft suchen wir
    /etc/isdn auf und tragen die Telefonnummer ein.



    In /etc/ppp/options.ippp0 sollte /dev/ippp0 stehen.






    Nur Profis schalten SuSEConfig ab.
    Sie gehen nach /etc/rc.config und setzen den Eintrag
    Enable SuSEConfig=yes auf No!
    Zusätzlich setzen Sie die permissions=set auf permissions=warn

    Anschließend das Netzwerk wieder starten mit

    /sbin/init.d/network start





    3.x.x ISDN [ Erläuterungen in 15 und 15B]


    und testen ISDN


    im Bsp:

    Testen ob i4l läuft:

    /sbin/init.d/i4l start

    Verbose-level set to 3.
    Starting isdn4linux on device ippp0
    ippp0 added
    EAZ/MSN for ippp0 is 32606008
    Layer-2-Protocol for ippp0 is hdlc
    Layer-3-Protocol for ippp0 is trans
    Encapsulation for ippp0 is syncppp
    Security for ippp0 is on
    Hangup-Timeout for ippp0 is 60 sec.
    Charge-Hangup for ippp0 is off
    Incoming-Hangup for ippp0 is off
    Dialmax for ippp0 is 5 times.
    Callback for ippp0 is off
    Callback delay for ippp0 is 2 sec.
    Reject before Callback for ippp0 is on
    Setting up network device ippp0
    Starting ippp-daemon for ISDN device ippp0 with /etc/ppp/otions.ippp0
    ippp0 bound to 0




    "Layer-2-Protocol is hdlc"


    hdlc steht für High-Level Data-Link Control (HDLC) Protokolls
    hdlc gehört zu den umfassenden Data-Link-Layer-Protokollen.



    ____________________________________ _ _____________________
    | Flag | A | C | FCS | Flag |
    | 01111110 |8 bit|8 bit| | 16 bit |01111110|
    |____________|_____|_____|__________ ..___________|________|

    Block- Adress- Steuer- Datenfeld Block- Block-
    begrenzung Feld Feld prüfungsfeld begrenzung


    Frame-Format der HDLC-Prozedur (Datenstruktur der zweiten Schicht
    von packetvermittelnden Datennetzen) FCS Fehlercontrolle durch
    Prüfsummenbildung (Frame Checking Sequence) (tbi S. 186)




    Data-Link-Layer-Protokolle enthalten auch Anteile des MAC-Sublayer
    wie z.B. Fehlerkontrolle. Fast alle umfassenden
    Data-Link-Layer-Protokolle stammen von IBMs SDLC
    (Synchronous Data Link Control) ab. (www.payer.de)




    "Layer-3-Protocol is trans"


    [noch zu bearbeiten]


    "Encapsulation for ippp0 is syncppp"

    Der Unterschied zwischen synchronem und asynchronem PPP ist das
    Framing, also das Einpacken der Rohdaten für die jeweilige
    Verbindungsart. SyncPPP packt in HDLC ein. (Linux User FAQ)


    Hilfe zu ISDN findest Du unter http://www.isdn4linux.de und
    www.vauban.de/info.


    3.2.x.x ISDNkarte konfigurieren Konsole
    (Quelle http://rcswww.urz.tu-dresden.de/~gro...inux-isdn.html)


    izr:/#isdnctrl addif ippp0
    ippp0 added

    izr:/#isdnctrl addphone ippp0 Telefonnr des Routers

    izr:/#isdnctrl eaz ippp0 eigene Nummer
    EAZ/MSN for ippp0 is eigene Nummer

    izr:/#isdnctrl 12_prot ippp0 hdlc
    Layer-2-Protokoll for ippp0 is hdlc

    izr:/#isdnctrl 13_prot ippp0 trans
    Layer-3-Protokoll for ippp0 is trans

    izr:/#isdnctrl encap ippp0 syncppp
    Encapsulation for ippp0 is syncppp

    izr:/#isdnctrl huptimeout ippp0 120
    Hangup-Timeout for ippp0 is 120 sec.

    man isdnctrl gibt mehr Details.



    3.3 Inetd


    Dienste, auch Services, denen in /etc/services die meisten [21] Ports nach
    RFC 814 (NAME, ADDRESSES, PORTS, AND ROUTES by David D. Clark 1982)
    zugeordnet sind werden über den Inetd beim Booten aktiviert und
    lauschen dann auf Ports, was man über den Befehl lsof [>23] mit dem Schalter -i deutlich
    nachvollziehen kann.




    izr:/# lsof -i
    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    named 251 root 4u IPv4 182 UDP *:1024
    named 251 root 20u IPv4 178 UDP localhost:domain
    named 251 root 21u IPv4 179 TCP localhost:domain (LISTEN)
    named 251 root 22u IPv4 180 UDP izr.domain.local:domain
    named 251 root 23u IPv4 181 TCP izr.domain.local:domain (LISTEN)
    sshd 325 root 3u IPv4 241 TCP *:ssh (LISTEN)

    Besser ist übrigens lsof -i -P. Man sieht die Ports. Du sagst jetzt ich weiß
    das ssh Port 22 hat, aber was wenn in der Liste oben "unknown" steht.

    izr:/# lsof -i -P
    COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    named 251 root 4u IPv4 182 UDP *:1024
    named 251 root 20u IPv4 178 UDP localhost:53
    named 251 root 21u IPv4 179 TCP localhost:53 (LISTEN)
    named 251 root 22u IPv4 180 UDP izr.domain.local:53
    named 251 root 23u IPv4 181 TCP izr.domain.local:53 (LISTEN)
    sshd 325 root 3u IPv4 241 TCP *:22 (LISTEN)


    Aus der "Man 8 inetd" ManPage

    inetd sollte beim Booten über /etc/rc gestartet werden. Er wartet auf
    Verbindungen bestimmter Internet Sockets [10]. Wenn eine Verbindung
    gefunden wird auf einem der Sockets, entscheidet Inetd welchem Dienst
    dieser Socket korrespondiert und startet dasjenige Programm was die
    Aufgabe des Requests erfüllt.
    Nach Beendigung des Programms wird weiter "gelauscht"...



    Bevor in unserem Beispiel proftp starten kann, muss es in /etc/inetd.conf
    aktiviert und der Inetd selbst mit /sbin/init.d/inetd start per Hand oder
    bereits beim Booten gestartet worden sein, was sich in /etc/rc.config
    eintragen lässt, indem man den Wert Start_Inetd="no" auf "yes" setzt.
    Außerdem muss in /etc/proftpd.conf Servertype=inetd eingetragen werden.
    Prominente Beispiele wie den Apache Webserver auf Port 80, Ftp auf Port 21
    kann man so einstellen dass sie lauschen.
    Aber jedes "horchende" Programm stellt auch ein Sicherheitsrisiko dar.
    ->siehe 3.5 welche Dienste aktivieren]
    Nmap ist ein Netzwerkscanner, der "horchenden" Ports gnadenlos
    aufspürt. Mehr zu Nmap später.[->4 security]







    (Netzwerkkonfiguration Teil2)



    3.4 DNS
    3.4.1 Das Hosts.txt Problem (Oreilly DNS)



    Als das Internet noch ARPAnet hieß enthielt eine kleine
    Datei (HOSTS.TXT) alle Informationen die man über diese
    Hosts kennen musste: eine Namen-auf-Adressen-Abbildung
    aller im ARPAnet eingebundenen Hosts. Die bekannte Unix/Linux
    Host-Tabelle /etc/hosts wurde aus HOSTS.TXT erzeugt
    (meist durch Entfernung von Feldern die Unix nicht verwendete)

    Nachdem mit Yast1 oben bereits eth0 eingerichtet ist
    überprüfen wir ob in /etc/hosts alles korrekt eingetragen ist.


    im Bsp vor der Hosts Einstellung:


    izr:~ # cat /etc/hosts
    #
    # hosts This file describes a number of hostname-to-address
    # mappings for the TCP/IP subsystem. It is mostly
    # used at boot time, when no name servers are running.
    # On small systems, this file can be used instead of a
    # "named" name server.
    # Syntax:
    #
    # IP-Address Full-Qualified-Hostname Short-Hostname
    #

    127.0.0.1 localhost

    # special IPv6 addresses
    ::1 localhost ipv6-localhost ipv6-loopback

    fe00::0 ipv6-localnet

    ff00::0 ipv6-mcastprefix
    ff02::1 ipv6-allnodes
    ff02::2 ipv6-allrouters





    3.4.2 Hosts einstellen


    Öffnen der Datei /etc/hosts.
    Dabei wird jeder IP ein Rechner/Domain (Full Qualified Hostname)
    sowie eine Kurzbeschreibung (Short-Hostname) zugeordnet.



    im Bsp nach der Hosts Einstellung


    izr:~ # cat /etc/hosts
    127.0.0.1 localhost
    #::1 localhost ipv6-localhost ipv6-loopback
    #fe00::0 ipv6-localnet
    #ff00::0 ipv6-mcastprefix
    #ff02::1 ipv6-allnodes
    #ff02::2 ipv6-allrouters
    #ff02::3 ipv6-allhosts

    192.168.80.1 izr.domain.local izr
    192.168.80.2 enterprise enterprise
    212.70.40.13 backup backup



    192.168.80.1 ist unserer Router. 192.168.80.2 ist
    der andere Rechner im Netz.
    (vergleiche auch den host-Befehl!)

    ----------------------------------------

    Hosts, Netzmasken und Broadcast Adressen können temporär
    auf der Konsole definiert werden. Das geht mit ifconfig.
    (Später in rc.config eigetragene Ips etc. sind resident)
    ifconfig (InterFaces-Konfiguration)
    konfiguriert versch. Netzwerkschnittstellen.
    (lo, eth0, eth1 ethn.. ippp0)



    Syntax

    ifconfig Interface (zB. eth0) IP broadcast Adresse Netzmaske


    Zitat aus der Manpage:



    Ifconfig is used to configure the kernel-resident network
    interfaces. It is used at boot time to set up interfaces
    as necessary. After that, it is usually only needed when
    debugging or when system tuning is needed.

    If no arguments are given, ifconfig displays the status of
    the currently active interfaces. If a single interface
    argument is given, it displays the status of the given
    interface only; if a single -a argument is given, it dis*
    plays the status of all interfaces, even those that are
    down. Otherwise, it configures an interface.


    Auf der Konsole geht das Einrichten von 192.168.80.1 mit ifconfig so:


    izr:~ # ifconfig eth0 down /* Herunterfahren des Netzwerkes */
    izr:~ # ifconfig eth0 192.168.80.1 broadcast 192.168.80.255 netmask 255.255.255.0 up /* neue Definition */

    Für die Interne Schnittstelle eth0 benutzen wir IPs aus dem Adressraum 192.168.*.*
    Dieser wurde nach RFC 1918 für private Zwecke reserviert. Siehe Einführung zu NAT [>4.4.5]

    Wir definieren ein 80er Netz, d.h. daß uns 254 Adressen zur Verfügung stehen.
    also 80.1 80,2 80.24 80.253




    ---------------------

    Routing einrichten und prüfen
    -------------------------

    izr:~ # route add default gw 192.168.1.1
    izr:~ # route add -net 192.168.80.0 netmask 255.255.255.0 eth0

    Kontrolle

    izr:~ # route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    192.168.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 ippp0
    192.168.80.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
    0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ippp0



    izr:~ # cat /etc/route.conf
    #
    #
    #


    192.168.1.1 0.0.0.0 255.255.255.255 ippp0
    default 192.168.1.1

    192.168.80.0 0.0.0.0 255.255.255.0 eth0


    [->7,8,9]






    3.4.3 DNS einrichten




    Yast1 >installation ändern/erstellen
    bind 8 aus der serie n hinzufügen (oder direkt bind9 vom ftp der
    fu-berlin herunterladen/ oder CVS)

    In /var/log/messages muss

    izr named[607]: starting. named 8.2.3-T5B Sat Jul 29 13:24:30 GMT 2000 und

    izr named[2495]: Ready to answer queries.

    stehen, dann ist der Dämon korrekt eingerichtet, aber nicht konfiguriert.
    Außerdem sollte der named nicht als Root lauft, sondern als eigener User z.B. named.

    izr named[2495]: group = named
    izr named[2495]: user = named // ist eine gute SuSE Voreinstellung





    3.4.4 DNS konfigurieren


    Oreilly: Die DNS-Spezification definiert zwei Arten von Nameservern:
    primäre Master (primary) und sekundäre Master (Secondary oder SLAVE).
    Ein primärer Nameserver liest die Daten aus einer lokal gespeicherten Datei.
    Ein sekundärer Nameserver einer Zone erhält seine Zonendaten von einem anderen
    Nameserver, der die Authorität über die Zone besitzt, d.h. der für ihn als
    Master-Server fungiert.

    Unser DNS soll als Slave laufen.

    Mann kann Nameserver auch als Master [für] UND Slave [für anders] einrichten.

    Oreilly: Häufig ist der Master-Server eines Secondary der primare Master, aber das
    ist nicht erforderlich: ein sekundärer Master kann die Zonendaten von einem anderen
    sekundären Nameserver laden.


    Unser DNS-Server steht im internen Netz, Es ist besser wenn der Router nur als Slave läuft.
    Nehmen wir den wahrscheinlichen Fall an ein Hacker entdeckt eine noch nicht dokumentierte
    Sicherheitslücke, nutzt Sie, und bricht auf dem Router ein, dann hätte er auch gleich den DNS-SERVER.
    Es ist eine gute Idee mehr als einen Nameserver einzurichten.


    /etc/named.conf editieren
    Version 8

    für die Deutsche Übersetzung habe ich das Linux mag 2000/06 zu Hilfe genommen!
    Beim Bearbeiten ist besonders auf das ";" zu achten um Syntax-Fehlern
    vorzubeugen
    #
    # Allgemeine Serveroptionen
    #
    options {

    directory "/var/named";
    #Verzeichnis in dem die Zonen gespeichert sind
    #Standard ist, dass der Server bei Fehlern in den Masterzonendateien stoppt
    check-names master warn;

    pid-file "/var/run/named.pid";

    datasize default;
    stacksize default;
    coresize default;
    files 200; # default war unlimited 200 ist zu geizig?
    recursion no; # yes erhöht das Risiko eines Hackerangriffs
    #fetch-glue no;
    multiple-cnames no;
    notify no;


    # the default is to ask the forwarders and if they fail
    # try to find the answer yourself, this will only ask the forwarders
    #forward only;
    #list of DNS servers to ask
    forwarders {
    # NGI
    193.159.187.130;
    194.162.162.194;
    212.93.6.201;
    # 130.149.4.20;
    # 212.87.38.240;
    # 192.168.10.2
    # 192.168.10.31
    # 192.168.80.1
    # 192.168.0.10;
    # 192.168.0.20;
    # 192.168.0.30;
    };
    #
    # Standard ist, dass an Port 53 auf allen verfügbaren
    # Interfaces gehorcht (listen) wird
    # man kann das noch spezieller einrichten:
    # listen-on { 5.6.7.8; };
    #listen-on port 1234 { !1.2.3.4; 1.2/16; }; # "!" bedeutet NICHT
    listen-on port 53 { 192.168.80.1; };
    query-source address 192.168.80.1 port 53;

    };

    #
    # log es oder lass es
    #
    logging {
    channel schreib_in_syslog {
    syslog daemon;
    severity info;
    };
    channel schreib_in_file {
    file "/var/log/dns/named.debug";
    severity dynamic;
    };
    category statistics {schreib_in_file;};
    category queries {schreib_in_syslog;};
    };
    #
    # Vordefinierte "Access Control Lists" (acl):
    # "any" lässt alle Hosts zu
    # "none" verbietet alle Hosts
    # "localhost" Erlaubt Verbindungen von diesem Rechner
    # "localnets" Erlaubt Verbindungen aus den LANs
    #
    # ACL festlegen:
    # acl can_download { 192.168.80.1; 192.168.80.2; };
    acl "trusted" { 192.168.80.1; 192.168.80.2; localhost; localnets;};

    #
    # Mit der "Server" - Anweisung können anderen Servern bestimmte
    # Eigenschaften zugeordnet werden.

    # Einen Server als Bogus ("Lügner") zu kennzeichnen verhindert,
    # dass er befragt wird
    #server 192.168.0.128 { bogus yes; }
    #Falls der andere Nameserver auch mind. Bind 8.1 installiert hat,
    #kann man Zonen kompakter übertragen
    #server 192.168.0.128 { transfer-format many-answers; }


    #Festlegen der root-Zone

    zone "." IN {
    type hint;
    file "root.hint";
    };


    #Festlegen der Zone "localhost"

    zone "localhost" IN {
    type master;
    file "local/localhost.zone";
    check-names fail;
    allow-update { none; };
    };



    #Festlegen der Rückwärtsauflösung für "localhost" (Adressen in Namen)


    zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "rev/127.0.0.zone";
    # check-names fail;
    # allow-update { none; };
    };




    #Festlegen der Rückwärtsauflösung für einen Adressraum

    zone "80.168.192.in-addr.arpa" IN {
    type master;
    file "rev/192.168.80.zone";
    # check-names fail;
    # allow-update { none; };
    };

    #
    # Eine Masterzone
    #
    zone "domain.local" IN {
    type master;
    file "domain/domain.local.zone";
    # # Einschränken des Zonentransfers, um Spionen die Arbeit
    # zu erschweren
    # allow-transfer { any; }; # (hier IP Adressen eintragen denen es gestattet ist)
    notify none;
    };

    #
    # Eine Slavezone
    #
    #zone "isc.org" IN {
    # type slave;
    # file "slave/db.isc.org";
    # masters { 192.168.0.128; };
    #};



    ----------------------

    Fortsetzung: PN an 403
    4
    Geändert von 403 (06.11.06 um 08:38 Uhr) Grund: peinlich, jugendsuenden

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •