!c99Shell v. 1.0 pre-release build #16!

Software: Apache/2.2.3 (CentOS). PHP/5.1.6 

uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44
EDT 2010 i686
 

uid=48(apache) gid=48(apache) groups=48(apache) 

Safe-mode: OFF (not secure)

/usr/share/doc/isdn4k-utils-3.2/   drwxr-xr-x
Free 51 GB of 127.8 GB (39.9%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     EN-i4l.txt (124.41 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
  $Id: EN-i4l.sgml,v 1.1 1998/11/30 20:38:38 shanson Exp $
  ISDN4Linux Tutorial
  Klaus Franken, i4l@klaus.franken.de
  v1.0, 19. Juni 1998

  Setting up Internet access with ISDN4Linux - A practical description
  with exercises.  Translation by Scott Hanson shanson@shcon.com, August
  1998, but still very incomplete! The table of contents should make
  clear what's been translated and what hasn't.
  ______________________________________________________________________

  Table of Contents



  1. Introduction
     1.1 Requirements
     1.2 Goal of this tutorial.
     1.3 What must I read, what should I read?
        1.3.1 In which order should I read?
     1.4 No guarantee
     1.5 Feedback
     1.6 Copyright

  2. Basics
     2.1 ISDN4Linux: modem or network?
     2.2 Overview of features
     2.3 Overview of missing features
     2.4 Overview of the tools

  3. Loading hardware modules
     3.1 Configuring isdnlog
     3.2 Plug&Play Cards
     3.3 Loading the HiSax driver
        3.3.1 Loading with YaST
        3.3.2 Loading with /etc/rc.config
        3.3.3 Loading by hand.
        3.3.4 Troubleshooting
     3.4 Loading the ICN driver
     3.5 Loading the AVM B1 driver
     3.6 Testing the hardware
     3.7 bung: Hardware ansprechen.

  4. Grundlagen ISDN, Parameter zur Verbindungskontrolle
     4.1 ISDN
     4.2 TK-Anlagen
     4.3 Was ist meine MSN?
     4.4 Probleme beim Verbindungsaufbau, die Cause Meldungen

  5. syncPPP Verbindung herstellen
     5.1 Unterschiede analog - ISDN
        5.1.1 Analog:
        5.1.2 ISDN:
     5.2 Was ist eigentlich synchrones PPP
     5.3 Die Konfiguration
        5.3.1 Netzdevices anlegen und konfigurieren
        5.3.2 ipppd starten
        5.3.3 Authentifizierung beim ipppd
        5.3.4 Welche Daten mu ich ber den Zugang kennen?
        5.3.5 PPP bei S.u.S.E. einrichten
           5.3.5.1 Konfiguration mit YaST:
           5.3.5.2 manuelle Konfiguration:
     5.4 Probleme beim Verbindungsaufbau, Troubleshooting.
     5.5 bung: syncPPP-Verbindung herstellen

  6. Problems with dynamic IP numbers
     6.1 Der RST-provoking mode
     6.2 Welche IP-Nummer setze ich denn eigentlich?

  7. Routing
     7.1 Was ist Routing?
     7.2 Wie konfiguriert man das Routing?
        7.2.1 S.u.S.E. Methode
        7.2.2 Manuelle Methode
        7.2.3 Lschen von Routing-Eintrgen
     7.3 Kontrollieren der Routingtabelle beim         Verbindungsauf- und abbau (/etc/ppp/ip-up)
        7.3.1 Was macht das Script ip-up/ip-down?
           7.3.1.1 Ich mchte aber kein dial-on-demand
     7.4 bung: Kontrolliere die IP-Nummer und die Routing-Tabelle

  8. IP-Nummern Auflsung (DNS)
     8.1 feste IP-Nummern Auflsung ber /etc/hosts
     8.2 dynamische IP-Nummern Auflsung mit DNS
     8.3 Konfiguration der Namensauflsung
        8.3.1 Namensauflsung bei S.u.S.E.
     8.4 Probleme mit der Namensauflsung
        8.4.1 Checkliste

  9. Monitoring Dial-On-Demand
     9.1 Monitoring connections
     9.2 Determining the reason for the connection
     9.3 Analyzing connections
     9.4 Dial-On-Demand an- und ausstellen
     9.5 Tips im S.u.S.E. System
     9.6 Wie erlaube ich normalen Benutzern Dial-In-Demand             zu aktivieren?

  10. Preventing phone bill disasters, TimRu extension
  11. Konfiguration der Internet-Dienste
     11.1 DNS-Cache
     11.2 Squid
        11.2.1 Starten von Squid
        11.2.2 Clients anpassen
     11.3 Fetchmail
     11.4 Sendmail
     11.5 News
        11.5.1 slrn installieren und konfigurieren
        11.5.2 Leafnode installieren und konfigurieren
     11.6 Firewall
        11.6.1 Was ist ein Paketfilter?
        11.6.2 Wie gibt man eine Firewall-Regel an?
        11.6.3 Was fr Regeln brauche ich mindestens?
        11.6.4 Ein einfacher Firewall
     11.7 Masquerading
     11.8 Accounting
     11.9 Samba

  12. Connecting a local network
  13. Installation
     13.1 Program versions used
     13.2 Kernel/Module configuration and installation
     13.3 I4L-Utils installation
        13.3.1 Installation of the S.u.S.E. scripts

  14. Mailing Lists/News
     14.1 What mailing lists are there?
     14.2 How do I ask questions on the mailing lists?
     14.3 How do I give assistance on the mailing list?

  15. Links
     15.1 WWW and FTP
     15.2 Local Documentation
     15.3 Books


  ______________________________________________________________________

  1.  Introduction


  This tutorial is for ISDN beginners and for those with some experience
  who are now also interested in further configuration of the entire
  system (e.g. mail, firewalls, etc.).

  The tutorial is designed to be practical. All details and features are
  not described; rather the goal is to be able to configure such a
  system.

  This tutorial is based on the S.u.S.E. Linux 5.2 distribution (see
  <http://www.suse.de/>). Of course other distributions (Debian, RedHat,
  ...) can be used as well. The necessary scripts will be installed as
  needed. See ``Installation''.

  The S.u.S.E distribution contains both configuration scripts and the
  tools for manual configuration. In this tutorial, the simple method
  using the scripts are explained first, then the manual configuration
  is explained for reference.


  1.1.  Requirements

  Basic knowledge of Linux is required. A base system should already
  have been successfuly installed.

  In addition, a supported ISDN card should be installed. Recommended
  are, for example, the AVM Fritz Classic or the ELSA QS1000. See
  <http://www.suse.de/Support/sdb_e/isdn.html> for a list of supported
  cards.


  1.2.  Goal of this tutorial.


  A Linux computer should become a Internet Access Computer. The
  computer dials out automatically to the Internet Service Provider
  (ISP) and establishes a transparent network connect. Users of this
  computer have full access to the Internet and can uses services such
  as WWW and FTP. The mail system is set up so that mail is exchanged
  automatically upon connection.

  A separate section describes the connection of a local network with
  full Internet access (mawquarading, mail, WWW, FTP) and the special
  problems involved.

  Since this scenario involves a dial-up line, special attention is paid
  to keeping the telephone costs as low as possible while maintaining
  full Internet access.

  To keep things simple, we'll make the following assumptions that apply
  to most private users (or small companies that have only one private
  Internet access):


  +o  Dial-up ISDN line without a PBX (Euro ISDN)

  +o  Protocol: syncPPP with dynamic IP numbers

  +o  No requirement to use the ISP's proxy

  +o  Mail can be sent via SMTP and received via POP3

  These assumptions appply to most private access providers, such as T-
  Online in Germany or Personal Eunet as well as smaller providers.

  In addition, we'll discuss security questions, problems with dynamic
  IP numbers, and the connection of a LAN to the Internet Access
  Computer.


  1.3.  What must I read, what should I read?


  This text is quite long because special problems and troubleshooting
  tips are discussed in several places. If these problems don't apply to
  you, you can skip them (although reading them won't hurt).

  Similarly, there are several basic topics (for example, routing or
  mail exchange) that aren't directly related to isdn4linux and won't be
  new to the experienced reader. However, understanding these topics is
  necessary and experience has shown that in practice, these topics
  cause the most problems.


  1.3.1.  In which order should I read?

  FixMe



  1.4.  No guarantee

  This text has been written and translated to the best of our
  knowledge.  The authors make no guarantee that the methods described
  here are correct, work, are secure, or that they do not make any
  unnecessary connections.

  However, our goal for the reader is to be able to handle exactly these
  problems for a simple system :-)


  1.5.  Feedback

  Is wanted!

  Via E-Mail to: i4l@klaus.franken.de <mailto:i4l@klaus.franken.de>


  1.6.  Copyright


  This document is copyrighted by Klaus Franken and Scott Hanson.

  This docoment may be distributed in accordance with the GNU General
  Public License. In particular, this means that the text may be
  distributed either electronically or physically without the payment of
  license fees, as long as this copyright is not removed. Commercial
  distribution is allowed and encouraged. The Linux HOWTO Project should
  be should be informed of any paper publication.


  2.  Basics

  I know a little bit about Linux. Maybe I can already connect to the
  Internet with my modem.

  Now I have ISDN -  and I can't get anywhere at all. Why?


  2.1.  ISDN4Linux: modem or network?

  Forget everything that you know about modems.

  ISDN is completely different.


  1. There are no clicks or whistles.

  2. There are no blinking lights.


  3. The connections are made so quickly, that it's possble to spend
     your entire paycheck within a matter of hours.

  4. It's more fun.

  The concepts are different:

  1. the methods of hardware connection

  2. the methods of use

  3. the methods of control possibilities

  4. the methods of configuration


  Under ISDN4Linux, the ISDN card is treated as a network card, only
  with special characteristics.



  2.2.  Overview of features


  +o  Quick ISDN connections

  +o  Full integration as network

  +o  Client and Server

  +o  syncPPP

  +o  Modem emulation (AT command set)

  +o  Dial-On-Demand (DoD)

  +o  Full overview and control

  +o  Callback

  +o  Channel bundling


  2.3.  Overview of missing features


  +o  Serial connections (e.g. Fax)

  +o  CAPI interface (e.g. network)

  +o  Uniform environment...

  +o  PmX cards


  2.4.  Overview of the tools


     isdnlog
        isdnlog listens in the background to the S0 bus and logs
        incoming and outgoing connections for later analysis (including
        cost control) and diagnosis.


     isdnctrl
        Sets important parameters specific to I4L (e.g. telephone
        numbers).


     HiSax
        The driver (as module or compiled into the kernel) for almost
        all passive ISDN cards.


     hisaxctrl
        Controls the HiSax driver.


     ipppd
        The PPP daemon for ISDN (syncPPP).


     messages
        ISDN activity is logged in /var/log/messages (or via Syslog) -
        important for diagnosing problems!


     ttyI
        Using the terminal devices /dev/ttyI0 to /dev/ttyI64 normal
        terminal programs can access ISDN - but not analog access!


     vbox
        The ISDN answering machine.



  3.  Loading hardware modules

  The hardware drivers are supplied as modules. You could compile the
  drivers directly into the kernel, but this is not recommended.

  The module isdn is resonsible for the I4L subsystem.  It also requires
  (depending on your kernel compilation) slhc.

  These modules are required for the actual hardware drives and must be
  loaded beforehand. If the modules are loaded with modprobe, then you
  don't have to worry about this, since the dependencies are
  automatically checked.

  Note: use only modprobe to load the modules.

  Depending on your hardware, different modules are needed. The HiSax
  module is necessary for passive ISDN cards. Specific modules according
  to manufacturer are need for active cards.


  3.1.  Configuring isdnlog

  isdnlog listens continuously to the D channel and collects important
  data for problem diagnosis as well for later analysis. isdnlog is
  started just after the HiSax driver is started (see below for active
  cards).

  We'll explain more about the functions and starting isdnlog later;
  here are just the most important points for configuration:

  +o  /etc/isdn/isdn.conf

     Here are some important parameters (such as the area code) that i4l
     cannot establish automatically.
     You'll need to set at least the country code and the area code
     yourself.

     ___________________________________________________________________
     # exapmle of /etc/isdn/isdn.conf
     # copy this file to /etc/isdn/isdn.conf and edit
     #
     # More information: /usr/doc/packages/i4l/isdnlog/README


     [GLOBAL]
     COUNTRYPREFIX   = +
     COUNTRYCODE     = 49
     AREAPREFIX      = 0

     # EDIT THIS LINE:
     AREACODE        = 911

     # Example:
     #AREACODE        = 911 # Nuernberg

     [VARIABLES]

     [ISDNLOG]
     LOGFILE = /var/log/isdn.log
     ILABEL  = %b %e %T %ICall to tei %t from %N2 on %n2
     OLABEL  = %b %e %T %Itei %t calling %N2 with %n2
     REPFMTWWW       = "%X %D %17.17H %T %-17.17F %-20.20l SI: %S %9u %U %I %O"
     REPFMTSHORT     = "%X%D %8.8H %T %-14.14F%U%I %O"
     REPFMT  = "  %X %D %15.15H %T %-15.15F %7u %U %I %O"

     ___________________________________________________________________



  +o  Options for isdnlog.

     isdnlog takes a number of options that can be given either as
     command line parameters or in a config file.

     S.u.S.E. uses the the file /etc/isdn/isdnlog.isdnctrl0.options (0:
     1st card, 2: 2nd card, 4: 3rd card), and isdnlog is started with
     the parameter -f. This file is commented and contains the most
     important parameters.

     There is more information in the isdnlog README file, which is in
     the source package, and under S.u.S.E is also at
     /usr/doc/packages/i4l/isdnlog/README.

     When started by hand, isdnlog should be given at least these
     options: isdnlog -D -l1015 -x4087 -M -n -W80 /dev/isdnctrl0 &


  +o  Telephone book (optional)

     isdnlog can automatically assign aliases to incoming and outgoing
     numbers. These are then shown instead of the telephone numbers
     themselves.  The aliases are in: /etc/isdn/callerid.conf. For
     example:



     ___________________________________________________________________
     [MSN]
     NUMBER = +4991152145922
     ALIAS  = Eunet-N
     ZONE   = 1

     ___________________________________________________________________


  In addition, you can define further actions, such as starting a cer-
  tain program when incoming calls are detected.



  3.2.  Plug&Play Cards

  PnP cards still have to be manually configured in 2.0 kernels. It's a
  bit of work, but luckily needs only to be done once.

  The configuration is done with the package isapnp. It includes the two
  programs:


  1. pnpdump: scans the ISA bus for cards and creates a template for the
     configuration file

  2. isapnp: initializes the PnP cards according to the configuration
     file

  The drivers can address the hardware only after the cards have been so
  configured. Therefore, PnP cards can only be used with modules, not
  with drivers compiled in the kernel.

  First we'll scan for PnP cards, but be careful: pnpdump can bring the
  computer to a halt. Do not start the program under X, and if possible
  in single user mode.

  We'll pipe the output from pnpdump straight into the configuration
  file:


  ______________________________________________________________________
  pnpdump > /etc/isapnp.conf

  ______________________________________________________________________



  Here's and example for the QS3000:



  ______________________________________________________________________
  # This is free software, see the sources for details.
  # This software has NO WARRANTY, use at your OWN RISK
  #
  # For details of this file format, see isapnp.conf(5)
  #
  # For latest information on isapnp and pnpdump see:
  # http://www.roestock.demon.co.uk/isapnptools/
  #
  # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
  #
  # Trying port address 0203
  # Board 1 has serial identifier e5 00 00 00 00 34 01 93 15

  # (DEBUG)
  (READPORT 0x0203)
  (ISOLATE)
  (IDENTIFY *)

  # Card 1: (serial identifier e5 00 00 00 00 34 01 93 15)
  # ELS0134 Serial No 0 [checksum e5]
  # Version 1.0, Vendor version 0.0
  # ANSI string -->ELSA QuickStep 3000<--
  #
  # Logical device id ELS0134
  #
  # Edit the entries below to uncomment out the configuration required.
  # Note that only the first value of any range is given, this may be changed if r
  equired
  # Don't forget to uncomment the activate (ACT Y) when happy

  (CONFIGURE ELS0134/0 (LD 0

  # Multiple choice time, choose one only !

  #     Start dependent functions: priority acceptable
  #       Logical device decodes 16 bit IO address lines
  #             Minimum IO base address 0x0160
  #             Maximum IO base address 0x0360
  #             IO base alignment 16 bytes
  #             Number of IO addresses required: 16
  #(IO 0 (BASE 0x0160))
  #       IRQ 3, 4, 5, 7, 10, 11, 12 or 15.
  #             High true, edge sensitive interrupt (by default)
  #(INT 0 (IRQ 3 (MODE +E)))

  #     End dependent functions
  #(ACT Y)
  ))
  # End tag... Checksum 0x00 (OK)

  # Returns all cards to the "Wait for Key" state
  (WAITFORKEY)

  ______________________________________________________________________



  With the output identifier, we can tell which cards were recognized
  (and if there are any PnP cards at all).

  This file will be edited; the comment characters have to be deleted
  and where necessary the proper values entered. Possible values are
  given in the comments.


  ______________________________________________________________________
  (IO 0 (BASE 0x0160))
  (INT 0 (IRQ 3 (MODE +E)))
  (ACT Y)

  ______________________________________________________________________



  Note: (ACT Y) must also be given. Otherwise nothing will happen.

  This configuration can now be sent to the PnP cards:



  ______________________________________________________________________
  isapnp /etc/isapnp.conf
  Board 1 has Identity e5 00 00 00 00 34 01 93 15:  ELS0134 Serial No 0 [checksum e5]

  ______________________________________________________________________



  The output is unfortunately not very clear, but you should be bble to
  at least recognize the identifier of the card.

  Under S.u.S.E, the isapnp command is run automatically in the init
  script. Otherwise, you'll have to make sure yourself that it has been
  run.


  3.3.  Loading the HiSax driver

  The HiSax driver reads its parameters when loading to tell which card
  (or cards) at which address should be searched for.


  3.3.1.  Loading with YaST

  (smhFixMe: what does YaST look like in English?)

  With S.u.S.E, configuration of the ISDN hardware is done with the
  Administration des Systems/ Hardware in System integrieren/ ISDN-
  Hardware konfigurieren screen. Along with the choice of card type and
  parameters, the modules can be loaded with Starten.  If there are
  problems, you can try other parameters right away. If successful, with
  Speichern the parameters can be saved in rc.config so that the modules
  will be loaded again at the next time the system is started.

  The systax is described at
  </usr/src/linux/Documentation/isdn/README.HiSax>.


  3.3.2.  Loading with /etc/rc.config

  The ISDN hardware can also be given and/or controlled directly in
  /etc/rc.config. Here is an example for the Elsa QS-3000:



  ______________________________________________________________________
  #
  # start i4l? ("yes" or "no")
  #   see: /usr/doc/packages/i4l/README.SuSE
  #
  I4L_START="yes"

  #
  # driver-id for HiSax-driver
  #   set to "HiSax"
  #   or whatever you defined when loading driver within kernel
  #   set to "" if you don't have a hisax-card
  #
  I4L_TELES_ID="hisax1"

  #
  # D-channel protocol 1=1TR6, 2=EDSS1(Euro-ISDN) for HiSax
  #
  I4L_PROTOCOL="2"

  # Type   ISDN-card                Required parameters
  # ----   ---------------------    -------------------------------------------
  #    1   Teles 16.0               irq, mem, io
  #    2   Teles  8.0               irq, mem
  #    3   Teles 16.3 (non PnP)     irq, io
  #    4   Creatix/Teles PnP        irq, io0 (ISAC), io1 (HSCX)
  #    5   AVM A1 (Fritz)           irq, io
  #    6   ELSA PCC/PCF cards       io or nothing for autodetect (the iobase is
  #                                 only required, if you have more than one ELSA
  #                                 card in your PC)
  #    7   ELSA Quickstep 1000      irq, io  (from isapnp setup)
  #    8   Teles 16.3 PCMCIA        irq, io
  #    9   ITK ix1-micro Rev.2      irq, io
  # since: HiSax 2.5:
  #   10   ELSA PCMCIA              irq, io  (set with card manager)
  #   11   Eicon.Diehl Diva ISA PnP irq, io
  #   11   Eicon.Diehl Diva PCI     no parameter
  #   12   ASUS COM ISDNLink        irq, io  (from isapnp setup)
  #   13   HFC-2BS0 based cards     irq, io
  #   15   Sedlbauer Speed Card     irq, io
  #        (= Teledat 100)
  #   16   USR Sportster internal   irq, io
  #   17   MIC card                 irq, io
  #   18   ELSA Quickstep 1000PCI   no parameter
  #
  I4L_TELES_TYPE="7"

  #
  # IRQ of Teles Card
  #   eg. 12 or 15 when loading as module
  #   set to "" when driver is loaded within kernel
  #
  I4L_TELES_IRQ="3"

  #
  # Portaddress of Teles card (e.g. 0xd80, "0" for S0/8)
  #
  I4L_TELES_PORT="0x0160"

  ______________________________________________________________________



  The string  TELES here has only a historical meaning.


  These entries automatically generate the parameter line for the HiSax
  driver. In addition, you can also give the parameters yourself, which
  is necessary for newer cards or when you have several cards (see
  below).

  Example for a AVM Fritz and a ELSA PCF card:


  ______________________________________________________________________
  I4L_TELES_MODUL_OPTIONS="type=5,6 protocol=2,2 io=0x340 irq=10 id=Fritz%Elsa"

  ______________________________________________________________________



  To load the modules use the init script:

  ______________________________________________________________________
  glen:/root # /sbin/init.d/i4l_hardware start
  Loading ISDN drivers ...
  Loading HiSax driver ...
  /sbin/insmod /lib/modules/2.0.33/misc/hisax.o id=hisax1 type=7 protocol=2 irq=3 io=0x0160
  Verbose-level set to 3.
  Starting isdnlog with /etc/isdn/isdnlog.isdnctrl0.options for isdnctrl0...

  ______________________________________________________________________



  Note that this automatically starts  isdnlog.

  To unload the modules use the same script:

  ______________________________________________________________________
  glen:/root # /sbin/init.d/i4l_hardware stop
  Unloading ISDN drivers ...

  ______________________________________________________________________



  3.3.3.  Loading by hand.

  The syntax is described in
  </usr/src/linux/Documentation/isdn/README.HiSax>.

  For example, for a ELSA QS3000;

  ______________________________________________________________________
  modprobe -v hisax id=hisax1 type=7 protocol=2 irq=3 io=0x0160

  ______________________________________________________________________


  In addition, after loading successfully the following commands should
  also be run:



  ______________________________________________________________________
  /sbin/hisaxctrl hisax1 1 4
  /sbin/isdnctrl verbose 3
  /sbin/isdnlog /dev/isdnctrl0

  ______________________________________________________________________


  These commands are explained in the appropriate man pages and documen-
  tation. The S.u.S.E. scripts just makes things simpler ;-)


  3.3.4.  Troubleshooting

  In case of an error while loading the HiSax module, there are no
  useful messages on the screen, but usually just  Device or resource
  busy. The real error messages are saved syslog (usually) in
  <file:/var/log/messages>.

  Example of unsuccessfully loading an AVM Fritz:

  ______________________________________________________________________
  Feb  6 22:45:05 glen kernel: HiSax: Driver for Siemens chip set ISDN cards
  Feb  6 22:45:05 glen kernel: HiSax: Version 2.1
  Feb  6 22:45:05 glen kernel: HiSax: Revisions 1.15/1.10/1.10/1.30/1.8
  Feb  6 22:45:05 glen kernel: HiSax: Total 1 card defined
  Feb  6 22:45:05 glen kernel: HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
  Feb  6 22:45:05 glen kernel: HiSax: AVM driver Rev. 1.6
  Feb  6 22:45:05 glen kernel: AVM A1: Byte at 1b00 is ff
  Feb  6 22:45:05 glen kernel: AVM A1: Byte at 1b03 is ff
  Feb  6 22:45:05 glen kernel: AVM A1: Byte at 1b02 is ff
  Feb  6 22:45:05 glen kernel: AVM A1: Byte at 1b00 is ff
  Feb  6 22:45:05 glen kernel: HiSax: AVM A1 config irq:12 cfg:1b00
  Feb  6 22:45:05 glen kernel: HiSax: isac:1700/1300
  Feb  6 22:45:05 glen kernel: HiSax: hscx A:700/300  hscx B:f00/b00
  Feb  6 22:45:05 glen kernel: AVM A1: HSCX version A: ???  B: ???
  Feb  6 22:45:05 glen kernel: AVM A1: ISAC 2085 V2.3
  Feb  6 22:45:05 glen kernel: AVM A1: wrong HSCX versions check IO address
  Feb  6 22:45:05 glen kernel: HiSax: Card AVM A1 not installed !

  ______________________________________________________________________



  In this case, no Fritz card was found ad the given port address. (In
  fact, there was no Fritz card installed  ;-). With this message, it
  should be easy to see the exact cause. Other common errors are:

  1. could not get interrupt: The driver cannot work with the given IRQ.
     Try another. Unused IRQs can be found by reading cat
     /proc/interrupts.

  2. Port address is not recognized, although everything seems to be
     correct. Perhaps it is a PnP card, and you forgot isapnp. See
     ``Plug&Play cards''.

  3. Port address is not recognized, although everything seems to be
     correct. Perhaps it is a Teles card, therefore you can't tell which
     type it really is. Try getting the very latest HiSax and try out
     all options. See ``Installation''.

  If absolutely nothing seems to work, try asking on the mailing list.
  Be sure to include the output from /var/log/messages.



  3.4.  Loading the ICN driver

  FixMe


  3.5.  Loading the AVM B1 driver

  FixMe


  3.6.  Testing the hardware

  The best and easiest test is to try calling yourself.

  For this test, it makes not difference whether it is an ISDN or a
  voice call, whether from an internal or external ISDN or analog
  telephone. No connection will be make. It is only important that a
  message about the call appears in  <file:/var/log/messages>.

  Example for an analog call on the MSN 123459:


  ______________________________________________________________________
  Apr  6 22:15:20 glen kernel: isdn_net: call from 911123458,1,0 -> 123459
  Apr  6 22:15:20 glen kernel: isdn_net: Service-Indicator not 7, ignored

  ______________________________________________________________________


  Here, this is a voice call (Service-Indicator: 0) from a device with
  (smhFixME: Rufnummerbermittlung) from the MSN 123458 from the area
  code 0911 to your own MSN 123459 (no, that's not my real number ;-)

  The important thing here is the entry of the called number after the
  arror, here the 123459. Here you should try all of your own numbers.
  Just as it is shown here is how you will later enter your own MSN.


  3.7.  bung: Hardware ansprechen.

  Ziel: Die ISDN-Karte soll angesprochen und geprft werden.


  1. Welche Hardware / Umgebung hab ich?

     Notiere Dir:

     a. Welche Karte hab ich (Hersteller, Typ, etc.) ?

     b. Wie ist die Karte gejumpert (Port) ?

     c. Mit welchen Werten kann die Karte unter anderen System
        angesprochen werden?

     d. Welches Protokoll wird auf dem S0-Bus benutzt (1TR6, DSS1) ?

     e. Wo ist die ISDN-Karte angeschlossen (NTBA, TK-Anlage)?

     f. Welche MSN's kann ich auf diesem S0-Bus benutzen?

     Schlimmstenfalls mut Du Deinen Rechner aufschrauben, das falsche
     Betriebssystem booten und/oder den Administrator nerven.


  2. Betrachte messages

     Nur in /var/log/messages steht die Wahrheit, sie ist fr die gesamte
     Konfigurationsarbeit (und spter) zu verfolgen.

     ffne (mindestens) zwei Konsolen (virtuelle Linux-Konsole oder unter
     X zwei xterm).

     Auf einer Konsole starte entweder:

     +o  tail -f /var/log/messages

     +o  less /var/log/messages, im Programm dann F (follow) drcken, um
        immer die neuesten Zeilen zu bekommen. (Diesen Modus beendet man
        durch Ctrl-C, beenden von less mit q.



  3. PnP Karte?

     Falls es eine Plug&Pray-Karte ist, konfiguriere sie, wenn Du es
     nicht weit, starte pnpdump.  Siehe ``Plug&Play-Karten''.


  4. Modul laden

     Lade das entsprechende Modul nach Deiner bevorzugten Methode (also
     YaST ;-).

     Stelle sicher, da die Einstellungen notiert sind und beim
     Systemstart automatisch das Modul wieder geladen wird.

     Prfe, ob das Modul geladen ist mit lsmod.

     Prfe, ob der isdnlog luft mit /ps ax|grep isdnlog

     Prfe, ob /var/log/messages normal aussieht.

     Siehe ``HiSax-Treiber laden''


  5. ISDN testen

     Rufe Dich selbst an und notiere alle MSN unter denen Du angerufen
     werden kannst.

     Siehe ``Hardware testen''



  4.  Grundlagen ISDN, Parameter zur Verbindungskontrolle

  Ein Rundumschlag ber die wichtigsten Begriffe und Konzepte, die man
  wissen mu, um ISDN unter Linux richtig zu nutzen.


  4.1.  ISDN

  ISDN steht fr Integrated Services Digital Network.

  Fangen wir von hinten an: Es handelt sich um ein Netzwerk. ber die
  beiden Kupferdrhte wird also z.B. nicht nur eine Point-To-Point
  Verbindung aufgebaut, sondern es knnen mehrere Verbindungen
  gleichzeitig bestehen,

  Die Daten werden alle digital ausgetauscht.  Analogdienste wie z.B:
  Fax sind hierber daher potentiell schwieriger zu handeln.
  Normalerweise werden Analogdienste ber Spezialgerte wie a/b-Wandler
  oder TK-Anlagen gefahren.

  Integrated Services deutet an, da verschiedene Dienste ber dieses
  Netzwerk behandelt werden knnen.  Typische Services sind Analog-
  Sprache (SI=0) oder ISDN-Daten (SI=7) was uns hier interessiert.

  Der Endpunkt der Telekom-Leitung ist der NTBA (kurz auch NT), der
  Network Terminator Basis-Anschlu.  Das ist der kleine graue Kasten, an
  dem fr die Telekom das Netzwerk aufhrt.

  An einem NTBA knnen (normalerweise) 2 Kabel herausgefhrt werden, diese
  bilden gemeinsam ein Bus-System, den sogenannten S0-Bus

  An den S0-Bus knnen 8 Endgerte angeschlossen werden. Typische Endgerte
  sind ISDN-Telefone, TK-Anlagen G4-Fax-Gerte, ISDN-Terminaladapter und
  ISDN-Karten.

  Der S0-Bus bietet 3 Kanle: ein Steuerkanal, genannt D-Kanal (warum der
  D-Kanal genannt wird, ist mir unbekannt, die Eselsbrcke D=Daten klappt
  zumindest nicht).  Weiterhin stehen zwei Datenkanle, genannt Nutzkanal
  oder B-Kanal (da knnen wir unsere Bytes rberschicken) mit jeweils 64
  kbit/s zur Verfgung, die jeweils zu unterschiedliche Partner und mit
  unterschiedlichen Diensten genutzt werden knnen.

  Auf dem D-Kanal knnen verschiedene Protokolle gefahren werden. blich
  sind 1TR6 (altes nationales ISDN), DSS1 (Euro-ISDN, der Quasi-Standard
  in 24 Lndern) und N1 in den USA.  Das D-Kanal dient  u.a. zur
  bermittlung des Wunsches eines Verbindungsauf- und abbaus, der
  bermittlung der Telefonnummern und der Gebhren. Bei einem falsch
  eingestellten Protokoll klappt also sehr wenig...

  Die Art und Weise, wie die Telefonnummer gemeldet und genannt wird,
  hngt vom D-Kanal-Protokoll ab:


  +o  1TR1: EAZ (Endgerte-Auswahl-Ziffer). Es handelt sich also nur um
     eine Ziffer, die Rufnummer des Basisanschlusses wird nicht
     betrachtet.

  +o  DSS1: MSN (Multiple-Subscribe-Number). Hier ist eine komplette
     Rufnummer gemeint, also alles hinter der Vorwahl.


  Die Bezeichnungen EAZ und MSN sind bei I4L ansonsten synonym zu
  benutzen (wenn das richtige Protokoll angegben wurde).  Bei einem
  einkommenden Call wird (hoffentlich) die Zielrufnummer bertragen,
  genannt CPN (called party number). Ist sie nicht bekannt, setzt sie
  I4L auf 0.

  Bekanntlich knnen fr einen Anschluss mehrere Telefonnummern vergeben
  werden. Diese signalisiert die Vermitllungsstelle (kurz VSt) auf dem
  D-Kanal (CPN) zusammen mit dem Service-Indikator (SI). Mehr passiert
  bei einem ankommenden Call erst mal nicht! Es ist danach Aufgabe der
  Endgerte sich entsprechend zu verhalten: ignorieren, abweisen, oder
  den Call annehmen.

  Da der SI zusammen mit der Nummer auf dem D-Kanal bermittelt wird,
  kann dieselbe Telefonnummer mehrfach genutzt werden.  Beispiel: das
  Telefon reagiert nur auf SI=0, der PC reagiert nur auf SI=7.

  Bei einem ausgehenden Call mu das Endgerte die MSN angeben; diese wird
  dann auch dem Partner bermittelt.  Wird keine MSN gesetzt (was I4L
  nicht zult), setzt die VSt die Nummer ein, wird eine falsche MSN
  gesetzt, bekommt man keine Verbindung (Erfahrungswerte).

  Mehr zu ISDN-Grundlagen findet sich auf
  <http://www.dtag.de/angebot/isdn/lexikon/right.htm>



  4.2.  TK-Anlagen

  Worum geht es: Wer die Wahl hat zwischen einem direkten Anschlu am
  NTBA und einem internen S0-Bus an einer TK-Anlage, sollte sich fr den
  direkten Anschlu entscheiden!  Der Betrieb ber TK-Anlagen birgt immer
  gewisse berraschungen.

  Worum geht es nicht: Wenn man eine TK-Anlage am selben NTBA (S0 Bus)
  wie die ISDN-Karte angeschlossen hat, gibt es keine Probleme.  Die TK-
  Anlage ist hier nur ein normales ISDN-Endgert, was dieses hinten macht
  (Anschlu von Analog-Gerten) spielt hier keine Rolle.

  Das Verhalten der TK-Anlage hngt unter anderem vom Typ, von der
  installierten Software und vor allem von deren Konfiguration (und
  damit vom entsprechenden Service-Techniker) ab.

  Bei lteren Anlagen wird oft entgegen allen Aussagen 1TR6 anstatt DSS1
  gefahren. Die Verbindungstypen knnen abhngig vom Service-Indikator
  konfiguriert werden, wobei oft nur Voice-Calls konfiguriert sind.
  Weiterhin besteht die Schwierigkeit herauszufinden, welche MSN/EAZ man
  zu benutzen hat.

  Bevor man sich auf andere verlt, sollte man den Praxistest Selbstanruf
  machen, siehe: ``Hardware testen''

  Ein wesentlicher Unterschied ist der, da man nicht mit allen anderen
  lokalen Teilnehmern an einem Bus angeschlossen ist, sondern die TK-
  Anlage fr jeden einzelnen Anschlu einen eigenen S0-Bus nach auen fhrt,
  an den meist nur ein Endgert angeschlossen wird. Dieser Anschlu
  bekommt eine eigene Durchwahl zugewiesen, oft 2-stellig.

  Die beste Veranschaulichung ist die, da man sich seine TK-Anlage als
  eine eigene Vst vorstellt.

  Beispiel: In Ortsnetz 321 ist eine TK-Anlage mit der Rufnummer 654 an
  einem Primrmultipley-Anlagenanschlu installiert (es gibt also mehr als
  2 Amtsleitungen, alternativ knnte dies auch ein Bndelanschlu sein -
  spielt aus dieser Sicht keine Rolle). Es sind 20 interne Leitungen
  vorhanden, wobei die ersten 10 fr Telefone und die zweiten 10 fr ISDN-
  Karten vorgesehen sind. Die Durchwahlnummern seien 10-19 fr die
  Telefon und 20-29 fr die ISDN-Karten. Die S0-Busse fr die ISDN-Karten
  seien auf DSS1 konfiguriert.

  Dann ist als MSN jeweils 20 bis 29 zu benutzen, denn das sind die
  MSN's im Ortsnetz Firma (=321654).  Weiterhin ist zu beachten, da man
  zustzlich eine 0 whlen mu, um aus dem Ortsnetz Firma erstmal
  herauszukommen. Um z.B. die Nummer 987 im Ortsnetz 654 anzurufen, mu
  man 0987 waehlen, wobei der Gegenstelle als Rufnummer 65420 angezeigt
  wird.  Will man in Berlin anrufen, whlt man selbst die 0030.... an und
  dort wird 32165420 bermittelt.

  Will man selber User-Authentication beim Dial-In ber die Telefonnummer
  machen, gibt es nur eine sinnvolle herangehensweise: anrufen lassen.
  Die in /var/log/messages angezeigte Nummer dann mittels Cut&Paste in
  die entsprechende Konfigurationsdatei bernehmen.



  4.3.  Was ist meine MSN?

  Wie oben erwhnt, mu man bei I4L immer die MSN setzen, um whlen zu
  knnen, die Angabe der MSN ist wichtig, da ansonsten meist nichts
  funktioniert.

  Die erste Frage ist dabei immer, ob man direkt am NTBA oder an einer
  TK-Anlage angeschlossen ist.


  +o  Anschlu an NTBA:

     Man kann sich eine der 3 oder mehr zugewiesenen MSN's aussuchen.
     Diese MSN wird der Gegenstelle bermittelt. Wird die MSN zur
     berprfung des Partners benutzt (z.B. bei rawip), mu man sich mit
     der Gegenstelle natrlich fest auf eine einigen. Ansonsten hat man
     die freie Wahl, man kann durchaus seine normale Voice-Nummer
     benutzen.


  +o  Anschlu an TK-Anlage:

     Man ist auf die Konfiguration der TK-Anlage angewiesen.  Die
     einfachste Methode ist der Selbsttest, siehe ``Hardware testen''



  4.4.  Probleme beim Verbindungsaufbau, die Cause Meldungen

  Das Protokoll auf dem D-Kanal erlaubt es Meldungen zu verschicken, die
  ber den Grund bei einem Verbindungsabbruch und nicht erfolgreichem
  Verbindungsaufbau informieren.

  Die Meldungen werden in /var/log/messages vom i4l-Subsystem wls
  sogenannte cause-Meldungen weitergegeben.

  Die Art der Meldung hngt vom verwendeten Protokoll ab (1TR6 oder
  DSS1), bei DSS1 wird ein E (fr Euro-ISDN) vorangestellt, dahinter
  folgen vier (Hex-)Ziffern.  Die ersten beiden geben Auskunft darber,
  wo diese Meldung generiert wurde (bei welcher VSt); die letzten beiden
  Ziffern geben den eigentlichen Grund an.

  Der isdnlog bersetzt uns freundlicherweise die Meldungen in Klartext;
  wenn der nicht luft (z.B. bei aktiven ISDN-Karten), kann man die
  Meldungen mittels man isdn_cause auflsen.

  Nicht alle Meldungen mssen dramatisch sein und mssen auf einen Fehler
  hinweisen.

  Beispiele:

  ______________________________________________________________________
  kernel: isdn: hisax1,ch0 cause: E0010
  kernel: ippp0: remote hangup

  ______________________________________________________________________


  Ursache: der Gegner hat normal aufgelegt, vermutlich wegen Timeout.



  ______________________________________________________________________
  kernel: isdn: hisax1,ch0 cause: E0511
  isdnlog: Mar 19 20:00:32 tei 70 calling Leibnitz with
      Kfr User busy (Private network serving remote user)

  ______________________________________________________________________


  Ursache: die VSt beim Gegner teilt uns mit, da dort der Anschluss
  besetzt ist.


  ______________________________________________________________________
  kernel: isdn: hisax1,ch0 cause: E0022
  isdnlog: Mar 19 21:37:16 tei 70 calling Klein with +49 911/
      333, N|rnberg  No circuit/channel available (User)

  ______________________________________________________________________


  Ursache: alle Kanle sind belegt.


  ______________________________________________________________________
  kernel: isdn0: dialing 1 1111111111...
  isdnlog: Apr 13 15:05:18 * tei 84 calling +49 911/111111111,
      N|rnberg with Kfr  RING (Data)
  kernel: isdn: hisax1,ch0 cause: E0201
  isdnlog: Apr 13 15:05:19 * tei 127 calling ? with ?  Unallocated
      (unassigned) number (Public network serving local user)

  ______________________________________________________________________


  Ursache: die Zielrufnummer ist nicht zugewiesen.


  5.  syncPPP Verbindung herstellen

  Point-to-Point Protocol (PPP) ist u.a. in den RFCs 1661, 1662, 1332
  and 1334 definiert.  Es wurde ursprnglich entwickelt, um Daten ber
  serielle Leitungen zu verschicken. Es bietet grundstzlich auch weitere
  Netzwerkprotokolle (Apple, IPX, ...) unter Linux ist aber nur IP
  vorgesehen.  PPP bietet verschiedene Features wie z.B. den Austausch
  der IP-Nummern, Authentication, Compressions etc.

  Aus diesem Grund findet zunchst durch das Link Control Protocol (LCP)
  ein Handshake statt, durch den die Verbindung initialisisert wird
  (oder auch nicht). In der Praxis ergeben sich genau hierdurch die
  Probleme gem der Richtlinie das schne an Standards ist, da sich jeder
  seinen eigenen aussuchen kann.


  5.1.  Unterschiede analog - ISDN

  Wer analoges PPP gewhnt ist, mu hier ein umdenken.  Bei ISDN dreht
  sich alles um.  Die Netzverbindung besteht logisch immer, gewhlt wird
  aber nur bei Bedarf.


  5.1.1.  Analog:


  +o  manuelles starten eines Scripte oder ber diald


  +o  whlen, z.B. mit 'chat'

  +o  pppd fhrt hoch und macht Handshake mit Partner

  +o  ifconfig und route Aufrufe durch pppd

  +o  Optionsfile: /etc/ppp/options

  +o  liest automatisch /etc/ppp/options.DEVICE (DEVICE ist das aktuell
     verwendete serielle Device).


  5.1.2.  ISDN:


  +o  Netz wird konfiguriert, diverse isdnctrl und ein ifconfig Aufruf

  +o  Setzen der Route

  +o  starten ipppd

  +o  Verbindungswunsch -> i4l whlt selbststndig Nummern (isdnctrl)

  +o  ipppd wird aktiviert (er luft die ganze Zeit!)

  +o  ipppd macht Handshake

  +o  Bei dynamischen IP-Nummern legt der ipppd das Device neu an und
     startet /etc/ppp/ip-up

  +o  Beim (automatischen Abbau) macht der ipppd ein Reconnect auf das
     Device bei analog beendet er sich.

  +o  Beim Abbau startet der ipppd /etc/ppp/ip-down

  +o  Optionsfile: /etc/ppp/ioptions

  +o  Liest kein weiteres Optionfile automatisch ein.


  5.2.  Was ist eigentlich synchrones PPP

  Der Unterschied zwischen synchronem und asynchronem PPP ist das
  Framing also das Einpacken der Rohdaten fr die jeweilige
  Verbindungsart.  SyncPPP packt in HDLC ein. Auf einer Modemstrecke
  bzw. einer seriellen Schnittstelle kann man aber nur characterweise
  verschicken. Entsprechend packt asyncPPP seine Pckchen anders ein. Es
  gibt ein ausgewiesenes Byte welches den Paketanfang bzw. das Ende
  markiert.  Diese Byte muss, sofern es im Datenstrom auftaucht natrlich
  anders dargestellt werden. Dafr gibt es ein weiteres reserviertes
  Byte, das Escape-Byte.


  5.3.  Die Konfiguration


  5.3.1.  Netzdevices anlegen und konfigurieren

  Beispiel:



  ______________________________________________________________________
  NETDEV='ippp0'
  # neues Device
  isdnctrl addif $NETDEV

  # setzte MSN/EAZ
  isdnctrl eaz $NETDEV 456

  # def. Nummer(n) zum rauswaehlen
  isdnctrl addphone $NETDEV out 09011

  # erlaube Nummern, die anrufen duerfen
  #isdnctrl addphone $NETDEV in

  # duerfen alle anrufen? Nein: setze secure=on
  isdnctrl secure $NETDEV on

  # Layer-2 Protokoll: (x75i, x75ui, x75bui, hdlc)
  isdnctrl l2_prot $NETDEV hdlc

  # Layer-3 (nur trans)
  isdnctrl l3_prot $NETDEV trans

  # Ecapsulation: (rawip, cisco_h, syncppp)
  isdnctrl encap $NETDEV syncppp

  # Idletime
  isdnctrl huptimeout $NETDEV 60

  # maximale Waehlversuche
  isdnctrl dialmax $NETDEV 5

  # nur einen bestimmten Kanal benutzen
  #isdnctrl bind $NETDEV

  # PPP an Netzdevice binden
  isdnctrl pppbind $NETDEV 0

  # Netzdevice konfigurieren
  ifconfig $NETDEV 1.1.1.1 pointopoint 193.102.150.13 up

  # OPEN-Meldung ausgeben:
  isdnctrl verbose 3

  ______________________________________________________________________



  Gelscht wird das Interface durch die Befehle:

  ______________________________________________________________________
  ifconfig $NETDEV down
  isdnctrl delif $NETDEV

  ______________________________________________________________________



  5.3.2.  ipppd starten


  Vor dem Start des ipppd mssen drei Voraussetzungen erfllt sein:

  1. ISDN-Hardwareuntersttzung

  2. syncPPP Unterstzung im Kernel

  3. Das zu verwendene Device mu angelegt sein (isdnctrl addif)

  Die syncPPP Untersttzung des Kernels prft der ipppd leider ber eine
  etwas unglcklich Methode ab: Es mu ein Device ippp0 vorhanden sein.
  Auerdem kann man das Device nicht beliebig benennen, es mu mit ippp
  beginnen. Merke: Benutze immer als Devicename ippp0

  Der ipppd kann ber 2,5 Arten Optionen annehmen:

  1. Kommandozeilenparameter

  2. Das Optionsfile /etc/ppp/ioptions

     Die 2,5te Methode ist die Angabe eines Optionsfile als
     Kommandozeilenparameter (-file).

  In Anlehnung an den pppd empfehle ich folgende Struktur:

  +o  Globale Optionen (fr alle ipppd's) in /etc/ppp/ioptions

  +o  Devicespezifische Optionen (z.B. fr ippp0) in
     /etc/ppp/options.ippp0

  +o  Start des ipppd mit ipppd pidfile /var/run/ipppd.ippp0.pid file
     /etc/ppp/options.ippp0 &

  Folgendes sollte man noch ber den ipppd wissen:

  +o  Es werden z.T. andere Optionen als beim pppd benutzt, zu den
     Unterschieden siehe man ipppd

  +o  Die Optionen und Pawrter werden nur beim Start neu eingelesen.
     Beim Testen sollte man also immer nachschauen, ob noch ipppd'd
     laufen und neustarten.

  +o  Es knnen verschiedene ipppd auf ein Device reagieren, daher
     pppbind.

  +o  Die Datei /etc/ppp/ioptions mu existieren.

  Folgende Optionen haben sich fr die verschiedensten ISP's als stabil
  erwiesen:



  ______________________________________________________________________
  # /etc/ppp/options.ippp0
  #
  # for isdn4linux/syncPPP and dynamic IP-numbers
  #
  #
  # Klaus Franken, kfr@suse.de
  # Version: 27.08.97 (5.1)
  #
  # This file is copy by YaST from /etc/ppp/ioptions.YaST
  #   to options.<device>

  # The device(s)
  # for more than one device try:
  # /dev/ippp0 /dev/ippp1 ...
  /dev/ippp0

  # The IP addresses: <local>:<remote>
  # just "0.0.0.0:" or nothing for dynamic IP
  #0.0.0.0:

  # my user name
  user suse

  # my system name (only for CHAP!)
  # name my_system_name

  # accept IP addresses from peer
  # use with dynamic IP
  ipcp-accept-local
  ipcp-accept-remote
  noipdefault

  # try to get IP address from interface
  # option specific to ipppd (as opposed to pppd)
  # use only with static IP
  #useifip

  # disable all header-compression
  -vj
  -vjccomp
  -ac
  -pc
  -bsdcomp

  # sometimes you need this:
  #noccp

  # max receive unit
  mru 1524
  # max transmit unit
  mtu 1500

  # If this machine is a server, force authentication by uncommenting one
  # of the following. However, if this machine is a client, doing this will
  # prevent a succesful connection! (message "peer refused to authenticate").
  # So, only uncomment on a server.
  # "+pap" / "+chap" NUR AKTIVIEREN, WENN DIES EIN SERVER IST!!!
  #+pap
  #+chap

  # if you have problems with handshaking (no response for first
  # lcp-package) try to decrease the retry-cycle. Default is 3 sec,
  # try for example 2 sec:
  # lcp-restart 2

  ______________________________________________________________________



  5.3.3.  Authentifizierung beim ipppd

  Der ipppd verhlt sich bei der Benutzerauthentifizierung exakt genauso
  wie der pppd. Daher nur ein kurzer Abriss.

  Es stehen zwei Methoden zur Verfgung: PAP und CHAP.  Meistens wird PAP
  angeboten ber CHAP kann man im PPP-Howto nachlesen.

  Die Benutzerdaten werden an zwei Stellen konfiguriert; als wird dem
  ipppd durch das Schlsselword user mitgeteilt, welche User-Id dem
  gegnerischen PPP-Daemon angeboten werden soll.

  Als nchstes wird das Passwort selbst (in Klartext) in der Datei
  /etc/ppp/pap-secrets abgelegt.  Diese Datei darf nur fr root lesbar
  sein! Also chmod 600 /etc/ppp/pap-secrets.

  Fr jeden verwendeten User wird eine Zeile eingetragen, z.B. sei der
  Username suse und Passwort linux:

  ______________________________________________________________________
  # client        server  pw              iplist
  "suse"          *       "linux"

  ______________________________________________________________________



  Dies ist die einzige Stelle, wo der Username und das Passwort
  definiert ist (sein sollte).  Der Benutzername mu nicht im System
  bekannt sein, zumindest besteht zwischen dem PAP (oder CHAP)
  Benutzernamen und dem Systembenutzer kein Zusammenhang.

  Nachdem der ipppd gestartet ist und ev. eine Route darber definiert
  ist, wird bei Bedarf automatisch ein Whlvorgang ausgelst. Manuell kann
  man dies auslsen durch isdnctrl dial ippp0.  Meldungen werden ber
  syslog nach /var/log/messages geschrieben.


  5.3.4.  Welche Daten mu ich ber den Zugang kennen?

  Folgende Daten sollte man kennen, die meisten sollte der ISP zur
  Verfgung stellen.


     Protokoll
        Es sollte syncPPP sein.


     Telefonnummer des ISP
        klar...


     meine MSN
        Mit welcher meiner Telefonnummern mchte/mu ich whlen, siehe
        ``Was ist meine MSN?''.


     IP-Nummern
        Wenn man feste IP-Nummern hat, gibt der ISP zumindest die
        persnlich an, die IP-Nummer des PtP (also die des ISP) kennt
        deswegen noch nicht unbedingt. In diesem Fall, gibt man
        irgendeine ein (wie bei dynamischen) und lt eine Verbingung
        herstellen, damit sieht man die IP-Nummer, die man dann hier
        fest eintrgt.

        Bei dynamischen IP-Nummern, trgt man irgendwelche ein, siehe
        ``Probleme mit dynamischen IP-Nummern''.


     Authentication-Typ
        PAP oder CHAP


     Username, Passwort
        klar ...


     Nameserver
        Sollte man vom ISP mitgeteilt bekommen. Ansonsten siehe
        <http://www.suse.de/Support/sdb/nonameserver.html>


  Mit folgenden weiteren Parametern, kann man die ISDN-Verbindung
  steuern.

     Idle-Time
        Nach wie vielen Sekunden Inaktivitt soll aufgelegt werden. Will
        man dieses Feature abstellen, kann man die Zeit auf 0 stellen.

        Hinweis: Diese Zeitangabe ist nicht exakt.


     Maximale Whlversuche
        Wie oft soll gewhlt werden, wenn der Gegner nicht abnimmt?

        Hinweis: Diese Anzahl gilt nicht, wenn es Hardwareprobleme gibt,
        zieht man z.B. das ISDN-Kabel, wird unendlich oft probiert.

        Hinweis: Diese Anzahl gilt nicht, wenn die Whlverbindung
        zustandekam, aber die PPP-Verbindung nicht aufgebaut werden
        konnte. Ist z.B. das Passwort falsch eingetragen, wird immer
        wieder eine Verbindung aufgebaut, solange Pakete verschickt
        werden.


     einkommende Telefonnumern
        In diesem Fall soll keiner die Verbindung von auen aufbauen
        drfen, deshalb sollte man keine eingehende Telefonnummer angeben
        und die Option secure bzw.  Nur angegeben Nummern erlaubt
        aktivieren.


     Callback
        mehr dazu siehe in
        <file:/usr/doc/packages/doc/rc.config.i4l.add>


  5.3.5.  PPP bei S.u.S.E. einrichten

  Die Konfiguration wird in der Datei /etc/rc.config eingetragen (ausser
  Routing), dies kann manuell oder ber YaST geschehen.


  5.3.5.1.  Konfiguration mit YaST:



  +o  Menpunkt Administration des Systems, Netzwerk konfigurieren und
     Netzwerk Grundkonfiguration auswhlen.

  +o  Es erscheint eine Maske der konfigurierten Netzdevices, whle ein
     freies aus (sofern es nicht schon ippp0 gibt. Mit F5 whlt man den
     Netzwerktyp aus, hier also ISDN SyncPP.

  +o  Mit F6 vergibt man die IP-Nummern (siehe ``Welche IP-Nummer setze
     ich denn eigentlich?''  und kann auch direkt das Default-Gateway
     angeben (siehe ``Routing'').

  +o  Mit F8 werden nun die ISDN-relevanten Daten eingetragen.  Nachdem
     man das Device aktiviert hat, kann man es in der ISDN-Maske direkt
     hochfahren mit: Starten.

  Damit sind die rc.config-Variablen, die PPP-Options, die Passwortdatei
  und das Routing angepasst.


  5.3.5.2.  manuelle Konfiguration:

  Durch folgende Variablen in /etc/rc.config wird eine syncPPP-
  Verbindung gesteuert, hier als echtes Bsp. (mit _0):

  ______________________________________________________________________
  IPADDR_2="1.1.1.1"
  NETDEV_2="ippp0"
  IFCONFIG_2="1.1.1.1 pointopoint 193.102.150.13 up"
  I4L_IDLETIME_2="60"
  I4L_DIALMAX_2="5"
  I4L_LOCALMSN_2="7417559"
  I4L_REMOTE_OUT_2="52145922"
  I4L_REMOTE_IN_2=""
  I4L_ENCAP_2="syncppp"
  I4L_SECURE_2="on"

  ______________________________________________________________________


  Erklrung: die Bedeutung der Felder ist oben angegeben, in der
  /etc/rc.config sind auch vor den Feldern entsprechende Kommentare.

  Es knnen beliebig viele Netzdevices definiert werden (auch wenn per
  Default nur 4 angegeben sind), die jeweils durch eine Extension, z.B.
  _2 gekennzeichnet werden.  Dabei mssen nicht alle aktiv sein. Welche
  aktiviert werden sollen, wird in der Variablen NETCONFIG gesteuert,
  sollen z.B. _0 und _2 aktiv sein, setzt man:  NETCONFIG="_0 _2".

  Als nchstes mu der ipppd konfiguriert werden, erstelle eine Datei
  /etc/ppp/options.ippp0 (siehe ``PPP-Optionen'') am besten in dem Du
  /etc/ppp/ioptions.YaST kopierst.  In der Optionsdatei, setzte den
  Usernamen und prfe, ob das Device stimmt.  Dann trgst Du das Passwort
  passend zum Usernamen in /etc/ppp/pap-secrets ein.

  Zum manuellen Starten, siehe: ``ipppd starten''


  5.4.  Probleme beim Verbindungsaufbau, Troubleshooting.


  Checkliste:


  1. Wurde der ipppd berhaupt gestartet?

     Kontrolliere mit ps ax|grep ipppd ob einer luft bzw. wieviele
     laufen.

     Kontrolliere in /var/log/messages die Startmeldungen, z.B.:

     ___________________________________________________________________
     syslog: info: no CHAP secret entry for this user!
     ipppd[536]: Found 1 devices: /dev/ippp0,
     ipppd[540]: ipppd i2.2.9 (isdn4linux version of pppd by MH) started
     ipppd[540]: init_unit: 0
     ipppd[540]: Connect[0]: /dev/ippp0, fd: 8

     ___________________________________________________________________



  2. Stimmen die Benutzerdaten?

     Der ipppd prft schon beim Start, mit welchen Usernamen gearbeitet
     wird (user suse), zu diesem Namen das entprechende Passwort
     gelesen. Klappt das nicht, wird eine Meldung ausgegen, z.B.

     ___________________________________________________________________
     Apr  9 20:32:17 glen syslog: info: no PAP secret entry for this user!

     ___________________________________________________________________


  In diesem Fall wird eine Einwahl mittels PAP nicht funktionieren, die
  12 Pfennige kann man sich also sparen.  Ursache ist meist ein
  Tippfehler beim Benutzernamen oder falsche Permisssions der pap-
  secrets.

  Analoges gilt fr CHAP.


  3. Wird berhaupt eine Verbindung aufgebaut?

     Sobald die Gegenstelle abnimmt (und damit Kosten entstehen)
     erscheint eine connect-Meldung.

     Wird keine Verbindung aufgebaut, gibt es vermutlich eine cause-
     Meldung. Siehe: ``Cause Meldungen''.

     Erscheinen nur dialing-Meldungen, aber sonst nichts, liegt es an
     der Hardware oder am Hardware-Modul, siehe ``Hardware testen'' und
     ``Installation''.


  4. Klappt die Einwahl?

     Bei Erfolgreicher Einwahl erscheinen Meldungen ber die IP-Nummern,
     z.B.:

     ___________________________________________________________________
     ipppd[540]: local  IP address 149.228.142.59
     ipppd[540]: remote IP address 193.102.150.13

     ___________________________________________________________________


  Sieht man diese Meldungen, dann Glckwunsch! Der Gegner wird ab jetzt
  zum Partner.


  5. select: Bad file number

     Direkt nach der Ausgabe der IP-Nummern ercheint:

     ___________________________________________________________________
     ipppd[353]: select: Bad file number
     ipppd[353]: Couldn't restore device fd flags: Bad file number
     ipppd[353]: Exit.

     ___________________________________________________________________



  Was hat es damit auf sich? Zunchst einmal: die Verbindung ist trotz
  allem aufgebaut.

  Ursache: der ipppd startet beim (Dis-) Connect das Script /etc/ppp/ip-
  up (ip-down).  Aufgrund eines kleinen Fehlers im offiziellen ipppd
  (behoben in der CVS-Version und ab S.u.S.E. 5.2) ist die Abprfung auf
  Ausfhrbarkeit fehlerhaft, woraufhin trotzdem versucht wird das Script
  zu starten.  Nach der Ferhlermeldung passiert genau nichts.#

  Allerdings sollte die Meldung trotzdem beachtet werden, denn da wir
  dynamische IP-Nummer benutzen, mu das Routing angepasst werden, was
  genau ber diese Scripte geschehen soll, die hier nicht vorhanden sind.


  6. Die Einwahl klappt nicht:

     Wenn die Einwahl nicht klappt, sieht man in /var/log/messages meist
     nur, da die Gegenstelle aufgelegt hat, um den Grund dafr zu
     ermitteln, braucht man mehr Meldungen vom LCP. Dazu trgt man in
     /etc/ppp/ioptions folgendes ein:

     ___________________________________________________________________
     # Set 'debug' to create a lot of information in /var/log/messages
     debug
     # Set '+pwlog' for logging passwords in /var/log/messages
     #+pwlog

     ___________________________________________________________________


  und startet den ipppd neu.  Durch debug werden die LCP-Messages aus-
  gegeben, durch +pwlog kann man sich zustzlich das verschickte Passwort
  angeben lassen - letzteres ist nur empfohlen, wenn ansonsten alles
  richtig scheint, denn wenn jemand fremndes Zugriff auf /var/log/mes-
  sages bekommt...

  Hufige Ursachen:

     +o  Username/Passwort falsch:

        in diesem Fall wird etwas in dieser Art protokolliert,

        ________________________________________________________________
        ipppd[10314]: sent [0][PAP AuthReq id=0x1 user="kfr" password="falsch"]
        ipppd[10314]: rcvd [0][PAP AuthNak id=0x1msg=""]
        ipppd[10314]: Remote message:
        ipppd[10314]: PAP authentication failed

        ________________________________________________________________


     wobei es richtig so aussehen sollte:



     ___________________________________________________________________
     ipppd[7840]: sent [0][PAP AuthReq id=0x1 user="kfr" password="isdnworkshop"]
     ipppd[7840]: rcvd [0][PAP AuthAck id=0x1msg=""]
     ipppd[7840]: Remote message:
     ipppd[7840]: bundle, he: 0 we: 0

     ___________________________________________________________________



     +o  LCP-Messages werden nicht beantwortet:

        Normalerweise LCP-Messages gesendet und empfangen um das
        Handshaking durchzufhren (send, rcvd):

        ________________________________________________________________
        ipppd[10314]: sent [0][LCP ConfReq id=0x1 <mru 1524> <magic0x93ade903>]
        ipppd[10314]: rcvd [0][LCP ConfReq id=0x1 <mru 1524> <auth pap>
        <MPdiscr: 0x3 [ 00 c0 7b 70 d5 fa ]>]

        ________________________________________________________________


     Wenn die Gegenseite nicht antwortet, kann es sein, da sie nicht
     schnell genug hochkommt (lcp-restart erhhen), oder kein (sync-)
     PPP-Daemon dort luft.  Ist dies nicht nur ein temporres Problem,
     ist entweder die Nummer falsch, oder der ISP bietet tatschlich kein
     syncPPP an.

     Im letzteren Fall mu man asyncPPP fahren, siehe
     <http://www.suse.de/Support/sdb/ppp_async.html>

     +o  Noch whrend der LCP-Messages legt die Gegenstelle auf.

        Hierbei sollte man am Protokoll erkennen welche Optionen
        angefordert oder abgewiesen werden. Danach bleibt einem nur der
        mhsame Weg, diese Optionen zu setzen/deaktivieren, siehe Bsp-
        Optionsfile und man ipppd.

     +o  peer refused to authenticate

        Man hat selbst +pap oder +chap angegeben.  Ein hufiges
        Miverstndnis: diese Optionen geben, an, da man selber der
        Authetication-Server sein mchte, nicht da man PAP oder CHAP
        benutzen mchte; letzteres geschieht nur implizit durch Angabe
        user, name und den Eintragungen in pap-secrets bzw. chap-
        secrets.


  7. Die Einwahl klappt, weitere Tests:


     +o  Zunchst vergleiche man die Ausgabe des ipppd mit der Ausgabe von
        ifconfig. Die IP-Nummern mssen bereinstimmen (und gegenber der
        Grundeinstellung verndert sein).

     +o  Ist das Routing richtig gesetzt? Prfe route -n.  Siehe
        ``Routing''.  Es mu eine Hostroute fr den PtP-Partner gesetzt
        sein.

     +o  Versuche die Gegenstelle anzupingen, z.B. ping 193.102.150.13.

     +o  Warte, bis die Verbindung automatisch abbricht und prfe die
        Routingtabelle erneut.

     +o  beobachte, ob wieder automatische gewhlt wird.


  5.5.  bung: syncPPP-Verbindung herstellen

  Ziel: PPP-Verbindung aufbauen und testen (kein Routing)

  1. Stelle eine Verbindung zu einem syncPPP-Server her.  Wenn Du keinen
     anderen kennst, benutze den S.u.S.E.  ISDN-Testrechner mit
     folgenden Daten:

     +o  Protokoll: syncPPP

     +o  Telefon: +49 911 3206726

     +o  Username: suse

     +o  Passwort: linux

     +o  IP-Nummer Server: 192.168.0.1

     +o  IP-Nummer Client: 192.168.0.99

  2. Gehe die Checkliste durch und fhre die dortigen Tests aus, siehe
     ``syncPPP Troubleshooting''

  3. Prfe die IP-Nummer(n) des Servers, wenn diese fest ist, ndere die
     Konfiguration entsprechend.



  6.  Problems with dynamic IP numbers

  What are dynamic IP numbers?

  IP numbers are scarce and therefore expensive. The providers therefore
  try to save IP numbers, by being able to be only assigning (at a
  minimum) as many IP numbers as can call in to them at the onetime. The
  number of potential computers that can call in is however higher,
  therefore a fixed IP number cannot be assigned to all of them.

  The trick is that instead of a fixed allocation of IP numbers to
  computers, with each connection the client is given an IP number from
  a free pool. This technique can only be used with PPP, not with rawip.

  This method is excellent if you only have a single workstation and
  work only session-to-session: open connection, surf, surf, surf,
  exchange mail, surf, and finally close the connection.

  If you want just a little bit more (transparent Internet access),
  however, it turns out that it doesn't work with dynamic IP numbers.

  The following points are desireablt for transparent Internet access:

  1. Dial-on-demand: it is not manually decided whether to open or close
     a connection (who should decide that in a large network?). The
     dial-up connection is made automatically as soon as there are
     packets that cannot be routed with the local network.

  2. Authomatic closing of connections, when there are no packets to go
     out for a certain period of time.

  3. Pauses don't add additional costs, if not data is being sent over
     the line; e.g. when reading a long web page, the connection doesn't
     need to be kept open

  4. Verhindern, da vergessen wird aufzulegen. (Es blinkt und klackt ja
     nicht ...)

  Dieses lt sich mit ISDN wunderbar lsen, vor allem deshalb, weil der
  Verbindungsaufbau im Gegensatz zu einem Modem sehr schnell geht
  (wenige Sekunden).


  Folgende Punkte sind bei dynamischen IP-Nummern nicht realisierbar:

  1. Server-Funktionalitt: die IP-Nummer des Rechners ist fr einen
     anderen Rechner im Internet nicht bestimmbar.  Auderdem wird der
     Provider vermutlich nicht selbst eine Whlverbindung aufbauen wollen
     und knnen - zumindest nicht bei diesen kostengnstigen Vertrgen.

  2. Mails knnen nicht direkt zum eigentlichen Mailserver durchgestellt
     werden (an welche IP-Nummer sollten sie denn ?), sondern mssen bei
     einem Provider abgelegt werde, von dem sie vom IZG abgeholt werden.

  3. Das Offene-Sockets-Problem: Halten einer logischen Verbindung ber
     die Verbindungsunterbrechnung hinaus ist nicht mglich.  Bsp: man
     loggt sich per Telnet bei in seiner Arbeitsstelle ein, nach
     Inaktivitt wird aufgelegt, drckt man nun eine Taste, wird die
     Verbindung automatisch wieder hergestellt, aber man bekommt eine
     andere IP-Nummer zugewiesen. Die Socket-Verbindung zwischen eigenen
     Rechner und Arbeitgeber ist damit ungltig geworden, da fr einen
     Socket u.a. Quell- und Ziel-IP-Nummern wichtig sind.

     Die gleiche Problematik stellt sich bei WWW oder FTP-Verbindungen,
     die unterbrochen werden.

     Sehr wohl aber ist man genauso wie sonst auch nicht gegen Angriffe
     aus dem Internet geschtzt. Ein Hacker kann nur nicht voraussagen,
     welchen Rechner er angreift, er sucht sich halt nur zufllig eine
     IP-Nummer aus (oder belauscht eine Verbindung) und kann den Rechner
     angreifen. Der Vorteil liegt allerdings darin, da der Hacker
     weniger Zeit hat, da die Verbindung abgebaut und mit einer neuen
     IP-Nummer aufgebaut wird, zwischen denen erstmal kein Zusammenhang
     zu erkennen ist. Als wirksamen Schutz reicht dies aber nicht aus.

  Die Probleme: Aus dem Offene-Sockets-Problem ergeben sich zwei Punkte,
  die bei einem IZG mit dynamsichen IP-Nummer beachtet werden mssen:

  1. Anfragen laufen in's Leer: ein Web-Browser hat einen zum Web- oder
     Proxy-Server offen, nach dem Re-Connect ist dieser ungltig, aber
     der Browser hat keine Mglichkeit dies zu erkennen. Abhilfe schafft
     es hier, auch Abbruch und Reload zu drcken.

  2. Die Sockets bleiben offen (auch nach Beendigung des Client-
     Programms), es werden immer wieder Pakete darber geschickt, bis ein
     Timeout (etwa 20 Minuten) abluft. In dieser Zeit wird stndig eine
     Verbindung aufgebaut bzw. bleibt bestehen.

  Abhilfe schafft hier zum einen, da man den Client nicht erlaubt direkt
  in das Internet eine Verbindung aufzubauen (ber Masquerading), sondern
  nur ber Proxies (siehe ``Squid''. Aber auch diese Methode ist nicht
  zuverlssig.


  6.1.  Der RST-provoking mode

  Wirkliche Abhilfe schafft nur die Aktivierung des RST-provoking mode.
  Dabei wird bei dem Paket die Quell-IP-Nummer ausgetauscht gegen die
  jetzt aktuelle dynamsiche IP-Nummer, was bewirkt, da beide Seiten
  diesen Socket schlieen.

  Diese Modus ist leider noch nicht in den offiziellen Kernel gekommen.
  Den Patch von Erik Corry findet man hier:
  <http://www.image.dk/~ehcorry/linux/>.

  Er ist fr Kernel der Version bis 2.0.33 passend, ab Version 2.0.34
  wird er vermutlich im Standard-Kernel sein. Im Standrdkernel von
  S.u.S.E. Linux 5.2 (und im Quellpaket lx_suse ist dieser Pacth schon
  enthalten.  (Offen: 2.1 ?)

  Zur Aktivierung gibt man das Kommando:

  ______________________________________________________________________
      echo 7 > /proc/sys/net/ipv4/ip_dynaddr

  ______________________________________________________________________


  (Oder nur 5, fr den quiet-Mode).  Bei Erfolg sieht man in
  /var/log/messages Meldungen der folgenden Art:

  ______________________________________________________________________
      ip_rewrite_addrs(): shifting saddr from 1.1.1.1 to 149.228.142.50 (state 2)

  ______________________________________________________________________



  Aktivierung bei S.u.S.E.:

  Trage in /sbin/init.d/i4l_hardware vor dem Start des isdnlog folgende
  Zeilen ein:

  ______________________________________________________________________
      test -z "$I4L_DYNIP" ||
          echo 7 > /proc/sys/net/ipv4/ip_dynaddr

  ______________________________________________________________________


  (das wird vermutlich bei S.u.S.E. Linux spter als 5.2 der Fall sein)
  und trage in /etc/rc.config ein:

  ______________________________________________________________________
      I4L_DYNIP="yes"

  ______________________________________________________________________



  6.2.  Welche IP-Nummer setze ich denn eigentlich?

  Der Provider stellt nur dynamische IP-Nummern zur Verfgung, whrend der
  Konfiguration von i4l werde ich aber nach IP-Nummer gefragt - welche
  IP-Nummer soll ich denn da angeben?

  i4l arbeitet mit einer transparenten Netzanbindung, d.h.  logisch
  gesehen ist die Verbindung immer aktiv, auch wenn noch garnicht gewhlt
  wurde und keine dynamischen IP-Nummern ermittelt werden konnten. Um
  dieses Pseudo-Netzwerk zu konfigurieren mssen aber zwangslufig IP-
  Nummern angegeben werden.

  Es empfiehlt sich daher, eine Pseudo-IP-Nummer zu benutzen, z.B.
  dieselbe, die man auch fr seine Ethernetanbindung benutzt. Das ist
  mglich, da die PPP-Verbindung als pointopoint-Verbindung (beim
  ifconfig) konfiguriert wurde, dies ist ein spezieller Modus, durch den
  der Kernel wei, da hier nur eine Verbindung zwischen zwei Punkten
  stattfindet. Warum Point-To-Point (PtP) als pointopoint angegeben
  wird, wei ich auch nicht ....

  Um keinen Konflikt mit offiziellen IP-Nummern zu provozieren, sollte
  man eine aus dem privaten Bereich whlen, z.B.  192.168.1.1.

  Falls man bei T-Online angeschlossen ist oder dies plant: Bneutze
  nicht 192.168.0.*, darber werden z.T.  interne Dienste wie Cept
  abgehandelt.



  7.  Routing



  7.1.  Was ist Routing?

  In einem lokalen Netzwerk ist das Leben einfach: wenn ein TCP-IP Paket
  zu einem anderen Rechner gesendet werden soll, wird dieses auf dem
  Ethernet verschickt.

  Ist der Rechner am Internet oder in einem grsseren Netzwerk (WAN)
  angeschlossen, ist die Aufgabe schon etwas schwieriger, denn wenn der
  Ziel-Rechner (bzw. Ziel-IP-Nummer) nicht im lokalen Ethernet
  erreichbar ist, so muss dem Kernel gesagt werden, da alle nicht lokal
  zustellbaren Pakete, freundlicherweise von einem Gatewayrechner
  weitergeleitet werden.

  Komplizierter ist es, wenn der betreffende Rechner selbst ein
  Gatewayrechner ist und mehrere Netzdevices (Ethernetkarten, Modems,
  ISDN-Karten etc.) zur Verfgung hat und jeweils ber diese Devices
  unterschiedliche Rechner/Netze erreichbar sind.  Das ist die Aufgabe
  vom Routing:


       Fr jede IP-Nummer mu definiert werden, auf welchem Weg (Route) diese
       erreicht werden kann.


  Man unterscheidet folgende Typen: (die Beispiele werden unter
  konkretisiert)


     Netzrouten
        Hier wird angeben, wie ein komplettes Netz erreichbar ist.
        Beispiel fr ein lokales Ethernet:

          Bsp 1: Das Netz 192.168.1.0 mit der Maske 255.255.255.0 ist ber das
          Device eth0 erreichbar.



     Hostrouten
        Man definiert, wie ein einzelner Rechner erreichbar ist.
        Beispiel fr eine syncPPP Verbindung:

          Bsp 2: Der Rechner 192.168.0.1 ist ber das Device ippp0 erreichbar.



     Default-Route
        Im Internet gibt es recht viele IP-Nummern - es ist daher mhsam
        und langweilig fr alle einzelnen IP-Nummern oder Netze einzelne
        Routing-Eintrge zu machen. Daher gibt es die Mglichkeit zu
        sagen:

          Bsp 3: Alle IP-Nummern, fr die keine spezielle Regel vorhanden ist,
          schicke an den Rechner mit der IP-Nummer 192.168.0.1.


     Man beachte: es macht i.A. keinen Sinn, mehr als eine Default-Route
     anzugeben.



  7.2.  Wie konfiguriert man das Routing?

  Die Routingeintrge werden dem Kernel zur Laufzeit mit dem Kommando
  route mitgeteilt (und wieder entzogen).


  7.2.1.  S.u.S.E. Methode

  Bei S.u.S.E. knnen die Routingeintrge fest in die Datei
  /etc/route.conf eingetragen werden, die beim Booten oder durch einen
  Runlevelwechsel vom Script /sbin/init.d/route ausgewertet wird.

  Die Eintrge fr die obigen Beispiele sehen so aus:

              # Bsp 1:
              192.168.1.0     0.0.0.0     255.255.255.0   eth0
              # Bsp 2:
              192.168.0.1     0.0.0.0     255.255.255.255 ippp0
              # Bsp 3:
              default         192.168.0.1



  Die 1. Spalte gibt das Ziel an, also das Netz, die IP-Nummer, oder das
  Schlelwort default.  In der 3. Spalte steht die zugehrige Netzmaske
  (falls notwendig).

  In der 2. Spalte steht der Gatewayrechner, an den die Anfragen
  geschickt werden sollen.

  In der 4. Spalte steht das zu verwendene Device.

  Hier sieht man auch in der 3. Zeile, da bei Verwendung eines
  Gatewayrechners die Angabe des Devices nicht ntig ist, da sie
  selbststmdig ermittelt wird.

  Allerdings mu (in diesem Beispiel) die Hostroute auf 192.168.0.1
  definiert sein, bevor man sie zum Setzen der Defaultroute nutzen kann.
  Merke: Die Reihenfolge ist wichtig.

  Manuelles Setzen und Lschen der Routingtabelle:


              /sbin/init.d/route start
              /sbin/init.d/route stop



  7.2.2.  Manuelle Methode


              # Bsp 1:
              route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
              # Bsp 2:
              route add -host 192.168.0.1 dev ippp0
              # Bsp 3:
              route add default gw 192.168.0.1



  Mehr Infos: man route.


  7.2.3.  Lschen von Routing-Eintrgen

  Routing-Eintrge knnen zum einem direkt gelscht werden, sie werden aber
  auch automatisch gelscht, wenn das zugrundeliegende Netzdevice gelscht
  oder umkonfiguriert wird.

  Dies hat in diesem Zusammenhang einen ungewnschten Nebeneffekt.  Der
  ipppd baut die Verbindung auf und bekommt eine neue IP-Nummer vom
  Server zugewiesen, wobei selbststndig eine neue Hostroute auf die IP-
  Nummer des Gegners eingerichtet wird.

  Allerdings wird eine ev. vorhandene Defaultroute ber dieses Device
  gelscht.

  Durch die PPP-Option defaultroute knnte man sich automatisch wieder
  eine Anlegen lassen.  Allerdings ist diese Methode nicht sehr flexibel
  (vielleicht will man ja doch keine Defaultroute) und man htte hiermit
  keine Mglichkeit zu steuern, wie sich beim Verbindungsabbau verhalten
  werden soll.  Daher wird beim Verbindungaus- und abbau jeweils ein
  Script gestartet, siehe ``Kontrollieren der Routingtabelle beim
  Verbindungsauf- und              abbau''.


  7.3.  Kontrollieren der Routingtabelle beim         Verbindungsauf-
  und abbau (/etc/ppp/ip-up)

  Der ipppd bietet die einfache Mglichkeit beim Verbindungsaufbau das
  Script /etc/ppp/ip-up und beim Abbau /etc/ppp/ip-down zu Starten,
  wobei jeweils die folgenden Parameter ber den neuen Zustand bergeben
  werden:


  +o  $1: Interface

  +o  $2: Device

  +o  $3: Speed (nur aus Kompatibilittsgrnden)

  +o  $4: lokale IP-Nummer

  +o  $5: IP-Nummer des Gegners

  Durch Installation geeigneter Scripte kann also die Default-Route neu
  gesetzt werden.  Die Scripte knnten jeweils so aussehen:


          #!/bin/sh
          /sbin/route add default gw $5


  Bei S.u.S.E. wird ein Script /etc/ppp/ip-up welches fr den
  hausgebrauch ausreicht. Die Routen werden aufgrund der
  Konfigurationsdateien gesetzt und wieder hergestellt. Weitere
  Kommandos knnen vom Administrator eingefgt werden (z.B. Mails
  verschicken).

  Das Script ip-down ist ein symbolischer Link auf ip-up, so da man nur
  eine Datei zu verwalten hat.


  7.3.1.  Was macht das Script ip-up/ip-down?

  Es wird geprft. ob das Interface ippp? ist, sollte also bei Analog-PPP
  nicht stren, wer dort etwas eintragen will, sollte die Stelle leicht
  finden.

  Wenn es als ip-up aufgerufen wird (also nach dem Verbindungsaufbau),
  wird eine Default-Route auf die gerade zugewiesene IP-Nummer gesetzt.

  Wenn es als ip-up aufgerufen wird (also nach dem Verbindungsabbau),
  dann wird das Interfacae gelscht.  Das Interface wird wie in
  /etc/rc.config wieder neu angelegt, es wird also wieder auf die
  ursprnglichen IP-Nummer gesetzt.  Nach den Angaben in /etc/route.conf
  werden die Routingeintrge fr dieses Device neu eingerichtet.  Somit
  ist dial-on-demand wieder mglich.  Ist dort keine Defaultroute
  angegeben, wird auch keine gesetzt.


  7.3.1.1.  Ich mchte aber kein dial-on-demand

  In der /etc/route.conf (bzw. in YaST) wird keine Default-Route
  (Default-Gateway) angeben, dadurch existiert nur whrend einer
  Verbindung eine Default-Route, diese wird beim Verbindungsabbau gelcht
  und nicht neu angelegt.  Die Verbindung kann dann manuell (oder durch
  ein Script) durch isdnctrl dial ippp0 aufgebaut werden (oder durch
  manuelles setzen der Default-Route).

  Dadurch kann z.B. auch erreicht werden, dass mit verschiedenen
  Providern gearbeitet wird, in dem Fall muss man ja sowieso
  entscheiden, welche Verbindung nun hochgefahren werden soll, z.B.
  isdnctrl dial ippp17


  7.4.  bung: Kontrolliere die IP-Nummer und die Routing-Tabelle


  1. /var/log/messages berwachen

     Siehe ``Betrachte messages''


  2. Prfe ip-up und ip-down


     ___________________________________________________________________
     glen:/root # ls -la /etc/ppp/ip-*
     lrwxrwxrwx   1 root     root            5 Mar 20 10:16 /etc/ppp/ip-down -> ip-up
     -rwxr-xr-x   1 root     root         1813 Mar 24 23:03 /etc/ppp/ip-up

     ___________________________________________________________________


  Siehe ``Installation''



  3. Prfe IP-Nummern und die Routingtabelle vor einer Verbindung


     ___________________________________________________________________
     glen:/root # ifconfig ippp0
     ippp0     Link encap:Point-Point Protocol
     inet addr:192.168.0.99  P-t-P:192.168.0.1  Mask:255.0.0.0
     UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
     RX packets:0 errors:0 dropped:0 overruns:0
     TX packets:0 errors:0 dropped:0 overruns:0

     ___________________________________________________________________



  ______________________________________________________________________
  glen:/root # route -n
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  192.168.0.1     0.0.0.0         255.255.255.255 UH    0      0        0 ippp0
  127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        2 lo
  0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 ippp0

  ______________________________________________________________________



  4. Verbindung initiieren

     Man kann entweder eine Pakete verschicken (z.B.  ping 141.1.1.1
     oder das Whlen direkt verlangen isdnctrl dial ippp0

     Als Beispiel bekommen wir die IP-Nummer 1.2.3.4 zugewiesen, der
     Gegner habe die IP-Nummer 5.6.7.8 (siehe messages).


  5. Prfe IP-Nummer und die Routingtabelle whrend einer Verbindung


     ___________________________________________________________________
     glen:/root # ifconfig ippp0
     ippp0     Link encap:Point-Point Protocol
     inet addr:1.2.3.4  P-t-P:5.6.7.8  Mask:255.0.0.0
     UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
     RX packets:2 errors:0 dropped:0 overruns:0
     TX packets:3 errors:0 dropped:0 overruns:0

     ___________________________________________________________________



  ______________________________________________________________________
  glen:/root # route -n
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  5.6.7.8         0.0.0.0         255.255.255.255 UH    0      0        0 ippp0
  127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        2 lo
  0.0.0.0         5.6.7.8         0.0.0.0         UG    0      0        0 ippp0

  ______________________________________________________________________


  6. Wir gehen in die groe weite Welt:

     Bestimme eine existierende IP-Nummer, die einzige, die ich mir
     merken kann ist die des DNS-Server von ECRC: traceroute -n
     141.1.1.1.  Man beachte, da wir noch keinen DNS-Servive benutzen
     knnen, daher -n.


  7. Timeout abwarten bis aufgelegt wird/

     betrachte /var/log/messages, z.B.:

     ___________________________________________________________________
     kernel: isdn_net: local hangup ippp0
     kernel: ippp0: Chargesum is 0
     isdnlog: Apr 03 09:20:49   tei 70 calling Eunet-N with KfrI I  Normal call clearing (User)
     ipppd[135]: Modem hangup
     ipppd[135]: Connection terminated.
     ipppd[135]: taking down PHASE_DEAD link 0, linkunit: 0
     ipppd[135]: sent [0][LCP TermReq id=0x2 6c 69 6e 6b 20 63 6 c 6f 73 65 64]
     ipppd[135]: LCP is down
     ipppd[135]: link 0 closed , linkunit: 0
     ipppd[135]: reinit_unit: 0
     ipppd[135]: Connect[0]: /dev/ippp0, fd: 6

     ___________________________________________________________________



  8. IP-Nummern und Routing prfen

     sie mssen jetzt wieder genausogesetzt sein, wie vor dem
     Verbindungsaufbau.



  8.  IP-Nummern Auflsung (DNS)

  Bekanntlich werden Rechner im Internet ber die IP-Nummern
  angesprochen.  Niemand mchte sich aber die IP-Nummern direkt merken,
  praktischer ist es, Namen zu verwenden, z.B. www.franken.de.  Aber
  nicht nur fr die bessere Merkbarkeit sind diese Namen wichtig, sondern
  sie dienen auch als Variable, deren Inhalt sich verndern kann. Wenn
  ein wichtiger Server eine neue IP-Nummer bekommt (z.B. durch Umzug
  oder Providerwechsel), so wird der Name einfach auf die neue IP-Nummer
  aufgelst.

  Genauso wichtig (und das wird gerne vergessen) wie die Auflsung von
  Namen in IP-Nummern ist der umgekehrte Fall, also IP-Nummer in einen
  Rechnernamen auflsen.

  Diese umgekehrte Auflsung ist oft diejenige, die Probleme im lokalen
  Netzwerk (also ungewollte Verbindungen) macht, denn viele Services
  nutzen diese Mglichkeit zur Verifikation bei einer einkommenden
  Verbindung, denn in den Regeln wer was machen darf, werden meist
  Rechnernamen anstatt IP-Nummern verwendet. ber das Netzwerk ist aber
  zunchst nur die IP-Nummer sichtbar und mu also in einen Namen aufgelst
  werden.



  Es gibt zwei wichtige Methode zur Namensauflsung, die gleichzeitig
  benutzt werden knnen (und mssen):


  8.1.  feste IP-Nummern Auflsung ber /etc/hosts

  Alle bekannten IP-Nummer werden fest in einer Datei gespeichert, die
  der Adminsitrator manuell pflegen (oder kopieren) mu.

  In der Datei /etc/hosts werden alle Rechnernamen und IP-Nummern fest
  eingetragen.

  Beispiel: In der Domain isdnworkshop.de gibt es die Rechner Asterix
  (192.168.1.1) und Obelix (192.168.1.2).  Dann sieht die Datei so aus:


  ______________________________________________________________________
  # IP        FQN                     Kurzname

  192.168.1.1 Asterix.isdnworkshop.de Asterix
  192.168.1.2 Obelix.isdnworkshop.de Obelix

  ______________________________________________________________________



  8.2.  dynamische IP-Nummern Auflsung mit DNS

  Es wird schnell ersichtlich, da eine feste Auflsung ber eine Datei,
  die stndig aktuell auf jedem Rechner installiert sein mu das Internet
  nicht funktionieren wrde. Die feste Auflsung kann nur in einem
  bersichtlichen lokalen Netz benutzt werden.

  DNS (Domain Name Service) dient ebenfalls zum Auflsen von Rechnernamen
  in eine IP-Nummer und umgekehrt. Der Unterschied liegt darin, da es
  ein Internet-Service ist, den man auf Anforderung abfragen kann.  ES
  gibt sehr viele DNS-Server im Internet, wobei es eine hierarchische
  Struktur gibt, die sich an den Domainnamen orientiert. Jeder DNS-
  Server ist fr eine Sub-(Sub-....) Domain zustndig. Beim Abfragen
  hangelt man sich von den Root-Servern herunter, bis man den Server
  gefunden hat, der die Anfrage tatschlich beantworten kann.

  Das Einrichten eines DNS-Server soll an anderer Stelle beschrieben
  werden, z.B. im DNS-HowTo.

  Fr unsere Zwecke reicht es zu wissen, wie der Service aktiviert wird
  und wo man einstellt, welches der Nameserver ist.


  8.3.  Konfiguration der Namensauflsung

  Es ist wie gesagt durchaus sinnvoll beide Methoden der Namensauflsung
  zu kombinieren. Wichtig ist hier, da auch ohne Internetverbindung
  lokal gearbeitet werden kann.  blicherweise werden die lokalen Rechner
  (mindestens der eigene) ber die /etc/hosts aufgelst, alle nicht
  bekannten Anfragen werden dann ber den Nameserver beim ISP aufgelst.

  Um die Namensauflsung mu sich eine Applikation nicht selber kmmern,
  sondern wird durch libc-Funktionen (z.b.  gethostbyname() erledigt.
  Diese libc-Funktionen gilt es also zu konfigurieren.

  ber die Datei /etc/host.conf wird zunchst gesteuert, welche Methoden
  berhaupt benutzt werden sollen und sehr wichtig auch in welcher
  Reihenfolge dies geschehen soll.

  Beispiel /etc/host.conf:

  ______________________________________________________________________
  order hosts bind
  multi on

  ______________________________________________________________________


  gibt an, da zunchst in der /etc/hosts gesucht werden soll, bei Mier-
  folg dort, soll der DNS-Server (bind) bemht werden.

  Wenn ein Nameserver benutzt werden soll, ist noch eine zweite Datei
  /etc/resolv.conf zu konfigurieren:

  ______________________________________________________________________
  search isdnworkshop.de suse.de
  nameserver 192.168.200.7.1

  ______________________________________________________________________


  Die 2. Zeile sollte selbsterklrend sein, in der ersten wird eine soge-
  nannte Searchlist angegeben, diese ist nur dann von Bedeutung, wenn
  ein Rechnername ohne vollstndige Domain versucht wird aufzulsen.
  Beispiel: es wird nach einem Rechner Goedel gesucht, den der Name-
  server nicht kennt, dann wird zunchst isdnworkshop.de angehngt und
  damit versucht einen Rechner Goedel.isdnworkshop.de zu finden; ist
  auch das nicht erfolgreich, wird nach Goedel.suse.de gesucht.

  nderungen an diesen beiden Dateien sind sofort wirksam.


  8.3.1.  Namensauflsung bei S.u.S.E.

  Setze die Variablen in /etc/rc.config, fr obiges Beispiel:

  ______________________________________________________________________
  SEARCHLIST="isdnworkshop.de suse.de"
  NAMESERVER="192.168.200.7.1"

  ______________________________________________________________________



  8.4.  Probleme mit der Namensauflsung

  Probleme bei der Namensauflsung erkennt man schnell an seiner
  Telefonrechnung ;-(

  Ein Beispiel: eine Benutzer macht im lokalen Netz ein Telnet von der
  IP-Nummer 192.168.1.2 auf den IZG 192.168.1.1.  Der Server prft vor
  dem eigentlichen Start des Telnet-Daemons, welche IP-Nummer reinkommt
  (Stichwort TCP-Wrapper), da diese Nummer nicht aufgelst werden kann,
  wird der Nameser befragt, dieser ist beim ISP, eine Verbindung wird
  automatisch aufgebaut. Ergebnis: der Telnet braucht nicht nur etwa
  eine Minute bis zum Login (der DNS-Server kann diese private IP-Nummer
  nicht auflsen), sondern kostet auch noch 12 Pfennige.


  8.4.1.  Checkliste


  1. Ist die eigene IP-Nummer in der /etc/hosts eingetragen?

  2. Sind alle Rechner des lokalen Netzwerks in der /etc/hosts
     eingetragen?


  3. Ist das Paket bind installiert:

     ___________________________________________________________________
     +/kfr $ rpm -q bind
     bind-4.9.6-5

     ___________________________________________________________________



  4. Kann der Nameserver angesprochen werden?  Test:

     ___________________________________________________________________
     +/kfr $ nslookup www.suse.de
     Server:  Plato.suse.de
     Address:  192.168.100.1

     Name:    Turing.suse.de
     Addresses:  195.125.217.200, 192.168.102.3
     Aliases:  www.suse.de

     ___________________________________________________________________



  5. Einen beliebigen anderen Nameserver kann man direkt testen, z.B.:

     ___________________________________________________________________
     +/kfr $ nslookup www.suse.de 141.1.1.1
     Server:  ecrc.de
     Address:  141.1.1.1

     Non-authoritative answer:
     Name:    Turing.suse.de
     Address:  195.125.217.200
     Aliases:  www.suse.de

     ___________________________________________________________________



  Tips:

  1. Fr das gesamte Subnetz IP-Nummern und Namen in die /etc/hosts
     eintragen, auch wenn sie (noch) nicht verwendet werden. Bsp:

     ___________________________________________________________________
     192.168.1.1     Server.isdnworkshop.de Server
     192.168.1.2     Client.isdnworkshop.de Client
     192.168.1.3     Dummy.isdnworkshop.de Dummy
     192.168.1.4     Dummy.isdnworkshop.de Dummy
     192.168.1.5     Dummy.isdnworkshop.de Dummy

     ___________________________________________________________________


  u.s.w.


  2. Einrichten eines eigenen DNS-Proxy-Servers.  Neben der schnelleren
     Auflsung, werden auch die fehlerhaften Anfragen gecacht, so da
     nicht so hufig eine Verbindung aufgebaut wird (Siehe ``DNS-
     Cache'').



  9.  Monitoring Dial-On-Demand

  During the configuration you should monitor the system to determine
  when and why a connection is made. Otherwise you can quickly rack up
  unwanted phone bills.

  One can be sure, however, that a connection is never made or kept open
  for no reason. This occurs only even if packets are actually sent out
  over the line.

  Thus, you need to check the server services installed on the computer,
  whether they were configured correctly and to if necessary find out
  the cause of the connection.



  9.1.  Monitoring connections


  There are a number of ISDN status monitors. The most important is
  imon; this console program can be started in any environment, reacts
  promptly and does not devour system resources.

  Other programs are: xisdnload (also shows the throughput), isdnmon and
  isdnmonp.  All monitors show the telephone number and the type of
  connection (incoming or outgoing on).


  9.2.  Determining the reason for the connection


  +o  With the command isdnctrl verbose 3 the i4l subsystem will write a
     message in /var/log/messages each time a connection is established
     so that one can determine between which IP numbers and port numbers
     a packet is being sent.  This example is an inquiry to the WWW
     server www.suse.com (Alias goldengate):


     ___________________________________________________________________
     Apr 10 21:05:06 glen kernel: OPEN: 1.1.1.1 -> 209.0.51.1 TCP, port: 2224 -> 80

     ___________________________________________________________________


  Disadvantage: one cannot check why a connection is not being hung up.
  More: ``SDB: unwanted connections''

  +o  tcpdump (Paket tcpdump) is a packet sniffer that checks all packets
     on a network device. The output of the program is not very user-
     freiends, but it at least shows the IP number and port numbers.
     This examples is an an inquiry to the WWW server www.suse.com
     (Alias goldengate)



     ___________________________________________________________________
     glen:/root # tcpdump -i ippp0
     tcpdump: listening on ippp0
     21:05:39.382188 pec-30.au1.n.uunet.de.2230 > goldengate.suse.com.www:
         S 1384488919:1384488919(0) win 512 <mss 1460>
     21:05:39.642188 goldengate.suse.com.www > pec-30.au1.n.uunet.de.2230:
         S 3326089293:3326089293(0) ack 1384488920 win 32736 <mss 1460>
     21:05:39.642188 pec-30.au1.n.uunet.de.2230 > goldengate.suse.com.www:
         . ack 1 win 32120 (DF)

     ___________________________________________________________________



  Disadvantage: when using dynamic IP numbers, the ppp daemon recreates
  the the interface ippp0.  tcpdump won't show any more data after this,
  and must be aborted and restarted.



  9.3.  Analyzing connections

  The program isdnlog runs in the backgroud, always listening to the D
  channel. All activity is logged to /var/log/messages and a protocol is
  written to /var/log/isdn.log.

  With the toolM isdnrep, this file can be read at some later time.
  There are a number of parameters; here are the most important:


  +o  isdnrep: all of today's connections

  +o  isdnrep -a: all logged connections

  +o  isdnrep -t01/04/98-03/04/98: all connections from 1 to 3 April 1998

     More information is in  <file:/usr/doc/packages/i4l/isdnlog/README>
     or in the source package.


  9.4.  Dial-On-Demand an- und ausstellen

  Das i4l-Subsystem ist (wenn es denn einmal gestartet wurde) nicht dafr
  vorgesehen, da Verbindungen nur manuell gestartet werden. Man knnte
  das Konzept bei i4l also auch so formulieren: wenn es gestartet ist,
  besteht stndig eine Verbindung, die aber automatisch gekappt wird,
  wenn nichts passiert.

  Wer es dennoch machen will, der entferne einfach die Default-Route. In
  diesen Fall wird nur noch dann eine Verbindung aufgefgebaut, wenn ein
  IP-Paket an die direkte Gegenstelle geschickt wird, was i.A. nicht
  vorkommt, da diese Gegenstelle keine Internetdienste anbietet und
  daher von keinem Client angesprochen wird.

  Als endgltigen Schritt, kann man auch das komplette Interface (ippp0)
  herunterfahren, dann knnen grundstzlich keine Verbindungen aufgebaut
  werden.


  9.5.  Tips im S.u.S.E. System

  Man kann die Runlevel-Scripts natrlich auch manuell benutzen:



  ______________________________________________________________________
  /sbin/init.d/i4l stop

  ______________________________________________________________________


  fhrt alle ISDN-Netzdevices runter,

  ______________________________________________________________________
  /sbin/init.d/i4l start
  /sbin/init.d/route

  ______________________________________________________________________


  legt sie wieder an und setzt die Routen.

  Wer bei einer syncPPP-Verbindung die Verbindung nur manuell starten
  mchte, kann eine Eigenschaft des Scriptes /etc/ppp/ip-up ab S.u.S.E.
  5.2 ausnutzen (Siehe FixMe).  Dieses legt beim Verbindungsaufbau eine
  Defaultroute auf die neu erkannte PtP-Adresse. Beim Verbindungsabbau
  wird das Device neu angelegt und die Defaultroute gelscht. Schlisslich
  wird die Datei /etc/route.conf durchsucht und die Defaultroute wenn
  definiert neu angelegt.  Definiert man dort keine Defaultroute, so hat
  man nach Verbindungsabbau eben keine.

  Gestartet werden kann dann nur mit dem Kommando:

  ______________________________________________________________________
  isdnctrl dial ippp0

  ______________________________________________________________________


  und wer manuell Auflegen will:

  ______________________________________________________________________
  isdnctrl hangup ippp0

  ______________________________________________________________________



  9.6.  Wie erlaube ich normalen Benutzern Dial-In-Demand             zu
  aktivieren?

  Am besten garnicht, denn das ist Aufgabe des Administrators.  Es ist
  nur diesem vorbehalten, Netzdevices und Routen zu konfigurieren.

  Versuche nicht, den notwendigen Programmen suid-Attribute zu geben!
  Erstens ist die Aufgabe sehr schwer, und zweitens handelt man sich
  damit ein riesisges Sicherheitsloch ein, denn wenn diese Programme
  erstmal offen sind, lassen sich auch andere unerwnschte Dinge damit
  tun.

  Einem einzelnen Script suid-Attribute zu geben, ist unter Linux
  ebenfalls verboten.

  Wer es dennoch unbedingt machen will, der benutze ein Paket wie z.B.
  sudo. Damit lassen sich fr einzelne Benutzer bestimmte Kommandos
  definieren, die diese dann als Benutzer root ausfhren drfen.

  Hier ein einfaches Beispiel:


  1. Paket sudo installieren.

  2. Mit visudo die Konfigurationsdatei editieren, z.B.  soll der
     Benutzer kfr das Programm /usr/local/bin/dial ausfhren drfen:

     ___________________________________________________________________
     # User privilege specification
     kfr     ALL=/usr/local/bin/dial

     ___________________________________________________________________



  Hinweis: benutze nur das Kommando visudo, um dieKonfigurationsdatei
  (/etc/sudoers) zu verndern.

  3. Das Script dial knnte z.B. so sein:

     ___________________________________________________________________
     #!/bin/sh

     DEVICE=ippp0

     if test $UID -ne 0; then
         exec sudo $0 $*
     fi

     case "$1" in

     stop)
         echo stop
         isdnctrl hangup $DEVICE
         ;;
     *)
         echo dial
         isdnctrl dial $DEVICE
         ;;

     esac

     ___________________________________________________________________


  Wird es nicht als User root aufgerufen, startet es sich selbst mit
  sudo neu. Mit dial wird gewhlt, mit dial stop wird aufgelegt.

  4. sudo fragt beim ersten Start und danach von Zeit zu Zeit das
     Passwort des aufrufenden Benutzers ab.


  10.  Preventing phone bill disasters, TimRu extension

  FixMe


  11.  Konfiguration der Internet-Dienste

  Voraussetzung: Die Internet-Verbindung ber eine Dial-On-Demand
  Whlverbindung und das Routing funktioniert.

  Jetzt sollen (je nach Bedarf) weitere Internetdienste eingerichtet
  werden.



  11.1.  DNS-Cache

  Hintergrund: siehe ``IP-Nummern Auflsung''

  1. Paket bind installieren.

  2. editiere /etc/named.boot:


     ___________________________________________________________________
     cache . root.cache
     options query-log
     forwarders 192.76.144.66
     slave

     ___________________________________________________________________


  Bei forwarders werden ein oder mehrere IP-Nummern der Nameserver
  eingetragen. Die Option slave steuert das Verhalten, wenn der Name-
  server selbst noch keine Antwort hat, ohne die Option mte jetzt der
  eigene Nameserver die Anfrage auflsen (aufwendig). Mit dieser Option
  (empfohlen) wird dem Forwarder gesagt, da er soll die Anfrage auflsen.
  Bei der nchsten Anfrage hat er diese dann im Cache.

  Zur Diagnose ist zu empfehlen, noch die Zeile options query-log
  einzufgen, es werden dann ber Syslog (also in /var/log/messages alle
  Anfragen an den Nameserver protokolliert, dadurch lassen sich einfach
  die beltter im lokalen Netz finden. Bsp:

  ______________________________________________________________________
  named[232]: XX /192.168.1.2/www.suse.de/A

  ______________________________________________________________________


  Der Rechner 192.168.1.2 fragt nach dem A-Record fr www.suse.de.

  3. Wir benutzen uns selbst als Nameserver.

     Trage als Nameserver die lokale IP-Nummer ein (192.168.1.1), siehe
     ``Konfiguration der Namensauflsung''

  4. Starte den Nameserver:

     +o  S.u.S.E. Methode: Trage in /etc/rc.config ein:

        ________________________________________________________________
        START_NAMED=yes

        ________________________________________________________________


     Starte Nameserver durch Reboot oder direkt durch /sbin/init.d/named
     start

     +o  Manuelle Methode: /usr/sbin/named

  5. Test: nslookup www.suse.de.


     Ergebnis: eine Verbindung wird aufgebaut, in messages wird die
     Anfrage protokolliert und die IP-Nummer wird aufgelst.

     Eine Wiederholung der Anfrage, wenn die Verbindung nicht besteht,
     darf keine Verbindung aufbauen, die Anfrage mu sofort beantwortet
     werden.



  11.2.  Squid

  Squid ist ein WWW- und FTP-Proxy. Der Vorteil eines Proxies liegt
  nicht nur darin, Anfragen (fr mehrere Benutzer) zu cachen, sondern
  auch darin, da Clientrechner im lokalen Netz nicht unbedingt echten
  Internetzugriff (ber Masquerading) haben mssen, was die bersicht und
  die Sicherheit erhht.

  Squid hat eine Vielzahl von Optionen und Features, die mitgelieferte
  Beispielkonfiguration in /etc/squid.conf ist sehr gut dokumentiert und
  funktioniert zunchst einmal ohne nderung.


  11.2.1.  Starten von Squid

  Bei S.u.S.E. wird ber die rc.config-Variable START_SQUID gesteuert, ob
  Squid gleich beim Systemstart hochgefahren werden soll (ber
  /sbin/init.d/squid).

  Manuell kann man squid z.B. durch /usr/sbin/squid -sYD >>
  /var/squid/squid.out 2>&1 & starten.

  Vor dem ersten Start mu das Cache-Directory initialisiert werden, dies
  sollte als Benutzer squid geschehen. Als root kann man einfach
  aufrufen: su squid -c "usr/sbin/squid -z"/.


  11.2.2.  Clients anpassen

  Die WWW-Browser mssen konfiguriert werden, damit Sie den Proxy
  ansprechen. Bei Netscape gibt es die Maske Options/Network
  Preferences/Proxies/ Manual Proxy Configuration. In der Maske gibt man
  jeweils fr FTP und HTTP-Proxy die IP-Nummer des IZG im lokalen Netz
  ein und als Portnummer 3128 (oder was in /etc/squid.conf definiert
  ist.

  Zustzlich sollte man noch das Feld No Proxy for ausfllen, fr welche
  Domains nicht ber den Proxy gegangen, sondern direkt auf den WWW-
  Server zugegriffen werden soll, z.B.: localhost isdnworkshop.de.


  11.3.  Fetchmail

  Das Programm fetchmail (Paket pop) eignet sich dazu, Mails ber das
  POP3-Protokoll vom Provider abzuholen.

  Das Abholen kann auch als normaler User durchgefhrt werden, wir holen
  hier die Mails als Root ab, dadurch lt sich der Vorgang besser
  automatisieren. Nach dem Abholen werden die Mails dem lokalen Sendmail
  bergeben und zugestellt.

  Der Mailserver sei mail.provider.de. Es gibt zwei Benutzer asterix und
  obelix, die auf dem lokalen Rechner eva und maria heissen. Als
  Passwrter werden (auf dem Mailserver) adam und josef benutzt.


  +o  Lege eine Datei /root/.fetchmailrc an:



     ___________________________________________________________________
     poll mail.provider.de protocol POP3 user asterix password adam is eva
     poll mail.provider.de protocol POP3 user obelix password josef is maria

     ___________________________________________________________________



  +o  Zum Test starte:

     ___________________________________________________________________
     fetchmail -v --keep -a

     ___________________________________________________________________


  Die Option -v gibt mehr Ausgaben, die Option --keep sorgt dafr, da die
  Mails auf dem Server zunchst nicht gelscht werden.

  +o  Wenn das erfolgreich war, trage in /etc/ppp/ip-up das Kommando
     fetchmail -a >> /var/log/fetchmail in der Start-Section ein.


  Mehr Infos:  <http://www.suse.de/Support/sdb/fetchmail.html>

  bung: auf dem Server liegen Mails fr jede Workstation bereit. Richte
  fetchmail so ein, da bei jedem Verbindungsaufbau Mails abgeholt
  werden. Prfe die lokale Zustellung.  Siehe  </support-
  db/sdb/fetchmail.html> und /etc/ppp/ip-up.


  11.4.  Sendmail

  ber Sendmail kann man dicke Bcher schreiben ... (siehe ``Sendmail''.

  Das S.u.S.E. Paket sendmail ist fr diese Zwecke hier bestens gerstet.
  Besonders wichtig sind hier zum einem, da die Absenderadresse richtig
  gesetzt wird, denn die lokale Domain knnte ja zur E-Mail-Adresse beim
  Provider unterschiedlich sein. Zum anderen sollen lokale E-Mails
  sofort zugestellt werden, Mails die ber die Whlleitung verschickt
  werden mssen, sollen dagegen in eine Queue gestellt werden, ohne da
  eine Verbindung aufgebaut wird.

  Wie immer gibt es mehrere Wege:


  +o  Sendmail ber /etc/rc.config konfigurieren:


     ___________________________________________________________________
     FROM_HEADER="klaus.franken.de"
     SENDMAIL_TYPE="yes"
     SENDMAIL_SMARTHOST="mail-n.franken.de"
     SENDMAIL_LOCALHOST="localhost franken.b.eunet.de glen.home.suse.de \
             klaus.franken.de"
     SENDMAIL_RELAY=""
     SENDMAIL_ARGS="-bd -om"
     SENDMAIL_EXPENSIVE="yes"
     SENDMAIL_NOCANONIFY="yes"

     ___________________________________________________________________



  +o  Sendmail ber m4-Macro-File konfigurieren:

     Seit sendmail Version 8, bietet Sendmail ein Macro-Paket, bei dem
     die eigentlich Konfigurationsdatei /etc/sendmail.cf nicht von Hand
     erstellt werden mu, sondern ber eine Meta-Datei generiert wird.
     Das Directory ist je nach Distribution unterschiedlich (z.B.
     /usr/share/sendmail/m4, bei S.u.S.E.  auch in /etc/mail).

     In der Distribution sollten sich Vorlagen befinden.  Bei S.u.S.E.
     ist eine gut kommentierte /etc/mail/linux.mc dabei. Bevor man diese
     ndert, sollte man in /etc/rc.config das automatische Generieren
     abstellen (SENDMAIL_TYPE="no").

     Man generiert eine neu Konfig mit:

     ___________________________________________________________________
     m4 linux.mc > /etc/sendmail.cf

     ___________________________________________________________________



  Mehr Infos: siehe /etc/mail/README


  +o  Sendmail Finetuning

     Bei ausgehenden E-Mails werden abhngig vom lokalen Benutzernamen
     die E-Mail-Adressen umgeschrieben, Datei /etc/mail/genericstable:

     ___________________________________________________________________
     kfr kfr@klaus.franken.de
     sandra sandra@klaus.franken.de
     sr sandra@klaus.franken.de

     ___________________________________________________________________



  bung:

     +o  Schreibe Dir selbst eine Mail auf dem lokalen Rechner

     +o  Schreibe anderen Usern eine Mail auf dem lokalen Rechner

     +o  Schreibe eine Mail an root@server.isdnworkshop.de

     +o  Schreibe eine Mail an andere User auf server.isdnworkshop.de
        (ws0, ws1, ....)

     +o  Prfe nach, wo Deine Mail sind

     +o  Stelle sicher, da Mails beim Verbindungaufbau gequeued
        verschickt werden, lokale Mails aber sofort zugestellt werden.
        (Siehe in /etc/ppp/ip-up).

     +o  Prfe die Mailqueue mit mailq


  11.5.  News

  Online News lesen ist schon hiermit sehr einfach, als News-Server den
  Server des ISP angeben. Dazu mu man fr die meisten News-Read die
  Variable NNTPSERVER setzen, z.B.  export
  NNTPSERVER='klaus.franken.de'.  Dies sollte man systemweit in der
  /etc/profile eintragen.

  Wnschenswert ist natrlich News-Offline zu lesen und entweder bei
  Bedarf zu holen bzw. zu verschicken oder dieses per Cron-Job z.B. jede
  Nacht durchfhren zu lassen.

  Die Installation eines eigenen News-Servers ist recht aufwendig, es
  bieten sich CNews oder INN an.  Siehe dazu News-Howto (fixme).

  Ein eigener News-Server ist aber eigentlich nur dann notwendig, wenn
  man auf diesem selber Newsgruppen einrichten mchte.  Will man das
  nicht, sind CNews und INN vollkommen overkilled, deshalb mchte ich
  hier zwei andere Mglichkleiten vorstellen:

  Zwei Pakete bieten sich an: Leafnode und slrn.  Beide sind einfach
  einzurichten und zu warten und eignen sich fr ein mittleres
  Newsaufkommen vollkommen aus.

  slrn ist eigentlich ein eigener News-Reader (textorientiert, sehr
  flexibel und schnell) und bietet ein eigenes Programm slrnpull, das
  die News abholt und in ein eigenes Spool-Verzeichnis stellt, auf
  welches direkt von slrn zugegriffen werden kann.  Einschrnkungen: es
  kann kein anderes News-Programm darauf zugreifen; es kann nicht ber
  Netzwerk auf die News zugegriffen werden (vielleicht ber NFS,
  untestet), da kein lokaler News-Server luft.

  Leafnode stellt dagegen einen eigenen News-Server zur Verfgung,
  braucht aber insgesamt mehr Ressourcen.  Der Trick bei Leafnode ist
  der, das sich der Server quasi selbst konfiguriert: wird von einem
  Client auf eine Gruppe zugegriffen, wird diese automatisch abonniert
  und ist beim nchsten Abgleich vorhanden; wird dagegen lngere Zeit
  nicht (mehr) auf eine Gruppe zugegriffen, wird diese automatisch
  gelscht. Man kann Leafnode also in einem kleineren Netz mit mehreren
  Lesern trotzdem nahezu unbeaufsichtigt laufen lassen.

  Beide Programme arbeiten sehr gut in dieser Dial-On-Demand-Umgebung,
  Zugriffe auf den News-Server beim Provider werden nur auf Wunsch, nie
  aber automatisch ausgefhrt.


  11.5.1.  slrn installieren und konfigurieren

  Die getestete Version ist 0.9.5.2 von
  <ftp://space.mit.edu/pub/davis/slrn>

  Es wird die slang-Bibliothek ab Version 1.0.3 bentigt (bei S.u.S.E.
  5.2 ist noch  0.99.38 dabei), zu bekommen unter
  <ftp://space.mit.edu/pub/davis/slang>

  Beim Compilieren nicht vergessen auch make slrnpull anzugeben.  Die
  Binaries z.B. nach /usr/local/bin kopieren, oder folgendes ausfhren:



  ______________________________________________________________________
  install -m 755 -o root -g root src/objs/slrn /usr/local/bin
  install -m 755 -o root -g root src/objs/slrnpull /usr/local/bin
  install -d /usr/doc/packages/slrn -m 755 -o root -g root
  install -m 644 -o root -g root doc/* /usr/doc/packages/slrn
  install -m 644 -o root -g root COPYRIGHT /usr/doc/packages/slrn
  install -m 644 -o root -g root COPYING /usr/doc/packages/slrn
  install -m 644 -o root -g root README /usr/doc/packages/slrn
  install -m 644 -o root -g root changes.txt /usr/doc/packages/slrn
  install -m 644 -o root -g root doc/slrn.1 /usr/local/man/man1
  install -d /usr/doc/packages/slrn/slrnpull -m 755 -o root -g root
  install -m 644 -o root -g root slrnpull/* /usr/doc/packages/slrn/slrnpull

  ______________________________________________________________________



  Dann das Spool-Verzeichnis anlegen und die Config-Datei erstellen:

  ______________________________________________________________________
  mkdir /var/spool/slrnpull
  cd /var/spool/slrnpull
  cp /src/slrn/slrnpull/slrnpull.conf .

  ______________________________________________________________________



  In slrnpull.conf knnte z.B. folgendes stehen:

  ______________________________________________________________________
  default                0   14
  de.alt.comm.isdn4linux

  ______________________________________________________________________



  Jetzt noch den News-Reader auf diesen Spool-Pfad konfigurieren, in
  ~/.slrnrc anfgen (anpassen !):

  ______________________________________________________________________
  %%% Spool
  set spool_inn_root   "/var/spool/slrnpull"
  set spool_root       "/var/spool/slrnpull/news"
  set spool_nov_root   "/var/spool/slrnpull/news"
  set use_slrnpull 1
  set read_active 1
  set server_object    "spool"
  hostname "klaus.franken.de"
  set username "kfr"

  ______________________________________________________________________



  Das Abholen, Verschicken eigener News und das Lschen alten Artikel
  geschieht mit einem einzigen Kommando (als root), z.B.:

  ______________________________________________________________________
  slrnpull -d /var/spool/slrnpull -h news.franken.de

  ______________________________________________________________________



  Beim ersten Mal dauert das natrlich sehr lange und sollte daher
  manuell ausgefhrt werden. Im Betrieb kann man das ber einen
  Croneintrag oder in /etc/ppp/ip-up bei jedem Verbindungsaufbau
  durchfhren lassen.

  Beim manuellen Start gibt slrnpull Meldungen auf der Console aus; wird
  es im Hintergrund gestartet, loggt es nach /var/spool/slrnpull/log
  (Achtung: diese Datei kann gross werden!).



  11.5.2.  Leafnode installieren und konfigurieren

  Leafnode (Version 1.4) gibt es auf
  <ftp://ftp.troll.no/pub/freebies/>.

  Die mitgelieferten Dateien README und INSTALL beschreiben die
  Installation sehr gut.

  Im folgenden Beispiel werden die Binaries leafnode, fetch und texpire
  nach /usr/local/bin installiert (Makefile anpassen!).

  Zunchst wird der NNTP-Server leafnode in der /etc/inetd.conf durch
  folgende Zeile aktiviert:

  ______________________________________________________________________
  nntp    stream  tcp     nowait  news    /usr/sbin/tcpd /usr/local/bin/leafnode

  ______________________________________________________________________


  Danach ein killall -1 inetd ausfhren.

  Als nchstes  mu ein User und eine Gruppe news angelegt werden, z.B.
  durch folgenden Eintrag in /etc/passwd:

  ______________________________________________________________________
  news:x:9:13::/var/spool/news:/bin/bash

  ______________________________________________________________________


  Alle Arbeiten mssen dann als User news ausgefhrt werden (als Root: su
  - news)!

  Im Verzeichnis /usr/lib/leafnode wurde bei der Installation eine Bsp-
  Datei angelegt, die man kopieren und anpassen muss:

  ______________________________________________________________________
  su - news
  cd /usr/lib/leafnode
  cp config.example config

  ______________________________________________________________________



  Die Datei ist kommentiert, hier arbeiten folgende Eintrge:

  ______________________________________________________________________
  server = news.franken.de
  expire = 20
  maxcount = 1000

  ______________________________________________________________________

  Jetzt mu man dafr sorgen, da das Programm texpire regelmssig
  aufgerufen wird (ansonsten werden keine alten News wieder gelscht),
  hier arbeitet folgender Crontab-Eintrag vom User root:

  ______________________________________________________________________
  42  5 * * * su news -c texpire

  ______________________________________________________________________


  um jede Nacht um 5:42 zu lschen.

  Durch das Kommando fetch (besser fetch -v) wird nun der News-Server
  initialisiert, aber keine Gruppen sind aktiv.

  In dem man jetzt einmalig durch einen News-Reader auf diesen
  Newsserver und auf die interessanten Gruppen zugreift (es werden
  natrlich alle mit der Anzahl 0 angezeigt), werden die Gruppen
  abonniert.  Beim nchsten Aufruf von fetch werden dann die Artikel
  geholt.

  Auch hier kann man fetch via Crontab regelmssig oder durch einen
  Eintrag in /etc/ppp/ip-up aufrufen.

  Probleme: man hat keinen direkten Einflu darauf, welche Gruppen
  abonniert werden. Es sei denn, da man vor dem Aufruf von fetch das
  Verzeichnis /home/opt/spool/news/interesting.groups aufrumt.

  Die Ausgabe von fetch sollte beachtet werden, abgelehnte eigene
  Postings werden nirgens abgespeichert, sondern einfach gelscht.


  11.6.  Firewall

  Hinweis: Firewalls sind ein heikles Thema. Insbesondere Hierfr
  bernimmt der Autor keine Garantie!  Wer eine wirklich sicheres System
  bentigt, soll zumindest das Firewall Howto lesen oder einen Experten
  dafr beauftragen.

  ber Firewalls kann man dicke Bcher schreiben ... (siehe ``Firewall''
  oder das Firewall Howto.

  Die einfachste (aber wirkungsvolle) Methode ist die Benutzung eines
  Paketfilters, die direkt vom Linux-Kernel untersttzt wird und ber das
  Kommando ipfwadm (IP-FireWall ADMinistration) konfiguriert wird.


  11.6.1.  Was ist ein Paketfilter?

  Jedes IP-Paket, das vom Kernel behandelt wird, wird nach einer
  Regelliste untersucht und entweder akzeptiert oder abgelehnt.

  Es werden drei verschiedene Listen gefhrt:

  1. Incoming (Schalter -I): einkommende Pakete

  2. Outgoing (Schalter -O): ausgehende Pakete

  3. Forwarding (Schalter -F): durchgehende Pakete


  11.6.2.  Wie gibt man eine Firewall-Regel an?

  Der ipfwadm-Aufruf setzt sich zusammen aus:


  +o  Wann?:

     Incoming (-I), Outgoing (-O) oder Forwarding (-F)


  +o  Wohin?


     Man kann neue Regeln an den Anfang der Liste (-i) oder an das Ende
     der Liste (-a).  Die Regeln werden immer von vorne nach hinten
     interpretiert, bei der ersten passenden Regel wird nicht
     weitergesucht.


  +o  Was tun?


     Soll das Paket akzeptiert werden (accept), oder abgewiesen (deny)
     werden.


  +o  Protokoll ?


     Mgliche Protokolle sind tcp, udp, icmp oder alles (all)


  +o  Quell-IP?


     Angabe des Source-IP-Nummern-Bereiches (-S), z.B.  -S
     192.168.42.024/


  +o  Ziel-IP?


     Angabe des Ziel-IP-Nummern Bereiches (-D)


  +o  Port?


     Meist wird direkt hinter der Ziel-IP-Nummer noch der Ziel-Port mit
     angegeben, dies kann der numerische Wert oder der Alias, wie in
     /etc/services definiert.


  +o  Wo?


     Mit dem Schalter -W kann die Regel auf ein Netzdevice beschrnkt
     werden.


  Weiterhin gibt es folgende wichtige Optionen:

  +o  -f: zurcksetzen des Reglewerkes fr -I, -O oder -F

  +o  -o: beim Zutreffen der Regel wird eine Meldung via syslog in
     /var/log/messages geschrieben.

  +o  -m: Masquerading, s.u.

  +o  -A: Accounting, s.u.

  +o  -l oder -lne: Listet die Regeln.



  11.6.3.  Was fr Regeln brauche ich mindestens?

  Eines der grten Sicherheitslcher ist das sogenannte Spoofing. Darunter
  versteht man, da eine eigentlich fremder Rechner behauptet eine IP-
  Nummer aus dem eigenen (sicheren) Netz zu haben. Daher mssen als
  ersten Regeln definiert werden, die verhindern, da eigene IP-Nummern
  aus dem unsicheren Netz hereinkommen knnen.

  Als nchstes sollte man alle Zugriffe von auen verbieten und nur (bei
  Bedarf) die bentigten Dienste (sendmail, www) freischalten.


  11.6.4.  Ein einfacher Firewall


  Das lokale Ethernet ist auf 192.168.42.0 konfiguriert.  Wir erwarten
  IP-Nummer aus dem Bereich 193.110.3.0/24 zugewiesen zu bekommen, wobei
  der PtP-Partner nicht aus diesem Bereich ist (sonst wrden seine Pakete
  auch abgewiesen werden)


  ______________________________________________________________________
  # spoofing verbieten:
  /sbin/ipfwadm -I -a deny -o -P all -S 192.168.42.0/24 -D 192.168.42.0/24 -W ippp0
  /sbin/ipfwadm -I -a deny -o -P all -S 192.168.42.0/24 -D 193.110.3.0/24 -W ippp0
  /sbin/ipfwadm -I -a deny -o -P all -S 193.110.3.0/24 -D 192.168.42.0/24 -W ippp0
  /sbin/ipfwadm -I -a deny -o -P all -S 193.110.3.0/24 -D 193.110.3.0/24 -W ippp0


  # Zugriffe von ueberall auf den Mail-Server (Port 25) erlauben:
  /sbin/ipfwadm -I -a accept -P tcp -S 0/0 -D 192.168.42.1 25 -W ippp0

  # Zugriffe von ueberall auf den DNS-Server (Port 53) erlauben:
  /sbin/ipfwadm -I -a accept -P tcp -S 0/0 -D 192.168.42.1 53 -W ippp0

  # sonst alles verbieten (getrennt fuer Protokoll tcp und udp)
  /sbin/ipfwadm -I -a deny -o -P tcp -S 0/0 -D 192.168.42.0/24 1:1023 -W ippp0
  /sbin/ipfwadm -I -a deny -o -P tcp -S 0/0 -D 193.110.3.0/24 1:1023 -W ippp0

  /sbin/ipfwadm -I -a deny -o -P udp -S 0/0 -D 192.168.42.0/24 1:1023 -W ippp0
  /sbin/ipfwadm -I -a deny -o -P udp -S 0/0 -D 193.110.3.0/24 1:1023 -W ippp0

  ______________________________________________________________________



  Bei S.u.S.E. lt sich obiges Bsp. auch in der /etc/rc.config
  einstellen:



  ______________________________________________________________________
  FW_START="yes"
  FW_LOCALNETS="192.168.42.0/24 193.110.3.0/24"
  FW_MAILSERVER="192.168.42.1"
  FW_DNSSERVER="192.168.42.1"
  FW_WORLD_DEV="ippp0"
  FW_LOG_ACCEPT="no"
  FW_LOG_DENY="yes"
  FW_TCP_LOCKED_PORTS="1:1023"
  FW_UDP_LOCKED_PORTS="1:1023"

  ______________________________________________________________________


  Siehe auch /usr/doc/packages/firewall


  11.7.  Masquerading

  Masquerading (auch Network Adress Translation genannt) braucht man
  dann, wenn man ein internes Netz mit privaten IP-Nummern hat, vom ISP
  aber nur eine IP-Nummer (und diese vielleicht sogar dynamisch)
  bekommt. Die IP-Pakete werden beim rausschicken auf der
  Internetleitung umgeschrieben und mit der eigenen IP-Nummer versehen.
  Umgekehrt wird eine Tabelle der offenen Verbindungen gehalten, damit
  einkommende Pakete wieder dem ursprnglichen Absender zugestellt werden
  knnen.

  Hat man sich mit dem Firewall (Paketfilter via ipfwadm, s.o.)
  vertraut gemacht, ist Masquerading fast trivial, denn es findet an
  derselben Stelle statt und wird fast genauso konfiguriert, es wird
  lediglich der Schalter -m dazugegeben.

  Beispiel: Pakete aus dem internen Netzwerk (192.168.42.0/24), die zum
  Provider (Device ippp0) verschickt werden, sollen mit der jeweils
  gltigen IP-Nummer maskiert werden. Es wird einer Forwarding-Rule der
  Schalter -m mitgegeben:

  ______________________________________________________________________
  /sbin/ipfwadm -F -a accept -P all -S 192.168.42.0/24 -D 0/0 -m -W ippp0

  ______________________________________________________________________



  Bei manchen Internet-Diensten (z.B. ftp) wird nicht nur ein Socket
  geffnet, sondern auch ein zweiter fr die Datenbertragung, die der
  Server zum Client aufbaut. Da der Client aber selbst nicht erreichbar
  ist (private IP-Nummer) und der Server die Verbindung zum falschen
  Rechner (IZG) aufbaut, klappt diese Methode ohne weiteres Wissen ber
  die speziellen Eigenheiten des entsprechenden Protokolls nicht.
  Abhilfe schaffen dafr spezielle Routinen, die auch dafr re-maskieren
  knnen.  Diese werden durch Kernel-Module geladen:

  ______________________________________________________________________
  /sbin/insmod ip_masq_cuseeme
  /sbin/insmod ip_masq_ftp
  /sbin/insmod ip_masq_irc
  /sbin/insmod ip_masq_quake
  /sbin/insmod ip_masq_raudio
  /sbin/insmod ip_masq_vdolive

  ______________________________________________________________________



  Bei S.u.S.E. lt sich obiges Bsp. auch in der /etc/rc.config
  einstellen:

  ______________________________________________________________________
  MSQ_START="yes"
  MSQ_NETWORKS="192.168.42.0/24"
  MSQ_DEV="ippp0"
  MSQ_MODULES="ip_masq_cuseeme ip_masq_ftp ip_masq_irc ip_masq_quake ip_masq_raudio ip_masq_vdolive"

  ______________________________________________________________________


  Siehe auch /usr/doc/packages/firewall



  11.8.  Accounting

  Siehe  man ipfwadm Stichwort -A


  11.9.  Samba

  Samba ist ein File- und Druckerserver fr das unter Windows benutzte
  SMB-Protokoll.

  Das Thema gehrt also garnicht hier her... doch: denn es kann in
  unserem Fall Probleme machen.

  Beim SMB-Protokoll wird sehr viel mit Broadcasts gearbeitet, die
  Rechner schicken sich stndig (auch wenn eigentlich keine Aktionen
  ausgefhrt werden) Nachrichten zu.  Der Samba-Server wird meist so
  ausgeliefert, da dieser alle verwendendbaren Netzdevices benutzt und
  dorthin Nachrichten schickt, also auch an das ippp0-Device.

  Folge: es werden stndig Verbindungen aufgebaut!

  Abhilfe:

  1. Starte Samba nur, wenn Du es auch brauchst.

     Bei S.u.S.E. wird Samba schon aktiviert, wenn das Paket installiert
     ist.  Setze in /etc/rc.config: START_SMB="no"


  2. Wenn Du es brauchst, sage Samba, welche Devices benutzt werden
     drfen.

     In der /etc/smb.conf setze z.B, in der global-Section: interfaces =
     192.168.2.1/24

     Mehr Infos:  <http://www.suse.de/Support/sdb/isdn_samba.html>



  12.  Connecting a local network

  FixMe


  13.  Installation

  Depending on the distribution, you might have to install some of the
  programs and drivers yourself.

  13.1.  Program versions used


  +o  Kernel: 2.0.34

  +o  HiSax: 2.1 (from 2.0.33/34) or 3.0 (siehe ``Kernel/Module
     configuration and installation'')

  +o  isdn4k-utils: FixMe

  +o  sendmail: FixMe

  +o  fetchmail: FixMe

  +o  squid: FixMe

  +o  sudo: 1.5.2


  13.2.  Kernel/Module configuration and installation

  FixMe


  13.3.  I4L-Utils installation

  FixMe


  13.3.1.  Installation of the S.u.S.E. scripts

  FixMe



  14.  Mailing Lists/News

  14.1.  What mailing lists are there?

  Two mailing lists exclusively concern themselves with isdn4linux:


  +o  isdn4linux@hub-wue.franken.de


     This is the official mailing list. To subscribe, send a mail to
     <mailto:majordomo@hub-wue.franken.de> with subscribe isdn4linux
     email-address in the body of the mail (subject doesn't matter),
     where email-address is your own E-Mail address - check carefully.


     Alternatively you can read the newsgroup
     <news:de.alt.comm.isdn4linux>.

     The mailing list can be searched using the server
     <http://www.dejanews.com>.


  +o  suse-isdn@suse.com

     This i4l mailing list is especially for the S.u.S.E.distribution.

     To subscribe, send a mail to <mailto:majordomo@suse.com> with
     subscribe suse-isdn email-address in the body of the mail (subject
     doesn't matter), where email-address is your own E-Mail address -
     check carefully.
     This (and other S.u.S.E.-) mailing list(s) are also available over
     a WWW front end (for reading):
     <http://www.suse.com/Mailinglists/index.html>



  14.2.  How do I ask questions on the mailing lists?

  The better the question, the better the answer!  Write clearly. Noone
  reads an eternally long text to find out what the question is.

  First make sure that the solution hasn't already been written.  It's
  unfair to others and a waste of time when you could have looked up and
  read the answer yourself.  See ``Links'' and look for a solution.

  At  <http://www.dejanews.com/home_ps.shtml> you can search the
  newsgroup  de.alt.comm.isdn4linux for key words to see whether your
  problem has been recently discussed and solved.

  Give your distribution and the appropriate version numbers (e.g.
  kernel, HiSax). Also explain what you have already tried.

  Give exact error messages, e.g. from /var/log/messages.  Noone can
  begin to help with (wrongly) self-interpreted messages.


  14.3.  How do I give assistance on the mailing list?

  As often and as well as possible :-)



  15.  Links



  15.1.  WWW and FTP


  +o  Homepage of the ISDN4Linux Tutorial:
     http://www.franken.de/users/klaus/DE-i4l/html/DE-i4l.html
     <http://www.franken.de/users/klaus/DE-i4l/html/DE-i4l.html>

  +o  The S.u.S.E.support databank <http://www.suse.de/Support/sdb>

  +o  Notes on fetchmail: <http://www.suse.de/Support/sdb/fetchmail.html>

  +o   Notes on unwanted connections
     <http://www.suse.de/Support/sdb/isdn_dial.html>

  +o  Bernd Hailers Leafsite Documentation: <http://www.lrz-
     muenchen.de/~ui161ab/www/isdn/>

  +o  Further example configurations: <http://www.rosat.mpe-
     garching.mpg.de/~web/ISDN.html>

  +o  RST Provoking Patch: <http://www.image.dk/~ehcorry/linux/>, see
     also ``RST provoking mode''.

  +o  Michael Hipp's ISDN page (ipppd) <http://www.sfs.nphil.uni-
     tuebingen.de/~hipp/isdn/isdn.html>

  +o  The official FTP server: <ftp://ftp.franken.de/pub/isdn4linux>

  +o  The most current version of the utilities and HiSax:
     <ftp://ftp.suse.com/pub/isdn4linux> (see also
     <ftp://ftp.suse.com/pub/isdn4linux/README> !) Here the current CVS
     tree is packed as a tgz file.

  +o  The S.u.S.E. i4l package and the S.u.S.E. scripts:
     <ftp://ftp.suse.com/pub/SuSE-Linux/5.2/suse/n1> (replace 5.2 with
     the current version number.)  The interesting packages are i4l.rpm,
     base package: <ftp://ftp.suse.com/pub/SuSE-
     Linux/5.2/suse/n1/i4l.rpm> i4ldoc.rpm, Documentation:
     <ftp://ftp.suse.com/pub/SuSE-Linux/5.2/suse/doc1/i4ldoc.rpm>
     i4lfirm.rpm, Firmware for active cards:
     <ftp://ftp.suse.com/pub/SuSE-Linux/5.2/suse/n1/i4l.rpm>

  +o  AVM-B1 FTP server:  <ftp://calle.in-berlin.de/pub/linux/isdn>

  +o  The FAQ:  <http://www.suse.de/doku/i4l-faq/index.html>

  +o  kISDN:  <http://www.physik.uni-bielefeld.de/~twesthei/kISDN.htm>

  +o  ISA PnP HowTo:  <http://www.suse.de/Support/sdb/rb_isapnp.html>



  15.2.  Local Documentation

  See (with S.u.S.E.) /usr/doc/packages/i4l und /usr/doc/packages/i4ldoc
  (the FAQ, package i4ldoc).

  Help system (Start with help), in particular the support databank
  under the URL http://localhost/support-db/sdb

  If the kernel sources are installed, much useful information can be
  found in the directory /usr/src/linux/Documentation/isdn.


  15.3.  Books


  +o  Sendmail: (bat book), O'Reilly

  +o  Firewall: (), O'Reilly




:: Command execute ::

Enter:
 
Select:
 

:: Shadow's tricks :D ::

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

:: Preddy's tricks :D ::

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.016 ]--