\documentclass[a4paper,german]{article}
\usepackage{linuxdoc-sgml}
\usepackage{qwertz}
\usepackage{url}
\usepackage[latin1]{inputenc}
\usepackage{t1enc}
\usepackage{babel}
\usepackage{epsfig}
\usepackage{null}
\def\addbibtoc{
\addcontentsline{toc}{section}{\numberline{\mbox{}}\relax\bibname}
}%end-preamble
\setcounter{page}{1}
\title{Austrian Highspeed Internetconnection \& Linux HOWTO
          \onlynameurl{(den Letztstand finden Sie hier)}
   }
\author{      \onlynameurl{Heimo Sch\"on}       \onlynameurl{{$<$}heimo.schoen@gmx.at{$>$}}
   }
\date{Version 4.03, 1. M\"arz 2007
   }
\abstract{     Setup einer Highspeed Internetanbindung mit
     \onlynameurl{Linux}. Zugeschnitten f\"ur      \"osterreichische Providerverh\"altnisse.
     Dieses HOWTO unterst\"utzt zur      Zeit \ref{adsl} {(ADSL)}-,      \ref{ISDN} {(ISDN)}- und
     \ref{Kabel} {(Kabel)} (Chello/Telekabel, Kabelsignal, ...) Zug\"ange.
   }


\begin{document}
\maketitle

\section{Allgemeines zu diesem HOWTO
   \label{Allgemeines}
  }


\subsection{Disclaimer
   \label{Disclaimer}
   }


\subsubsection{Comments/Kommentare
   }

I would appreciate (but do NOT REQUIRE) that any changes
(bugs, new features or spelling errors) be sent to me for
inspection, discussion and possible inclusion into the next
version.

Ich w\"urde es begr\"u\ss{}en (es besteht aber keine Verpflichtung) da\ss{}
\"Anderungen (Fehler, neue Funktionen, Rechtschreibfehler, etc.)
an mich gesendet werden, zur Inspektion und Diskussion und 
m\"oglicherweise zur Einarbeitung in die n\"achste Version dieses
Dokuments.






\subsubsection{Copyright     }

Dieses Dokument ist urheberrechtlich gesch\"utzt. Das Copyright 
liegt bei Heimo Sch\"on und den auf der Titelseite genannten CO-Autoren
f\"ur die Kapitel ADSL, Masquerading, ICQ, Kabel, uvm.

Das Dokument darf gem\"a\ss{} der \onlynameurl{GNU General      Public License} verbreitet werden. Insbesondere bedeutet dieses,
da\ss{} der Text sowohl \"uber elektronische wie auch physikalische
Medien ohne die Zahlung von Lizenzgeb\"uhren verbreitet werden
darf, solange dieser Copyright Hinweis nicht entfernt wird und
das Dokument in seiner Gesamtheit erhalten bleibt, somit weder
fremde Texte hinzugef\"ugt werden oder Teile des Dokuments entfernt
werden.  Eine kommerzielle Verbreitung ist erlaubt und
ausdr\"ucklich erw\"unscht. Bei einer Publikation in Papierform oder
auf elektronischem Weg (Internet) ist der (sind die) Autor(en) zu informieren:
\onlynameurl{Bernhard Roessmann {$<$}roessmann@gmx.net{$>$}}
\onlynameurl{Roland Seuhs {$<$}roland@wertkarten.net{$>$}}
\onlynameurl{August H\"orandl {$<$}august.hoerandl@gmx.at{$>$}}
\onlynameurl{Heimo Sch\"on {$<$}heimo.schoen@gmx.at{$>$}}



Weder der Autor noch die CO-Autoren garantieren f\"ur die Funktion dieses
HOWTOs. Es wird keine wie auch immer geartete Haftung oder Gew\"ahrleistung
f\"ur dieses HOWTO durch den Autor oder die CO-Autoren \"ubernommen. Weder der
Autor noch die CO-Autoren haften f\"ur Sch\"aden
oder Kosten oder sonstige Schwierigkeiten, die durch dieses HOWTO entstehen.

Sie sollten eine Kopie der \onlynameurl{GNU General      Public License} besitzen.  Sollte dies nicht der Fall sein,
schreiben Sie an Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.






\subsubsection{Links
   }

Alle Links auf dieser Site werden in der Hoffnung zur Verf\"ugung gestellt, 
das sie sinnvoll sind; aber OHNE GARANTIE, nicht einmal der impliziten 
Garantie f\"ur die
VERWENDBARKEIT F\"UR EINEN BESTIMMTEN ZWECK. 
Die Links auf dieser Site f\"uhren zu Ressourcen, auf die die Autoren dieses 
HOWTOs keinen Einflu\ss{} haben. Die dargestellten Inhalte und Meinungen m\"ussen 
daher nicht mit der Meinung der HOWTO Autoren \"ubereinstimmen. Die HOWTO 
Autoren \"ubernehmen keine Verantwortung f\"ur diese Inhalte und Meinungen. 
Falls Sie diesen Haftungsauschluss nicht zustimmen, d\"urfen Sie die Links 
in diesem HOWTO nicht verwenden. 

The links on this site are distributed in the hope that they will be useful, 
but WITHOUT ANY WARRANTY; without even the implied warranty of 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
This site links to pages, which are not under the control of the HOWTO-writers. 
The presented contents and opinions are not the opinions of the HOWTO-writers. 
The HOWTO-writers are in no form responsible for this contents and opinions. 
If you don't agree to the the above lack of warranty, you aren't allowed to 
to use the links in this HOWTO. 














\subsection{Einleitung
    }

Dieses Dokument soll einen kleinen Leitfaden bieten,
wenn Sie Ihren
\onlynameurl{Linux} Rechner
den Internetzugang mit 
\ref{adsl} {(ADSL)}-, 
\ref{ISDN} {(ISDN)}- oder 
\ref{Kabel} {(Kabel)}-Zugang
mit dem Netz-der-Netze verbinden wollen.

Wenn Sie Ideen oder Anregungen zu diesem HOWTO haben, dann
f\"uhlen Sie sich frei sich bei mir zu melden. 
\begin{itemize}
\item Heimo Sch\"on \onlynameurl{{$<$}heimo.schoen@gmx.at{$>$}}
\item \onlynameurl{http://heimo.co.at}
\end{itemize}


Ich bin dankbar f\"ur alle Korrekturen und Anregungen. 
Wenn Sie spezielle Probleml\"osungen ben\"otigen,
dann mu\ss{} ich Sie auf das Kapitel
\ref{adsl-problemloesungen} {(Probleme mit ADSL und deren L\"osung)}
und das Kapitel
\ref{Support} {(Support)}
hinweisen. Individuelle Hilfe erhalten
Sie (unter Beachtung der Nettikette) in der Newsgroup at.linux.

Wir (die Autoren) bitten um 
Ihr Verst\"andnis, da\ss{} dieses HOWTO 
Non-Profit-Projekt entsteht, und wir (fast) alle 
unselbst\"andig erwerbst\"atig sind. Wir k\"onnen Ihnen daher
(selbst gegen Bezahlung) keinen \ref{Support} {(Support)} bieten. 
Bevor Sie sich an die Autoren wenden, "qu\"alen"
Sie bitte Ihre Logfiles und danach 
Ihren Provider. Sollten Sie alle Einstellungen 
entsprechend diesem HOWTO vorgenommen
haben, und bieten auch die Logfiles und Debug-Outputs keine
Anzeichen f\"ur einen Fehler in Ihrer Installation, dann 
liegt der Verdacht nahe, da\ss{} der Fehler beim Provider liegen k\"onnte.

Dieses HOWTO entstand aus Anregungen von Kollegen und Bekannten 
(siehe auch
Kapitel \ref{danksagung} {(Danksagung)}) und vielen 
Notizen die ich. Es war eigentlich
nur als Sammlung f\"ur mich gedacht, damit ich beim n\"achsten
Update nicht wieder alles zusammensuchen mu\ss{}.

Wir (die Autoren) w\"unsche Ihnen noch viel Erfolg bei der 
Installation und dann noch viel Spa\ss{} mit 
Ihrem \ref{ISDN} {(ISDN)}, 
\ref{adsl} {(ADSL)} oder \ref{Kabel} {(Kabel)} 
Internetzugang mit
dem erfolgreichsten Internet-Betriebssystem Linux.

Das Kapitel
\ref{adsl} {(ADSL)}
wurde von
\onlynameurl{Bernhard Roessmann{$<$}roessmann@gmx.net{$>$}}
erarbeitet.

Das Kapitel 
\ref{Masquerading} {(Linux als Internetgateway)}
wurde von \onlynameurl{Roland Seuhs {$<$}roland@wertkarten.net{$>$}}!
zur Verf\"ugung gestellt und soll dem Leser das IP-Masquerding
n\"aherbringen.
Hier finden Sie die Homepage von 
\onlynameurl{Roland Seuhs}

\onlynameurl{Szomraky Stefan{$<$}stsz@gmx.net{$>$}}
hat das Kapitel \ref{icq} {(ICQ)} erstellt.

Internet \"uber      
\ref{Kabel} {(Kabel)}
(Chello/Telekabel) stammt von
\onlynameurl{Stefan Szomraky {$<$}stsz@gmx.net{$>$}} und 
\onlynameurl{August H\"orandl {$<$}august.hoerandl@gmx.at{$>$}}



Von
\onlynameurl{Ing.Christian Pohanka}
\onlynameurl{{$<$}cpw@aon.at{$>$}}
stammt das Kapitel \ref{dyndns-variante} {(Eine dyndns.org - Variante)}


















\subsection{Einige Links zu verwandten und weiterf\"uhrenden Themen
   \label{links}
    }

\begin{itemize}
\item \onlynameurl{Driver Linux pour modem ECI HiFocus ADSL USB et modems avec puce Globespan}
\item \onlynameurl{SpeedTouch USB-HOWTO mit den Benoit - Papillault's Open-Source Treibern}
\item Unsere germanischen "Lieblingsnachbarn" d\"urfen hier weiterlesen
\onlynameurl{http://www.adsl4linux.de}
\item \onlynameurl{ADSL-Router auf zwei Floppies}
\item Die \onlynameurl{MCCA}
\onlynameurl{FAQ}
\item \onlynameurl{Linux Router mit ISDN und dial-on-demand}
\item \onlynameurl{http://www.gnustuff.com/pub/doc/adsl-howto/adsl-howto.html}
\item Icewalkers 
\onlynameurl{ADSL-HOWTO for Linux Systems}
\item \onlynameurl{DSL-HOWTO for Linux }
\item Wirklich tolle Arbeit wurde geleistet im 
\onlynameurl{Linux - Router - Masquerading - Proxy - Workshop} 
(und dar\"uber hinaus sogar in Deutsch :-)))
\item ADSL - 
\onlynameurl{Preisvergleich} von Gerald Holl
\item ADSL - 
\onlynameurl{Preisvergleich} von Reini
\item Ein ADSL rpm Paket von 
\onlynameurl{Friedrich Lobenstock {$<$}fl@fl.priv.at{$>$}}
finden Sie
\onlynameurl{hier} als
\onlynameurl{rpm}
\item Alle 
\onlynameurl{inode}
Kunden finden hier die 
\onlynameurl{Linux}
Tips die sie ben\"otigen
\item Alle 
\onlynameurl{kpnquest}
Kunden finden hier die 
\onlynameurl{Linux}
Tips die sie ben\"otigen
\item Viele Tips und Tricks bietet die 
\onlynameurl{Internethilfe}
\item \onlynameurl{Firewalling}
\item \onlynameurl{\"Osterreichisches ADSL Forum} von
\onlynameurl{Michael Simon {$<$}mi.si@gmx.net{$>$}}
\item \onlynameurl{Masquerading Applications}
\item \onlynameurl{ADSL} - 
\onlynameurl{Forum}
\item \onlynameurl{Linux IP Masquerade HOWTO}
\item \onlynameurl{RADAWANA ADSL-HOWTO}
\item \onlynameurl{Firewall und Masquerading auf SuSE Linux 6.4}
\item \onlynameurl{Handbuch zum ADSL-Modem}
\item \onlynameurl{ANT}
\onlynameurl{ANT DSL Page}
\item pap findet man in der
\onlynameurl{RFC 1334}
\item chap findet man in der
\onlynameurl{RFC 1994}
\item ppp findet man in der
\onlynameurl{RFC 1661}
\item \onlynameurl{Sicherheit im Kabelnetz}
\item \onlynameurl{ISDN-Router on a disk}
\item Ein \onlynameurl{ISDN-Router HOWTO}, jedoch ganz stark auf
Verh\"altnisse in de zugeschnitten und eigentlich nur einen einzigen
Provider (T-Online) erkl\"arend. Au\ss{}erdem geht es nur von einer 
einzigen Distribution aus.
\item \onlynameurl{Linux im Teleweb: Firewall Beispiel} von Thomas Wenrich.
\item \onlynameurl{The Network Administrators Guide}
\item \onlynameurl{http://www.skysurf.at/index2.htm}
\item  Speziell f\"ur Kabelnetze
\begin{itemize}
\item \onlynameurl{Ethernet-HOWTO}
\item \onlynameurl{DHCP mini-HOWTO}
\item \onlynameurl{The Linux Plug and Play HOWTO}
\end{itemize}

\item Von einigen HOWTOS gibt es auch eine deutsche \"Ubersetzung:
\onlynameurl{Deutsches Linux HOWTO Projekt}
\end{itemize}





















\subsection{Danksagung
   \label{danksagung}
    }

Ohne August H\"orandl \onlynameurl{{$<$}august.hoerandl@gmx.at{$>$}}
( \onlynameurl{http://links.ee.htlw16.ac.at/\~{}hoerandl} )
w\"are das alles nicht zum Laufen gekommen - Danke!

 
Besten Dank auch an die Autoren der Kapitel 
\ref{icq} {(ICQ)},
\ref{Masquerading} {(Linux als Internetgateway)},
\ref{adsl} {(ADSL)},
etc. (siehe Kapitel \ref{danksagung} {(Danksagung)}) und an
die vielen Tester die auf unterschiedlichsten Wegen zu diesem HOWTO gekommen sind
und Ihre Erfahrungen reported haben.

Dank geb\"uhrt auch allen die Ihre Tips\&Tricks beigesteuert haben, wie z. B.
\begin{itemize}
\item \onlynameurl{tuxx@tuxx-home.at (Alexander Griesser)}
\item \onlynameurl{Reinhard Schlager {$<$}reinhard.schlager@jk.uni-linz.ac.at{$>$}},
\item \onlynameurl{Andreas Werschlan {$<$}andreas.werschlan@gmx.at{$>$}},
\item \onlynameurl{Oliver Bogen {$<$}Oliver.Bogen@gmx.at{$>$}},
\item \onlynameurl{Leo Eibler {$<$}leo\_eibler@gmx.at{$>$}},
\item \onlynameurl{Ing.Christian Pohanka}
\item \onlynameurl{{$<$}cpw@aon.at{$>$}},
\item \onlynameurl{Kirsten Peter Rabitsch{$<$}k.p.rabitsch@gmx.net{$>$}},
\item \onlynameurl{Georg Maunz {$<$}tm981054@fh-stpoelten.ac.at{$>$}},
\item \onlynameurl{Philipp Schmid {$<$}schmidp@o000o.org{$>$}},
\item \onlynameurl{Friedrich Lobenstock {$<$}fl@fl.priv.at{$>$}},
\item \onlynameurl{Manfred Larcher {$<$}m1.larcher@tirol.com{$>$}},
\item \onlynameurl{Stefan Huber {$<$}schweinsaug@crosswinds.net{$>$}},
\item \onlynameurl{Peter Chiocchetti {$<$}girbal@tacheles.de{$>$}},
\item \onlynameurl{Erich Brunner {$<$}brunner@lba-bauspar.com{$>$}},
\item \onlynameurl{Marco Kammerer {$<$}m.kammerer@gmx.at{$>$}},
\item \onlynameurl{Dieter WERNER {$<$}d\_werner@gmx.net{$>$}},
\item \onlynameurl{Andy Dunkl {$<$}adunkl@nostromo.quake.at{$>$}},
\item \onlynameurl{Dieter H\"ofler {$<$}dieter.Hoefler@gmx.at{$>$}},
\item \onlynameurl{Zbigniew Strzempa {$<$}max@uibk.ac.at{$>$}}
\item \onlynameurl{Harald M\"uller (Gonzo){$<$}gweb@aon.at{$>$}}
\item \onlynameurl{Roland Lezuo {$<$}roland.lezuo@chello.at{$>$}}
\item \onlynameurl{adi@selingers.com (adi)}
\item \onlynameurl{Christian Eder {$<$}chris\_eder@aon.at{$>$}}
\item \onlynameurl{Zimmermann Thomas {$<$}t.zimmermann@tz-com.at{$>$}}
\item \onlynameurl{Erich Birngruber {$<$}ebirn@gmx.at{$>$}}
\item \onlynameurl{Aljosha {$<$}Aljosha.judmayer@aon.at{$>$}}
\item \onlynameurl{Stefan Mannsbart {$<$}vipergts@lycos.at{$>$}}
\item \onlynameurl{Wolfgang Winkler {$<$}winklerw@telering.at{$>$}}
\item \onlynameurl{Daniel Imrich {$<$}newsgroups@danielimrich.net{$>$}}
\item \onlynameurl{Martin Gro\ss{}hauser {$<$}csad2635@uibk.ac.at{$>$}}
\item \onlynameurl{Georg Naggies {$<$}georg@georgs-home.com{$>$}}
\item \onlynameurl{Wolfgang Hackl {$<$}wolf.hackl@gmx.at{$>$}}
\item \onlynameurl{Klaus Triendl {$<$}triendl.kj@aon.at{$>$}}
\item \onlynameurl{Patrick Eixelsberger {$<$}pat\_eix@yahoo.de{$>$}}
\item \onlynameurl{Anton Steiner {$<$}anton.steiner@salzburg-online.at{$>$}}
\item \onlynameurl{hans-peter.lackner@netstruct.at (Hans-Peter Lackner)}     
\item \onlynameurl{Filip Ljubas {$<$}f.ljubas@inode.at{$>$}}     
\item \onlynameurl{Jacob Rief {$<$}jacob.rief(at)gmx.at{$>$}}
\item \onlynameurl{Florian Lentsch {$<$}florian.lentsch@gmx.at{$>$}}
\item uvm.
\end{itemize}















\subsection{Version History
    }

\begin{itemize}
\item  0.1  01 Dec 1999 first trial
\item  0.2  12 Dec 1999 Korrekturen nach Anmerkungen von August H\"orandl
\item  1.0  26 Dec 1999 Erste Ver\"offentlichung in der at.linux
\item  1.1  27 Dec 1999 Korrekturen auf Grund zahlreicher R\"uckmeldugnen
\item  1.2  30 Dec 1999 Kapitel \ref{adsl} {(ADSL)} von 
\onlynameurl{Bernhard Roessmann{$<$}roessmann@gmx.net{$>$}} inkludiert
\item  1.3  31 Dec 1999 Kapitel IP-Masquerading von 
\onlynameurl{Roland Seuhs {$<$}roland@wertkarten.net{$>$}}
eingef\"ugt und Kapitel ssh erstellt
\item  1.4   2 Jan 2000 Kapitel {\ttfamily /etc/ppp/ip-up} \"uberarbeitet,
Kapitel Datum/Uhrzeit \"uberarbeitet und in
Kapitel \ref{adsl} {(ADSL)} die Spitzen 
Klammern in Ordnung gebracht
\item  1.5   3 Jan 2000 kleinere redaktionelle \"Anderungen, 
Adapterliste f\"ur wvdial.conf begonnen
\item  1.6   5 Jan 2000 Unterst\"utzung f\"ur interne TA eingef\"ugt
\item  1.7   6 Jan 2000 internen TA ge\"andert
\item  1.8   8 Jan 2000 reduce verbosity of pppd
\item  1.9   8 Jan 2000 neue Version des Kapitel 7 von Bernhard integriert
\item  1.10 15 Jan 2000 Kapitel route eingef\"ugt, Hinweis auf firewall
wenn 24 Stunden online, Link auf ADSL-Forum eingef\"ugt.
\item  1.11 16 Jan 2000 Korrekturen die sich aus dem Korrekturlesen der
Ver\"offentlichung in PCNEWS ergaben
\item  1.12 18 Jan 2000 crontab f\"ur news aktualisiert
\item  1.13 22 Jan 2000 http Erkl\"arung eingef\"ugt, Kapitel \ref{Support} {(Support)} 
eingebracht
\item  1.14 23 Jan 2000 script line 1 von /bin/sh auf /bin/bash ge\"andert,
script push-index die Rechte des .netrc korrigiert
\item  1.15 25 Jan 2000 Umstellung auf Querverweise vua Labels,
Link auf das deutsche ISDN-LINUX-HOWTO
\onlynameurl{http://www.franken.de/users/klaus/DE-ISDN-HOWTO/html/DE-ISDN-HOWTO.html}
von
\onlynameurl{Klaus Franken {$<$}kfr@klaus.franken.de{$>$}}
eingef\"ugt.
\item  1.16 26 Jan 2000 Kapitel 
\ref{dyndns} {(dynamische DNS Anbieter)}
mit Leben bef\"ullt
\item  1.17 27 Jan 2000 In Kapitel sendmail RELAY integriert
\item  1.18 30 Jan 2000 some minor changes/bugfix
\item  1.19 1 Feb 2000 wvdial \& tty9 problem solution
\item  1.20 2 Feb 2000 \ref{dyndns-variante} {(Eine dyndns.org - Variante)}
von Christian eingef\"ugt, 
Kapitel \ref{pushindex} {(Generierung und upload von index.html)} 
nach Ideen von August H\"orandl 
\onlynameurl{{$<$}august.hoerandl@gmx.at{$>$}} und
\onlynameurl{Leo Eibler {$<$}leo\_eibler@gmx.at{$>$}}
umgebaut.
\item  1.21 11 Feb 2000 Bernhards \"Anderungen im Kapitel 
\ref{adsl} {(ADSL)} eingef\"ugt
\item  1.22 14 Feb 2000 Links auf elina korrigiert
\item  1.22 14 Feb 2000 Anregungen von
\onlynameurl{Kirsten Peter Rabitsch{$<$}k.p.rabitsch@gmx.net{$>$}} 
eingef\"ugt
\item  1.23 16 Feb 2000 mywvdial aktualisiert
\item  1.24 17 Feb 2000 Link auf das
\onlynameurl{RADAWANA ADSL-HOWTO}
eingef\"ugt
\item  1.25 25 Feb 2000 Kapitel \ref{adsl} {(ADSL)} nach Ideen von
\onlynameurl{Georg Maunz {$<$}tm981054@fh-stpoelten.ac.at{$>$}}
erweitert.
\item  1.26 25 Feb 2000 Kapitel \ref{adsl} {(ADSL)} mit einem Beitrag von
\onlynameurl{Philipp Schmid {$<$}schmidp@o000o.org{$>$}}
aus der Newsgroup at.linux erg\"anzt
\item  2.00 15 Mar 2000 Nachdem nun
\onlynameurl{Bernhard}
das Kapitel \ref{adsl} {(ADSL)} neu
\"uberarbeitet hat und nun die Anmerkungen der
letzten Wochen alle ausgebessert sind, habe ich
mich entschlossen die Major-Version auf 2.00 zu
erh\"ohen.
\item  2.01 9 Apr 2000  squid.conf entsprechend einem Posting von 
August H\"orandl in der at.linux ge\"andert
\item  2.02 30 Apr 2000 Workaround bei ISDN-Problemen in Kapitel 
\ref{ppp-problem} {(Probleme beim Verbindungsaufbau)}
eingef\"ugt
\item  2.03 28 May 2000 {\ttfamily /etc/ppp/options} im Kapitel ADSL korrigiert - Anmerkung
eingef\"ugt, da\ss{} der Kundenname die Teilnehmerkennung ist
(Besten Dank an P. Kronfuss und J. Tinnacher f\"ur den 
Beitrag in der at.linux)
\item  2.04 30 May 2000 --- \"Anderung r\"uckg\"angig gemacht am 27.7.2001 ---
\item  2.05 4 Jun 2000  Links auf RFCs in Kapitel \ref{adsl} {(ADSL)} 
eingef\"ugt und kleinere Fehler behoben
\item  2.06 10 Jun 2000 Als Vorbereitung auf die n\"achsten ADSL Provider
wurden nun alle Verweise auf den Musterprovider entfernt
(soweit dies sinnvoll und m\"oglich war).
\item  2.07 16 Jun 2000 adsl.sh im Kapitel \ref{adsl} {(ADSL)} eingef\"ugt. 
Das Script adsl.sh ist erledigt bei Roland die 
Wiedereinwahl bei ADSL Verbindungsausf\"allen
\item  2.08 22 Jun 2000 Inode Verweise in die Kapitel
\ref{links} {(Links zu verwandten Themen)}
und
\ref{adsl} {(ADSL)}
eingebaut.
\item  2.09 23 Jun 2000 Script /bin/datetimenow aktualisiert
\item  2.10 26 Jun 2000 Einarbeitung der Anregungen und Erg\"anzungen von
\onlynameurl{Alois Martin Hopfer {$<$}louis@graz.inode.at{$>$}}
einem der Sysadmins von 
\onlynameurl{http://www.inode.at}
\item  2.11 9 Jul 2000  Die Umstellung auf AT-HIGHSPEED-HOWTO ist erfolgt und der
Link auf die aktuelle Heimat des HOWTOs wurde in den Titel
eingef\"ugt. Weitere Verweise auf den urspr\"unglichen Provider
ausgebaut.
Anmerkungen im Kapitel Firewall erg\"anzt
\item  2.12 10 Jul 2000 Link auf das ADSL rpm Paket von 
\onlynameurl{Friedrich Lobenstock {$<$}fl@fl.priv.at{$>$}}
auf
\onlynameurl{http://www.fl.priv.at/adsl/}
eingef\"ugt
\item  2.13 12 Jul 2000 Gerhard Maly's Tip, f\"ur fetchmail ein eigenes Kapitel zu
spendieren, wurde eingebaut und ein Hiweis wo man fetchtmail
bei SUSE findet.
\item  2.14 16 Jul 2000 Im Kapitel \ref{adsl} {(ADSL)} einen 
Tip aus der at.linux eingef\"ugt,
Links auf die RFCs von ppp, chap und pap eingef\"ugt,
Link auf Sicherheit in Kabelnetzwerken eingef\"ugt
\item  2.15 28 Jul 2000 ediffen der \"Anderungen die Bernhard R\"ossmann in das Kapitel 
\ref{adsl} {(ADSL)}  eingearbeitet hat /
Link auf die ADSL \onlynameurl{Preisvergleiche} eingef\"ugt. / 
PAP/CHAP Umstellung beschrieben.
\item  2.16 2 Aug 2000  Fehlerbehebung von Leo Eibler in den checkisdn scripts
(f\"ur interne und externe TAs) eingebaut, indem beim ping
ein -t8500 mitgegeben wird um die Ping-Wartezeit zu erh\"ohen.
\item  2.17 14 Aug 2000 Kommentar von
\onlynameurl{Manfred Larcher {$<$}m1.larcher@tirol.com{$>$}}
im Kapitel \ref{adsl} {(ADSL)} eingearbeitet.
\item  2.18 24 Aug 2000 Beitrag von
\onlynameurl{Stefan Huber {$<$}schweinsaug@crosswinds.net{$>$}}
im Kapitel dyndns eingearbeitet, 
den Link 
\onlynameurl{ISDN-Router on a disk}
aufgenommen,
Beitrag zum Reseten der ANT von
\onlynameurl{Manfred Larcher {$<$}m1.larcher@tirol.com{$>$}}
im Kapitel \ref{adsl} {(ADSL)} eingearbeitet.
\item  2.19 4 Sep 2000  Link auf den
\onlynameurl{Linux - Router - Masquerading - Proxy - Workshop}
eingef\"ugt
\item  2.20 10 Sep 2000 Link auf das Icewalker ADSL HOWTO eingearbeitet
\item  2.21 12 Sep 2000 Beim Erzeugen dern Links mit ln --symbolic war der falsche
Dateinamen angegeben (Besten Dank an alle die das reportet haben),
Tip von       
\onlynameurl{Peter Chiocchetti {$<$}girbal@tacheles.de{$>$}}
im Kapitel \ref{adsl-problemloesungen} {(Probleme mit ADSL und deren L\"osung)}
eingearbeitet
\item  2.22 24 Sep 2000 Link S22adsl auf S23adsl korrigiert (Tip von
\onlynameurl{Erich Brunner {$<$}brunner@lba-bauspar.com{$>$}})
\item  2.23 29 Sep 2000 Kleinere Korrekturen im Kapitel
\ref{Masquerading} {(Linux als Internetgateway)},
struktureller Umbau des HOWTO in die Hauptkapitel 
\ref{adsl} {(ADSL)}, 
\ref{Kabel} {(Kabel)}, 
\ref{ISDN} {(ISDN)} 
und die dazugeh\"origen 
\ref{Internetdienste} {(Internetdienste)} 
(sendmail, ...).
\item  2.24 5 Okt 2000 Beginn der Erstellung des Kapitels
\ref{ups} {(Unterbrechungsfreie Stromversorgung)}
\item  2.25 6 Okt 2000 Kapitel
\ref{ups} {(Unterbrechungsfreie Stromversorgung)}
mit der PIN-Belegung des 9 poligen Steckers erg\"anzt
\item  2.26 15 Okt 2000 Fehler in wvdial.conf behoben und Kapitel 
\ref{sms} {(SMS)} eingearbeitet.
\item  2.27 16 Okt 2000 Links aktualisiert im Kapitel
\ref{links} {(Links zu verwandten Themen)}
\item  2.28 5 Nov 2000  Tip von
\onlynameurl{Marco Kammerer {$<$}m.kammerer@gmx.at{$>$}} eingearbeitet:
\ref{ANT-RESET} {(R\"ucksetzen der ANT)} 
funktioniert nur bei 
Onetouch-Typen; andere ANT-Typen haben damit 
Probleme.
\item  2.29 17 Dec 2000 Kapitel
\ref{adsl-suse-firewall} {(Suse-Firewall und ADSL)}
von
\onlynameurl{Dieter WERNER {$<$}d\_werner@gmx.net{$>$}}
eingearbeitet im Kapitel 
\ref{adsl} {(ADSL)}, 
\item  2.30 16 Mar 2001 Verweis auf den 
\onlynameurl{KPNQwest Linux Support}
eingef\"ugt
\item  2.31 17 Mar 2001 Hinweis auf die Distribution/Version Abh\"angigkeit der 
der Lokalit\"at der Start-/Stop-Scripts eingef\"ugt 
({\ttfamily /sbin/init.d /etc/init.d /etc/rc.d} usw.)
\item  2.32 24 Mar 2001 Kapitel
\ref{adsl-usb} {(ADSL-Modem Speed Touch (tm) USB)}
eingef\"ugt
\item  2.33 15 Apr 2001 Kapitel
\ref{ADSL-Security} {(ADSL vs. Security?)}
eingef\"ugt
\item  3.0 16 Apr 2001  Chello/Telekabel Howto in Kapitel 
\ref{Kabel} {(Kabel)} eingef\"ugt (AH)
\item  3.1 17 Apr 2001  Kapitel \ref{Kabel} {(Kabel)} 
minor bugs fixed (HS)
\item  3.2 29 Apr 2001  Chello/Telekabel Howto in Kapitel
\ref{Kabel} {(Kabel)} Update (AH), 
Kapitel \ref{TODO} {(TODO)} eingef\"ugt (HS),
Link auf das Speedtouch-USB-HOWTO eingef\"ugt (HS)
\item  3.3 1. Mai 2001  Fehlender chmod a+x adsl eingebaut (Tipp von 
\onlynameurl{Dieter H\"ofler {$<$}dieter.Hoefler@gmx.at{$>$}}) (HS)
\item  3.4 7. Mai 2001  Link zum
\onlynameurl{ADSL-Router auf zwei Floppies} von
\onlynameurl{Zbigniew Strzempa {$<$}max@uibk.ac.at{$>$}}
eingef\"ugt.
\item  3.5 10. Jun 2001 Im Kapitel 
\ref{adsl-usb} {(adsl-usb)}
wurde ein Link eingearbeitet, der auf die Beschreibung von
\onlynameurl{Harald M\"uller (Gonzo){$<$}gweb@aon.at{$>$}}
verweist, in der der Setup von 
\onlynameurl{SpeedTouch USB unter Linux}
sehr einfach und \"ubersichtlich erkl\"art wird.
\item  3.6 10. Jun 2001 Im Kapitel 
\ref{ADSL-reconnect} {(ADSL Wiedereinwahlscript)}
wurde ein Unterkapitel
\ref{ADSL-reconnect-ipdown} {(Variante ip-down)}
von
\onlynameurl{Dieter WERNER {$<$}d\_werner@gmx.net{$>$}}
eingef\"ugt, der das Reconnecten der ADSL-Verbindung \"uber
das ip-down script regelt.
\item  3.7 11. Jun 2001 Bugfixes in  
\ref{ADSL-reconnect-ipdown} {(Variante ip-down)}, 
Verweis auf das Script im Kapitel
\ref{adsl-autologin} {(Automatisches Login/Logout)}.
Extension in
\ref{links} {(Links zu verwandten Themen)}
\item  3.8 19. Jun 2001 Ein Kapitel Links im Disclaimer spendiert.
\item  3.9 5. Jul 2001 Roland ist \"ubersiedelt ;-) Neue Mailadresse und Homepage eingetragen
\item  3.10 17. Jul 2001 Beitrag von    
\onlynameurl{Roland Lezuo {$<$}roland.lezuo@chello.at{$>$}}
in Kapitel
\ref{adsl-problemloesungen} {(Probleme mit ADSL und deren L\"osung)}
eingef\"ugt. Von
\onlynameurl{Dieter WERNER {$<$}d\_werner@gmx.net{$>$}}
stammt das neue Kapitel
\ref{logauswertung} {(Auswertung des syslog)}
\item  3.11 27. Jul 2001 R\"uckbau aller Eintr\"age von Version 2.04 vom 30 May 2000
(auf Wunsch des damaligen Autors)
und aller dazugeh\"origen Beitr\"age. R\"uckbau aller Hinweise
auf den ANT Hersteller (lediglich die Links wurden belassen).
\item  3.12 3. Aug 2001 Anmerkung im Kapitel
\ref{ppp-options} {(ppp-options)}
und das neue Kapitel
\ref{DNSmasq} {(DNSmasq)}
eingef\"ugt. Alle Erg\"anzungen stammen von
Sebastian C. B. Sauer
(nochmals besten Dank f\"urs mehrmalige Fehlerlesen)
                                
\item  3.13 16. Aug 2001 Kleiner Korrekturen im Kapitel Telekabel
\item  3.14 8 Sep 2001 kpnquest Verweise im Kapitel
\ref{links} {(Links zu verwandten Themen)}
eingebaut.
\item  3.15 15 Sep 2001 \"Ubersiedelung des HOWTO auf
\onlynameurl{http://howto.htlw16.ac.at}
\item  3.16 2 Okt 2001 Auf meinem SBC 5820 is die Harddisk eingegangen.
Bei der Gelegenheit hatte ich endlich mal die Chance
von Grund auf neu zu installieren. Nat\"urlich alles
wie hier im HOWTO beschrieben. Und prompt fanden sich
einige notwendige Korrekturen. Ergebnis: AON-Complete
nach allen Regeln der Kunst, von einer frischen HD
beginnend, sollte in einem (laaaangen) Abend aufgesetzt
werden k\"onnen :-))
\item  3.17 9 Okt 2001 Neues Kapitel 
\ref{kabel-dhcpcd-fehler} {(dhcpcd Fehlermeldung)} im Kapitel
\ref{Kabel} {(Kabel)}
eingef\"ugt.
\item  3.18 30 Dez 2001 Im Kapitel 
\ref{adsl-usb} {(adsl-usb)}
einen Artikel von 
\onlynameurl{adi@selingers.com (adi)}
aus der at.linux eingearbeitet.
\item  3.19 30 Dez 2001 Im Kapitel
\ref{sms} {(SMS)}
einen Beitrag von
\onlynameurl{Christian Eder {$<$}chris\_eder@aon.at{$>$}}
als neues Kapitel
\ref{sms2} {(SMS-Routinen von Christian Eder {$<$}chris\_eder@aon.at{$>$})}
eingearbeitet.
\item  3.20 7 Jan 2002 Im Kapitel
\ref{adsl-usb} {(adsl-usb)}
den Link auf
\onlynameurl{Linux Driver page for SpeedTouch USB ADSL Modem}
eingef\"ugt.
\item  3.21 12 Jan 2002 Link auf "altes" TK-HOWTO entfernt
\item  3.22 26 Mar 2002 E-Mail Adress changed of schmidp@o000o.org
\item  3.23 24 Apr 2002 Im Kapitel
\ref{adsl-usb} {(adsl-usb)}
einen Link auf das
\onlynameurl{AT-Speedtouch-HOWTO}
von
\onlynameurl{tuxx@tuxx-home.at (Alexander Griesser)}
eingef\"ugt
\item  3.24 13 Aug 2002 Anmerkung 3 in Kapitel
\ref{pap-secrets} {(pap-secrets)}
nach einem Hinweis von 
\onlynameurl{Zimmermann Thomas {$<$}t.zimmermann@tz-com.at{$>$}}
eingef\"ugt. Link zum
\onlynameurl{SpeedTouch USB-HOWTO mit den Benoit - Papillault's Open-Source Treibern}
eingef\"ugt im Kapitel
\ref{links} {(Links zu weiterf\"uhrenden Themen)}
\item  3.25 8 Nov 2002 Wieder einmal wurde das Wiedereinwahlscript von
\onlynameurl{Dieter H\"ofler {$<$}dieter.hoefler@gmx.at{$>$}}
ge\"andert. Diesmal machten wir daraus gleich ein neues Kapitel
\ref{adsl-suse} {(SuSE 8.1)}.
Von
\onlynameurl{Erich Birngruber {$<$}ebirn@gmx.at{$>$}}
wurde im Kapitel
\ref{ANT-RESET} {(R\"ucksetzen der ANT)} ein
Scriptvorschlag eingearbeitet, der auf expect basiert.
\item  3.26 18 Nov 2002 neues Kapitel
\ref{pptp-ausfuehrbar} {(pptp ausf\"uhrbar machen)}
gespendet von
\onlynameurl{Aljosha {$<$}Aljosha.judmayer@aon.at{$>$}}
wurde eingef\"ugt.
\item  3.27 30 Dez 2002 neues Kapitel
\ref{xdsl} {(xDSL)}
von
\onlynameurl{Bernhard Roessmann {$<$}roessmann@gmx.net{$>$}}
eingef\"ugt.
\item  3.28 27 Mar 2003 Von
\onlynameurl{Stefan Mannsbart {$<$}vipergts@lycos.at{$>$}}
stammt eine \"uberarbeitete Version des Scripts adsl, da\ss{} beim
automatischen Start nun die richtige Variable (ADSL statt
AON) auswertet.
\item  3.29 1 Jun 2003 Von
\onlynameurl{Wolfgang Winkler {$<$}winklerw@telering.at{$>$}}
wurde das Kapitel 
\ref{manual_dhcp} {(Manuelle Konfiguration + DHCP-client)}
gespendet und integriert
\item  3.30 8 Jun 2003 Von
\onlynameurl{Daniel Imrich {$<$}newsgroups@danielimrich.net{$>$}}
stammt der Hinweis auf das Suse Config-SpeedTouch-HTML-HOWTO
\item  3.31 13 Jul 2003 Von
\onlynameurl{Martin Gro\ss{}hauser {$<$}csad2635@uibk.ac.at{$>$}}
statmmt ein Beitrag im Kapitel 
\ref{ADSL-reconnect} {(ADSL Wiedereinwahlscript)} wurde
die 
\ref{ADSL-reconnect-crontab} {(Variante direkt in der cron-tab)}
eingef\"ugt. Zus\"atzlich wurde von Martin Gro\ss{}hauser das
Kapitel
\ref{pptp-BSD} {(pptp und BSD)}
gespendet.
\item  3.32 10 Aug 2003 Von
\onlynameurl{Georg Naggies {$<$}georg@georgs-home.com{$>$}}
stammt der Hinweis, da\ss{} jetzt 
"pptp 10.0.0.138 --localbind 10.0.0.140"
anstatt wie bisher "pptp 10.0.0.138 10.0.0.140"
getippt werden mu\ss{}. Und von
\onlynameurl{Wolfgang Hackl {$<$}wolf.hackl@gmx.at{$>$}}
stammt ein weiteres xDSL-Script, da\ss{} sich nun im Kapitel
\ref{xdsl-script-2} {(xDSL Script von Wolfgang Hackl)}
findet
\item  3.33 7 Sep 2003 "Netteres" Wording im Kapitel
\ref{xdsl-script-2} {(xDSL Script von Wolfgang Hackl)}.
Von
\onlynameurl{Klaus Triendl {$<$}triendl.kj@aon.at{$>$}}
stammen die neuen Kapitel
\ref{adsl-debian} {(ADSL \& Debian)}
und
\ref{adsl-persist} {(Variante persist Option)}
\item  3.34 8 Dez 2003  Hinweis auf Zusammenhang von Netzwerkkarten und
Verf\"ugbarkeit von Leitungen, eingef\"ugt im Kapitel
im Kapitel \ref{adsl-problemloesungen} {(Probleme mit ADSL und deren L\"osung)}.
Im Kapitel
\ref{ppp-options} {(ppp-options)}
die Option replacedefaultroute nach einem Tip von
\onlynameurl{Patrick Eixelsberger {$<$}pat\_eix@yahoo.de{$>$}}
eingebaut
\item  3.35 15 Jun 2004  Von 
\onlynameurl{Anton Steiner {$<$}anton.steiner@salzburg-online.at{$>$}}
stammen die neuen Kapitel 
\ref{manual_usb} {(Kabelzugang \"uber den USB-Anschluss)}
\ref{zugang_ueber_salzburg_online} {(Kabelzugang \"uber Salzburg-Online)}
\item  3.36 12 Sep 2004  Von 
\onlynameurl{hans-peter.lackner@netstruct.at (Hans-Peter Lackner)}     
stammt ein neues Startscript f\"ur Fedora. Eingef\"ugt im Kapitel 
\ref{adsl-autologin} {(Automatisches Login/Logout)} als
Unterkapitel
\ref{adsl-autologin-fedora} {(Fedora)}.
\item  3.37 25 Nov 2004  Von 
\onlynameurl{Filip Ljubas {$<$}f.ljubas@inode.at{$>$}}
wurde im Kapitel
\ref{adsl-usb} {(adsl-usb)}
das neue Unterkapitel 
\ref{adsl-usb-zyxel} {(USB Modem Zyxel Prestige)}
eingef\"ugt.
\item  3.38 4 Jan 2005 Von
\onlynameurl{Wolfgang Hackl {$<$}wolf.hackl@gmx.at{$>$}}
wurde ein neues
\ref{xdsl-script-3} {(xDSL Script)}
eingearbeitet, da\ss{} nun auch PPPoE unterst\"utzt, das seit 2004
von Inode erh\"altlich ist.
\item  3.39 17 M\"arz 2005 Von
\onlynameurl{Jacob Rief {$<$}jacob.rief(at)gmx.at{$>$}}
stammt das neue Kapitel
\ref{xdsl-script-4} {(xDSL Einwahl bei INODE)}
\item  3.40 15 April 2005 Von
\onlynameurl{Florian Lentsch {$<$}florian.lentsch@gmx.at{$>$}}
kam der Hinweis, da\ss{} bei AON-Kunden nicht die 10-stellige
Kundennummer, sondern die Teilnehmerkennung als Anmeldenamen
zu verwenden ist. 
Die \"Anderung wurde eingebracht in den Kapiteln
\ref{ppp-options} {(/etc/ppp/options)}
\ref{pap-secrets} {(/etc/ppp/pap-secrets)}
Anm. von H.Sch\"on: noch verwirrender als
das Nummernchaos von AON, geht es eigentlich gar nicht? Alle
kundenfreundlichen Provider haben den Realname als Kundennamen und
eine Kundennummer f\"ur die interne Verwaltung. Bei der AON ist
die Teilnehmerkennung eine genauso nichtssagende Nummer,
wie die Kundennummer. Ausser zur Verwirrung der Kunden, sehe
ich keinen Grund darin. \"Ahnliche Hinweise gab es vor langer Zeit auch im 
Kapitel \ref{homepage-upload} {(h\"andischer HP upload)}
\item  4.01 10 November 2006 Ein neues Kapitel
\ref{umts} {(UMTS)}
wurde begonnen, in dem ich alles sammeln m\"ochte was man f\"ur
\ref{umts} {(UMTS)}
in \"Osterreich alles tun muss um es unter Linux
zum Laufen zu bringen.
Im Moment ist das Kapitel nur eine Sammlung von Notizen. Vielleicht
findet sich jemand, der es sch\"on aufbereiten m\"ochte. Ideen und
Anregungen sind ausdr\"ucklich willkommen. Viel Spass.
\item  4.02 19 Feb 2007 Von
\onlynameurl{David W\"uhrer {$<$}def@gmx.at{$>$}}
stammt das neue Kapitel
\ref{adsl-debian-2} {(ADSL \& Debian - Stand 2007)}
\item  4.03 1 Mar 2007 Einige tote Links entfernt und ein Beispiel des Files
/etc/ppp/options eingef\"ugt im Kapitel
\ref{ppp-options} {(/etc/ppp/options)}

\end{itemize}













\subsection{TODO
  \label{TODO}
  }


\subsubsection{\ref{adsl} {(ADSL)}
   }

nothing todo




\subsubsection{\ref{Kabel} {(Kabel)}
   }



\begin{tscreen}
\begin{verbatim}

http://wet.port5.com/


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

http://www.mindstorm.com/~sparlin/demos/fwconfig/

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

http://www.oreilly.de/german/freebooks/linux_netz/inhalt.html


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

Masquerading MINI-HOWTO

Dieses Dokument beschreibt folgende Situation und löst das Problem vollständig:

1 Linux (oder kompatible :) Rechner (2.2.x er Kernel oder höher) mit Internetanbindung
1 oder mehrere Rechner (beliebiges Betriebssystem) ohne Internetanbindung, welche
angebunden werden sollen.
Beliebige Netzwerkkonstellation

Der Internetzugang am Linuxrechner muß bereits konfiguriert worden sein, wenn
nicht lesen Sie bitte das Internet mit Linux Tutorial..

a) Am Linux Rechner
- Kernel mit Masquerading Support compilen

cd /usr/src/linux
make xconfig    -       für Konfiguration von X-Windows aus
make menuconfig         -       für Konfiguration im Textmodus (ncurses menü)
make config     -       für Konfiguration im Textmodus (nicht empfohlen)

Einstellungen vornehmen nach belieben, jedoch in der Sektion Networking Options
(mindestens) follgende Einstellungen vornehmen: (wenn möglich, bzw. nötig kann anstatt
yes auch module genommen werden)
TCP/IP Networking: yes
IP: Firewalling: yes
IP: Always defragment: yes
IP: transparent proxy support: yes
IP: masquerading: yes
IP: ICMP masquerading: yes

(ab hier folgen nur noch optionale Einstellungen)
Masquerading special modules support: yes
IP: ipautofw masq support (EXPERIMENTAL): modules (empfohlen)  (Achtung! Sie müßen in der 
Section Code Maturaty Level Options   Ask for incomplete/developement drivers auf yes setzen)
IP: ipportfw masq support (EXPERIMENTAL): modules (empfohlen) (Achtung! Sie müßen in der 
Section Code Maturaty Level Options   Ask for incomplete/developement drivers auf yes setzen)
IP: ipfw masq-forwarding support(EXPERIMENTAL): modules (empfohlen) (Achtung! Sie müßen in der 
Section Code Maturaty Level Options   Ask for incomplete/developement drivers auf yes setzen)

--
In der Section Filesystems müßen sie /proc filesystem unbedingt auf YES setzen!!! Ansonsten
wird masquerading nicht möglich sein!!!

Dannach auf Save+Exit gehen und folgendes ausführen:

make dep && make zImage && make zlilo

Achten Sie auf die Groß/Klein Schreibung!

Falls dies fehl schlägt:

make dep && make bzImage && make bzlilo

Dannach

make modules && make modules_install

Achtung! Bei manchen Systemen ist noch

cd /
cp vmlinuz System.map /boot/
lilo

notwendig...

Dannach bitte neustarten

shutdown -r now
ctrlaltdel
reboot (restart)

oder einfach STRG+ALT+ENTF drücken (keine Angst, Linux fängt dies ab, und führt das script restart aus)

- Masquerading aktivieren

Nach jedem Neustart des Systems muß

ipchains -P forward DENY
ipchains -A forward -i eth0 -j MASQ
echo 1 > /proc/sys/net/ipv4/ip_forward

eingegeben werden...
Ersetzen sie eth0 gegebenenfalls duch ihr Netzwerkinterface (ppp0, eth1....)

Wenn sie sich mich ipchains auskennen können sie jetzt auch noch
diverse Services sperren, oder gewisse IPs...

Wie sie es bewältigen das jedesmal auszuführen bleibt ihnen überlassen
(init.d script empfohlen...)

b) Clientseitige konfiguration

Die IP vergabe bleibt ihnen überlassen, stellen sie jedoch sicher das der Linuxrechner
pingbar ist.
Wichtig ist, das sie bei ihren TCP/IP einstellungen, die IP des Linuxrechners (internet IP) als Gateway
angeben...
Manchmal ist es notwendig die externe (Internet) IP des Linuxrechners als Gateway anzugeben

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

  Roland Seuhs -- Gerasdorf bei Wien/Austria
  http://Roland.Seuhs.com
  +43/(0)699/10073892
  Mail in German, French or English please




Linux als Internetgateway

Was macht ein Gateway?

Ein Gateway ist im Prinzip nichts anderes als Netzwerkpakete von einen Netzwerk in ein anderes zu
transportieren. Ein anderes Wort für Gateway ist Router. Um auf zwei Netzwerke zugreifen zu können, muß ein
Gatewayrechner zwei Geräte zu Verfügung haben um Netzwerke anzusprechen. Also zum Beispiel zwei
Netzwerkkarten, oder eine Netzwerkkarte und ein Modem. Wenn beide Netzwerke  auf dem Rechner bereits laufen
und funktionieren, kann man den Gateway aufsetzen.
Wenn Sie ein lokales Netzwerk haben und ein Rechner in diesen Netz verfügt über einen Internetanschluß, so
können Sie dann mit allen anderen Rechnern im Netz ebenfalls auf das Internet zugreifen, wenn Sie diesen
Rechner als sogenannten Gatewayrechner betreiben. Da die Lizenzgebühren für Windows NT als Gateway sehr teuer
sind, bietet sich Linux für diesen Zweck geradezu an.
Nun stellt sich folgendes Problem: Die lokalen Netzwerkadressen (z.B. 192.168.x.x) werden  nicht ins Internet
geroutet. - Logischerweise, denn diese Adressen müssen offiziell nicht angemeldet werden und sind für lokale
Netzwerke reserviert. Man hätte tausende gleiche IP Adressen wenn diese ins Internet geroutet werden. Die
Lösung ist IP Maskierung. Bei diesem Verfahren werden die Pakete mit der IP Adresse des Gateways
weitergeschickt. Um bei den vom Internet zurückgeschickten Paketen unterscheiden zu können welches Paket zu
welchen Computer weitergeleitet werden soll, werden den Rechnern verschiedene Ports zugeordnet. (Die Antworten
aus dem Internet gehen dann an diese Ports und werden dann vom Gateway an die jeweiligen Rechner
weitergeleitet) Der Rechner, der die Pakete schickt, merkt nicht, daß der Gatewayrechner die Pakete an andere
weiterleitet. Es werden Pakete an die selbe IP Adresse, aber an verschiedene Ports geschickt. - Aber das kann
durchaus auch beim »normalen« Betrieb passieren; So benutzen z.B. Telnet, ftp und http verschiedene Ports.

Voraussetzungen

Um IP Maskierung einzurichten, muß man (neben einen Internetzugang und einen lokalen Netz) unter Umständen den
Kernel neu konfigurieren. - Bei modernen Distributionen (z.B. SuSE 6.3 ist das jedoch nicht erforderlich)
Probieren Sie es einfach aus; Falls sich die Module nicht laden lassen, müssen sich folgende Optionen bei der
Neukompilation anwählen:

  * Prompt for development and/or incomplete code/drivers 
CONFIG_EXPERIMENTAL 
- this will allow you to select experimental IP Masquerade code compiled 
into the kernel 

* Enable loadable module support 
CONFIG_MODULES 
- allows you to load ipmasq modules such as ip_masq_ftp.o

* Networking support 
CONFIG_NET 

* Network firewalls 
CONFIG_FIREWALL 

* TCP/IP networking 
CONFIG_INET 

* IP: forwarding/gatewaying 
CONFIG_IP_FORWARD 

* IP: firewalling 
CONFIG_IP_FIREWALL 

* IP: masquerading 
CONFIG_IP_MASQUERADE 

* IP: ipportfw masq support 
CONFIG_IP_MASQUERADE_IPPORTFW
- recommended

* IP: ipautofw masquerade support
CONFIG_IP_MASQUERADE_IPAUTOFW
- optional

* IP: ICMP masquerading
CONFIG_IP_MASQUERADE_ICMP
- support for masquerading ICMP packets, recommended.

* IP: always defragment
CONFIG_IP_ALWAYS_DEFRAG 
- highly recommended

* Dummy net driver support
CONFIG_DUMMY 
- recommended

* IP: ip fwmark masq-forwarding support 
CONFIG_IP_MASQUERADE_MFW
- optional

Falls diese Optionen in Ihren Kernel nicht vorhanden sind, kompilieren Sie einen neuen Kernel.  Bevor Sie den
Computer neu starten, fügen Sie folgende Zeilen in ein geeignetes (soll beim booten ausgeführt werden;
/sbin/init.d/boot.local für SuSE) Skript ein. Schalten Sie außerdem noch IP-forwarding ein:
Unter SuSE:
Setzen Sie die Variable »IP_FORWARD« in /etc/rc.config auf »yes«
Unter RedHat wird es folgendermaßen eingeschalten:
echo 1 > /proc/sys/net/ipv4/ip_forward
Sie sollten das auch unter SuSE machen, weil viele Programme diese Datei überprüfen.

Wenn ihr Kernel nun geeignet ist um IP-Maskierung zu betreiben, dann geben Sie folgendes ein und achten Sie
auf Fehlermeldungen:

# IP Masquerading: ############################
# Module laden:
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_vdolive
# Forwarden einschalten (nur einmal notwendig:
#echo 1 > /proc/sys/net/ipv4/ip_forward
# Einstellungen machen:
ipchains -P forward DENY
ipchains -A forward -s 192.168.x.0/255.255.255.0 -j MASQ

Die letzte Zeile erlaubt dem Netz 192.168.x.0 IP-Maskierung zu benutzen.
Wenn alles klappt, dann tragen sie obiges in /sbin/init.d/boot.local (SuSE) oder in ein anderes geeignetes
Bootskript ein.

Erklärung:
Zuerst werden die benötigten Kernelmodule geladen.
Dann werden die Einstellungen zur Sicherheit gesetzt:
ipchains -P forward DENY bestimmt, daß die Standardeinstellung für alle Rechte die Verweigerung der IP
Maskierung ist. Andernfalls könnte jemand seine Identität verschleiern indem er Pakete durch Ihr Gateway
schickt. (Ist zwar für einen Wählleitungszugang unwahrscheinlich, aber die Konsequenzen können sehr ärgerlich
sein, wenn jemand Illegales über Ihr Gateway gemacht hat.) Prinzipiell sollte man nur das nötigste erlauben,
also erlauben wir IP Maskierung nur  für unser lokales Netz mit 
ipchains -A forward -s <Netzwerk>/<Netzmaske> -j MASQ
Selbstverständlich können Sie IP-Maskierung auch nur für einzelne Rechner zulassen:
ipchains -A forward -s <Rechner>/<Netzmaske> -j MASQ
Bedenken Sie aber, daß jemand, der auf einen von den Rechnern über das Netz einloggen kann, trotzdem die IP
Maskierung benutzen kann.
Wenn Sie die IP-Maskierung ausprobieren, versuchen Sie zuerst einmal IP Nummern anstatt normaler Namen;
Vielleicht stimmt Ihre Nameservereinstellung nicht.

Einrichtung der Maschinen, die über das Netz IP-Maskierung nutzen wollen:

SuSE:
YaST 
                -> Administration des Systems 
                -> Netzwerk konfigurieren 
                -> Netzwerk Grundkonfiguration
                -> F6 (IP-Adressen) bei dem entsprechenden Netz drücken
                -> Adresse default-Gateway eintragen: (=Adresse des Servers)

/usr/sbin/rcroute restart

Allgemein:
                
Eintrag »default        <IP-Adresse des Servers>« in /etc/route.conf eintragen
Routing neu starten

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


  
\end{verbatim}
\end{tscreen}









\subsubsection{\ref{ISDN} {(ISDN)}
   }

nothing todo
















\subsection{Support
  \label{Support}
    }

Aus gegebenem Anla\ss{}:

Es hat keinen Sinn wenn Sie die Autoren mit Mails bombardieren oder
versuchen telephonisch zu erreichen! Wenn in diesem HOWTO etwas 
mi\ss{}verst\"andlich erkl\"art ist, oder etwas aus anderen Gr\"unden bei 
Ihnen nicht funktioniert, wenden Sie sich bitte vertrauensvoll 
an die Newsgroup at.linux oder noch besser an den Support Ihres
Providers. *1)

dort werden Sie geholfen ;-) (frei nach Verona Feldbusch)

Andernfalls sind die Autoren
nur noch mit 1st-level-support besch\"aftigt und finden keine Zeit
mehr an diesem Dokument zu arbeiten.

Sollten Sie aber eine L\"osung f\"ur Ihr Problem haben, dann sind sie 
selbstverst\"andlich herzlich eingeladen die L\"osung an einen der 
Autoren zu senden. Wir werden dann gerne die notwendigen \"Anderungen
und Erg\"anzungen vornehmen. Da wir das HOWTO in unserer Freizeit
"non-profit" betreiben, sind wir nur nicht zur L\"osung individueller
Probleme in der Lage. Dazu fehlt (zumindest mir - Heimo Sch\"on) 
sowohl die Erfahrung, als auch ein ADSL-Zugang und Hardware zum Testen
verschiedener Konfigurationen.

BESTEN DANK F\"UR IHR VERST\"ANDNIS !!!



*1)

Ich wei\ss{} das es fast schon zynisch klingt, wenn ich Sie an Ihren
Provider verweise, da die meisten \"osterreichischen Provider (z.B.AON)
die Existenz von Linux bestreiten. Auch wenn Sie Hilfe z. B. aus der
at.linux erhalten, sollten Sie den Provider darauf hinweisen, da\ss{}
Sie mit Ihren Beitr\"agen auch die Hotline bezahlen, die Hotline Ihnen
aber nicht helfen kann, weil Linux nicht unterst\"utzt wird. Wenn 
gen\"ugend Leute die Hotline qu\"alen, dann wird auch der Provider irgendwann
zur Kenntnis nehmen m\"ussen, da\ss{} es Linux gibt. Danke f\"ur Ihr 
Verst\"andnis und f\"ur Ihre Mitarbeit bei der Verbreitung von Linux.

Ich kann daher allen Linux-Newbies nur empfehlen, erkundigen Sie sich
z.B. bei Freunden, oder in der at.linux inwieweit \"osterreichische
Provider auch Linux Support anbieten. Bei AON sind Sie z.B. v\"ollig
falsch. Da werden Sie an der Hotline kaltschn\"auzig abgewiesen, wenn
Sie Linux erw\"ahnen. Der Provider 
\onlynameurl{Inode}
hingegen, betreibt eine wunderbares Linux-HOWTO f\"ur seinen ADSL Zugang,
das vor allem f\"ur Anf\"anger hervorragend (wenn nicht sogar besser wie
wie dieses HOWTO) geeignet ist, f\"ur die ersten Schritte mit ADSL unter
Linux.

Provider mit Linux Support in \"Osterreich 
(die Liste ist noch ein bischen sp\"arlich ;-) :
\begin{itemize}
\item     Bei 
\onlynameurl{Inode}
finden Sie ADSL-
\onlynameurl{Support}
unter Linux!
\item     \onlynameurl{Andy Dunkl {$<$}adunkl@nostromo.quake.at{$>$}}
verweist nicht ganz zu unrecht auf den
\onlynameurl{KPNQwest Linux Support}
\end{itemize}

Ich bin f\"ur alle Tips dankbar, sollten sich weitere Provider finden
die schon von Linux geh\"ort haben.






















\section{UMTS
   \label{umts}
    }



Dieses Kapitel basiert auf diversen Postings und einem PDF-File die unter folgenden Links gefunden
wurden:

\onlynameurl{http://joergweis.wordpress.com/tag/linux/}

\onlynameurl{http://www.linuxforen.de/forums/showthread.php?t=157913}

\onlynameurl{http://joergweis.wordpress.com/files/2006/06/vodafone\_gt3g\_emea\_HOWTO.pdf}

Dieses Kapitel ist also nur eine kurze Sammlung von Tips wie man UMTS mit einer A1-Vodafon-Karte
in \"Osterreich zum Laufen bringt. Andere L\"ander werden hier nicht behandelt. Ich habe mit den
Typangaben auf meiner Karte nach folgendem String im Internet gesucht:

"Vodafone GT 3G+ linux"

und habe dabei die obigen Links gefunden. Wahrscheinlich gibt es noch viel mehr, 
aber die obigen Links haben bei mir zum Erfolg gef\"uhrt (Vielen Dank an J\"org Weis, ...)

Trickreich ist, da\ss{} man einen Kernelmodul herunterladen muss (als Source-tgz), den 
ich aber dort wo im obigen PDF angegeben, nicht gefunden habe. Unter dem nachfolgenden Link
bin ich dann f\"undig geworden:

\onlynameurl{http://packages.debian.org/unstable/net/nozomi-source}

Das tgz-File ist 25 kbyte gross und mit einem beherzten make compilierbar (getestet auf einer Suse 10.1). Das 
make install geht leider nicht, weil der modprobe -r (nona) nicht klappt, 
aber das einzige cp das make-install dort macht kann man auch per Hand machen (also
cat Makefile und den cp ganz am Ende per Hand machen:

cp -f nozomi.ko /lib/modules/\$(uname -r)/kernel/drivers/pci/hotplug

Dann ein beherztes modprobe nozomi.ko und die Karte in den GPRS-Slot und schon 
hat man 4 neue devices /dev/noz0 bis /dev/noz3 und dmesg best\"atigt die 
gefundene Karte.

Weiter gehts dann wie im oben erw\"ahnten PDF-File beschrieben.
































\section{ADSL
   \label{adsl}
    }



Dieses Kapitel wurde von 
\onlynameurl{Bernhard Roessmann{$<$}roessmann@gmx.net{$>$}} 
zusammengetragen. 

\onlynameurl{Inode}
Kunden finden
\onlynameurl{hier}
eine wunderbare Anleitung zur Installation von ADSL unter Linux.

Weiters gibt es von 
\onlynameurl{Friedrich Lobenstock {$<$}fl@fl.priv.at{$>$}}
ein ADSL rpm, da\ss{} Sie von 
\onlynameurl{hier}
abholen k\"onnen.






\subsection{ADSL Grundwissen
   \label{adsl-allgemeines}
    }






\subsubsection{Wie funktioniert ADSL unter Linux?
    }

Gar nicht. Warum? Es gibt kein "ADSL", sondern 
viel mehr gibt es ADSL-L\"osungen
verschiedener Hersteller mit unterschiedlichen 
Protokollen. Wer also eine
deutsche Beschreibung liest wird damit im 
\"osterreichischen Netz von
wenig anfangen. Deshalb dieses HOWTO: ADSL \& Linux.




\subsubsection{Was sind PPTP und PPoE?
    }

Sowohl in \"Osterreich wie auch in Deutschland 
wird f\"ur ADSL-Verbindungen
"PPP" (Point-to-Point-Protocol) verwendet. 
Dieses Protokoll ist der Standard
f\"ur Modemverbindungen. PPtP und PPoE tunneln 
eine PPP-Verbindung \"uber
ein lokales LAN welches im einfachsten Fall nur 
aus dem ADSL-Modem und
dem Arbeitsplatzrechner besteht:


\paragraph{PPoE
     }

PPoE ist das \"altere Protokoll
(\onlynameurl{RFC 2516})
und wurde von UUNET/RedBack/RouterWare
entwickelt. Es setzt die PPP-Verbindung direkt auf Ethernet, die Verbindung
zwischen zwei Ethernet-Ports wird durch die Ethernet-Adressen und einer
Session-ID identifiziert. Der gr\"o\ss{}te Nachteil dieses Protokolls
ist, da\ss{} durch den zus\"atzlichen Rahmen die maximale L\"ange der
IP-Pakete reduziert wird (geringere MTU).


\paragraph{PPtP
     }

PPtP ist ein in Redmond entwickeltes Protokoll 
(\onlynameurl{RFC 2637})
zur Tunnelung einer PPP-Verbindung innerhalb einer IP-Verbindung. Obwohl typischerweise
ebenfalls auf einem Ethernet eingesetzt, ist eine PPTP-Verbindung genauso
wie jede andere IP-Verbindung nicht an ein bestimmtes Transportmedium gebunden.
Der Preis f\"ur diese Flexibilit\"at ist allerdings ein erh\"ohter
Overhead. Diese Protokoll wird von den ANTs im \"osterreichischen Netz zur Zeit benutzt.
R4 Verschl\"usselung wird von den ANTs nicht unterst\"utzt,
und damit entf\"allt auch die L\"osung diverser mit dieser Verschl\"usselung
zusammenh\"angender Probleme.




\subsubsection{Wie ist das \"osterreichische ADSL aufgebaut?
    }

Der Arbeitsplatzrechner wird \"uber ein Twistet-Pair-Kabel mit~
RJ-45 Steckern~ (1:1) mit der ANT verbunden. Anfangs wurde
das A1000, in der Zwischenzeit das Nachfolgemodell Speed Touch(tm)
Home verwendet. Dieses Modem setzt PPTP auf PPoA 
(\onlynameurl{RFC 2364})
- Point-to-Point-over-ATM
um. Dh. die PPP-Verbinung wird am \"osterreichischen Netz 
\"uber ATM getunnelt. Die ATM-Strecke
wird bis zum Internet-Provider gef\"uhrt, bei diesem endet die PPP-Verbindung.




\subsubsection{Wie funktioniert PPTP?
    }

F\"ur den Verbindungsaufbau gen\"ugt es den Hostnamen (bzw. die IP-Adresse)
der Gegenstelle zu kennen (Default: 10.0.0.138). Innerhalb dieser Verbindung
wird nun eine PPP-Verbindung aufgebaut. Patches f\"ur bestimmte Hardware-Versionen
waren nur beim A1000-Modem notwendig. In Windows-Umgebung wird der Treiber
f\"ur dieses (und andere) Protokolle als "VPN-Modem" bezeichnet. F\"ur
den - eher unwahrscheinlichen Fall - das sich zwischen ADSL-Modem und
Rechner auf dem der PPTP-Client l\"auft, noch eine Firewall befindet,
ist zu beachten, da\ss{} PPTP neben einer TCP-Verbindung auf Port 1723
auch eine IP-Verbindung mit der Protokoll-ID 47 (GRE) er\"offnet; normalerweise
befindet sich jedoch ohnehin die Firwall hinter dem PPTP-Clientrechner.




\subsubsection{Was ist bei der PPP-Verbindung zu beachten?
    }

Der pppd wird vom pptp-Client automatisch gestartet. Es gibt hier eigentlich
nur einen wesentlichen Fallstrick - die Authentifizierung. Das ADSL Netz verwendet
hier MS-CHAP (ident MD5-CHAP). Es handelt sich dabei um eine von MS abgewandelte
Form des CHAP. F\"ur Linux-Benutzer wesentlich: Es ist eine aktuelle
Version von PPP erforderlich, oder ein Patch bei einer \"alteren Version.
Die "debug" Option ist am Anfang sehr n\"utzlich, damit kann man den
Fortschritt beim Verbindungsaufbau im syslog (tail -f /var/log/messages)
beobachten. F\"ur die MTU ist kein eigener Parameter erforderlich.




\subsubsection{Was mu\ss{} ich als ADSL Kunde besonders beachten?
    }

Da manche ADSL Kunden in den Genu\ss{} eines (z. B. 1 GB) Download-Limits gekommen sind,
sollten Sie bei allen Einstellungen von sendmail, fetchmail, fetchnews, etc.
dar\"uber nachdenken wieviel trafic durch st\"andiges Abholen von z. B. 50
Newsgroups verursacht wird. Die Kapitel weiter oben (z. B. leafnode, etc.)
sind zwar f\"ur ADSL User prinzipiell g\"ultig, aber nicht darauf abgestimmt
m\"oglichst wenig download-traffic zu verursachen. 

Daher alle Einstellungen
z. B. in der crontab m\"oglichst restriktiv einstellen, oder gleich aus
der crontab aush\"angen und bei Bedarf von Hand starten.
Das ist zwar dann alles nicht besonders elegant, aber es betrifft ja
auch nur ADSL Kunden die einen Provider mit Download-Limit gew\"ahlt haben.




\subsubsection{Sonstiges
    }

Die ANT besitzt \"uber die eigentliche Modemfunktion hinausgehend
einige interessante F\"ahigkeiten - etwa ein einfacher DHCP und DNS-Server
mit dem man dem eigenen LAN Adressen und Namen zuweisen kann. Es beherrscht
dar\"uber hinaus "Bridging" wie auch mehrere parallele PPP-Verbindungen,
beides wird jedoch im ADSL Netz nicht unterst\"utzt, genaueres ist dazu in
der dem Modem beiliegenden Beschreibung zu finden.


















\subsection{Ausgangsannahmen
    }

Der Zustand bevor Sie mit der Installation beginnen sollte
folgenderma\ss{}en aussehen:
\begin{itemize}
\item eingeloggt als root
\item ADSL Zugang mit
\item "A1000" oder "Speed Touch(tm)" ADSL "Modem" (auch "ANT" genannt)
\end{itemize}











\subsection{Ethernet konfigurieren
    }

Entsprechend der Anleitung der eingesetzten Distribution die Netzwerkkarte
konfigurieren (SuSE: mit Yast; sonst: ifconfig).

\begin{tscreen}
\begin{verbatim}
     IP-Adresse: 10.0.0.140
     Subnetmask: 255.255.255.0
     Rechnername: <rechnername>
   
\end{verbatim}
\end{tscreen}


(statt $<$rechnername$>$ gew\"unschten Namen verwenden)



In {\ttfamily /etc/hosts} einen Hostnamen f\"ur den Ant vergeben:

\begin{tscreen}
\begin{verbatim}
     10.0.0.138 alcatel 
   
\end{verbatim}
\end{tscreen}


10.0.0.138 ist \"ubrigens die IP, auf die der ANT werksseitig
eingestellt ist. Wem das nicht gefaellt, kann ja mal mit seinem
WWW-Browser http://10.0.0.138 probieren :-)

In {\ttfamily /etc/resolv.conf} die Nameserveradressen eintragen, z.B. f\"ur den Provider INODE (Wien):

\begin{tscreen}
\begin{verbatim}
      nameserver 195.58.160.2
      nameserver 195.58.161.3
   
\end{verbatim}
\end{tscreen}


Oder f\"ur den Provider AON:

\begin{tscreen}
\begin{verbatim}
      nameserver 195.3.96.67
      nameserver 195.3.96.68
   
\end{verbatim}
\end{tscreen}


ACHTUNG!! Bei SuSE stattdessen folgendes in {\ttfamily /etc/rc.config}
eintragen und danach SuSEconfig starten (resolv.conf wird
automatisch erzeugt):

INODE (Wien):

\begin{tscreen}
\begin{verbatim}
     SEARCHLIST="inode.at"
     NAMESERVER="195.58.160.2 195.58.161.3"
   
\end{verbatim}
\end{tscreen}


AON:

\begin{tscreen}
\begin{verbatim}
     SEARCHLIST="aon.at"
     NAMESERVER="195.3.96.67 195.3.96.68"
   
\end{verbatim}
\end{tscreen}




Neu boooten ;-) (es reicht auch beenden und neustarten aller Netzmodule
z. B.: {\ttfamily /sbin/init.d/network restart} )

Netzwerk testen mit "ping $<$rechnername$>$", es sollte in etwa folgende Ausgabe
erscheinen:

\begin{tscreen}
\begin{verbatim}
    64 bytes from 10.0.0.140: icmp_seq=0 ttl=255 time=0.128 ms
    64 bytes from 10.0.0.140: icmp_seq=1 ttl=255 time=0.207 ms
   
\end{verbatim}
\end{tscreen}


ANT testen mit "ping alcatel":

\begin{tscreen}
\begin{verbatim}
    64 bytes from 10.0.0.138: icmp_seq=0 ttl=15 time=1.464 ms
    64 bytes from 10.0.0.138: icmp_seq=1 ttl=15 time=1.496 ms
   
\end{verbatim}
\end{tscreen}


Der Ping zum Point-to-Point Partner sollte ca. 20 ms dauern (am Abend
gelegentlich auch 200ms).

TODO: Die Installation eines eigenen Caching-Name-Servers macht
Sinn (eine DNS-Aufl\"osung dauert ansonsten jedes Mal ca. 100ms, liegt
das Record im Cache nur ca. 1ms)






\subsection{ppp konfigurieren
    \label{ppp-konfigurieren}
   }






\subsubsection{/etc/ppp/options
    \label{ppp-options}
   }



In {\ttfamily /etc/ppp/options} sollte folgendes eingetragen sein:

\begin{tscreen}
\begin{verbatim}
     noipdefault
     name "<username>"
     noauth
     defaultroute
     replacedefaultroute
   
\end{verbatim}
\end{tscreen}


Anmerkung1: "$<$username{$>$}" ist der Name der einem vom Provider zugeteilt wurde
in Anf\"uhrungsstrichen
(z. B. die Teilnehmerkennung bei AON Kunden bzw. 
Benutzername@provider.at bei allen anderen \"osterreichischen Providern).

Anmerkung2:
Im File {\ttfamily /etc/ppp/options} sollten die folgenden beiden Zeilen eingetragen werden:
\begin{tscreen}
\begin{verbatim}
    lcp-echo-failure 10
    lcp-echo-interval 10
   
\end{verbatim}
\end{tscreen}

Ein ppp options file das f\"ur PPTP / ADSL ANT gedacht ist, findet sich hier : 
\begin{tscreen}
\begin{verbatim}
# /etc/ppp/options
#
# Not every option is listed here, see man pppd for more details.  This file
# is read by the pppd, it is an error when it is not present.
#
# Use the following command to see the active options:
# grep -v ^# /etc/ppp/options | grep -v ^$
#

# The name of this server. Often, the FQDN is used here.
#name <host>

# Enforce the use of the hostname as the name of the local system for
# authentication purposes (overrides the name option).
#usehostname

# If no local IP address is given, pppd will use the first IP address
# that belongs to the local hostname. If "noipdefault" is given, this
# is disabled and the peer will have to supply an IP address.
noipdefault

# With this option, pppd will accept the peer's idea of our local IP
# address, even if the local IP address was specified in an option.
#ipcp-accept-local

# With this option, pppd will accept the peer's idea of its (remote) IP
# address, even if the remote IP address was specified in an option.
#ipcp-accept-remote

# Run the executable or shell command specified after pppd has terminated
# the link.  This script could, for example, issue commands to the modem
# to cause it to hang up if hardware modem control signals were not
# available.
# If mgetty is running, it will reset the modem anyway. So there is no need
# to do it here.
#disconnect "chat -- \d+++\d\c OK ath0 OK"

# Increase debugging level (same as -d). The debug output is written
# to syslog LOG_LOCAL2.
#debug

# Enable debugging code in the kernel-level PPP driver.  The argument n
# is a number which is the sum of the following values: 1 to enable
# general debug messages, 2 to request that the contents of received
# packets be printed, and 4 to request that the contents of transmitted
# packets be printed.
#kdebug n

# noauth means do not require the peer to authenticate itself, this must
# be set if you want to use pppd to connect to the internet. In this case
# *you* must authenicate yourself to the peer(internet provider), so do
# not disable this setting unless you are the dial-in server which where
# the peer has to autenticate to.
noauth

# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
# on the serial port.
crtscts

# Specifies that pppd should use a UUCP-style lock on the serial device
# to ensure exclusive access to the device.
lock

# Use the modem control lines.(is default)
modem
# The opposite: local
#
# Description:
# Don't use the modem control lines.  With this option, pppd will ignore the
# state of the CD (Carrier Detect) signal from the modem and will not change
# the state of the DTR (Data Terminal Ready) signal.
#
# You need to disable modem and enable local if you want to connect to anoter
# system without using a modem:
#local

# async character map -- 32-bit hex; each bit is a character
# that needs to be escaped for pppd to receive it.  0x00000001
# represents '\x01', and 0x80000000 represents '\x1f'.
# To allow pppd to work over a rlogin/telnet connection, ou should escape
# XON (^Q), XOFF  (^S) and ^]: (The peer should use "escape ff".)
#asyncmap  200a0000
asyncmap 0

# needed for some ISDN Terminaladaters, namely ELSA, those seem to have
# problems with asyncmap negotiation, so you can turn off this procedure
# in case your ISDN box has trouble with it, by enabling this option.
# You have to disable the asyncmap <x> option to be sure to have it
# active. If you use wvdial, set the ISDN parameter in /etc/wvdial.conf
# instead.
#default-asyncmap

# Set the MRU [Maximum Receive Unit] value to <n> for negotiation.  pppd
# will ask the peer to send packets of no more than <n> bytes. The
# minimum MRU value is 128.  The default MRU value is 1500.  A value of
# 296 is recommended for slow links (40 bytes for TCP/IP header + 256
# bytes of data). The value 1492 is for DSL connections (PPP Default -
# PPPoE Header: 1500 - 8 = 1492)
# mru 1492

# Set the MTU [Maximum Transmit Unit] value to <n>. Unless the peer
# requests a smaller value via MRU negotiation, pppd will request that
# the kernel networking code send data packets of no more than n bytes
# through the PPP network interface. The value 1492 is for DSL connections
# (PPP Default - PPPoE Header: 1500 - 8 = 1492)
# mtu 1492

# Set the interface netmask to <n>, a 32 bit netmask in "decimal dot"
# notation (e.g. 255.255.255.0).
#netmask 255.255.255.0

# Don't fork to become a background process (otherwise pppd will do so
# if a serial device is specified).
nodetach

# If this option is given, pppd will send an LCP echo-request frame to
# the peer every n seconds. Under Linux, the echo-request is sent when
# no packets have been received from the peer for n seconds. Normally
# the peer should respond to the echo-request by sending an echo-reply.
# This option can be used with the lcp-echo-failure option to detect
# that the peer is no longer connected.
lcp-echo-interval 30

# If this option is given, pppd will presume the peer to be dead if n
# LCP echo-requests are sent without receiving a valid LCP echo-reply.
# If this happens, pppd will terminate the connection.  Use of this
# option requires a non-zero value for the lcp-echo-interval parameter.
# This option can be used to enable pppd to terminate after the physical
# connection has been broken (e.g., the modem has hung up) in
# situations where no hardware modem control lines are available.
lcp-echo-failure 4

# Send up to 60 LCP configure-request during negotiation. With a value
# of 2 for lcp-restart below, this might take up to 2 minutes.
lcp-max-configure 60

# Resend unanswered LCP requests after 2 seconds.
lcp-restart 2

# Specifies that pppd should disconnect if the link is idle for n seconds.
idle 600

# Specifies the maximal number of attempts to connect to the server. This
# is useful for dial on demand. Default value is 10.
#maxfail 3

# Disable the IPXCP and IPX protocols.
noipx

# In the file /etc/ppp/filters are some active-filter rules. See man pppd
# and man tcpdump for more informations.
file /etc/ppp/filters

#-------------------------------------------------------------------------
# The next two options are only interesting for you if you are admin of
# a system with other users that use ppp, and those users are normally
# never allowed to add default route, or you do not want users to
# replace the default route.
#-------------------------------------------------------------------------

# enable this to prevent users from attempting to add a default route.
# Use this option with caution: If the user needs to use a program like
# wvdial, he will not be able to connect because wvdial forces defaulroute
# but this is rejected by this option and the user will not be able to
# connect to the internet.
#nodefaultroute

# enable this to prevent users from replacing an existing default route.
#noreplacedefaultroute

#-------------------------------------------------------------------------
# All options below only make sense if you configure pppd to be a dial-in
# server, so don't touch these if you want dial into your provider with
# PPP!
#-------------------------------------------------------------------------

# Set the assumed name of the remote system for authentication purposes
# to <n>.
#remotename <n>

# Add an entry to this system's ARP [Address Resolution Protocol]
# table with the IP address of the peer and the Ethernet address of this
# system. {proxyarp,noproxyarp}
#proxyarp

# Use the system password database for authenticating the peer using
# PAP. Note: mgetty already provides this option. If this is specified
# then dialin from users using a script under Linux to fire up ppp wont work.
#login

# Specify which DNS Servers the incoming Win95 or WinNT Connection should use
# Two Servers can be remotely configured
#ms-dns 192.168.1.1
#ms-dns 192.168.1.2

# Specify which WINS Servers the incoming connection Win95 or WinNT should use
#ms-wins 192.168.1.50
#ms-wins 192.168.1.51
   
\end{verbatim}
\end{tscreen}











\subsubsection{/etc/ppp/pap-secrets
    \label{pap-secrets}
   }



In {\ttfamily /etc/ppp/pap-secrets} sollte folgendes eingetragen sein:

\begin{tscreen}
\begin{verbatim}
    <username> * <password> *
   
\end{verbatim}
\end{tscreen}


Damit auch bei CHAP-Authentifizierung alles klappt, tippen Sie:

\begin{tscreen}
\begin{verbatim}
       cp /etc/ppp/pap-secrets /etc/ppp/chap-secrets
   
\end{verbatim}
\end{tscreen}


Damit wird dann sowohl f\"ur PAP, als auch f\"ur CHAP ein korrekter Eintrag mit 
Ihren Providerdaten gefunden. Achten Sie darauf, da\ss{} Sie danach \"Anderungen immer
in beiden Files f\"uhren, damit Sie keine b\"osen \"Uberraschungen erleben, wenn dann
doch das Anmeldeverfahren durch Ihren Provider gewechselt wird.



Ihr chap-secrets und pap-secrets k\"onnte dann so aussehen : 
\begin{tscreen}
\begin{verbatim}
# Secrets for authentication using CHAP
# client    server    secret            IP addresses
"yourlogin@YOURPROVIDER"    *    "yourpassword"    *
   
\end{verbatim}
\end{tscreen}


Anmerkung1: $<$username$>$ ist der Name der einem vom Provider zugeteilt wurde
(z. B. die Teilnehmerkennung bei AON Kunden bzw. 
Benutzername@provider.at bei allen anderen \"osterreichischen Providern)
ohne Anf\"uhrungsszeichen und $<$password$>$ ist das 
Zugangspa\ss{}wort das Ihnen vom Provider zugeteilt wurde.



Anmerkung2: Nextra und Netway Anmerkung: August H\"orandl mu\ss{}te f\"ur seinen Nextra-Zugang in pap-secrets
die Zeile
\begin{tscreen}
\begin{verbatim}
    * * <password> *
   
\end{verbatim}
\end{tscreen}

eintragen, um eine Verbindung zustande zu bekommen. Sollten Sie bei der Anmeldung
Probleme haben, k\"onnte das eventuell helfen. Speziel z. B. NAK nach einem AuthReq, 
sollte durch diese \"Anderung behoben werden k\"onnen.

Anmerkung3:
\onlynameurl{Zimmermann Thomas {$<$}t.zimmermann@tz-com.at{$>$}}
berichtete am 13.8. :
\begin{tscreen}
\begin{verbatim}
UTA hat vor ca. 1 Woche alle User von PAP auf CHAP umgestellt. D.H. es
geht nur mehr mit der chap-secrets. Die pap-secrets sollte man loeschen.

Folgendes Problem tritt auf:
Kunde wird bei UTA fuer die Einwahl gesperrt (wenn mit PAP authentifiziert)
Nach Anruf des Kunden wird dieser wieder freigeschaltet, muss sich dann
aber das 1. mal richtig authentifizieren, sonst wird er wieder gesperrt!
Danach sind wieder 20 Fehlversuche moeglich.
   
\end{verbatim}
\end{tscreen}















\subsection{Hintergrund warum es Unterschiede zwischen AON und z. B. inode gibt:
  }

Bei alle Providern (au\ss{}er AON) ist es wichtig, da\ss{} der Name vollst\"andig
eingegeben wird, und zwar inkl. dem Teil hinter "@", da die Authentifizierung 
zuerst \"uber einen Radius - Proxy bei der TA l\"auft, der erst
mit dieser Angabe den richtigen Tunnel zum jeweiligen Provider \"offnet.

Bei Inode w\"are das also: username@inode.at

Besten Dank an 
\onlynameurl{Alois Martin Hopfer {$<$}louis@graz.inode.at{$>$}}
einen der Sysadmins von 
\onlynameurl{http://www.inode.at}
f\"ur die \"Uberarbeitung und den Test dieses Kapitels.








\subsection{pptp installieren
    }

Den aktuellen pptp client finden Sie unter
\onlynameurl{http://pptpclient.sourceforge.net/}
(MPPE ben\"otigen Sie f\"ur ADSL nicht.)








\subsubsection{pptp ausf\"uhrbar machen
     \label{pptp-ausfuehrbar}
     }

Sollten Sie Probleme mit pptp haben, bitte \"uberpr\"ufen Sie ob die Datei
pptp ausf\"uhrbar ist (eXecute Rechte auf dem File gesetzt). Kontrollieren
Sie mit
\begin{tscreen}
\begin{verbatim}
      ls -al /usr/sbin/pptp
     
\end{verbatim}
\end{tscreen}

ob das x in den Rechten f\"ur alle owner,group,others gesetzt ist. Sollte
das nicht der Fall sein, oder sollten Sie daran zweifeln, dann geben
Sie folgendes Kommando ein:
\begin{tscreen}
\begin{verbatim}
      chmod a+x /usr/sbin/pptp
     
\end{verbatim}
\end{tscreen}

Bedenken Sie, da\ss{} die Kommandos nur dann funktionieren, wenn Sie Ihren
pptp in das Directory /usr/sbin kopiert haben.

Dieses Kapitel wurde spendiert von
\onlynameurl{Aljosha {$<$}Aljosha.judmayer@aon.at{$>$}}










\subsubsection{pptp und BSD
     \label{pptp-BSD}
     }

Von
\onlynameurl{Martin Gro\ss{}hauser {$<$}csad2635@uibk.ac.at{$>$}}
stammt der Hinweis, da\ss{} der BSD-user zum betrieb von pptp den kernel neu 
kompilieren muss, und die option "pseudo-device GRE" abschuschalten ist.




















\subsection{Verbindung testen
   }

Testen des Verbindungsaufbau:
\begin{tscreen}
\begin{verbatim}
     pptp alcatel
   
\end{verbatim}
\end{tscreen}

Verbindung wieder abbauen
\begin{tscreen}
\begin{verbatim}
     killall pppd
     killall pptp
   
\end{verbatim}
\end{tscreen}


Wenn die Verbindung steht, sollte ifconfig etwa folgendes ausgeben:

\begin{tscreen}
\begin{verbatim}
     ppp0      Link encap:Point-to-Point Protocol  
               inet addr:10.66.8.39  P-t-P:172.19.90.132  Mask:255.255.255.255
               UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
               RX packets:346 errors:0 dropped:0 overruns:0 frame:0
               TX packets:352 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:10 
   
\end{verbatim}
\end{tscreen}



























\subsection{Automatisches Login/Logout
    \label{adsl-autologin}
   }

Nach erfolgreicher Ausf\"uhrung der nun folgenden Schritte loggt sich
das System in Zukunft immer selbst\"andig beim Hochfahren beim Provider
ein (bei erreichen des runlevel 3). ALLE Benutzer haben ab dann 
Zugriff auf das Internet, auch wenn sie keine  root-Rechte haben.
Beim Niederfahren des Systems (runlevel {$<$}3) wird automatisch
ausgeloggt.
Die Angaben beziehen sich auf SuSE!



Folgende Zeile ins File {\ttfamily /etc/rc.config} eintragen:
\begin{tscreen}
\begin{verbatim}
    ADSL="yes"
   
\end{verbatim}
\end{tscreen}


Nun das SuSE-Konfigurationsskript aufrufen (Schreibweise beachten!):
\begin{tscreen}
\begin{verbatim}
    SuSEconfig
   
\end{verbatim}
\end{tscreen}


Folgendes Skript unter dem Namen \onlynameurl{adsl}
nach {\ttfamily /sbin/init.d} (oder wo immer in Ihrer Distribution die Startscripts
liegen (SUSE $<$ 7.1 {\ttfamily /sbin/initd}, SUSE $>$= 7.1 {\ttfamily /etc/init.d}, RedHat {\ttfamily /etc/rc.d}, usw.)
kopieren. Das File mit chmod a+x adsl ausf\"uhrbar machen.

Nach {\ttfamily /sbin/init.d/rc3.d} wechseln und 2 symbolische Links erzeugen
\begin{tscreen}
\begin{verbatim}
     ln --symbolic ../adsl K18adsl
     ln --symbolic ../adsl S23adsl
   
\end{verbatim}
\end{tscreen}

Anmerkung 1: Das HOWTO wurde zum Gro\ss{}teil unter SUSE 6.x geschrieben. 
Sollten die Links K18 oder S23 schon vergeben sein,
dann suchen sie bitte nach der n\"achsten freien K(kill) oder S(tart) 
Nummer im Directory {\ttfamily /sbin/init.d/rc3.d} . Sollte die Start/Kill-Nummer
schon vergeben sein, dann suchen Sie eine freie und passen die obigen
ln -s Kommandos entsprechend an. Hier die ls Kommandos:
\begin{tscreen}
\begin{verbatim}
     ls -alp /sbin/init.d/rc3.d/K18*
     ls -alp /sbin/init.d/rc3.d/S23*
   
\end{verbatim}
\end{tscreen}

Anmerkung 2: F\"ur Redhat User sei hier noch angemerkt, da\ss{} die 
Startscripts bei Redhat in {\ttfamily /etc/rc.d} und nicht unter {\ttfamily /sbin/init.d} liegen.

So nun sollten wir mit dem auto-login-logout fertig sein.
Mit root-Rechten kann man das adsl-Skript auch
h\"andisch aufrufen. Folgene Parameter sind m\"oglich:
\begin{itemize}
\item adsl start   : Logon beim Provider
\item adsl stop    : Logoff 
\item adsl restart : Logoff und danach Login
\item adsl status  : Gibt aus, ob der pptp l\"auft oder nicht
\end{itemize}













\subsubsection{Fedora
    \label{adsl-autologin-fedora}
   }

Von 
\onlynameurl{hans-peter.lackner@netstruct.at (Hans-Peter Lackner)}     
stammt die neue Version des adsl-Skripts, dass auch unter Fedora funktioniert 
(getestet mit Version Fedora Core 2 final)
\begin{tscreen}
\begin{verbatim}
#! /bin/sh
#
# chkconfig: 2345 26 74
# description: for starting adsl
#
# Author: B.R. Jan 07 2000
# modified by StM - Mar 27 2003
#
# /sbin/init.d/adsl
#


. /etc/rc.d/init.d/functions

base=${0##*/}
link=${base#*[SK][0-9][0-9]}

test $link = $base && ADSL=yes
test "$ADSL" = yes || exit 0

test -x /usr/sbin/pptp || exit 0

return=$rc_done
case "$1" in
    start)
        echo -n "Login ADSL..."
        touch /var/run/adsl_up
        daemon /usr/sbin/pptp alcatel || return=$rc_failed
        echo -e "$return"
        ;;
    stop)
        echo -n "Logout ADSL..."
        rm -rf /var/run/adsl_up
        status /usr/sbin/pppd || return=$rc_failed
        killproc /usr/sbin/pptp || return=$rc_failed
        echo -e "$return"
        ;;
    restart)
        $0 stop && $0 start || return=$rc_failed
        ;;
    reload)
        ;;
    status)
        echo -n "Checking for connection to ADSL... "
        status /usr/sbin/pptp && echo "online" || echo "offline"
        ;;
    probe)
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
esac

test "$return" = "$rc_done" || exit 1
exit 0
   
\end{verbatim}
\end{tscreen}















\subsection{Speed Touch(tm) USB
     \label{adsl-usb}
    }

Mit freundlicher Erlaubnis von
\onlynameurl{tuxx@tuxx-home.at (Alexander Griesser)}     
d\"urfen wir hier das 
\onlynameurl{AT-Speedtouch-HOWTO}
zur Verf\"ugung stellen.

Die Beschreibung von
\onlynameurl{Harald M\"uller (Gonzo){$<$}gweb@aon.at{$>$}}
erkl\"art einfach und \"ubersichtlich den Setup eines
\onlynameurl{SpeedTouch USB unter Linux}.

Die folgenden Links bringen sie zu den Treibern f\"ur das
Speed Touch(tm) USB-Modem : 
\onlynameurl{http://www.alcatel.com/consumer/dsl/dvrreg\_lx.htm}

Eine Anleitung zu
\onlynameurl{Configuring the Speedtouch USB ADSL Modem} .
Hier wird erkl\"art was alles zu tun ist um das Speedtouch USB unter Linux
zum Laufen zu bringen.



\onlynameurl{Linux Driver page for SpeedTouch USB ADSL Modem}










\subsubsection{Inode USB Modem Zyxel Prestige Internetverbindung
     \label{adsl-usb-zyxel}
    }

Von
\onlynameurl{Filip Ljubas {$<$}f.ljubas@inode.at{$>$}}
wurde uns dieses Kapitel zur Verf\"ugung gestellt. Es beschreibt die Installation 
eines USB Modems Zyxel Prestige 630-41 mit Inode xDSL@home






\paragraph{http://eciadsl.flashtux.org/
    }

Unter
\onlynameurl{http://eciadsl.flashtux.org/ }
ist beschrieben wie man das Modem installiert. 

Wichtige Punkte sind:
\begin{itemize}
\item Dokumentation lesen (es gibt auch eine auf Deutsch)
\item Beginners Tutorial lesen
\item FAQ lesen (Besonders bei Problemen)
\item beachten, dass der Kernel OK ist (ab 2.6.7 kein patchen notwendig)
\item bei synchro files nehmt ihr Nr. 42 (WICHTIG!!! Sollten jedoch Probleme beim
Synchronisationsvorgang auftauchen, k\"onnt ihr auch ein anderes
ausprobieren).
\end{itemize}


Bei weiteren Problemen/Fragen k\"onnt ihr das Forum der Seite verwenden und
auch der IRC Channel (alles auf http://eciadsl.flashtux.org/  angef\"uhrt)!

Nachdem ihr dass Modem installiert habt und es sich auch richtig
synchronisiert (beide L\"ampchen leuchten und sonst keine Fehlermeldungen),
k\"onnt ihr versuchen eine Verbindung aufzubauen. Doch bevor ihr dass k\"onnt,
m\"usst ihr Punkt 2 erledigen:






\paragraph{http://www6.inode.at/support/internetzugang/xdsl\_student/konfiguration\_ethernet\_linux.html
    }

Vom Link
\onlynameurl{http://www6.inode.at/support/internetzugang/xdsl\_student/konfiguration\_ethernet\_linux.html}
das tar.gz Packet herunteladen und installieren. Eine Beschreibung befindet sich 
ebenfalls auf dieser Inode-Seite. Dabei geht man genau so vor, wie wenn man ein
Ethernet Modem h\"atte. Bei der Netzwerkkarte gebt ihr aber an: tap0

tap0 ist die Schnittstelle eures USB Modems (Es ist m\"oglich, dass euere USB
Schnittstelle anders lautet). 

Der Rest ist gleich, wie beim Ethernet Modem. Auch die Verbindung stellt ihr
her, wie von Inode beschrieben.

Verwendete Distribution: 
\begin{itemize}
\item SuSe 9.2
\item Kernel 2.6.8
\end{itemize}





















\subsection{xDSL (von inode)
     \label{xdsl}
    }

Von
\onlynameurl{Bernhard Roessmann {$<$}roessmann@gmx.net{$>$}}
stammt diese Anleitung f\"ur ein inode@student xDSL login/logout script. Der
"normale" inode-Zugang ist bei 
\onlynameurl{inode}
wunderbar beschrieben und erkl\"art.

Es gelten f\"ur dieses Kapitel folgende Anmerkungen:
\begin{itemize}
\item Fuer xdsl@student von Inode
\item Fuer Debian
\item DHCP-Client vorher installieren (unter Debian mit:
apt-get install dhcp-client)
\end{itemize}


Das Skript (siehe am Ende dieses Kapitels) kennt 3 Aufrufmoeglichkeiten:
\begin{itemize}
\item xdsl status : Gibt an, ob online oder offline
\item xdsl start  : Einloggen beim Provider
\item xdsl stop   : Ausloggen beim Provider
\end{itemize}


Weiters habe ich einen cronjob (in /etc/crontab) installiert, der jede 
Minute nachschaut, ob die Verbindung steht (ohne dass Traffic produziert 
wird!) und gegebenenfalls das Skript aufruft.

\begin{tscreen}
\begin{verbatim}
* * * * *   root    /sbin/start-stop-daemon --start --quiet --test --exec /usr/sbin/pptp && /etc/init.d/xdsl start
   
\end{verbatim}
\end{tscreen}









\subsubsection{xDSL Script von Bernhard Roessmann
     \label{xdsl-script-1}
    }

Hier nun das Script von Bernhard Roessmann:
\begin{tscreen}
\begin{verbatim}
#!/bin/sh
# xdsl login/logout
# Bernhard Roessmann 2002-12-29

MYSELF="$0"
CMD="$1"
ANT="10.0.0.138"

test -f /usr/sbin/pptp || exit 1
if test ! -s /var/lib/dhcp/dhclient.leases
then
 echo "no dhcp lease available"
 logger $MYSELF": no dhcp lease available"
 exit 1
fi

case $CMD in
start)  if ! start-stop-daemon --start --quiet --test --exec /usr/sbin/pptp >>/dev/nul
        then
            echo "already online"
            exit 1
        fi

        echo -n "logging in"
        logger $MYSELF" login..."

        #Man nehme die grobe Kelle ;-) fuer die Gateway-IP
        set $(grep "option routers" /var/lib/dhcp/dhclient.leases | tail -1 | cut -f5 -d' ' | tr -d ";")
        ROUTER="$1"
        if route -n | grep $ANT >>/dev/nul
        then
            /sbin/route del $ANT
        fi
        /sbin/route add $ANT gw $ROUTER

        start-stop-daemon --start --quiet --exec /usr/sbin/pptp $ANT >>/dev/nul &
        for foo in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
        do
            echo -n .
            sleep 1
            if ifconfig | grep ppp0 >>/dev/nul
            then
                #Nochmal die grobe Kelle ;-) fuer die richtige default-Route
                set $(ifconfig ppp0 | grep P-t-P | tr -s [:blank:] | cut -f4 -d' ' | cut -b7-)
                GATEWAY="$1"
                /sbin/route del default
                /sbin/route add default gw $GATEWAY
                echo "successful"
                logger $MYSELF" login: successful"
                exit 0
            fi
        done
        echo "failed"
        logger $MYSELF" login: failed"
        start-stop-daemon --stop --quiet --exec /usr/sbin/pptp >>/dev/nul
        route del $ANT
        exit 1
        ;;
stop)   if start-stop-daemon --start --quiet --test --exec /usr/sbin/pptp >>/dev/nul
        then
            echo "already offline"
            exit 1
        fi

        echo -n "logging out"
        logger $MYSELF" logout..."

        start-stop-daemon --stop --quiet --exec /usr/sbin/pptp >>/dev/nul
        for foo in 1 2 3 4 5
        do
            echo -n .
            sleep 1
            if ifconfig | grep ppp0 >>/dev/nul
            then
                continue
            else
                echo "successful"
                logger $MYSELF" logout: successful"
                route del $ANT
                exit 0
            fi
        done
        echo "failed"
        logger $MYSELF" logout: failed"
        exit 1
        ;;
status) if ifconfig | grep ppp0 >>/dev/nul
        then
            echo "online"
        else
            echo "offline"
        fi
        exit 0
        ;;
reload|force-reload)
        ;;
*)      echo "Usage: $MYSELF start|stop|status"
        exit 1
        ;;
esac
   
\end{verbatim}
\end{tscreen}





























\subsubsection{xDSL Script von Wolfgang Hackl
     \label{xdsl-script-2}
    }

\onlynameurl{Wolfgang Hackl {$<$}wolf.hackl@gmx.at{$>$}}
hat festgestell:

Das von Inode zur Verf\"ugung gestellte Script hat leider ein paar Macken
(d\"urfte auf einer \"alteren Distribution entwickelt worden sein?). Wesentlich
war allerdings, da\ss{} die Routen nicht richtig gesetzt wurden, d. h. es
wurde eine Verbindung aufgebaut, \"uber die nichts geschickt wurde.  Ich
habe das Script abge\"andert und mittlerweile ist es auch auf mehreren
Distributionen im Einsatz, weil ich auf Debian Woody umgestellt habe.
Ein Kollege hat das Script auch auf RedHat in Verwendung, weil er mit
der Inode-Anleitung auch nicht zurechtgekommen ist.

Und hier nun das Script von 
\onlynameurl{Wolfgang Hackl {$<$}wolf.hackl@gmx.at{$>$}}
\begin{tscreen}
\begin{verbatim}
#!/bin/sh
# /etc/init.d/xdsl
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
test $link = $base && XDSL=yes
test "$XDSL" = yes || exit 0
test -x /usr/sbin/pptp || exit 0

GATEWAY="`/sbin/route -n|/bin/grep "^0.0.0.0"|/usr/bin/cut -c17-32`"

case "$1" in
start)
        echo -n "Connecting to XDSL@inode"
        route del default eth1
        route add -host 10.0.0.138 eth1
        /usr/sbin/pptp inode defaultroute
        cp /etc/resolv.conf.bak /etc/resolv.conf
        echo -e "$return"
;;
stop)
        echo -n "Disconnecting from XDSL@inode"
        killall -9 /usr/sbin/pppd
        killall -9 /usr/sbin/pptp
        /sbin/route del -host 10.0.0.138
        echo -e "$return"
;;
restart)
        $0 stop && $0 start
;;
reload)
;;
status)
        echo -n "Checking for XDSL connection: "
        STATE=`ps aux|grep pptpd|grep -v grep`
        if [ X$STATE = "X1" ]
        then
                echo "online"
        else
                echo "offline"
        fi
;;
*)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
esac
exit 0
   
\end{verbatim}
\end{tscreen}















\subsubsection{xDSL Script von Wolfgang Hackl f\"ur Einwahl \"uber PPPoE
     \label{xdsl-script-3}
    }

\onlynameurl{Wolfgang Hackl {$<$}wolf.hackl@gmx.at{$>$}}
hat das folgende Script zur Verf\"ugung gestellt, mit dem man bei Inode XDSL
\"uber PPPoE einw\"ahlen kann. Der Zugang wurde mit pppoeconf eingerichtet.
\begin{tscreen}
\begin{verbatim}
 #!/bin/sh
export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin

case "$1" in
start)
        echo -n "Connecting to XDSL@inode"
        route del default eth1
        /usr/bin/pon dsl-provider defaultroute
;;
stop)
        echo -n "Disconnecting from XDSL@inode"
        /usr/bin/poff dsl-provider
        killall -9 pppd
;;
restart)
        $0 stop && $0 start
;;
status)
        echo -n "Checking for XDSL connection: "
        ifconfig ppp0 2>&1 > /dev/null
        STATE=`echo $?`
        if [ X$STATE = "X0" ]
        then
                echo "online"
        else
                echo "offline"
        fi
;;
*)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
esac
   
\end{verbatim}
\end{tscreen}









\subsubsection{xDSL Einwahl bei Inode
     \label{xdsl-script-4}
    }

Von 
\onlynameurl{Jacob Rief {$<$}jacob.rief(at)gmx.at{$>$}} 
stammt dieses Kapitel

Sicherstellen, dass die RPM-Pakete dhclient, ppp und pptp installiert sind. pptp ist
nicht in der Standard-Distribution vorhanden, man muss es also gegebenenfalls 
nachinstallieren, z.B. von http://pptpclient.sourceforge.net/

Die Netzwerkeinstellungen m\"ussen auf DHCP eingestellt sein, die Datei
/etc/sysconfig/network-scripts/ifcfg-eth0 sollte wie folgt aussehen
\begin{tscreen}
\begin{verbatim}
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
   
\end{verbatim}
\end{tscreen}

Nach einem Netzwerk neustart
\begin{tscreen}
\begin{verbatim}
# /etc/init.d/network restart 
   
\end{verbatim}
\end{tscreen}

sollten das Ethernet-Interface eine IP-Adresse zugewiesen bekommen.

Dies kann man wie folgt \"uberpr\"ufen.
\begin{tscreen}
\begin{verbatim}
# /sbin/ifconfig
eth0      Protokoll:Ethernet  Hardware Adresse 00:11:22:33:44:55
          inet Adresse:10.89.0.250  Bcast:10.89.255.255  Maske:255.255.0.0
          inet6 Adresse: fe80::230:1bff:feb6:4426/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12545 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9365 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:6011628 (5.7 MiB)  TX bytes:1168102 (1.1 MiB)
          Interrupt:10 Speicher:e8020000-0

lo        Protokoll:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1698 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1698 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:2312190 (2.2 MiB)  TX bytes:2312190 (2.2 MiB)
   
\end{verbatim}
\end{tscreen}

Nun muss dhclient noch dazu gebracht werden, dass auch der ppp-Tunnel mittels pptp aufgebaut
wird. Hierzu muss die Datei /etc/dhclient-exit-hooks erstellt werden:
\begin{tscreen}
\begin{verbatim}
MODIP="10.0.0.138"
if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
  [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then
  route del default 2>/dev/null
  route del -host $MODIP 2>/dev/null
  for route in $new_routers; do
    route add -host $MODIP gw $route
  done
  pptp $MODIP
  return 0
fi
   
\end{verbatim}
\end{tscreen}


Jetzt muss nur noch der ppp-Daemon konfiguriert werden.
In der Datei /etc/ppp/options
\begin{tscreen}
\begin{verbatim}
lock
name loginame@home
defaultroute
noipdefault
noauth
asyncmap 0
   
\end{verbatim}
\end{tscreen}

ersetzt man loginname@home mit dem Inode-Loginnamen.

In diesen beide Dateien tr\"agt man den Loginnamen und dass Inode-Passwort ein:
/etc/ppp/chap-secrets und /etc/ppp/pap-secrets
\begin{tscreen}
\begin{verbatim}
"loginname@home" * "password"
   
\end{verbatim}
\end{tscreen}


Nach einem weiteren Netzwerk neustart, sollte mittels pptp ein ppp-Tunnel zum Inode Server
aufgebaut werden. Dies kann mittels ifconfig \"uberpr\"uft werden.
\begin{tscreen}
\begin{verbatim}
# /sbin/ifconfig
<...snip...>
ppp0      Protokoll:Punkt-zu-Punkt Verbindung
          inet Adresse:83.64.19.245  P-z-P:62.99.171.103  Maske:255.255.255.255
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:6977 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6599 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:3
          RX bytes:5376573 (5.1 MiB)  TX bytes:614146 (599.7 KiB)
   
\end{verbatim}
\end{tscreen}

F\"ur Fragen und Anregungen bin ich unter
\onlynameurl{Jacob Rief {$<$}jacob.rief(at)gmx.at{$>$}}
erreichbar.




























\subsection{Anmerkungen
   }

\begin{itemize}
\item Erweiterte Debug-Meldungen des pppd k\"onnen mittels Option
DEBUG in {\ttfamily /etc/ppp/options} eingestellt werden
\item Alte Versionen des pppd machen oft Probleme, neueste Version
besorgen! 
\item Debug Ausgaben anzeigen z.B. mit "tail -f /var/log/messages"
\item Das Login-Skript ber\"ucksichtigt keine Einwahlprobleme      
\item Quelle: http://infolibre.free.fr/adsl/adsl.html
\item Weitere interessanter Link zum Thema: \onlynameurl{RADAWANA ADSL-HOWTO}.
\item Kommentare/Verbesserungsvorschl\"age ausdr\"ucklich erw\"unscht
\end{itemize}









\subsection{ADSL Wiedereinwahl Script
    \label{ADSL-reconnect}
    }




\subsubsection{Variante adsl.sh
   }

Von 
\onlynameurl{Roland Seuhs {$<$}roland@wertkarten.net{$>$}}
(Hier gibts \onlynameurl{Rolands Homepage})
stammt das folgende Script adsl.sh. Dieses Script verwendet Roland
um sich erneut einzuw\"ahlen, sollte die Verbindung abbrechen.

Im Script sind die IP-Adressen eventuell zu korrigieren, da diese
von Provider zu Provider unterschiedlich sein k\"onnen.

(Und nat\"urlich das chmod a+x adsl.sh nicht vergessen, 
damit das Script auch ausf\"uhrbar ist).

\begin{tscreen}
\begin{verbatim}
#!/bin/sh

LOGFILE=/var/log/adsl.log

Firewall()
{
IPCHAINS=/sbin/ipchains

#INET_DEV=$3
#INET_IP=$2
INET=0.0.0.0/0

#LNET_DEV=eth0
#LNET_IP=192.168.0.4
#LNET=192.168.0.0/24
LNET_DEV=$2
LNET=$3
LNET_IP=$4

INET_DEV=$5
INET_IP=$6

INET_DEV2=eth0
INET_IP2=10.0.0.140


#***********************************

case "$1" in
    start)
#        route add default $INET_DEV

        echo Inet-Dev: {INET_DEV} Inet-IP: {INET_IP}

# flush all rules
#       $IPCHAINS -F
        $IPCHAINS -F input
        $IPCHAINS -F output
# set default policies
        $IPCHAINS -P input      DENY
        $IPCHAINS -P output     DENY
#       $IPCHAINS -P forward    DENY

        # INPUT-chain
        # full access for LAN
        #       $IPCHAINS -A input -i ${LNET_DEV}       -s ${LNET}              -d ${INET} -j ACCEPT
        # no IP spoofers wanted (log that)
        $IPCHAINS -A input -i ${INET_DEV}       -s ${LNET}              -d ${INET} -j DENY -l
        #       $IPCHAINS -A input -i ${INET_DEV2}      -s ${LNET}              -d ${INET} -j DENY -l
        # turn on ports from 1023+
        # ACHTUNG! ssh funktioniert nur noch mit der Option -P !!!
        echo 1023+
        $IPCHAINS -A input -i ${INET_DEV} -p tcp -s ${INET}   -d ${INET_IP}/32 1023:65535  -j ACCEPT
        $IPCHAINS -A input -i ${INET_DEV} -p udp -s ${INET}   -d ${INET_IP}/32 1023:65535  -j ACCEPT
        # turn on ssh
        echo turn on ssh
        $IPCHAINS -A input -i ${INET_DEV} -p tcp -s ${INET}    -d ${INET_IP}/32 22 -j ACCEPT
#        $IPCHAINS -A input -i ${INET_DEV} -p tcp -s ${INET}             -d ${INET_IP}/32 80 -j ACCEPT

#       $IPCHAINS -A input -i ${INET_DEV2} -p tcp -s ${INET}            -d ${INET_IP2}/32 22 -j ACCEPT


        # ICMP answers allowed
        $IPCHAINS -A input -i ${INET_DEV} -p icmp -s ${INET}            -d ${INET_IP}/32        -l -j ACCEPT
        # local interface OK
        $IPCHAINS -A input -i lo        -j ACCEPT
        $IPCHAINS -A input -l

        $IPCHAINS -A input -i ${LNET_DEV} -j ACCEPT

#       $IPCHAINS -A input -i ${INET_DEV} -j ACCEPT
        $IPCHAINS -A input -i ${INET_DEV2} -j ACCEPT


# OUTPUT-chain
        $IPCHAINS -A output -i ${LNET_DEV}      -s ${INET}      -d ${LNET} -j ACCEPT
# LAN via ppp reachable??
        $IPCHAINS -A output -i ${INET_DEV}      -s ${INET}      -d ${LNET} -j DENY -l
# trash unmasked packets
        $IPCHAINS -A output -i ${INET_DEV}      -s ${LNET}      -d ${INET} -j DENY
# trash SMB/NBD packets.
#       $IPCHAINS -A output -i ${INET_DEV} -p tcp -s ${INET} 137:139    -d ${INET} -j DENY -l
#       $IPCHAINS -A output -i ${INET_DEV} -p udp -s ${INET} 137:139    -d ${INET} -j DENY -l
# masqd, INET is dest -> ok
        $IPCHAINS -A output -i ${INET_DEV}      -s ${INET_IP}/32        -d ${INET}      -j ACCEPT
        $IPCHAINS -A output -i ${INET_DEV2}     -s ${INET_IP2}/32       -d ${INET}      -j ACCEPT
# local interface ok
        $IPCHAINS -A output -i lo       -j ACCEPT
#log anything else
        $IPCHAINS -A output -l

        $IPCHAINS -A output -i ${LNET_DEV} -j ACCEPT

#       $IPCHAINS -A output -i ${INET_DEV} -j ACCEPT
        $IPCHAINS -A output -i ${INET_DEV2} -j ACCEPT

        # FORWARD-chain
        # masquerade ip-addr. local -> inet
        #       $IPCHAINS -A forward -i ${INET_DEV} -s ${LNET} -d ${INET} -j MASQ
        #       $IPCHAINS -A forward -l
                ;;
    stop)
#        route del default
#        $IPCHAINS -F
        $IPCHAINS -P input   ACCEPT
        $IPCHAINS -F input
#       $IPCHAINS -P forward ACCEPT
        $IPCHAINS -P output  ACCEPT
        $IPCHAINS -F output
                ;;
    *)
    echo "Usage: $0 {start|stop} <LAN device> <LANet> <LAN IP> <Internet device> <Internet IP>"
    return 1
esac

return 0
}

verbinden()
{
        echo Verbindung aufbauen
        killall -w pptp
        rm -rf /var/run/pptp/*
        pptp 10.0.0.138 10.0.0.140: >> /tmp/adsl.output &
        sleep 40

        IPNummer=`/sbin/ifconfig | grep -2 ppp | grep addr | cut -f2 -d: | \
                 tr " " : | cut -f1 -d:`
        if ping -c 1 $IPNummer
        then
                # Alles OK
                echo
                echo alles OK, Verbindung steht!
                echo `date` Verbindung steht: $IPNummer >> $LOGFILE
                # Achtung! Firewall argumente vorher überprüfen!
                Firewall start eth1 192.168.0.0 192.168.0.1 `/sbin/ifconfig | \
                         grep ppp | tr " " : | cut -f1 -d:` $IPNummer
        else
                sleep 10
                echo
                echo `date` Einwahl fehlgeschlagen, versuche es nochmal
                echo `date` Einwahl fehlgeschlagen, versuche es nochmal >>  $LOGFILE
                killall pptp
        fi
}


echo "Skript für österreichische ADSL Provider Anbindung"
echo " (c) Roland Seuhs 2000"
echo "Dieses Skript versucht eine ständige Internetverbindung aufrecht zu erhalten."
echo "Wenn alles OK ist, schreibt es Punkte an die Standardausgabe"
while true
do
        if /bin/ping -c 1 dns1 > /dev/null 2> /dev/null
        then
                echo -n .
        else
                if /bin/ping -c 1 dns2 > /dev/null 2> /dev/null
                then
                        echo -n .
                else
                        echo
                        echo baue Verbindung auf
                        #date >> /root/Verbindung.log
                        verbinden
                        sleep 80 # Das kann dauern, bis die Verbindung steht ;-)
                fi
        fi
        sleep 30
done 
   
\end{verbatim}
\end{tscreen}




Sollte obiges Script nicht funktionieren, sei noch angemerkt neuerdings hei\ss{}t es: 
\begin{tscreen}
\begin{verbatim}
   pptp 10.0.0.138 --localbind 10.0.0.140
   
\end{verbatim}
\end{tscreen}

anstatt wie bisher
\begin{tscreen}
\begin{verbatim}
   pptp 10.0.0.138 10.0.0.140:
   
\end{verbatim}
\end{tscreen}













\subsubsection{Variante ip-down
    \label{ADSL-reconnect-ipdown}
   }

Von \onlynameurl{Dieter WERNER {$<$}d\_werner@gmx.net{$>$}}
stammt die folgende Variante das Wiedereinwahlproblem zu l\"osen.

Um nicht st\"andig PINGs mit dem Provider  austauschen zu m\"ussen 
scheint am einfachsten die Verwendung von {\ttfamily /etc/ppp/ip-down}
(bei SuSE), das sowieso ausgef\"uhrt wird wenn die PPP Verbindung
abbricht. Mit dem Script \onlynameurl{adsl} im Kapitel 
\ref{adsl-autologin} {(Automatisches Login/Logout)}.
l\"a\ss{}t sich das sch\"on realisieren:

Einfach im "start" Zweig die Zeile
\begin{tscreen}
\begin{verbatim}
    touch /var/run/adsl_up
   
\end{verbatim}
\end{tscreen}


einf\"ugen und im "stop" Zweig ein
\begin{tscreen}
\begin{verbatim}
    rm -f /var/run/adsl_up
   
\end{verbatim}
\end{tscreen}

einf\"ugen.

Dann noch in {\ttfamily /etc/ppp/ip-down} (oder bei SuSE {\ttfamily /etc/ppp/ip-down}.local) im
"...down" Zweig die Zeile
\begin{tscreen}
\begin{verbatim}
    test -f /var/run/adsl_up && adsl restart
   
\end{verbatim}
\end{tscreen}


Die entsprechende Zeile sieht so aus (die "sleep" sollen
sicherstellen, dass die alte Verbindung komplett abgebaut ist):
\begin{tscreen}
\begin{verbatim}
    test -f /var/run/adsl_up && (/usr/bin/killall pppd;sleep 5;/usr/bin/killall pptp;sleep 15;/sbin/startproc /usr/local/sbin/pptp alcatel)
   
\end{verbatim}
\end{tscreen}


Gegen\"uber der ping L\"osung hat diese L\"osung den Vorteil, dass man sich
"Netzwerklast" und einen Proze\ss{} spart und vor allem dass der neue
Verbindungsaufbau direkt durch den Verbindungsabbau getriggert wird.
















\subsubsection{Variante direkt in der cron-tab
    \label{ADSL-reconnect-crontab}
   }

Von
\onlynameurl{Martin Gro\ss{}hauser {$<$}csad2635@uibk.ac.at{$>$}}
stammt die Idee, das Erkennen der ausgefallenen Leitung direkt in der 
crontab zu erkennen und dort direkt zu beheben. Hierzu f\"ugen Sie in der 
Datei /etc/crontab die nachfolgende Zeile ein. Die Zeile teilt dem 
cron-d\"amon mit, jede Minute einen ping auf die angegebene Adresse
auszuf\"uhren. Im Falle das dieser Ping mit Fehler endet, wird das
Script adsl mit dem Parameter reconnect aufgerufen.
\begin{tscreen}
\begin{verbatim}
    0-59 * * * * root ping -c 1 ip.ad.res.se || adsl reconnect
   
\end{verbatim}
\end{tscreen}

Nachteil: sollte der gepingte Rechner nicht erreichbar sein, dann wird
jede Minute die adsl-Verbindung frisch aufgebaut. Gegenma\ss{}nahme: suchen 
Sie einen Server von dem Sie sicher sind, da\ss{} wenn der nicht da ist, sie
h\"ochst wahrscheinlich nicht mehr weiterarbeiten m\"ochten und Ihnen dieser
"Nebeneffekt" damit egal ist.

Dieses Kapitel wurde eingef\"ugt, da lt. Martin Gro\ss{}hauser die anderen Varianten
seit Suse 7.x nicht mehr funktionieren. Daf\"ur funktioniert diese Variante auch
unter netbsd1.6.1














\subsection{Script zum R\"ucksetzen der ANT
    \label{ANT-RESET}
   }

Von
\onlynameurl{Manfred Larcher {$<$}m1.larcher@tirol.com{$>$}} stammt dieses Kapitel

Das Modem kann sich ja immer wieder mal so ganz ohne weiteres Zutun 
aufh\"angen und wenn man dann nicht immer selbst oder jemanden anderen 
hinschicken will zum Ein- und Ausschalten, dann kann man folgendes 
Script verwenden um einen Reset und damit eine neue Leitungsyncronisation
zu erzwingen!
\begin{tscreen}
\begin{verbatim}
     ###############
     #!/bin/sh 
     ( echo -n -e '\r'
       sleep 2
       echo -n -e root'\r'
       sleep 2
       echo -n -e system'\r'
       sleep 2 
       echo -n -e reboot'\r'
       sleep 2 ) | telnet alcatel

     rm /var/run/pptp/10.0.0.138

     sleep 60
     pptp alcatel &
     
     ###############
   
\end{verbatim}
\end{tscreen}

Zur Erk\"arung, es wird einfach eine Telnet Verbindung aufgebaut und
die n\"otigen Befehle f\"ur einen Reset geschickt. Danach noch das
Verbindungs-File in /var/run/pptp l\"oschen und nach weiteren 60
Sekunden (Leitungssynchronisation) starten wir den pptp wieder.
(alcatel sollte nat\"urlich in der {\ttfamily /etc/hosts} eingetragen sein)

Idealerweise baut man das ganze dann noch in das Script ein welches
via Ping die Verbindung \"uberwacht und man wird so schnell keine
Probleme mehr haben!




\subsubsection{Anmerkung von Heimo
    }

Hat jemand Lust das Script auf expect umzustellen? 
Dieses hardcoded sleeps gefallen mir nicht wirklich und ich habe
selber leider kein ADSL.




\subsubsection{ACHTUNG A1000 User!!!
    }

\onlynameurl{Marco Kammerer {$<$}m.kammerer@gmx.at{$>$}} hat herausgefunden,
das dieses RESET Script leider nur bei der One-Touch
Version(tm) funktioniert. 

Das A1000  (ISDN) ben\"otigt ein Pa\ss{}wort f\"ur den telnet-Zugang.




\subsubsection{Eine Variante des R\"ucksetz-Scripts auf Basis von Expect
    }

\onlynameurl{Erich Birngruber {$<$}ebirn@gmx.at{$>$}}
schickt uns das folgende Script. Das Script setzt die ANT zur\"uck.
Es basiert auf der Verwendung von expect und sollte sich daher leicht
in \"ubergeordnete Scripts integrieren lassen.
\begin{tscreen}
\begin{verbatim}
#!/usr/bin/expect

# Benutzername, Passwort und Hostname fuer ANT
set USERNAME "antuser"
set PASSWORD "strenggeheim"
set ANT "alcatel"

# Langsamere Zeichenuebergabe war bei mir
# notwendig, damit der ANT die Befehle
# annimmt

set send_slow {1 .1}

# Telnet Verbindung herstellen
spawn telnet $ANT

# am ANT anmelden
expect "User : "
send "$USERNAME\r"

expect "Password : "
send "$PASSWORD\r"

# ins Menue "system" wechseln und neustarten
expect -e "=>"
send -s "system\r"

expect -e "[system]=>"
send -s "reboot\r"

exit
   
\end{verbatim}
\end{tscreen}















\subsection{ADSL vs. Security?
    \label{ADSL-Security}
   }

Anfang April 2001 kam die Sicherheit der ANT ins Gerede.
F\"ur alle die sich mal mit dem Expert-Mode Ihrer ANT spielen wollen, gibt
es hier die M\"oglichkeit sich das Pa\ss{}wort f\"ur den Expert-Mode zu holen.
Sie m\"ussen nur die MAC-Adresse Ihrer ANT in das Eingabefenster eingeben
und erhalten das Pa\ss{}wort zur\"uck. Die Texteingabe mu\ss{} lauten (ohne Hochkomma) :

"SpeedTouch (MAC-adresse)" 

Der Link : 
\onlynameurl{http://security.sdsc.edu/self-help/alcatel/challenge.cgi}

Hier noch ein paar Links zum Thema (ohne Wertung und Gewichtung):

\begin{itemize}
\item \onlynameurl{http://security.sdsc.edu/self-help/alcatel/}
\item \onlynameurl{http://slashdot.org/articles/01/04/11/1249209.shtml}
\item \onlynameurl{http://www.alcatel.com/consumer/dsl/security.htm}
\item \onlynameurl{http://security.sdsc.edu/self-help/alcatel/alcatel-bugs}
\end{itemize}















\subsection{Auswertung des Syslog
     \label{logauswertung}
    }

\onlynameurl{Dieter WERNER {$<$}d\_werner@gmx.net{$>$}}
hat dieses Kapitel und die drei Scripts
\onlynameurl{downlamount},
\onlynameurl{logsurf} und
\onlynameurl{logsr}
spendiert.

Bei bestehender ADSL Verbindung sind zwei Arten von Eintr\"agen in
/var/log/messages besonders interessant: Meldungen der Firewall
\"uber verd\"achtige Pakete und die Meldungen des pppd \"uber die empfangene
Datenmenge als Kontrolle \"uber das Downloadlimit.

Mit einfachen Scripts kann man diese Information extrahieren und
aufbereiten. Hier drei Beispiele, die Lokalisierung der Dateien
entspricht SuSE.






\subsubsection{Firewallauswertung mit logsurf und logsr
    }

\onlynameurl{logsurf} ist ein Script das aus /var/log/messages Meldungen mit
REJECT/DENY/ACCEPT f\"ur einen bestimmten Tag extrahiert. Dieser Tag
ist entweder das aktuelle Datum (aus der letzten Zeile in
/var/log/messages) oder ein Datum das in der Shellvariable
TAG \"ubergeben wird. Dabei muss auf die korrekte Notation geachtet
werden (6 Zeichen, davon 3 Zeichen Monat, 1 oder 2 Leerzeichen, 2 oder
1 stellig Tag des Monats - die Angabe wird direkt f\"ur ein grep verwendet). 
ZB: 
\begin{tscreen}
\begin{verbatim}
    $ export TAG="Jun 17" ; logsurf
    $ export TAG="Jun  7" ; logsurf
   
\end{verbatim}
\end{tscreen}

\onlynameurl{logsr} verwendet \onlynameurl{logsurf} 
und reduziert die Ausgabe weiter. Bestimmte
Eintr\"age werden verworfen (die ICMP Pakete von AON) und die Ausgabe
gek\"urzt. zB aktuelles Datum:
\begin{tscreen}
\begin{verbatim}
    $ unset TAG ; logsr
   
\end{verbatim}
\end{tscreen}

Der Inhalt der Variable TAG wird etwas plausibilisiert, allerdings
kann man ohne weiteres einen 39. Februar eingeben und erh\"alt dann 
nat\"urlich keine Ausgabe.






\subsubsection{Downloadvolumenauswertung mit downlamount
   }

Beim Beenden einer PPP Verbindung schreibt der pppd die Anzahl der
empfangenen und gesendeten Bytes in /var/log/messages. Das bietet
sich an um die Downloadmenge zu kontrollieren.

Das Script \onlynameurl{downlamount} durchsucht /var/log/messages nach diesen
Meldungen f\"ur ppp0 (falls man mehrere PPP Verbindungen hat kann man die
gew\"unschte also ausw\"ahlen, es sollte nur immer die selbe sein) 
und summiert die einzelnen Verbindungen f\"ur ein Monat auf. 
Es nimmt entweder das aktuelle Monat (aus dem letzten
Eintrag in /var/log/messages) oder ein gew\"ahltes Monat aus der 
Variable MONAT (Jan$|$Feb$|$Mar$|$Apr$|$May$|$Jun$|$Jul$|$Aug$|$Sep$|$Oct$|$Nov$|$Dec). Bei
fehlerhafter Monatsangabe wird das aktuelle Monat verwendet.
Anmerkungen:

Falls /var/log/messages (eventuell bei bestimmter Gr\"o\ss{}e automatisch)
komprimiert wird sollte man rechtzeitig zuvor die bis dahin angefallenen
Werte notieren. 

Falls der pppd zu unsanft beendet wird (zB beim Shutdown oder kill -9) 
kommt er nicht mehr dazu diese Meldungen zu schreiben.

Da /var/log/messages nur von root gelesen werden k\"onnen verwende 
ich "sudo" und "alias":
\begin{tscreen}
\begin{verbatim}
    alias log='sudo /usr/local/sbin/logsr'
    alias dla='sudo /usr/local/sbin/downlamount'
   
\end{verbatim}
\end{tscreen}

zum Beispiel: 
\begin{tscreen}
\begin{verbatim}
    $ log
    $ dla
    $ export MONAT=Mai ; dla
    $ export TAG="Jun  1" ; log
   
\end{verbatim}
\end{tscreen}























\subsection{zwei Netzwerkkarten und ADSL
    }

In der at.linux schreibt 
\onlynameurl{Philipp Schmid {$<$}schmidp@o000o.org{$>$}} folgenden Tip, 
den ich Ihnen nicht vorenthalten m\"ochte:

Zitat:

Da ich zwei Netzwerkkarten habe mu\ss{} ich immer angeben \"uber welche ich
die ppp Verbindung aufbauen will. Bei mir geht das mit 
\begin{tscreen}
\begin{verbatim}
    pptp 10.0.0.138 10.0.0.140:
   
\end{verbatim}
\end{tscreen}

Wobei 10.0.0.140 die ip meiner netzwerkkarte ist und 10.0.0.138 die vom ant.
(Den doppelpunkt hinter der zweiten ip nicht vergessen).

Sollte der pptp nicht funktionieren, sei noch angemerkt neuerdings hei\ss{}t es: 
\begin{tscreen}
\begin{verbatim}
   pptp 10.0.0.138 --localbind 10.0.0.140
   
\end{verbatim}
\end{tscreen}

anstatt wie bisher
\begin{tscreen}
\begin{verbatim}
   pptp 10.0.0.138 10.0.0.140:
   
\end{verbatim}
\end{tscreen}















\subsection{SuSE
     \label{adsl-suse}
    }




\subsubsection{SuSE 8.1
    }

\onlynameurl{Dieter H\"ofler {$<$}dieter.hoefler@gmx.at{$>$}}
hat uns folgenden Beitrag spendiert und schrieb:

Ich habe gerade eine ADSL Verbindung unter SuSE 8.1 mit Hilfe 
Ihres ADSL HOWTOs eingerichtet. Dabei haben sich einige \"Anderungen
zur bisherigen Vorgehensweise ergeben: 

\begin{itemize}
\item die Nameserver werden am besten nun auch mit
Hilfe von YAST im Netzwerk/Basis, gleich bei 
der Konfiguration der Netzwerkkarte 
(10.0.0.140) mitangelegt. 
 
\item das PPTP Protokoll habe ich weiterverwendet 
\end{itemize}


Die gr\"o\ss{}ten \"Anderungen betreffen die automatische Einwahl:

Das System der rc.config wurde aufgegeben und durch ein 
anderes System ersetzt. Dies macht \"Anderungen am ADSL 
Skript notwendig (Skript liegt bei). Dieses wird 
nach /etc/rc.d/ kopiert und mit chmod +x adsl lauff\"ahig 
gemacht. (wie bisher) 

  
Um nun das Skript in die entsprechenden Runlevels einzubinden mu\ss{} der 
Runlevel Editor in YAST-System gestartet werden. dort wird dann der 
entsprechende Runlevel (meist 3 und 5) makiert und beim Button 
Anwenden/Zur\"ucksetzen auf Dienst aktivieren gesetzt. 

 
Das Skript kann in der Konsole mit rcadsl start (stop, restart, oder 
status) manuell bedient werden. Weitere Details zu den Optionen des
Scripts, finden Sie im Script selbst. Das Script bekommen Sie
\onlynameurl{hier} (download eventuell mit SHIFT und 
linke Maustaste.) Nach dem download mu\ss{} das Script renamed werden auf adsl:
\begin{tscreen}
\begin{verbatim}
       mv adsl-8.1 adsl
       chmod a+x adsl
    
\end{verbatim}
\end{tscreen}







\subsubsection{SuSE 8.2
    }

An dieser Stelle sein noch darauf hingewiesen, da\ss{}
\onlynameurl{Daniel Imrich {$<$}newsgroups@danielimrich.net{$>$}}
mit dieser
\onlynameurl{Anleitung {$<$}http://howto.htlw16.ac.at/at-highspeed-howto-2.html\#ss2.9{$>$}}
sehr gute Erfolge bei SuSE 8.2 hatte.

Als VPI/VCI-Nummern mu\ss{} man f\"ur \"Osterreich 8.48 eintragen.
Bei
\onlynameurl{Daniel Imrich {$<$}newsgroups@danielimrich.net{$>$}}
hat das auf Anhieb geklappt.
















\subsubsection{Suse-Firewall und ADSL
     \label{adsl-suse-firewall}
    }

Dieses Kapitel zeigt die Verwendung und Konfiguration der SuSE Firewall 
(Pakete "ipchains" und "firewals") f\"ur ADSL. 
F\"ur dieses Kapitel bedanken wir uns bei
\onlynameurl{Dieter WERNER {$<$}d\_werner@gmx.net{$>$}}

Nach der Entscheidung f\"ur einen ADSL Zugang und nach Meldungen,
da\ss{} auch zunehmend Linux Systeme Ziele von Angriffen sind,
(Anm.d.Red.: Linux Systeme weisen zwar eine der Konstruktion
des Betriebssystems anhaftende nat\"urliche Festigkeit gegen\"uber
Angriffen von au\ss{}en auf, aber entschuldigt deshalb noch lange
nicht das Fehlen einer Firewall. Vorallem bei \"alteren Linux
Installationen sollten die Server und D\"amonen regelm\"a\ss{}ig
aktualisiert werden um bekannte L\"ocher zu stopfen).
habe ich mich zur Installation einer Firewall entschlossen.
Zu diesem Zeitpunkt hatte ich einen Modem-Dialup Zugang, d.h.
eine bestehende ppp Konfiguration unter SuSE 7.0 mit wvdial.
Mit dem Umstieg auf eine quasi-Standleitung \"uber ADSL wurde
dann eine Firewall notwendig.

Als Firewall Laie habe ich einfach die SuSE Pakete "ipchains" 
und "firewals" aus der Serie "sec1" installiert. Voraussetzung 
ist auch, da\ss{} man einen Kernel verwendet bei dessen Erstellung 
die Parameter
\begin{tscreen}
\begin{verbatim}
    CONFIG_FIREWALL=y
    CONFIG_IP_FIREWALL=y
   
\end{verbatim}
\end{tscreen}

gesetzt waren (bei den SuSE Kerneln ist das der Fall).

Zus\"atzlich braucht man nur in der Datei {\ttfamily /etc/ppp/ip-up} das 
Kommentarzeichen vor den Zeilen 
\begin{tscreen}
\begin{verbatim}
    test "$START_FW" = yes && /sbin/SuSEfirewall
   
\end{verbatim}
\end{tscreen}

(f\"ur den case "ppp" "ip-up" und "ip-down") zu entfernen und 
am besten mit YaST die Variablen START\_FW=yes und 
FW\_DEV\_WORLD=ppp0 zu setzen.

{\ttfamily /sbin/SuSEfirewall} setzt bei Aktivierung des ppp-Interfaces mittels
ipchains die Firewall Regeln in Abh\"angigkeit von weiteren Variablen. 
Die Defaultkonfiguration dieser weiteren Variablen (sie beginnen alle
mit "FW\_") war f\"ur meinen Einsatzzweck bereits ausreichend. 

SuSEconfig erzeugt mit den FW\_ Variablen die Datei {\ttfamily /etc/rc.config.d/firewall.rc.config }
in der die gesetzten Variablen enthalten und ausf\"uhrlich 
kommentiert sind. Z.B. kann man mit FW\_ALLOW\_PING\_FW=yes/no 
konfigurieren, ob die Firewall einen ankommenden ping 
beantwortet oder nicht.

Die Firewall wird jetzt bereits beim Eintritt in runlevel 2/3
initialisiert. Zu diesem Zeitpunkt existiert das ppp Interface
noch nicht was zu einer Warnung f\"uhrt die ignoriert werden kann.
Sobald da\ss{} ppp Interface aktiv wird werden die ipchains Regeln 
via {\ttfamily /etc/ppp/ip-up} und {\ttfamily /sbin/SuSEfirewall} gesetzt und 
beim Abbruch der Verbindung durch {\ttfamily /etc/ppp/ip-down} und 
{\ttfamily /sbin/SuSEfirewall} wieder gel\"oscht.

Die Firwall loggt in "/var/log/messages" oder 
"/var/log/firwall" verworfene (DENY) und verd\"achtige 
angenommene (ACCEPT) Pakete mit. Das logging level 
l\"a\ss{}t sich ebenfalls konfigurieren.

F\"ur die Benutzung von ADSL bzw. generell f\"ur die Benutzung
weiterer Netzwerkinterfaces mu\ss{} man nun folgendes ber\"ucksichtigen:
die Firewall kann angeschlo\ss{}ene Netze in drei Kategorien teilen
\begin{itemize}
\item intern (trusted, FW\_DEV\_INT)
\item extern (untrusted, FW\_DEV\_WORLD)
\item demilitarisierte Zone (FW\_DEV\_DMZ)
\end{itemize}

(siehe dazu die links weiter oben) f\"ur die man jeweils 
eigene Regeln setzen kann. Im Falle von
ADSL erfolgt die Anbindung an das Internet via ppp, daher
stimmt weiterhin FW\_DEV\_WORLD=ppp0. Allerdings hat man die
Verbindung zum ANT via Ethernet Karte. Damit diese Verbindung
nicht durch die Firewall geblockt wird mu\ss{} man 
FW\_DEV\_INT="eth0" setzen (vorausgesetzt eth0 stellt die Verbindung
zum ANT dar). Falls man mehrere Netzwerkkarten hat 
kann man mittels "ifconfig" feststellen, welche Interfaces 
(eth0, eth1,...) womit verbunden sind und diese dann ebenfalls bei
FW\_DEV\_INT (oder FW\_DEV\_WORLD oder FW\_DEV\_DMZ) angeben. 

Mit FW\_PROTECT\_FROM\_INTERNAL="no" gew\"ahrleistet man nun, da\ss{} alle
Daten des internen Interfaces (das zum ANT) ungefiltert die
Firewall passieren. F\"ur einen EinzelPC oder einfaches Heim-LAN 
ist das eine ausreichende Konfiguration.

Da diese Konfiguration wirklich einfach ist und sie doch einiges
an Sicherheit bringt sollte man sich wirklich die Zeit nehmen
dies durchzuf\"uhren und nicht ohne Firewall ans Netz zu gehen.
Schlie\ss{}lich wollen wir doch alle, da\ss{} die Anzahl gehackter
Linux Systeme deutlich unter der einer bestimmten anderen
Betriebssystem Familie liegt. Von der Sicherheit der eigenen
Daten ganz zu schweigen.








\subsection{Debian
     \label{adsl-debian}
    }

Von
\onlynameurl{Klaus Triendl {$<$}triendl.kj@aon.at{$>$}}
stammt dieses Kapitel f\"ur Debian-User.

Mit den folgenden Schritten, loggt sich das System automatisch 
beim Provider ein (beim Erreichen des Runlevel 2+) bzw. beim 
Herunterfahren (oder Neustarten) automatisch wieder aus. Au\ss{}erdem 
w\"ahlt sich pppd bei einem Verbindungsabbruch automatisch wieder ein.

Das unten stehende Skript nach /etc/init.d/adsl kopieren und mit 
chmod a+x adsl ausf\"uhrbar machen.
Dann folgende Zeile auf der Konsole eingeben (mit root-rechten):

\begin{tscreen}
\begin{verbatim}
     update-rc.d adsl defaults 21 18 
    
\end{verbatim}
\end{tscreen}


Damit wird bei den runlevels 2-5 das adsl-Skript mit Startnummer 
21 eingef\"ugt und bei den runlevels 1+6 mit Killnummer 18.
Sollten die Nummern schon vergeben sein, einfach nach freien 
Nummern suchen oder die alphabetische Ordnung gelten lassen. 
ALLE Benutzer haben ab dann Zugriff auf das Internet, auch 
wenn sie keine root-Rechte haben.

Beachten Sie, da\ss{} eine allf\"allige Firewall dementsprechend 
eingerichtet ist, bevor eine adsl-verbindung hergestellt wird, 
sonst bleibt das skript schon beim start h\"angen.
Wenn Sie noch keine Firewall haben, aber eine ben\"otigen, 
werfen Sie einen Blick auf http://fireflier.sourceforge.net
(als Debianpakete fireflier-server und fireflier-client-(gtk$|$qt) 
verf\"ugbar).

Mit root-Rechten kann man das Skript auch h\"andisch aufrufen. 
Folgende Parameter sind m\"oglich:

\begin{itemize}
\item adsl start : Logon beim Provider
\item adsl stop : Logoff
\item adsl restart: Logoff und danach Logon
\item adsl reload : Logoff und danach Logon, pptp und pppd werden nicht beendet
\end{itemize}


Hier nun das ADSL-Script:
\begin{tscreen}
\begin{verbatim}
#!/bin/sh

# (C) 2003 by triendl.kj
# dieses skript dient zur herstellung einer adsl-verbindung in Österreich;
# Voraussetzugn ist, daß sie grundsätzlich eine erfolgreiche verbindung 
# herstellen können.
# genauere Informationen dazu finden sie im österreichischen adsl-howto
# http://howto.htlw16.ac.at/at-highspeed-howto.html


PATH=/bin:/usr/bin:/sbin/:usr/sbin
DAEMON=/usr/sbin/pptp
PPPD=/usr/sbin/pppd
# verwenden sie für die pid-datei den namen des Interface über das die 
# adsl-verbindung läuft;
# wenn das interface z.b. ppp1 ist, dann ist das /var/run/ppp1.pid
PIDFILE=/var/run/ppp0.pid

MODEM="10.0.0.138"              # ip-adresse des adsl-modems, standard: 10.0.0.138
OPTS="persist maxfail 0"        # automatische wiedereinwahl ohne ende
ARGS="$MODEM $OPTS"


test -x $DAEMON || exit 0
test -x $PPPD || exit 0


case "$1" in
    start)
        echo -n "Starting adsl"
                if start-stop-daemon --quiet --stop --signal 0 --pidfile $PIDFILE --name pppd; then
                        echo ": already running."
                        exit 0
                fi
                if start-stop-daemon --start --quiet --exec $DAEMON -- $ARGS; then
                        echo "."
                else
                        echo ": not started"
                fi
    ;;

    stop)
                echo -n "Stopping adsl"
                if start-stop-daemon --quiet --stop --signal 0 --pidfile $PIDFILE --name pppd; then
                        # nach spätestens drei sekunden aufgeben
                        if start-stop-daemon --stop --retry 3 --quiet --pidfile $PIDFILE --exec $PPPD --name pppd; then
                                sleep 3
                                echo "."
                        else
                                echo ": not stopped."
                                exit 1
                        fi
                else
                        echo ": not running.";
                fi
    ;;

    reload)
                #SIGHUP senden, siehe pppd-manual
        if [ ! -z "`echo persist | grep -i persist`" ]; then
                echo -n "trying to reestablish adsl-connection: "
                        # wenn nach spätestens 7 sekunden pppd nicht beendet ist, 
                        # dann war wiedereinwahl erfolgreich
                        if ! start-stop-daemon --quiet --stop --retry -1/7 --exec $PPPD --name pppd; then
                                echo "connection reestablished."
                        else
                                echo "connection terminated."
                        fi
                else
                        echo "reestablishing adsl-connection is only possible if $PPPD was started with the "persist"-option."
                fi
    ;;

    force-reload|restart)
                $0 stop && $0 start
    ;;

    *)
        echo "usage: adsl start|stop|restart|reload|force-reload"
        exit 1
    ;;
esac

exit 0
    
\end{verbatim}
\end{tscreen}



























\subsection{ADSL \& Debian - Stand 2007
     \label{adsl-debian-2}
    }

Von
\onlynameurl{David W\"uhrer {$<$}def@gmx.at{$>$}}
stammt dieses Kapitel f\"ur Debian-User.

Ich selbst verwende Debian testing, und bin beim 
Klagenfurter Provider Linea7.com. Bevor ich das Howto fand, versuchte ich, 
mit Hilfe der Anleitung f\"ur Windows und lesen der relevanten man-Pages, ADSL 
zum Laufen zu bringen. Deshalb ist meine L\"osung etwas anders als eure.

 
Ich weiss nicht, ob sie besser ist, aber f\"ur den Fall, dass sie hilfreich sein 
k\"onnte, schicke ich sie euch jedenfalls. (Anm.d.Red: und wir ver\"offentlichen das auch ;-)

 
Bei mir startet nicht pptp den pppd, sondern umgekehrt. Die 
Datei /etc/ppp/peers/provider sieht bei mir so aus:

\begin{tscreen}
\begin{verbatim}
 
user dwuehrer@linea7.com
pty "/usr/sbin/pptp 10.0.0.138 --nolaunchpppd"
noipdefault
#usepeerdns
defaultroute
replacedefaultroute
hide-password
lcp-echo-interval 10
lcp-echo-failure 10
connect /bin/true
noauth
persist
noaccomp
default-asyncmap
    
\end{verbatim}
\end{tscreen}


Das Modem weist meinem Rechner \"uber DHCP eine IP-Adresse zu, w\"urde dabei aber 
die nameserver des Providers aus /etc/resolv.conf l\"oschen, deshalb ist 
usepeerdns auskommentiert. Zus\"atzlich, vielleicht redundant, habe ich das 
Paket resolvconf installiert, damit die nameserver in jedem Fall eingetragen 
bleiben. (Die nameserver von Linea7 sind \"ubrigens 195.16.224.2 und 
195.16.224.3, falls es von Interesse ist.)

Die Werte f\"ur die lpc-echo-Eintr\"age habe ich aus eurem Howto \"ubernommen.

 
Statt eines init.d-Skripts habe ich im Verzeichnis /etc/network/if-up.d eine 
ausf\"urbare Datei, die so aussieht:

\begin{tscreen}
\begin{verbatim}
 
#!/bin/sh
/usr/sbin/pppd call provider
    
\end{verbatim}
\end{tscreen}


Damit wird beim Systemstart ADSL gestartet. Wenn man das nicht will, kann man 
stattdessen die Befehle pon und poff verwenden, die mit Debian mitgeliefert 
werden.

Entsprechend habe ich in /etc/network/if-down.d das Gegenst\"uck:

\begin{tscreen}
\begin{verbatim}
 
#!/bin/sh
/usr/bin/killall pppd
    
\end{verbatim}
\end{tscreen}


(Ein anderer Befehl w\"are vielleicht eleganter, und bestimmt notwendig, wenn 
man mehr als eine PPP-Verbindung hat. Aber f\"ur eine Verbindung ist das recht 
zuverl\"assig.)

 
Entsprechend euren Empfehlungen habe ich auch einen DNS-Cache (totd) und einen 
Web-Cache (polipo) installiert.

 
Wie gesagt, meine L\"osung ist anders als eure, und ich weiss nicht, ob mein 
Beitrag irgendetwas bringt. In jedem Fall will ich mich f\"ur das Howto 
bedanken. Es ist die beste \"Ubersicht \"uber ADSL und wie man es verwenden kann, 
die ich kenne.






















\subsection{Weitere ADSL Informationen
  }




\subsubsection{Tip
  \label{adsl-tip}
  }

Eine sehr umfangreiche und deutsprachige Sammlung mit
Informationen rund um ADSL hat 
\onlynameurl{Michael Simon {$<$}mi.si@gmx.net{$>$}} in
seinem \onlynameurl{\"osterreichischen ADSL Forum}
zusammengetragen. Im Archiv des Diskussionsforum
finden sich die Antworten zu den meisten Fragen
die einem bei ADSL einfallen. ADSL User sollten dort
einmal vorbeigesurft sein.








\subsubsection{Variante persist Option
  \label{adsl-persist}
  }

Von 
\onlynameurl{Klaus Triendl {$<$}triendl.kj@aon.at{$>$}}
stammt die Variante, die "persist"-Option f\"ur pppd zu 
nutzen, um st\"andig online zu bleiben.

aus dem pppd-Manual:
\begin{tscreen}
\begin{verbatim}
  persist

      versucht, eine Verbindung nach Abbruch wieder zu öffnen; die 
      "maxfail"-Option regelt die Anzahl der Versuche.
      Do not exit after a connection is terminated; instead try 
      to reopen the connection. The maxfail option still has an 
      effect on persistent connections.

  maxfail n

      Abbruch nach n aufeinanderfolgenden Fehlversuchen. Der 
      Wert 0 bedeutet unbegrenzt. Standardwert ist 10.
      Terminate after n consecutive failed connection attempts.
      A value of 0 means no limit.  The default value is 10.
   
\end{verbatim}
\end{tscreen}


Alle Optionen, die pptp nicht verarbeiten kann, leitet 
es an pppd weiter. Somit kann pptp mit folgenden Parametern 
aufgerufen werden:

\begin{tscreen}
\begin{verbatim}
    pptp 10.0.0.138 persist maxfail 0 
   
\end{verbatim}
\end{tscreen}


bzw. k\"onnen Sie die beiden Optionen auch in /etc/ppp/options eintragen.

Damit er\"ubrigen sich alle bisher vorgestellten Varianten zur 
automatischen Wiedereinwahl, weshalb diese Variante sicher die 
am einfachsten zu handhabende ist. Ein vollst\"andiges Skript 
finden Sie im Abschnitt 
\ref{adsl-debian} {(ADSL \& Debian)} .




























\subsection{Probleme mit ADSL und deren L\"osung
   \label{adsl-problemloesungen}
   }




\subsubsection{PPTP-Verbindung bricht ab:
   }

M\"oglichkeit 1: Problem bei der "eigenen" Hardware, event.
ANT defekt.

M\"oglichkeit 2: Im Netzwerkkarten SETUP (DOS-Programm das 
zumeist auf Floppy mit der Netzwerkkarte mitgeliefert wird ;-)
haben Sie Full-Duplex aktiviert. Probieren Sie das auszuschalten
und checken Sie ob es dann besser funktioniert. 
(Der Hinweis stammt von 
\onlynameurl{Peter Chiocchetti {$<$}girbal@tacheles.de{$>$}}
)






\subsubsection{PPP-Verbindung bricht ab:
   }

ADSL bzw. ATM-Verbindung unterbrochen.
Bricht die eigenen Verbindung immer wieder ab, w\"ahrend andere Speed-Teilnehmer
in der Umgebung keine Probleme haben, dann handelt es sich meist um St\"orungen
auf der eigenen "last mile". Sind von der St\"orung mehrere Teilnehmer
betroffen, dann ist das ATM-Netz gest\"ort. Tritt dieses Problem dauernd
auf, so hilft auch ein Wechsel des Providers nichts.




\subsubsection{PPP-Verbindung steht, aber es werden keine Daten \"ubertragen:
   }

Test ob ein ping zum Point-to-Point-Partner funktioniert. Wenn ja, weiterer
Test, ob ein Traceroute ins Internet (zB. www.orf.at) funktioniert. Funktioniert
der Ping, Traceroute bricht aber irgendwo am Weg zum Ziel ab, so ist eine
IP-Verbindung unterbrochen bzw. ein Router defekt. Von einem solchen Problem
sind viele Teilnehmer des selben Providers~ gleichzeitig betroffen,
in dem Fall kann man nur warten.






\subsubsection{Verf\"ugbarkeit der Verbindung:
   }

Michael Prochaska schrieb:

Das sich das modem hin und wieder aufh\"angen kann wissen wir ja, bei mir hat
sich dieses problem allerdings erledigt, seit dem ich eine teure 3com
netzwerkkarte verwende (seit ca. 2 jahren kein einziger h\"anger, ich
schw\"ore *g*, davor alle 2-3 stunden)






\subsubsection{ANT Varianten:
   }

Wenn ADSL keinesfalls zum Laufen zu bringen ist, dann k\"onnte dieser Beitrag von
\onlynameurl{Roland Lezuo {$<$}roland.lezuo@chello.at{$>$}}
noch einen Versuch wert sein:
\begin{tscreen}
\begin{verbatim}
Hallo Heimo,

erst mal Dank für das tolle ADSL howto, war sehr hilfreich.

Allerdings habe ich viele Stunden damit verbracht ADSL auf meiner LinuxBox 
zum laufen zu bringen, schuld war das Modem, und bevor andere verzweifeln, 
vielleicht kannst Du ja folgende Info in das HowTo aufnehmen:

Symptom : pptp stellt verbindung zu modem her
          pppd wählt sich ein, Auth klappt
          IP Adressen, Gateway, DNS-Server werden eingetragen
          es geht kein ping auf den ptp partner und auch auf sonst nix

Lösung:   Das "Speed touch home" Modem hat zwar als                                 
          Versionsnummer bcaa aufgedruckt läuft aber nur mit der pptp
          Version für das bbaa Modem

Arg, bis ich das versucht habe hat es wriklich lange gedauert!

Ach ja, noch etwas, wenn man in der /etc/ppp/options zusätzlich noch die 
Zeile "usepeerdns" einträgt (bin mir jetzt nicht ganz sicher, hab das man auf 
diesem Rechner nicht installiert) dann werden die DNS Server automatisch in 
die /etc/resolv.conf eingetragen, und beim Abbruch der Verbindung wieder mit 
den alten Einstellungen der /etc/resolv.conf überschrieben

mfg
Roland Lezuo
-- 
Trennt sich das Ross von seinem Reiter, geht das Rennen nicht mehr weiter.
ICQ: 98409354
   
\end{verbatim}
\end{tscreen}











\subsubsection{Zusammenfassung:
   }

Bei den wenigsten dieser Probleme kann eine Hotline weiterhelfen. Kein
Wunder - Linux wird offiziell nicht unterst\"utzt und Leute welche Kentnisse
auf diesem Niveau besitzen, sind in Betrieb und Wartung besser aufgehoben.
Schlie\ss{}lich betreffen \"uber 90\% der Hotline-Anrufe einfache Konfigurationsprobleme.
Hilfe bieten hier die news-Diskussionsforen at.linux bzw. local.*, letztere
nur am Provider-Server.




\subsubsection{Diverses
    }

Aus der at.linux:
\begin{tscreen}
\begin{verbatim}
Andreas Ender wrote:
> So ca. einmal im Monat erhalte ich folgede Meldung:
> 
> warn[open_unixsock:pptp_callmgr.c:308]: Call manager for 10.0.0.138 is
> already running.
> fatal[callmgr_main:pptp_callmgr.c:124]: Could not open unix socket for
> 10.0.0.138
> fatal[launch_callmgr:pptp.c:213]: Call manager exited with error 256
> startproc:  exit status of /usr/sbin/pptp: 1

==> rm -fR /var/run/pptp/


MfG / Regards
Friedrich Lobenstock
   
\end{verbatim}
\end{tscreen}





\subsubsection{Anmerkungen:
   }

Anmerkung von
\onlynameurl{Manfred Larcher {$<$}m1.larcher@tirol.com{$>$}} :

Wenn das Modem st\"andig LCP Requests sendet und nach ca. 9
Versuchen h\"angen bleibt ohne jemals eine Antwort auf den Request
bekommen zu haben (Ping geht aber), dann hat sich das Modem ganz
einfach "verabschiedet".

Die L\"osung:

Einfach das Modem (min. 1 Minute) abschalten und wieder
einschalten, dann synchronisiert es sich wieder und alles
klappt wieder wie am Schn\"urchen.

Anmerkung der Redaktion: Offenbar kein Linux in der ANT !? ;-)














































\section{Kabelnetze
  \label{Kabel}
  }


\subsection{\"Ubersicht
    }

M\"oglichkeiten und Vorgehensweise bei der Anbindung eines Linux Rechners
an das Chello/Telekabel Netzwerk



Der Anschlu\ss{} erfolgt mittels einer von Chello beigestellten
Netzwerkkarte mittel Twisted Pair Kabel an ein entsprechendes
Modem.




\subsubsection{M\"oglichkeiten     }

Es werden mehrere M\"oglichkeiten der Konfiguration beschrieben.

\begin{itemize}
\item statisch: die IP Adressen werden fix eingetragen - es werden
die Adressen z.B. aus Windows \"ubernommen
\item DHCP / BOOTP: die Adressen werden durch automatische "Anfrage" 
bei Telekabel bestimmt
\end{itemize}

Den dynamischen Methoden sollte der Vorzug vor dem statischen Eintrag 
der IP Adressen gegeben werden - nur so werden eventuelle \"Anderungen
der Konfiguration von Telekabel automatisch ber\"ucksichtigt.

{\bfseries Achtung:}

Telekabel setzt mehrere verschiedene Arten der 
Netzwerkkarte ein, d.h. die angegebenen Typen bzw. Treiber sind
nur beispielhaft angegeben.

Ebenso sind die angegebenen IP Adressen (Rechner und Gateway) nur als
Beispiel zu sehen und auf jeden Fall durch die eigenen Werte zu 
ersetzen,



Da Chello "echte" IP Adressen verwendet ist der Rechner weltweit
erreichbar. Die Installation einer Firewall bzw. eines IP
Packetfilters wird unbedingt empfohlen - siehe \ref{links} {(Links)}




\subsubsection{Empfohlene Literatur
    }


\paragraph{Einf\"uhrung
     }

siehe \ref{links} {(Links)}




\subsubsection{Feedback
    }

Kommentare und vor allem aktive Beitr\"age zu diesem Teil des
Dokuments (Kabelnetze) sind jederzeit willkommen.  Bitte senden
sie Hinweise/Kommentare zu dieser Version an mich (\onlynameurl{{$<$}august.hoerandl@gmx.at{$>$}}).




\subsubsection{Version / History des Chello/Telekabel Howtos     }

Dieses Teil des Howto ist aus einigen Postings in 
\nameurl{news:telekabel.linux}{news:telekabel.linux} und
\nameurl{news:at.linux}{news:at.linux} entstanden.

\begin{itemize}
\item  Version 0.1 - 6. August 1999
\item  Version 0.2 - 15. August 1999: added: Manuelle Konfiguration
\item  Version 0.3 - 20. August 1999: sgml, first public Version
\item  Version 0.4 - 21. September 1999: howto links, 
redhat by Walter Haschka
\item  Version 0.5 - April 2001
\item integration in das at-highspeed howto 
\end{itemize}





\subsection{Installation mit SuSE
   }

 Falls es sich um eine PnP (Plug \& Play) Netzwerkkarte handelt, sollte
diese Funktion {\bfseries vorher} abgeschaltet 
werden - \ref{pnp} {(Anleitung)}.

Die statische Variante ist l\"anger, funktioniert aber immer, die
DHCPClient Variante geht eventuell nur mit einem neueren
dhcpclient (neuer als SuSE 6.1) - siehe \ref{update} {(update)}).

Ab SuSE 7.0 gibt es auch im Handbuch eine Anleitung zur
Installation. Siehe auch
\onlynameurl{SuSE Support Datenbank}.



Achtung: da die Leasetime (G\"ultigkeitsdauer) der Adresse auf
unendlich gesetzt ist, beendet sich das Script bei SuSE sofort
und meldet einen Fehler, trotzdem funktioniert es perfekt.



Notwendige Information:
\begin{itemize}
\item statische Variante: IP Adresse und Gateway - zB. aus der
Windows Systemsteuerung oder mit Winipcfg festellen) - siehe
auch \ref{pnp} {(PnP)} 
\item Art der Netzwerkkarte
\end{itemize}





\subsubsection{Statische Variante \label{suse-stat}
     }

Siehe auch
\onlynameurl{SuSE Support Datenbank}    

Kommandozeile: YaST aufrufen
\begin{itemize}
\item Administration des Systems
\begin{itemize}
\item Hardware ins System integrieren
\item Netzwerkkarte konfigurieren
\begin{itemize}
\item Typ des Netzwerks: eth0
\item Art der Netzwerkkarte: deine Ausw\"ahlen
(oder ansonsten NE2000 kompatible)
\end{itemize}
\end{itemize}
\end{itemize}


Netzwerk konfigurieren
\begin{list}{}{}
\item Netzwerk Grundkonfiguration
\begin{itemize}
\item erste Zeile ausw\"ahlen (Nummer  {[}0{]})
\item F5 (Device) -{$>$} Ethernet
\item F6 (IP) -{$>$}
IP-Adresse Ihres Rechners: :deine IP
\item Netmask: 255.255.255.0
\item Adresse default \ref{gateway} {(Gateway)}:
deine IP, aber letzte Stelle .1 
\item IP-Adresse des PointToPoint-Partners : nix
\item mit F4 sicherstellen das das  {[}x{]} bei
aktiv da ist.
\end{itemize}

         
\item Rechnername \"andern: beliebiger 
\ref{anm} {(Rechnername)}
Domain: telekabel.at
\end{list}




Netzwerkdienste konfigurieren:
\begin{itemize}
\item inetd... JA
\item portmap ... NEIN
\item Posting zeile: TK212017125181.telekabel.at
\item Konfiguration \ref{dns} {(Nameserver)}:
\item m\"ochten sie auf NS zugreifen... JA
\begin{itemize}
\item Liste der IP addressen: 195.34.133.10 195.34.133.11
\item Liste der domains: telekabel.at
\end{itemize}
\item Sendmail konfigurieren:
\begin{itemize}
\item Rechner mit permanenter Netzanbindung (SMTP)
\end{itemize}
\end{itemize}


Danach YaST beenden.

Neustarten des Systems oder:
{\ttfamily init 1} eingeben und
warten bis der runlevel 1 erreicht ist und dann 
{\ttfamily init 2} eingeben (oder {\ttfamily init 3} f\"ur X).
Die Konfiguration kann mit \ref{bootp} {(BOOTP)} oder 
\ref{suse-dyn} {(DHCP)} vereinfacht werden.

Kontrollieren Sie nun mit {\ttfamily ifconfig} ob Sie
ein Device lo (loopback) und ein Device eth0
(1. Ethernetdevice) erhalten haben. Sollte eth0
fehlen, dann haben Sie bei der Auswahl der
Netzwerkhardware ein falsches Ger\"at gew\"ahlt,
oder Ihre Karte reagiert nicht auf der eingestellten
IO-Adresse oder dem eingestellten Interrupt.




\subsubsection{DHCP Client Variante \label{suse-dyn}
    }

siehe auch \ref{update} {(update)}.

Siehe auch
\onlynameurl{SuSE Support Datenbank}    

Achtung: Das eigentliche Programm/Paket heisst: dhcpcd (DHCP Client D\"amon) - NICHT
das Paket dhclient verwenden.

Kommandozeile: YaST aufrufen

Administration des Systems

Installation festlegen/starten
(je nachdem welche Installationsart du gew\"ahlt hast
kommt jetzt ein Dialog)
\begin{itemize}
\item Konfiguration \"andern/erstellen
\begin{itemize}
\item Netzwerk-Support (TCP/IP, UUCP, Mail, News)
\item dhclient DHCP Client ausw\"ahlen (Leertaste)
(Achtung: {\ttfamily NICHT} dhcp ISC DHCP Server ausw\"ahlen)
\item dann F10 (Ende)
\item dann nochmals F10
\end{itemize}
\item dann Installation starten
eventuell kommt ein Dialog wo "Abh\"angigkeiten"
\"uberpr\"uft werden,wenn n\"otig auf AUTO gehen.
\item  dann warten, ...
\item  dann ESC, dann bist du (nach den Konfig-Scripts)
wieder im YAST Konfigmen\"u
\end{itemize}


Dort auf Administration des Systems
\begin{itemize}
\item dann bei Hardware ins System integrieren
\item die Netzwerkkarte ausw\"ahlen 
(siehe \ref{suse-stat} {(statische methode)})
\item dann Netzwerk konfigurieren,
\begin{itemize}
\item dort DHCP Client ausw\"ahlen
\item M\"ochten sie DHCP verwenden... JA
\end{itemize}
\end{itemize}


dann Konfig Scripts laufen lassen

dann den Rest so wie bei der statischen Methode machen,
(die Men\"us die grau sind, und deshalb nicht ausgew\"ahlt werden 
k\"onnen, einfach \"uberspringen)




\subsubsection{DHCP Client - Tips
    }

  
Nach dem Booten sollte man kontrollieren, ob die Netzwerkkarte
richtig erkannt wurde: mit Shift-PgUP (Bild-Oben) oder mit
"dmesg" die Ausgaben des Kernels kontrollieren; eventuell mu\ss{} das
entsprechende Modul 3c59x geladen werden.

Zuerst wird die Netzwerkkarte mit einer beliebigen Adresse 
initialisiert: "ifconfig 192.168.1.1".

Dann wird "dhclient eth0" aufgerufen - in weiteren Fenstern kann
man mit "tcpdump" den Verkehr am Netz beobachten bzw. mit "watch
ifconfig" die Konfiguration kontrollieren - irgendwann sollte
dhclient Erfolg melden bzw. ifconfig eine andere Adresse (statt
192.168.X.X) anzeigen - die Datei /var/state/dhcp/dhclient.leases
enth\"alt nach erfolgter dhcp Konfiguration die erhaltenen Daten
und kann damit auch zur Kontrolle verwendet werden.



Die Routen und der Nameserver werden von dhclient automatisch
gesetzt d.h. keine weiteren Schritte notwendig.






\subsubsection{Update DHCP Client \label{update}
    }

 
Der dhclient der mit SuSE 6.1 kommt ist scheinbar nicht
kompatibel mit dem Telekabel Server - ich habe mir eine neuere
Version (dhcp-2.0b1pl27) von \onlynameurl{} geholt
und \"ubersetzt (im README gibt es eine genaue Anleitung:
./configure und make); Ich habe nur den neuen client aus dem
Verzeichnis client nach {\ttfamily /sbin} kopiert.

Ab Version 7.0 ist bei SuSE ein neuer Client (dhcpcd) dabei -
damit sollte es perfekt funktionieren.




\subsection{PNP - Plug \& Play \label{pnp}
   }

Falls es sich um eine PnP (Plug \& Play) Netzwerkkarte handelt, sollte
diese Funktion {\bfseries vorher} abgeschaltet werden.

Der passende Treiber hei\ss{}t 3Com EtherLink III EISA (3C579) und
kommt direkt von der Diskette auf der auch das Tool zum
Deaktivieren von pnp ist. Nicht der von der Win95 CD. Mit dem
hat's bei mir nicht geklappt.  In den Eigenschaften dieses
Treibers gibt's, trotz non pnp, gar keine Einstellungen zu IRQ und
I/O.

Hinweis: Die Diskette mit den entsprechenden Treibern gibt es meiste
auf der Hompage des Kartenherstellers.

Es gibt auch einige Utilities f\"ur Linux:
\onlynameurl{Linux Network Drivers} 



Weitere Links f\"ur 3Com Karten:
\onlynameurl{3c509b}
\onlynameurl{Umschaltung/Konfiguration}
\onlynameurl{Installationshinweise}
\onlynameurl{3Com Suchmaschine}





Man kann auch eine andere (nicht PnP) Karte einsetzen -- 
siehe \ref{andere} {(andere Karte)}.

Unter Systemsteuerung/Netzwerk hab ich die Protokolle f\"ur pnp gar
nicht entfernen m\"ussen. (sind jetzt alle doppelt vorhanden)

Noch mal alle Schritte:
\begin{itemize}
\item Mit Bootdisk starten und pnp deaktivieren
\item Windows booten -{$>$} Treiber installieren
\item Nach dem Reboot sollte die Verbindung zu TW unter Win 
wieder stehen
\item Das Programm Winipcfg im Verzeichnis c:/Windows starten und 
eigene IP notieren
\item Linux booten und im Fall von SuSE Yast starten: 
(siehe \ref{suse-stat} {(statische methode)} oder 
\ref{suse-dyn} {(mit DHCP)})
\end{itemize}





\subsection{Redhat
   }

Die nachfolgende Anleitung hat auf einem RedHat 5.1 System
(inkl. einiger Update-Packages) zu einem funktionierenden
TK-Anschlu\ss{} gef\"uhrt. In diesem Kapitel stehen alle IP-Nummern
der Art 99.99.99.99 f\"ur die eigene IP-Adresse und m\"ussen durch
diese ersetzt werden. F\"ur das Gateway steht 99.99.99.1, f\"ur
das Netzwerk 99.99.99.0; hier sind statt der 9er-Gruppen
jeweils die ersten drei Zahlen der eigenen IP-Adresse
einzusetzen.



Zun\"achst eine (nicht notwendigerweise vollst\"andige) Liste
der Packages, welche installiert sein m\"ussen:
\begin{itemize}
\item netkit-base
\item net-tools
\item bind-utils
\end{itemize}


\"Uberpr\"ufung durch befragen der RPM-Datenbank:

{\ttfamily rpm -q net-tools netkit-base bind-utils} 

 liefert z.B.
\begin{tscreen}
\begin{verbatim}
         net-tools-1.46-1
         netkit-base-0.10-13
         bind-utils-4.9.6-11
        
\end{verbatim}
\end{tscreen}


Im X das Control-Panel starten (unter Administration enthalten). 
\begin{itemize}
\item Klick auf System Configuration (Dirigent; ggf. nach unten
rollen oder Fenster vergr\"o\ss{}ern)
\item Reiter: Einstellungen  -  Button: Netzwerk
\item Im neuen Fenster "Netzwerkverwaltung"
\begin{itemize}
\item Reiter: Client Aufgaben - 
Button: Rechner Basisinformation
\item Im neuen Fenster "Basiskonfiguration dieses Rechners"
\begin{itemize}
\item Reiter: Rechnername oder IP-Nummer
\begin{itemize}
\item Im Textfeld den gew\"unschten \ref{anm} {(Rechnername)} eingeben z.B. Marilyn
\end{itemize}
\end{itemize}
\item Reiter: Adapter 1
\begin{itemize}
\item Checkbox 'aktiviert' ein
\item Optionen 'Konfigurationsmodus' manuell 
(statt DHCP, Bootp)
\item Textfeld 'Rechnername + Dom\"ane' ? 
(zB. Marilyn.telekabel.at)
\item Textfeld 'Aliase (opt.)' $<$kann leer 
bleiben$>$ (zB. MM)
\item Textfeld 'IP Adresse' $<$die eigene IP 
eintragen$>$ (zB. 99.99.99.99)
\item ComboBox 'Netmask (opt.)' 255.255.255.0 $<$
ausw\"ahlen$>$
\item ComboBox 'Netzwerkger\"at' eth0 $<$ausw\"ahlen$>$
\item ComboBox 'Kernel Modul' 3c59x $<$ausw\"ahlen$>$
\item Textfeld 'I/O/port (opt)' $<$frei lassen !$>$
\item ComboBox 'Irq (opt)' $<$frei lassen !$>$
\end{itemize}
\item mit "Best\"atigen" das Fenster 
"Basiskonfiguration dieses Rechners" schliessen.            
\end{itemize}

Im Fenster "Netzwerkverwaltung" nun w\"ahlen:
\begin{itemize}
\item Reiter: Client Aufgaben - Button: Name Server 
Specifikation (DNS)
\item Im neuen Fenster "Resolver configuration"
\begin{itemize}
\item Checkbox 'DNS usage / DNS required' ? (bei mir aus)
\item Textfeld 'default domain' ? (bei mir leer)
\item Textfeld '\ref{dns} {(nameserver)} 1'
195.34.133.10
\item Textfeld 'nameserver 2 (opt)' 195.34.133.11
\item Textfeld 'nameserver 3 (opt)' 128.130.2.3
\item Textfeld 'search domain 1 (opt)' telekabel.at
die weiteren 'search domain 2-6' k\"onnen leer bleiben

\item mit "Best\"atigen" das Fenster 
"Resolver configuration" schliessen.
\end{itemize}
\end{itemize}


Im Fenster "Netzwerkverwaltung" nun w\"ahlen:
\begin{itemize}
\item Reiter: Verschiedenes - Button: Informationen \"uber 
andere Rechner
\item Im neuen Fenster "/etc/hosts"
\begin{itemize}
\item Button: Neu
\item Im neuen Fenster "Rechner/Netzwerkdefinition" 
die Daten des eigenen Rechners angeben wie unter 
"Rechner Basiskonfiguration":
\begin{itemize}
\item Textfeld 'Rechnername + Dom\"ane' 
zB. Marilyn.telekabel.at
\item Textfeld 'Aliase (opt.)' zB. MM
\item Textfeld 'IP Adresse' z.B 99.99.99.99
\item Textfeld 'Kommentar (opt)' $<$beliebig/leer$>$ 
zB. Des bin i
\item mit "Best\"atigen" das Fenster 
"Rechner/Netzwerkdefinition" schliessen. 
\end{itemize}
\end{itemize}
\item Im Fenster "/etc/hosts" nun wieder
\begin{itemize}
\item Button: Neu
\item Im neuen Fenster "Rechner/Netzwerkdefinition" 
die Daten des Loopback device angeben:
\begin{itemize}
\item Textfeld 'Rechnername + Dom\"ane' localhost
\item Textfeld 'Aliase (opt.)' $<$leer$>$
\item Textfeld 'IP Adresse' 127.0.0.1
\item Textfeld 'Kommentar (opt)' $<$beliebig/leer$>$ 
zB. Loopback device
\item mit "Best\"atigen" das Fenster 
"Rechner/Netzwerkdefinition" schliessen.
\end{itemize}
\end{itemize}
\item mit "Best\"atigen" das Fenster "/etc/hosts" schliessen.
\end{itemize}


Es gibt noch die M\"oglichkeit {\ttfamily /etc/networks} zu
bearbeiten. Bei mir ist das leer.  Falls es Sinn
macht, dort was reinzuschreiben: Der Ablauf ist analog
zu {\ttfamily /etc/hosts}, nur dass das erste Fenster eben
{\ttfamily /etc/networks} heisst. Alle anderen Fenster/Felder sind
ident. Der Aufruf geht so:
\begin{itemize}
\item Im Fenster "Netzwerkverwaltung" nun w\"ahlen:
\item Reiter: Verschiedenes - Button: Information \"uber 
andere Netzwerke
\item mit "Beenden" das Fenster "Netzwerkverwaltung" 
schliessen.
\end{itemize}


\item mit "Beenden" das Fenster "Linuxconf 1.11" schliessen.
\item Im neuen Fenster "Zustand des Systems" den Button: 
aktivieren ausw\"ahlen. Nach einer kleinen Nachdenkpause bleibt
nur noch das Control-Panel \"ubrig.
\end{itemize}


 Letzter Schritt: Konfiguration der Netzwerkkarte beim Start 
automatisch durchf\"uhren
\begin{itemize}
\item Eine Datei in {\ttfamily /etc/rc.d} anlegen, zB. /{\ttfamily etc/rc.d/MyRouteInit}
und mit dem Editor Deiner Wahl wie folgt eintragen (siehe auch 
Default
\ref{gateway} {(Gateway)}):
\begin{tscreen}
\begin{verbatim}
          #       /etc/rc.d/MyRouteInit
          #
          #       Module laden
          #
          ifconfig lo
          ifconfig eth0
          #
          #       LoopbackDevice konfig und Route setzen
          #
          ifconfig lo 127.0.0.1
          route add 127.0.0.1
          #
          #       selbes mit eth0, incl. Default Gateway
          #
          ifconfig eth0 99.99.99.99 netmask 255.255.255.0
          route add -net 99.99.99.0
          route add default gw 99.99.99.1
          #
          #       testen
          #
          route -n
          #
         
\end{verbatim}
\end{tscreen}

        
\item  auf der Shellebene / im Konsolen-Fenster ausf\"uhren:
\begin{tscreen}
\begin{verbatim}
          cd /etc/rc.d
          chmod 0755 MyRouteInit
         
\end{verbatim}
\end{tscreen}

Kontrolle mit 
\begin{tscreen}
\begin{verbatim}
          ls -l My*
          -rwxr-xr-x   1 root   root       534 Aug 18 19:52 MyRouteInit
         
\end{verbatim}
\end{tscreen}

\item Damit's wirkt muss man das Skript jetzt noch ausf\"uhren:
\begin{tscreen}
\begin{verbatim}
          ./MyRouteInit
         
\end{verbatim}
\end{tscreen}
\item Jetzt sollte die Verbindung stehen. Die folgenden Befehle 
sollten problemlos funktionieren: 
\begin{tscreen}
\begin{verbatim}
          ping 195.34.133.11
          ping www.orf.at
          traceroute 199.183.24.225
         
\end{verbatim}
\end{tscreen}

        
\item  mit dem Editor Deiner Wahl die Datei {\ttfamily /etc/rc.d/rc.local} 
bearbeiten: Am Besten nach den Eingangs-Kommentaren die 
folgenden Zeilen einf\"ugen:
\begin{tscreen}
\begin{verbatim}
          :
          :
          #       set my network environment
          #
          if [ -f /etc/rc.d/MyRouteInit ]; then
            /etc/rc.d/MyRouteInit
          fi
          #
          # on with the original stuff
          :
          :
         
\end{verbatim}
\end{tscreen}
\end{itemize}





\subsection{Manuelle Konfiguration \label{manu}
   }


\subsubsection{Konfiguration Nameserver:
    }

siehe \ref{dns} {(Nameserver)} und 
\ref{gateway} {(Gateway)}

Datei {\ttfamily /etc/resolv.conf}
\begin{tscreen}
\begin{verbatim}
       search telekabel.at
       nameserver 195.34.133.10
       nameserver 195.34.133.11
      
\end{verbatim}
\end{tscreen}




Datei {\ttfamily /etc/host.conf}
\begin{tscreen}
\begin{verbatim}
       order hosts bind
       multi on
      
\end{verbatim}
\end{tscreen}




Datei {\ttfamily /etc/nsswitch.conf}      (? nur wenn vorhanden - nur glibc2 ?)
\begin{tscreen}
\begin{verbatim}
       hosts:     files dns
       networks:  files dns
      
\end{verbatim}
\end{tscreen}





\subsubsection{Konfiguration Netzwerk:
    }

zuerst das looopback device (lo)
\begin{itemize}
\item setzen:
{\ttfamily ifconfig lo 127.0.0.1}
\item testen: 
{\ttfamily ifconfig lo}
\item Route setzen: 
{\ttfamily route add 127.0.0.1}
\item Routen anzeigen: 
{\ttfamily route -n}
\item jetzt sollte ein ping gehen:
{\ttfamily ping 127.0.0.1}
\end{itemize}


 selbes mit eth0 (Nummern bitte anpassen)
\begin{itemize}
\item setzen:
{\ttfamily ifconfig eth0 212.17.17.14 netmask 255.255.255.0}
\item testen: 
{\ttfamily ifconfig} (es sollte das Device lo und das eth0 sichtbar sein)
\item Route setzen (lokales Netz):
{\ttfamily route add -net 212.17.17.0}
\item Routen anzeigen: 
{\ttfamily route -n}
\item testen: 
{\ttfamily ping 212.17.17.1}
\item Route setzen (\ref{gateway} {(default gateway)}):
{\ttfamily route add default gw 212.17.17.1}
\item jetzt sollte ein ping gehen:
{\ttfamily ping 128.130.2.3}
\item auch mit symbolischen Namen:
{\ttfamily ping tunamea.tuwien.ac.at}
\end{itemize}


Verbesserung:

Alle Rechner in {\ttfamily /etc/hosts} eintragen - 
dann kann man auch Namen statt der Nummern verwenden
(siehe \ref{anm} {(Rechnername)} und \ref{gateway} {(Gateway)})
\begin{tscreen}
\begin{verbatim}
       127.0.0.1     localhost
       212.17.17.14  dein.rechner.name
       212.17.17.1   default.gateway
      
\end{verbatim}
\end{tscreen}

Die Konfiguration kann mit \ref{bootp} {(BOOTP)} vereinfacht 
werden.




\subsubsection{Autokonfiguration mit Bootp \label{bootp}
    }

Linux bietet auch die M\"oglichkeit, die IP Adresse direkt vom Kernel 
via BOOTP Protokoll zu bestimmen.

Dazu m\"ussen bei der Konfiguration eines 2.2.x Kernels folgende 
Optionen ausgew\"ahlt werden:
\begin{itemize}
\item  Networking options 
\item IP: kernel level autoconfiguration
\item BOOTP support
\end{itemize}

Damit wird die IP Adresse und der "Default Gateway" via BOOTP 
Protokoll abgefragt und die Netzwerkkarte konfiguriert.

Achtung: Im Gegensatz zu der Konfiguration mit DHCP werden dabei z.B. 
die Nameserver nicht automatisch konfiguriert.












\subsubsection{Manuelle Konfiguration + DHCP-client\label{manual_dhcp}
     }

Dieser Kapitel von
\onlynameurl{Wolfgang Winkler {$<$}winklerw@telering.at{$>$}}
beschreibt alles noetige um einen Linux-PC, der ueber kein 
geeignetes ein Konfigurationswerkzeug verfuegt, ans chello-Netz zu bringen.

Diese Methode funktioniert wahrscheinlich fuer jedes Betriebssystem, 
vorausgesetzt der dhcp-client ist verfuegbar oder laesst sich kompilieren. 

In der Dokumentation werden folgende genannt:
\begin{itemize}
\item $\{$,Free-,Net-$\}$BSD
\item OSF
\item SunOS
\end{itemize}




Ich gehe davon aus, dass die Bedeutung/Aufgabe von Konfigurationsdateien wie z.B. 
{\ttfamily /etc/resolv.conf} bekannt ist und auch wie man sie erfolgreich editiert. 



Software: dhcp-3.0pl2 (am 11.05.2003)
Das Packet enthaelt DHCP-client und -server, es wird aber nur der Client benoetigt). 

Bei Bedarf source von \onlynameurl{ftp://ftp.isc.org/isc/dhcp/dhcp-3.0pl2.tar.gz} (845 kB) runterladen, 
kompilieren und installieren. 

config-file fuer dhclient: {\ttfamily /etc/dhclient.conf}
\begin{tscreen}
\begin{verbatim}
#/etc/dhclient.conf
#based on instructions taken from BLFS-BOOK: http://beyond.linuxfromscratch.org
#eth0 bei Bedarf aendern !!

timeout 45;
retry 30;

interface "eth0" {
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers;
}
# end /etc/dhclient.conf
     
\end{verbatim}
\end{tscreen}




Die Zeilen {\ttfamily timeout 45} und {\ttfamily retry 30} sind optional und legen das Verhalten fuer 
den dhclient fest, wenn nicht gleich eine Antwort vom Chello-DHCP-Server kommt. In so einem Fall geht 
{\ttfamily dhclient} nach {\ttfamily timeout} Sekunden in den Hintergrund, wartet {\ttfamily retry} Sekunden, 
und versucht dann wieder eine IP-Adresse vom DHCP-Server zu bekommen. 

Details zur Konfiguration: {\ttfamily man dhclient.conf}



Zum Konfigurieren der Netzwerkkarte reicht dann das Starten des Programms {\ttfamily dhclient} als root. 

Das sieht normalerweise dann so aus: 
\begin{tscreen}
\begin{verbatim}
Internet Software Consortium DHCP Client V3.0pl2
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
 
Listening on LPF/eth0/xx:xx:xx:xx:xx:xx (MAC-Adresse der Netzwerkkarte)
Sending on   LPF/eth0/xx:xx:xx:xx:xx:xx (MAC-Adresse der Netzwerkkarte)
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER from 10.34.14.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 10.34.14.1
bound to xxx.xxx.xxx.xxx -- renewal in 1094119969 seconds.
     
\end{verbatim}
\end{tscreen}


dhcp-3.0pl2 bringt das script {\ttfamily dhclient-script} mit, das automatisch von {\ttfamily dhclient} 
gestartet wird und die Informationen, die vom chello-DHCP-Server kommen, automatisch in die entsprechenden 
config-files eintraegt. 



{\ttfamily /etc/resolv.conf} sollte jetzt so aehnlich ausschauen:
\begin{tscreen}
\begin{verbatim}
search chello.at
nameserver 127.0.0.1
nameserver 195.34.131.180
nameserver 195.34.133.10
     
\end{verbatim}
\end{tscreen}




Das Kommando {\ttfamily route -n} sollte dann aehnliches auswerfen: 
\begin{tscreen}
\begin{verbatim}
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
195.34.151.0    *               255.255.255.0   U     0      0        0 eth0
0.0.0.0         195.34.151.1    0.0.0.0         UG    0      0        0 eth0
     
\end{verbatim}
\end{tscreen}




Beispiel-Bootscript fuer Sys V-style-init

Pfade anpassen wenn notwendig!
\begin{tscreen}
\begin{verbatim}
#!/bin/sh
#starten mit "dhcp start" oder "dhcp stop"
case "$1" in
        start)
                echo "setting up eth0..."
#Bei Problemen eventuell noetig (vgl. /etc/modules.conf)
#               modprobe eth0
                /sbin/dhclient
                ;;
        stop)
                echo "shutting down eth0..."
                /sbin/dhclient -r
                ;;
        *)
                echo  "Usage: $0 {start|stop}"
                exit 1
                ;;
esac
     
\end{verbatim}
\end{tscreen}





















\subsubsection{Kabelzugang \"uber den USB-Anschluss\label{manual_usb}
   }

Dieses Kapitel wurde gespendet von 
\onlynameurl{Anton Steiner {$<$}anton.steiner@salzburg-online.at{$>$}}

Anforderung:

Kernel 2.6.x (hier 2.6.6) - selbstkompiliert und Kabelmodem (hier
Motorola Surfboard) mit USB Anschluss.  

 
Achtung: Nur Anschlu\ss{} \"uber Netzwerkkarte ODER USB

Module:

 
CDCEther  (Devicedriver --{$>$} USB Support --{$>$} CDC Ethernet Support)

 
usbnet (Devicedriver --{$>$} USB Support --{$>$} Multipurpose USB Network Framework)

 
Die Module k\"onnen entweder direkt in den Kernel oder als Module kompiliert werden. 
Als Module m\"ussen sie mit
\begin{tscreen}
\begin{verbatim}
     modprobe CDCEther
     modprobe usbnet
   
\end{verbatim}
\end{tscreen}

eingebunden werden (man modules, update-modules, modules, modprobe)

Das Kommando
\begin{tscreen}
\begin{verbatim}
     ifconfig -a
   
\end{verbatim}
\end{tscreen}

zeigt das Ger\"at als h\"ochstes ethX Device (z.b. eth0  --{$>$} keine
Netzwerkkarte vorhanden , eth1 --{$>$} eine Netzwerkkarte ist vorhanden).
Weitere Installation wie bei
\ref{manual_dhcp} {(Manuelle Konfiguration + DHCP-client)}


















\subsubsection{Nachtrag fuer Student-Connect - Benutzer\label{student_connect}
     }

Es gilt (Mai 2003) die Regelung, dass max. 1 GB/Monat traffic ueber die Leitungen von Chello
geschickt werden darf, daher ist es wohl empfehlenswert den proxy-server der Uni zu verwenden. 

Sofern der jeweilige Client das Autokonfigurationsscript 
(http://www.univie.ac.at/proxy fuer UNI Wien) versteht, gibts keine Probleme. 

Eine manuelle Konfiguration ist auf keiner Support-Seite zu finden, laut 
ZID-Mitarbeitern ist der Proxy unter tk-proxy.univie.ac.at:3128 zu erreichen. 



Wer sicher gehen will, dass der jeweilige Client auch wirklich den Proxy benutzt, kann sich unter:
\begin{itemize}
\item \onlynameurl{http://elina.htlw16.ac.at/\~{}hoerandl/} 
nachschauen welche IP-Adresse angegeben wird 
(131.130.1.135, 131.130.1.143, 131.130.1.150 ist o.k. 
das sind tk-proxy$\{$1,2,3$\}$.univie.ac.at)
\item \onlynameurl{http://www.stilllistener.addr.com/checkpoint1/} 
dasselbe, nur etwas ausfuehrlicher
\end{itemize}




Hier noch ein Vorschlag fuer die Konfiguration von wget:
{\ttfamily \~{}/.wgetrc} enthaelt dann folgendes: 
\begin{tscreen}
\begin{verbatim}
http_proxy = http://tk-proxy.univie.ac.at:3128/
ftp_proxy = http://tk-proxy.univie.ac.at:3128/
use_proxy = on
     
\end{verbatim}
\end{tscreen}

















\subsection{Anhang
   }


\subsubsection{Fehlersuche
    }

ifconfig zeigt kein eth0 an: Treiber fehlt

ping xx.xx.xx.1 (IP Adresse des \ref{gateway} {(Gateway)})
geht nicht: IP Adresse nicht gesetzt (ifconfig) oder keine Route gesetzt

ping gateway funktioniert, ping auf alle anderen Rechner geht nicht: Route 
nicht gesetzt (route)

ping mit Nummer (IP Adresse) geht - mit Namen nicht:
der Rechner findet den Name Server nicht




\subsubsection{Dateien
     }

siehe \ref{manu} {(Manuelle Konfiguration)}




\subsubsection{Rechnername \label{anm}
    }

\begin{itemize}
\item der Rechnername kann beliebig gew\"ahlt werden.
\item offizieller Name: tk(IP-Adresse ohne Punkte).telekabel.at
(zB. TK212017123123.telekabel.at) oder 
tk212017123123.tuwien.teleweb.at (beim Studenten Account) oder
212186004001.11.vie.surfer.at
\item Bestimmung des offiziellen Namens:
{\ttfamily nslookup ip.adresse} oder {\ttfamily dig -x ip.adresse}

\end{itemize}





\subsubsection{Gateway \label{gateway}
    }

Adresse des Default-Gateway: deine IP, aber letzte Stelle (letzte Gruppe 
nach dem Punkt) .1 

zb: meine IP: 195.34.12.234, mein Gateway: 195.34.12.1)




\subsubsection{Nameserver
    \label{dns}
    }

Telekabel verwendet folgende Rechner (IP-Adressen) als Nameserver:
\begin{tscreen}
\begin{verbatim}
     195.34.133.10 195.34.133.11
     
\end{verbatim}
\end{tscreen}





\subsubsection{Proxy Konfiguration
    }

  
Teleweb unterst\"utzt die automatische Proxy-Einstellung.
gib unter edit$|$preferences$|$advanced$|$proxy die URL
http://www.teleweb.at/autoproxy ein und aktiviere die automatische
Einstellung.






\subsubsection{Links
     }

Weiterf\"uhrende Konfigurationshinweise (Browser, Mail, News etc.) gibt
es bei \onlynameurl{Chello}.




\subsubsection{Andere Karte
    \label{andere}
    }

Wenn es mit der von Telekabel gelieferten Karte absolut nicht
funktionieren will: man kann auch eine andere Karte einsetzen.

Bei der statischen Methode sollte es keine Probleme geben. Bei
der DHCP Variante sollte folgender Eintrag in der Datei
{\ttfamily /etc/dhclient} vorgenommen werden:
\begin{tscreen}
\begin{verbatim}
       send dhcp-client-identifier xx:xx:xx:xx:xx:xx:xx
      
\end{verbatim}
\end{tscreen}

Anstelle der xx ist die alte (von der original-tk-karte) 
MAC-Adresse einzusetzen.



Bei einigen Karten kann auch direkt die MAC Adresse ge\"andert
werden:

{\ttfamily ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx:xx} 



 damit funktioniert auch DHCP (Achtung: dieses Kommando muss
vor dem Aktivieren der Karte ausgef\"uhrt werden).






\subsubsection{dhcpcd Fehlermeldung
     \label{kabel-dhcpcd-fehler}
    }

Fehlermeldung:

\begin{tscreen}
\begin{verbatim}
     dhcpcd[...] Infinite IP addresses lease time.Exiting      failed
     
\end{verbatim}
\end{tscreen}

Infinite lease hei\ss{}t nur, da\ss{} sich der Client nicht nach einer
bestimmten Zeit (=lease time) eine neue IP holen mu\ss{} bzw. die
alte IP wieder reservieren muss. Der Client beendet sich deshalb,
nur die SuSE Skripts sehen das als Fehler -- die Verbindung 
funktioniert trotzdem.








\subsubsection{Kabelzugang \"uber Salzburg-Online
     \label{zugang_ueber_salzburg_online}
   }


\paragraph{Cabellink Home
   }

Dieses Kapitel wurde gespendet von 
\onlynameurl{Anton Steiner {$<$}anton.steiner@salzburg-online.at{$>$}}

Konfiguration \"uber DHCP - Client:
\begin{tscreen}
\begin{verbatim}
     /etc/dhclient
     timeout 60;
     retry 60;
     interface "ethX" {  # entsprechend ifconfig -a anpassen
     prepend domain-name-servers 127.0.0.1;
     request subnet-mask, broadcast-address, time-offset, routers,
             domain-name, domain-name-servers, host-name;
     require subnet-mask, domain-name-servers;
     }
    
\end{verbatim}
\end{tscreen}

Einbinden des DHCP-Client wie mit dem Bootscript unter 
\ref{manual_dhcp} {(Manuelle Konfiguration + DHCP-client)}
beschrieben.
Die Konfiguration des Zuganges (Mailboxen, Webspace usw.) erfolgt
\"uber  
\onlynameurl{https://service.sbg.at}

Zuletzt auch noch eine etwas verbesserte Version des dhclient Startscripts:
\begin{tscreen}
\begin{verbatim}
#!/bin/sh
#starten mit "dhclient start" oder "dhclient stop"
test -x /sbin/dhclient || exit 0
case "$1" in
    start)
        echo "Starting DHCP-Client: "
#Bei Problemen eventuell noetig (vgl. /etc/modules.conf)
#               modprobe ethX
        /sbin/dhclient eth1
        ;;
    stop)
        echo "Stopping dhclient: dhclient "
        /sbin/dhclient -r
        ;;
    restart)
        $0 stop
        sleep 2
        $0 start
        ;;
    *)
        echo  "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
     
\end{verbatim}
\end{tscreen}























\section{ISDN
  \label{ISDN}
  }


\subsection{Einleitung
  \label{Einleitung}
    }

In diesem Kapitel m\"ochte ich beschreiben welche Hardware
ich verwendet und getestet habe um meinen ISDN
Zugang mit einigen Besonderheiten zum Laufen zu bringen,
die wahrscheinlich viele andere User auch haben werden und
wie ich das ganze konfiguriert habe.








\subsection{Ablauf des Umstiegs
    }

In der Vorbereitungszeit habe ich mir 
einen Zyxel-TA gekauft. Bedingungen f\"ur den TA waren:
\begin{itemize}
\item  mindestens 2 a/b Anschl\"u\ss{}e
\item  externer TA um einen embedded PC verwenden 
zu k\"onnen
\item  Nach M\"oglichkeit ein TA der in der SUSE 
Support Datenbank positiv erw\"ant wird
\end{itemize}


Zuerst habe ich die Umstellung auf ISDN bestellt. Innerhalb weniger
Tage wurde durch die Telekom die ISDN Verbindung hergestellt und
die NT1 montiert.

Neben der NT1 habe ich meinen Terminaladapter 
\onlynameurl{Zyxel-LCD}
montiert und die beiden Ger\"ate mit einem S0 Kabel verbunden. 
Dann wurden die Verbindung von einer
der beiden a/b Buchsen des Zyxel zu der alten Telephonverkabelung
im Haus wiederhergestellt und schon funktionierten alle Telephone
und das Modem wie vor dem Umbau. Mit wenigen Stunden Unterbrechung
haben alle analogen Komponenten wieder funktioniert. Sogar der 
analoge Internetzugang funktionierte wieder. \"Uber das analoge
Modem, die a/b Buchse des ISDN-TA, und die NT1 kam ich noch immer
ins Internet.

Damit konnte ich nun in aller Ruhe einen kleinen Linux-PC
in der N\"ahe des Zyxel TAs installieren und langsam einen Dienst
nach dem anderen von der alten analogen Modemverbindung auf
den neuen digitalen Zugang \"ubernehmen. Durch die Erhaltung des
analogen Zugangs konnte ich noch immer per E-Mail bei Kollegen
anfragen oder im Internet bl\"attern.

Der Clou war w\"ahrend der Inbetriebnahmephase konnte ich
\"uber den "neuen" PC, den ISDN-TA und den ISDN Zugang
ins Netz einw\"ahlen, mit ifconfig die IP-Adresse auslesen und dann
(gleichzeitig) mit dem analogen Modem und dem alten ISP einw\"ahlen
und dann mit ping, telnet, rlogin, etc. den "neuen" Rechner
"abklopfen". Mit
\onlynameurl{nmap}
findet man damit schnell die noch offenen Schlupfl\"ocher und kann
die firewall hinter der ISDN Leitung abdichten.














\subsection{\"Ubersicht der eingesetzten Hardware
   \label{eingesetzteHardware}
    }

Von der Telekom wurde als Abschlu\ss{} des Zweidraht 
vom Amt, ein Network-Terminator NT1
installiert. An den NT1 habe ich ein 
\onlynameurl{Zyxel-LCD}
angeschlossen.

Der Firewall/Gateway l\"auft auf einem
\onlynameurl{Advantech}
\onlynameurl{5820/L}
Der Winzling verschwindet unter dem ISDN-TA. 
Au\ss{}erdem kommt er fast ohne
bewegte Teile aus (abgesehen von der Harddisk, 
besitzt er keine L\"ufter, etc.) und sollte
daher mit hoher Verf\"ugbarkeit gl\"anzen. Der Stromverbrauch
von ca. 10 W (auf der 220V Seite gemessen) hilft beim
24 Stundenbetrieb stromsparen. Das hilft vorallem bei
der Diminsionierung einer USV.




















\subsection{wvdial
  \label{wvdial}
   }


\subsubsection{wvdial konfigurieren
    }

Die wvdial Konfiguration geht am schnellsten indem Sie mit YAST 
die Files erstellen. Das geht bei SuSE wie folgt:

\begin{itemize}
\item Administration des Systems
\item Netzwerk konfigurieren
\item PPP-Netzwerk konfigurieren
\item Konfigurieren Sie Ihren Provider
\end{itemize}




dort habe ich folgende Werte eingetragen:

\begin{tscreen}
\begin{verbatim}
        Telefonnummer: "194040"       
        Benutzerkennung: "<username>" 
        Passwort: "<password>"          
        [*] Automatische Nameserverkonfiguration - wenn möglich 
        (Tone-Dial) Wählverfahren               
        [*] Modem an Telefonanlage (kein Wählton)
        (PAP/CHAP) Einwahlmodus      
  
\end{verbatim}
\end{tscreen}


F\"ur alle "nicht SuSE-User" sollte dann in {\ttfamily /etc/wvdial.conf} folgendes stehen.
Auch SuSE-User sollten nocheinmal kontrollieren ob die wvdial.conf die
folgenden Werte erhalten hat.

\begin{tscreen}
\begin{verbatim}
        [Dialer Defaults]
        Username = <username>
        Modem = /dev/ttyS0
        Password = <password>
        Init1 = ATZ
        # Erläuterung zu Init2:
        # B40 ... ppp async auf sync umsetzen
        # &O2 ... (O wie Oje ;-) ATDs, ATDPs, ATDTs werden zu ATDIs (ISDN-Call) umgesetzt 
        Init2 = ATB40&O2                                                                       
        Compuserve = 0
        Tonline = 0
        Dial Command = ATX3DT
        Phone = 194040
        Baud = 115200
        Auto DNS = 1
        Stupid Mode = 1
        New PPPD = 1
  
\end{verbatim}
\end{tscreen}


Nun ist man schon so weit, da\ss{} man den Zugang \"uber ppp
einmal ausprobieren kann, indem man in einem Fenster mit root
Rechten das Kommando wvdial eingibt. Damit sollte \"uber
den ISDN-TA die ppp Verbindung aufgebaut werden.

Anmerkung: Der Init2 String mu\ss{} h\"andisch angepa\ss{}t werden und 
stimmt hier nur f\"ur das Zyxel omninet LCD. Bitte konsultieren 
Sie das Handbuch Ihres Terminaladapters. (Der INIT2 String
der von den wvdial-tools bei mir eingetragen wurde, hat zu
einigen Problemen gef\"uhrt).












\subsection{pppd
  \label{pppd}
   }


\subsubsection{pppd konfigurieren
  }

Bei der wvdial Konfiguration  sollte von Yast schon die Datei {\ttfamily /etc/ppp/pap-secrets}
generiert worden sein, in der am Ende des Files folgende
Zeile stehen sollte:

\begin{tscreen}
\begin{verbatim}
   "<username>"    *       "<password>"   *
  
\end{verbatim}
\end{tscreen}


$<$username{$>$} und $<$passord{$>$} m\"ussen mit Ihrer Teilnehmerkennung
und Ihrem Passwort aus dem Provider-Kuvert \"ubereinstimmen. Damit
auch bei CHAP-Authentifizierung alles klappt, tippen Sie:

\begin{tscreen}
\begin{verbatim}
       cp /etc/ppp/pap-secrets /etc/ppp/chap-secrets
  
\end{verbatim}
\end{tscreen}


Damit wird dann sowohl f\"ur PAP, als auch f\"ur CHAP ein korrekter Eintrag mit 
Ihren Providerdaten gefunden. Achten Sie darauf, da\ss{} Sie danach \"Anderungen immer
in beiden Files f\"uhren, damit Sie keine b\"osen \"Uberraschungen erleben, wenn dann
doch das Anmeldeverfahren durch Ihren Provider gewechselt wird.



Wenn die Verbindung l\"auft, kann man /var/log/messages schonen
indem man den ppp-daemon ein bischen weniger verbose macht. Hierf\"ur wird
in {\ttfamily /etc/ppp/options} die Zeile debug hinter Kommentarzeichen
gestellt:
\begin{tscreen}
\begin{verbatim}
   # Increase debugging level (same as -d). The debug output is written
   # to syslog LOG_LOCAL2.
   #debug
  
\end{verbatim}
\end{tscreen}















\subsection{Terminaladapter
  }

Dieses Kapitel soll Besonderheiten verschiedener TAs beschreiben.




\subsubsection{Zyxel
  }

Das Kapitel \ref{ISDN} {(ISDN)} wird anhand eines externen Zyxel TA erkl\"art.
Daher sind f\"ur die Zyxel TA IMHO keine speziellen Anmerkungen erforderlich.




\subsubsection{Lasat Speed II
 }

\onlynameurl{Reinhard Schlager {$<$}reinhard.schlager@jk.uni-linz.ac.at{$>$}}
brachte seinen Lasat Speed II Adapter mit folgender Einstellung zum laufen:
\begin{tscreen}
\begin{verbatim}
   Dial Command = ATX3 &B2DT
 
\end{verbatim}
\end{tscreen}









\subsubsection{interne TAs
 }

Nach einem Posting in der Newsgroup at.linux, erarbeitete 
\onlynameurl{Andreas Werschlan {$<$}andreas.werschlan@gmx.at{$>$}}
den Tip, wie wvdial auch mit internen TA verwendbar ist,
wenn man wvdial.conf wie folgt gegen\"uber den obigen Einstellungen,
\"andert:
\begin{tscreen}
\begin{verbatim}
   Modem = /dev/ttyI0
   Init2 = AT&E(Deine MSN)  <--- MSN einfügen (ohne Klammern!)
   Dial Command = ATD   1. man startet sein Lieblings-Terminalprogramm (z.B. minicom)
 
\end{verbatim}
\end{tscreen}

N\"ahere Informationen zu den AT Befehlen und der "Modem Emulation" 
(nat\"urlich keine richtige, es wird nur das serielle Interface 
simuliert) findet sich in 
\onlynameurl{/usr/src/linux/Documentation/isdn/README}.

Bei SUSE-Distributionen kann der interne TA auch \"uber YAST eingestellt
werden, ohne ihn mit wvdial wie ein Modem zu betrieben:
\begin{tscreen}
\begin{verbatim}
   Administration des Netzwerks
   Hardware ins System integrieren
   ISDN Hardware konfigurieren
 
\end{verbatim}
\end{tscreen}

Jedoch d\"urfte es zur Zeit noch keine geeigneten Reconnect
Mechanismen geben, um den 8 Stunden Timeout meines ISDN-Providers
zu umgeben. Daher wird z. Zt. AFAIK zumeist die wvdial-Methode
verwendet.

Hier noch einige Links zu internen TAs:

\begin{itemize}
\item Aus der Suse-Supportdatenbank 
\onlynameurl{http://sdb.suse.de/sdb/de/html/aaaisdnhowto.html}
\item die SDB finden Sie auch lokal  
\onlynameurl{file:/usr/doc/packages/i4l}
\item Ein deutsches HOWTO hat Andreas auch noch gefunden : 
\onlynameurl{http://www.franken.de/users/klaus/DE-ISDN-HOWTO/html/DE-ISDN-HOWTO.html}
\end{itemize}







\subsubsection{interne TAs
 }



In der at.linux schrieb 
\onlynameurl{adi@selingers.com (adi)}
am 26.11.2001 im Beitrag 
\onlynameurl{{$<$}591f5097.0111260526.30ea04a2@posting.google.com{$>$}} folgendes:

\begin{tscreen}
\begin{verbatim}
Ich habs geschafft, fritz!x usb unter suse 7.3 Anleitung:
1.  fxsuse7.2 von avm runterladen
2.  suse kernelquellen installieren
3.  fxsuse entpacken
4.  ins verzeichnis fritz wechseln
5.  datei install: zeile 11 auf KERNEL=2.4.10-4GB ändern
6.  als root: ln -s /usr/src/linux-2.4.10.SuSE /lib/modules/2.4.10-4GB
7.  als root: cp /boot/vmlinuz.version.h /lib/modules/2.4.10-4GB/build/include/linux/version.h
8.  im verzeichnis fritz/src.drv/ das makefile editieren:
    zeile 9:  CCFLAGS = -c $(DEFINES) -O2 -Wall -I /lib/modules/2.4.10-4GB/build/include
10. im verzeichnis fritz: make eingeben
11. cp fritz/src.drv/fxusb.o fritz/
12. ./install
13. rpm -i usbmgr-0.4.8-1.i386
14. pppd-2.4.0 installieren (pppd-2.4.1 funkt nicht)
15. "pppd call isdn/provider usepeerdns" und es funkt (die
    providerdateien einfach im verzeichnis 
    /etc/ppp/peer/isdn abändern)

thats ist

PS: die dateien die ihr benötigt, und einen anleitung für teledat ist auf http://ds9.esmartweb.com
   
\end{verbatim}
\end{tscreen}





















\subsection{pppd beim Booten starten:
    }

Nun macht es aber keinen Spa\ss{} nach jedem Boot wieder die 
Modemverbindung mit dem Kommando wvdial neu zu starten. 
Daher f\"ugt man in der Datei {\ttfamily /etc/inittab} die
folgende Zeile ein:

\begin{tscreen}
\begin{verbatim}
   9:123:respawn:/bin/mywvdial tty9
  
\end{verbatim}
\end{tscreen}


Das Script /bin/mywvdial k\"onnte wie folgt aussehen.

\begin{tscreen}
\begin{verbatim}
   #! /bin/bash

   # wvdial starter /bin/mywvdial
   #
   # Copyright (C) 1999 Heimo Schön <heimo.schoen@gmx.at>
   #
   # This program is free software; you can redistribute it and/or modify
   # it under the terms of the GNU General Public License as published by
   # the Free Software Foundation; either version 2, or (at your option)
   # any later version.
   #
   # This program is distributed in the hope that it will be useful,
   # but WITHOUT ANY WARRANTY; without even the implied warranty of
   # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   # GNU General Public License for more details.
   #
   # You should have received a copy of the GNU General Public License
   # along with this program; if not, write to the Free Software
   # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


   # clear screen on tty9 an print startmessage
   clear > /dev/tty9
   echo mywvdial is starting at `date` on $HOSTNAME ... > /dev/tty9

   # do some logging and counting
   xx=`cat /tmp/wvdial_counter`
   expr $xx + 1 > /tmp/wvdial_counter
   echo $xx `date` >> /tmp/wvdial.log

   # start wvdial
   /usr/bin/wvdial Defaults 0< /dev/tty9 2>&1 3>&0 | tee -a /tmp/wvdial.out

   echo wvdial died at `date` >> /tmp/wvdial.log

   # sleep a little bit for not so fast restarting
   sleep 1

   # Die nachfolgenden Zeilen sind ein Sicherheitsnetz für
   # eventuell noch hängende pppd und wvdial Prozesse:
   # zuerst schießen wir mit Platzpatronen (vielleicht schreckt er sich ;-)
   /usr/bin/killall wvdial
   /usr/bin/killall pppd
   # und jetzt wird scharf geschossen
   /usr/bin/killall -9 wvdial
   /usr/bin/killall -9 pppd
  
\end{verbatim}
\end{tscreen}


wvdial hat sich aber trotzdem massiv dagegen gewehrt
auf /dev/tty9 auszugeben. Daher habe ich noch das console-device
verbogen:

\begin{tscreen}
\begin{verbatim}
   mv /dev/console /dev/console.old
   ln -s /dev/tty9 /dev/console
  
\end{verbatim}
\end{tscreen}


Dann noch einmal killen von wvdial, mywvdial und pppd (processids
erh\"alt man mit ps xafe oder man nimmt killall wvdial mywvdial pppd) 
und dann hat es endlich funktioniert, da\ss{}
wvdial nur noch auf /dev/tty9 geschrieben hat.






















\subsection{route
  }

In {\ttfamily /etc/route.conf} darf keine default-route gesetzt sein.
Die Zeile
\begin{tscreen}
\begin{verbatim}
   # default                 192.168.0.1
  
\end{verbatim}
\end{tscreen}

ist daher hinter Kommentarzeichen \# zu stellen. Die 
einzige Zeile in meiner route.conf ist
\begin{tscreen}
\begin{verbatim}
   192.168.1.0             0.0.0.0                 255.255.255.0           eth0
  
\end{verbatim}
\end{tscreen}













\subsection{DNS-Cache
   }

Nun ist es an der Zeit einen DNS-Cache zu aktivieren. Zwei Vorschl\"age
hierzu finden Sie in den Kapiteln
\ref{bind} {(bind)}
und
\ref{DNSmasq} {(DNSmasq)}
(siehe dort).












\subsection{firewall   }

Wenn man mit dem ISDN Zugang 24 Stunden online sein m\"ochte,
dann sollte man den Linux Rechner vor den 100 Millionen
potentiellen Angreifern sch\"utzen. Dieser Schutzwall 
vor dem Internet wird firewall genannt.

Die Firewall habe ich aktiviert durch folgende Zeilen in
{\ttfamily /sbin/init.d/network} (die Zeilen habe ich vor dem exit 0 
eingef\"ugt):

\begin{tscreen}
\begin{verbatim}
   # Firewall aktivieren (1.12.99 / Heimo)
   /sbin/ipchains -F
   /sbin/ipchains-restore < /etc/ipchains.default
   /sbin/ipchains -L > /tmp/ipchains.bootup
   # Firewall Ende
  
\end{verbatim}
\end{tscreen}


Setzen Sie die Variable »IP\_FORWARD« in {\ttfamily /etc/rc.config} auf »yes«

Eine andere Variante f\"ur den Start der Firewall w\"are
in {\ttfamily /sbin/init.d/boot.loacl} die oben gezeigten Zeilen
einzuf\"ugen.
Welchen Weg Sie w\"ahlen, bleibt ganz Ihrem Geschmack \"uberlassen.

Hierzu ben\"otigt man noch eine Datei {\ttfamily /etc/ipchains.default}
die wahrscheinlich 1:1 von mir \"ubernommen werden kann:

\begin{tscreen}
\begin{verbatim}
   :input ACCEPT
   :forward ACCEPT
   :output ACCEPT
   -A forward -s 192.168.1.0/255.255.255.0                        -i ppp0      -j MASQ
   -A input -s 0.0.0.0/0.0.0.0             -d 0.0.0.0/0.0.0.0  80 -i ppp0 -p 6 -j ACCEPT    -y
   -A input -s 0.0.0.0/0.0.0.0             -d 0.0.0.0/0.0.0.0  22 -i ppp0 -p 6 -j ACCEPT    -y
   -A input -s 0.0.0.0/0.0.0.0             -d 0.0.0.0/0.0.0.0 113 -i ppp0 -p 6 -j ACCEPT    -y
   -A input -s 0.0.0.0/0.0.0.0 20          -d 0.0.0.0/0.0.0.0     -i ppp0 -p 6 -j ACCEPT    -y
   -A input -s 0.0.0.0/0.0.0.0             -d 0.0.0.0/0.0.0.0     -i ppp0 -p 6           -l -y
   -A input -s 0.0.0.0/0.0.0.0             -d 0.0.0.0/0.0.0.0     -i ppp0 -p 6 -j DENY      -y
  
\end{verbatim}
\end{tscreen}


(Anm.: Beim Ausdrucken bitte landscape w\"ahlen, da sonst u. U. 
rechts ein paar Spalten verloren gehen. Ich m\"ochte aber 
nicht backslash umbrechen, da sonst m\"oglicherweise die 
Newbies Probleme haben).

Wer diese Standardkonfiguration erweitern m\"ochte, oder andere Verbindungen
ben\"otigt, sollte unbedingt das 
\onlynameurl{Firewall HOWTO}
gelesen haben, bevor er sich an die Konfiguration seiner Firewall wagt.
Der Vollst\"andigkeit halber sei noch erw\"ahnt, da\ss{} obiges script {\ttfamily /etc/ipchains.default}
nur eine "Idee" sein sollte wie andere Leute Ihre Firewall konfiguriert haben. Jeder
gewissenhafte Betreiber eines High-speed Internetzugangs sollte sich des Risikos bewu\ss{}t
sein, und sich mit dem Script so weit auseinandersetzen, da\ss{} er einigerma\ss{}en versteht
was es tut. Hierzu kann ich nur nocheinmal auf  
\onlynameurl{Firewall HOWTO}
verweisen.








\subsection{/etc/ppp/ip-up
   \label{ip-up}
    }

Das File {\ttfamily /etc/ppp/ip-up} wird vom pppd gestartet, wenn
eine Verbindung hochkommt oder abgebaut wird. Das
gibt uns die M\"oglichkeit, Dinge zu tun, sobald sind
im Status unserer ppp-Verbindung etwas \"andert. Da
bei bei meinem Provider die Verbindung nur maximal 8 Stunden
besteht und dann vom Provider gekappt wird, ist die 
Wiederherstellung der Verbindung vermutlich
die interessantere Phase.

Ich will an dieser Stelle nur ein paar Ideen geben
was man mit ip-up "treiben" kann. Es soll aber keine
vollst\"andige Liste sein.

Z. B. kann es sinn machen andere Kollegen
oder sich selber im B\"uro mitzuteilen, \"uber welche 
IP-Adresse man erreichbar ist. Symbolisch angedeutet
ist nachfolgend die structur des ip-up scripts.

\begin{tscreen}
\begin{verbatim}
   :
case "$INTERFACE" in
ippp*)
   :
ppp*)
   :
    case "$BASENAME" in
    ip-up)
       :
  
\end{verbatim}
\end{tscreen}


Ich habe im case INTERFACE=ppp* und BASENAME=ip-up 
folgende Zeilen eingef\"ugt (Die Zeile mit wwwoffle
kann entfallen, wenn squid verwendet wird):

\begin{tscreen}
\begin{verbatim}
        /usr/bin/wwwoffle -online

        echo "http://$LOCALIP" | mail -s "http://$LOCALIP" anybody@anywhere
        echo "http://$LOCALIP" | mail -s "http://$LOCALIP" heimo@office


        case "$INTERFACE" in
          ppp0)
            su - <username> -c "/bin/push-index $LOCALIP"
          ;;
        esac

        su - <localuser> -c "/usr/bin/ssh -l <remoteuser> <ip-adr> <dosomething>"
  
\end{verbatim}
\end{tscreen}


Mit der ersten Zeile wird wwwoffle online geschaltet 
(siehe auch Kapitel \ref{wwwoffle} {(wwwoffle)}.)

Per Mail wird die aktuelle IP-Adresse weitergeleitet 
(einmal an einen Kollegen anybody und ins B\"uro)

Es kann auch ein Script gestartet werden, da\ss{} z. B. eine neue
Homepage mit der aktuellen IP-Adresse generiert und mit
ftp irgendwo hinkopiert (hier mit push-index angedeutet).
F\"ur $<$username$>$ f\"ugen Sie jenen account-namen ein unter dem
push-index laufen soll. (wie so ein Script push-index aussehen
k\"onnte, ist im Kapitel \ref{homepage} {(homepage)} beschrieben).

mit der letzten Zeile wird eine Secure-shell Verbindung 
symbolisch dargestellt, die auf einem anderen Rechner
Funktionen ausf\"uhrt.








\subsection{Probleme beim Verbindungsaufban
   \label{ppp-problem}
    }

H\"aufig haben die Rechner bei meinem Provider ein Problem beim Verbindungsaufbau.
Manchmal funktioniert die automatische Einwahl bei meinem Provider wochenlang
problemlos und dann bleibt oft mehrmals hintereinander der Verbindungsaufbau
regelrecht stecken. IMHO wird beim Provider nach der Einwahl keine Authentizierung
gestartet und dadurch kommt keine ppp-Verbindung zustande. Als workaround
f\"ur dieses Problem hat sich folgendes script bew\"ahrt. Das Script gibte es
hier f\"ur externe TAs:
\begin{tscreen}
\begin{verbatim}
    #! /bin/bash

    # checkisdn - check if isdn connection is up-and-running and kill
    #             wvdial, when no isdn found for more then 10 seconds
    #
    # Copyright (C) 1999 Heimo Schön <heimo.schoen@gmx.at>
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2, or (at your option)
    # any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

    export ISDN_UNREACHABLE=`fping -t8500 195.3.96.67 | grep unreachable`
    if test -n "$ISDN_UNREACHABLE" ; then

      echo `date` : $ISDN_UNREACHABLE - 1st test >> /tmp/checkisdn.log
      sleep 10

      export ISDN_UNREACHABLE=`fping -t 8500 195.3.96.67 | grep unreachable`
      if test -n "$ISDN_UNREACHABLE" ; then
        echo `date` : $ISDN_UNREACHABLE - 2nd test >> /tmp/checkisdn.log

        # here you can do, what you think that should be done

        # User with external TAs can do this:
        killall wvdial

      fi

    fi
  
\end{verbatim}
\end{tscreen}


Und hier gibt es noch den Vorschlag von
\onlynameurl{Leo Eibler {$<$}leo\_eibler@gmx.at{$>$}}
f\"ur interne TAs:

\begin{tscreen}
\begin{verbatim}
    #! /bin/bash

    # checkisdn - check if isdn connection is up-and-running and kill
    #             wvdial, when no isdn found for more then 10 seconds
    #
    # Copyright (C) 1999 Heimo Schön <heimo.schoen@gmx.at>
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2, or (at your option)
    # any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

    export ISDN_UNREACHABLE=`fping -t8500 195.3.96.67 | grep unreachable`
    if test -n "$ISDN_UNREACHABLE" ; then

      echo `date` : $ISDN_UNREACHABLE - 1st test >> /tmp/checkisdn.log
      sleep 10

      export ISDN_UNREACHABLE=`fping -t8500 195.3.96.67 | grep unreachable`
      if test -n "$ISDN_UNREACHABLE" ; then
        echo `date` : $ISDN_UNREACHABLE - 2nd test >> /tmp/checkisdn.log

        # here you can do, what you think that should be done

        # User with internal TAs can do this:
        isdnctrl hangup ippp0
        /sbin/init.d/i4l stop
        /sbin/init.d/i4l_hardware stop
        /sbin/init.d/i4l_hardware start
        /sbin/init.d/i4l start
        isdnctrl dial ippp0
      fi

    fi
  
\end{verbatim}
\end{tscreen}


W\"ahlen Sie nun das script aus, je nachdem ob Sie einen internen
oder einen externen TA haben. Legen Sie es z. B. in die Datei
/bin/checkisdn. Vergessen Sie nicht das Script exekutierbar zu machen mit:

\begin{tscreen}
\begin{verbatim}
    chmod a+x /bin/checkisdn
   
\end{verbatim}
\end{tscreen}


Um das script regelm\"a\ss{}ig laufen zu lassen, wird folgende Zeile in 
die crontab eingef\"ugt:

\begin{tscreen}
\begin{verbatim}
    0-59/3  * * * * root  test -x /bin/checkisdn       && /bin/checkisdn
   
\end{verbatim}
\end{tscreen}


Nun m\"ussen Sie nur noch cron neu starten und schon wird alle 3 Minuten
\"uberpr\"uft ob die Einwahl h\"angegeblieben ist. Wird l\"anger als 10 Sekunden
keine Verbindung zum Provider gefunden, wird die ISDN-Verbindung
geschlossen und eine neue Einwahl gestartet.






































\section{Internetdienste
  \label{Internetdienste}
   }


\subsection{sendmail     }

In {\ttfamily /etc/sendmail.cf} m\"ussen folgende Zeile ge\"andert werden:

\begin{tscreen}
\begin{verbatim}

    # "Smart" relay host (may be null)
    DSemail.aon.at

    # class E: names that should be exposed as from this host, even if we masquerade
    # class L: names that should be delivered locally, even if we have a relay
    # class M: domains that should be converted to $M
    #CL root
    CL heimo.schoen

    # who I masquerade as (null for no masquerading) (see also $=M)
    DMaon.at

   
\end{verbatim}
\end{tscreen}





\subsection{fetchmail     }

Zus\"atzlich wird in der Datei {\ttfamily /etc/fetchmail} eingetragen, 
von welchen Servern Mails abgeholt werden sollen. Das k\"onnte
wie folgt aussehen:

\begin{tscreen}
\begin{verbatim}
    poll pop.gmx.net proto pop3
      user "uuuu" pass pppp is llll
    poll mailbox.aon.at proto pop3
      user "aon.kkkk" pass pppp is llll
   
\end{verbatim}
\end{tscreen}


F\"ur uuuu tragen Sie den Usernamen am jeweiligen 
pop-server ein. F\"ur pppp das Pa\ss{}wort zu uuuu.
F\"ur llll tragen sie den Usernamen ein, f\"ur den
die Post am lokalen System zur Verf\"ugung gestellt
werden soll. Anstatt kkkk tragen Sie Ihre Provider
Kundennummer ein (werden Sie zumeist in einem Kuvert erhalten).

Damit nun regelm\"a\ss{}ig Mails abgeholt werden habe ich in der 
Datei {\ttfamily /etc/crontab} folgende Zeile eingetragen:

\begin{tscreen}
\begin{verbatim}
     0-59/1  * * * * root  /bin/mailnow 
   
\end{verbatim}
\end{tscreen}


In der Datei /bin/mailnow ist folgender komplexe Inhalt ;-)

\begin{tscreen}
\begin{verbatim}
    #! /bin/bash

    # fetch mails from isp
    /usr/bin/fetchmail -f /etc/fetchmail
   
\end{verbatim}
\end{tscreen}


Anm.: fetchmail findet man in der SUSE-Distribution 
in der Gruppe n unter pop

In der Datei {\ttfamily /etc/inet.conf} die Zeile in der popper 
gestartet wird, vom Kommentarzeichen befreien. Das -s 
kann auch entfernt werden. Ich habe einfach die Zeile kopiert, 
und ohne das -s und ohne Kommentarzeichen am Zeilenanfang, 
in einer neuen Zeile angef\"ugt. Das sieht dann so aus:

\begin{tscreen}
\begin{verbatim}
    # pop3      stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/popper -s
    pop3        stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/popper
   
\end{verbatim}
\end{tscreen}


Danach sollten Sie den inetd neu starten mit 
\begin{tscreen}
\begin{verbatim}
    /etc/rc.d/inetd restart
   
\end{verbatim}
\end{tscreen}


Nun sollten Sie von Ihren Clientmaschinen bereits Mails abholen k\"onnen.






\subsection{sendmail relaying
    }

Es gibt zwei M\"oglichkeiten sendmail dazu zu bewegen als Relay
f\"ur client Rechner zu fungieren.

In {\ttfamily /etc/mail/access} habe ich die folgende Zeile eingef\"ugt:

\begin{tscreen}
\begin{verbatim}
    192.168.1       RELAY
   
\end{verbatim}
\end{tscreen}


Man mu\ss{} danach die access.db neu erzeugen. Das macht man mit
dem Kommando

\begin{tscreen}
\begin{verbatim}
    makemap hash access < access
   
\end{verbatim}
\end{tscreen}


Die andere Methode ist in {\ttfamily /etc/mail/relay-domains} alle
Maschinen eintragen, von denen aus gemailt werden soll.
Die Datei /etc/mail/relay-domains k\"onnte so aussehen:

\begin{tscreen}
\begin{verbatim}
    ternitz1.ternitz
    ternitz1
    192.168.1.1
   
\end{verbatim}
\end{tscreen}



























\subsection{wwwoffle
   \label{wwwoffle}
    }



Zur Aktivierung von wwwoffle sollten Sie in rc.config die
Environmentvariable START\_WWWOFFLE auf yes setzen und
die Variable START\_SQUID auf no.

Nach dieser Arbeit m\"ussen sie {\ttfamily /etc/wwwoffle/wwwoffle.conf}
anpassen. Hier werden nur die zu \"andernden Rubriken 
aufgez\"ahlt. Der Rest bleibt unver\"andert:

Zuerst den Proxyserver

\begin{tscreen}
\begin{verbatim}
    Proxy
    {
    # http://* = none
     http://* = proxy.aon.at:8080

    #### Example ####
    # Use www.foo.com as a default http proxy server on port 8080
    # Except for the foo.com domain which has no proxy.
    # http://*    = www.foo.com:8080
    # *://foo.com = none
    }
   
\end{verbatim}
\end{tscreen}


Nun die zust\"andigen Hosts beim Provider.

\begin{tscreen}
\begin{verbatim}
    LocalHost
    {
    # localhost
     127.0.0.1

     195.3.96.67
     195.3.96.68
     www.aon.at

    #### Example ####
    # The server is on www.foo.com, with IP address 11.22.33.44.
    # www.foo.com
    # 11.22.33.44
    }
   
\end{verbatim}
\end{tscreen}


In der nachfolgenden Rubrik tragen Sie alle Ihre Maschinen ein
die auf den wwwoffle Ihres Gateways zugreifen d\"urfen. Ich habe
nachstehend folgende Maschinen freigegeben (schreibweise wie
es auch in {\ttfamily /etc/hosts} stehen k\"onnte): 
\begin{itemize}
\item  192.168.1.1  example1.example example1
\item  192.168.1.2  example2.example example2
\end{itemize}


\begin{tscreen}
\begin{verbatim}
    AllowedConnectHosts
    {
      ternitz1.ternitz
      ternitz1
      192.168.1.1

      ternitz2.ternitz
      ternitz2
      192.168.1.2


    #### Example ####
    # Only allow connections from hosts in the foo.com domain.
    # *.foo.com
    }
   
\end{verbatim}
\end{tscreen}


Da es keinen etwas angeht "welche Applikation" hier surft, 
sollten Sie die
nachfolgend gezeigte Zeile \"andern. Braucht ja keiner zu
wissen, da\ss{} hier ein wwwoffle die Seiten fetcht und in
einem Hausnetz zur Verf\"ugung stellt, denn so wie es bei
mir, ist immer nur ein client aktiv und die ganze "\"ubung"
mit Linux und wwwoffle ist nur als Verl\"angerung der ISDN
Leitung gedacht, da die Telekom mir das Kabel nicht bis
ins Arbeitszimmer gelegt hat, sondern nur bis in den Keller.
Also steht dort ein kleiner Rechner und wandelt ISDN auf
TCP/IP um.

\begin{tscreen}
\begin{verbatim}
    CensorHeader
    {

    ### Example ###
    # Don't send the username.
    # From =
    # Don't send Cookies back
    # Cookie =
    # Lie about the Browser type.
    # User-Agent = WWWOFFLE/2.4
    User-Agent = Mozilla/faked
    }
   
\end{verbatim}
\end{tscreen}


Infomrationen zu wwwoffle finden Sie unter
\onlynameurl{/usr/doc/packages/wwwoffle}.
















\subsection{squid
    }



Da in der ersten Version dieses HOWTOs beinahe ein "Glaubenskrieg"
ausbrach, ob nun wwwoffle oder squid das bessere Tool ist, findet
sich hier der Setup f\"ur squid. Ich gebe zu, da\ss{} ich um squid in 
dem HOWTO zu dokumentieren, squid auf meinem Gateway installiert
habe und er dort heute noch l\"auft, was aber umso mehr beweist, da\ss{}
es IMHO egal ist was ich verwende.

Zur Aktivierung von squid sollten Sie in rc.config die
Environmentvariable START\_SQUID auf yes setzen und
die Variable START\_WWWOFFLE auf no.

Nach dieser Arbeit m\"ussen sie {\ttfamily /etc/squid.conf}
anpassen. Hier werden nur die zu \"andernden Rubriken 
aufgez\"ahlt. Der Rest bleibt unver\"andert:

\begin{tscreen}
\begin{verbatim}
     #  TAG: cache_dir
     #  Usage:
     #  
     #  cache_dir Directory-Name Mbytes Level-1 Level2
     #
     #  You can specify multiple cache_dir lines to spread the
     #  cache among different disk partitions.
     #
     #  'Directory' is a top-level directory where cache swap
     #  files will be stored.  If you want to use an entire disk
     #  for caching, then this can be the mount-point directory.
     #  The directory must exist and be writable by the Squid
     #  process.  Squid will NOT create this directory for you.
     #
     #  If no 'cache_dir' lines are specified, the following
     #  default will be used: /var/squid/cache.
     #
     #  'Mbytes' is the amount of disk space (MB) to use under this
     #  directory.  The default is 100 MB.  Change this to suit your
     #  configuration.
     #
     #  'Level-1' is the number of first-level subdirectories which
     #  will be created under the 'Directory'.  The default is 16.
     #
     #  'Level-2' is the number of second-level subdirectories which
     #  will be created under each first-level directory.  The default
     #  is 256.
     #
     cache_dir /var/squid/cache 400 16 256
   
\end{verbatim}
\end{tscreen}


So k\"onnten Ihr ACLs aussehen. Das ist nur ein Beispiel und entsprechend
Ihren Bed\"urfnissen anzupassen. Vor allem localnet werden Sie entsprechend
Ihren Netzwerkgegebenheiten anpassen m\"ussen:

\begin{tscreen}
\begin{verbatim}
     # ACCESS CONTROLS
     # -----------------------------------------------------------------------------

     #  TAG: acl
     #  Defining an Access List
     #
     #  acl aclname acltype string1 ...
     #  acl aclname acltype "file" ...
     #
     #  when using "file", the file should contain one item per line
     #
     #  acltype is one of src dst srcdomain dstdomain url_pattern
     #          urlpath_pattern time port proto method browser user
     #
     #  By default, regular expressions are CASE-SENSITIVE.  To make
     #  them case-insensitive, use the -i option.
     #
     #  acl aclname src      ip-address/netmask ... (clients IP address)
     #  acl aclname src      addr1-addr2/netmask ... (range of addresses)
     #  acl aclname dst      ip-address/netmask ... (URL host's IP address)
     #  acl aclname myip     ip-address/netmask ... (local socket IP address)
     #
     #  acl aclname srcdomain   foo.com ...     # reverse lookup, client IP
     #  acl aclname dstdomain   foo.com ...     # Destination server from URL
     #  acl aclname srcdom_regex [-i] xxx ...   # regex matching client name
     #  acl aclname dstdom_regex [-i] xxx ...   # regex matching server
     #    # For dstdomain and dstdom_regex  a reverse lookup is tried if a IP
     #    # based URL is used. The name "none" is used if the reverse lookup
     #    # fails.
     #
     #  acl aclname time     [day-abbrevs]  [h1:m1-h2:m2]
     #      day-abbrevs:
     #          S - Sunday
     #          M - Monday
     #          T - Tuesday
     #          W - Wednesday
     #          H - Thursday
     #          F - Friday
     #          A - Saturday
     #      h1:m1 must be less than h2:m2
     #  acl aclname url_regex [-i] ^http:// ... # regex matching on whole URL
     #  acl aclname urlpath_regex [-i] \.gif$ ...       # regex matching on URL path
     #  acl aclname port     80 70 21 ...
     #  acl aclname port     0-1024 ...         # ranges allowed
     #  acl aclname proto    HTTP FTP ...
     #  acl aclname method   GET POST ...
     #  acl aclname browser  [-i] regexp
     #    # pattern match on User-Agent header
     #  acl aclname ident    username ...
     #    # string match on ident output.
     #    # use REQUIRED to accept any non-null ident.
     #  acl aclname src_as   number ... 
     #  acl aclname dst_as   number ...
     #    # Except for access control, AS numbers can be used for
     #    # routing of requests to specific caches. Here's an 
     #    # example for routing all requests for AS#1241 and only 
     #    # those to mycache.mydomain.net:
     #    # acl asexample dst_as 1241
     #    # cache_peer_access mycache.mydomain.net allow asexample
     #    # cache_peer_access mycache_mydomain.net deny all
     #
     #  acl aclname proxy_auth username ...
     #    # list of valid usernames
     #    # use REQUIRED to accept any valid username.
     #    #
     #    # NOTE: when a Proxy-Authentication header is sent but it is not
     #    # needed during ACL checking the username is NOT logged
     #    # in access.log.
     #    #
     #    # NOTE: proxy_auth requires a EXTERNAL authentication program
     #    # to check username/password combinations (see
     #    # authenticate_program).
     #    #
     #    # WARNING: proxy_auth can't be used in a transparent proxy. It
     #    # collides with any authentication done by origin servers. It may
     #    # seem like it works at first, but it doesn't.
     #
     #  acl aclname snmp_community string ...
     #    # A community string to limit access to your SNMP Agent
     #    # Example:
     #    # 
     #    #     acl snmppublic snmp_community public
     #
     #
     acl all src 0.0.0.0/0.0.0.0
     acl manager proto cache_object
     acl localhost src 127.0.0.1
     acl localnet src 192.168.1.0/255.255.255.0             
     acl SSL_ports port 443 563
     acl Safe_ports port 80 21 443 563 70 210 1025-65535
     acl CONNECT method CONNECT
   
\end{verbatim}
\end{tscreen}


Jetzt wird es Zeit Die Zugriffsrechte einzuschr\"anken. Zuerst
erlauben wir den Zugriff von localhost und localnet (haben wir
gerade die acl eingerichtet) und dann drehen wir alles andere
wieder ab (die Originalzeile .. allow all .. bitte hinter
Kommentar stellen - sonst steht Ihre Maschine ungesch\"utzt
in der weiten Welt):

\begin{tscreen}
\begin{verbatim}
     #  TAG: http_access
     #  Allowing or Denying access based on defined access lists
     #
     #  Access to the HTTP port:
     #  http_access allow|deny [!]aclname ...
     #
     #  Access to the ICP port:
     #  icp_access  allow|deny [!]aclname ...
     #
     #  NOTE on default values:
     #
     #  If there are no "access" lines present, the default is to allow
     #  the request.
     #
     #  If none of the "access" lines cause a match, the default is the
     #  opposite of the last line in the list.  If the last line was
     #  deny, then the default is allow.  Conversely, if the last line
     #  is allow, the default will be deny.  For these reasons, it is a
     #  good idea to have an "deny all" or "allow all" entry at the end
     #  of your access lists to avoid potential confusion.
     #
     #Default configuration:
     #http_access allow manager localhost
     #http_access deny manager
     #http_access deny !Safe_ports
     #http_access deny CONNECT !SSL_ports
     #
     # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
     #
     http_access allow localhost
     http_access allow localnet
     http_access deny all
     # http_access allow all


     #  TAG: icp_access
     #  Reply to all ICP queries we receive
     #
     icp_access allow all


     #  TAG: miss_access
     #  Use to force your neighbors to use you as a sibling instead of
     #  a parent.  For example:
     #
     #          acl localclients src 172.16.0.0/16
     #          miss_access allow localclients
     #          miss_access deny  !localclients
     #
     #  This means that only your local clients are allowed to fetch
     #  MISSES and all other clients can only fetch HITS.
     #
     #  By default, allow all clients who passed the http_access rules
     #  to fetch MISSES from us.
     miss_access allow all
   
\end{verbatim}
\end{tscreen}


Die wohl wichtigste Funktion ist wie bei wwwoffle das faken der 
Browserkennung

\begin{tscreen}
\begin{verbatim}
     #  TAG: fake_user_agent
     #  If you filter the User-Agent header with 'anonymize_headers' it
     #  may cause some Web servers to refuse your request.  Use this to
     #  fake one up.  For example:
     #
     #  fake_user_agent Nutscrape/1.0 (CP/M; 8-bit)
     #  (credit to Paul Southworth pauls@etext.org for this one!)
     #
     fake_user_agent Gozilla/4711.0815 (CP/M; 11-bit; 59 MByte)
   
\end{verbatim}
\end{tscreen}


Mehr habe ich f\"ur meinen squid nicht ge\"andert. Der Rest blieb hinter
Kommentarzeichen.






















\subsection{leafnode
    }



Als Newsserver habe ich leafnode gew\"ahlt. Hierzu sind folgende Schritte
notwendig. 

Zuerst sollten Sie das leafnode Konfigurationsfile wie
folgt anpassen. Hier ist nur der Anfang des Files gezeigt.
Der Rest des Files kann so bleiben. Sie sollten aber
gelegentlich man leafnode verinnerlichen und die Parameter
ihrem News-Verhalten entsprechend anpassen, sonst haben 
Sie entweder nie die News die sie gerade lesen wollen oder
Ihre Harddisk quillt \"uber, etc.

\begin{tscreen}
\begin{verbatim}
    ## This is the NNTP server leafnode fetches its news from.
    ## You need read and post access to it. Mandatory.
    server = news.aon.at

    ## Unread discussion threads will be deleted after this many days if
    ## you don't define special expire times. Mandatory.
    expire = 400
    timeout = 60

    ##
    ## All the following parameters are optional
    ##

    ## I have free access to my news server. If you don't have, comment out
    ## the following two lines and change them accordingly.
    # username = 
    #password = 
   
\end{verbatim}
\end{tscreen}


Im obigen Listing-Ausschnitt der Datei {\ttfamily /etc/leafnode/config} ist
wichtig, da\ss{} die Zeilen username und password hinter Kommentaren
bleiben.

Damit leafnode auch von anderen Servern fetcht habe ich folgende
Zeilen eingef\"ugt:

\begin{tscreen}
\begin{verbatim}
     ## This is a news server which does not understand the 
     ## "LIST NEWSGROUP news.group" command. For this reason, we don't try to
     ## download newsgroups descriptions when getting new newsgroups. This is
     ## achieved by putting "nodesc = 1" somewhere behind the server/supplement
     ## line.
     supplement = news.wu-wien.ac.at
     supplement = news.univie.ac.at
     supplement = newscache.infosys.tuwien.ac.at
     supplement = euklid.nt.tuwien.ac.at
     supplement = news2.informatik.uni-bremen.de

     # nodesc = 1

     ## Here we have another news server which has a very slow connection. For
     ## that reason, we wait a full minute before we give up trying to connect.
     ## The default is 10 seconds.
     supplement = news.inode.at
     timeout = 60
   
\end{verbatim}
\end{tscreen}


Zu guter Letzt noch die leafnode/config f\"ur den User news lesbar machen. Am Besten gleich mit:
\begin{tscreen}
\begin{verbatim}
    chmod a+r /etc/leafnode/config
   
\end{verbatim}
\end{tscreen}













\subsection{bind
   \label{bind}
  }

In {\ttfamily /etc/named.conf} wird folgender Block aktiviert:
\begin{tscreen}
\begin{verbatim}
       options {
             ....
             forwarders {
                     195.3.96.67
                     195.3.96.68
                     # = die beiden DNS Server des Providers hier eintragen
             };
             ....
       };
  
\end{verbatim}
\end{tscreen}

In rc.config mu\ss{} die Variable START\_NAMED=yes gesetzt werden.

Dieses Kapitel stammt von 
\onlynameurl{Leo Eibler {$<$}leo\_eibler@gmx.at{$>$}}.














\subsection{DNSmasq
   \label{DNSmasq}
    }

DNSmasq ist eine sehr schlanke alternative zu bind
mehr dazu findet man/frau auf
\onlynameurl{http://www.thekelleys.org.uk/dnsmasq/doc.html}

Vorteile gegenueber bind:
\begin{itemize}
\item als caching only DNS is bind viel zu 'aufgeblaeht' und resourcen-fressend.
\item DNSmasq ist immun gegen 'bind exploits'
\item DNSmasq ist sehr einfach zu installieren
\item DNSmasq hat kein eigens config-file; es verwendet die eintraege aus 
{\ttfamily /etc/resolv.conf} und {\ttfamily /etc/hosts}
\end{itemize}


Im Linux-WiKi gibt es eine sch\"one Beschreibung zu dnsmasq
\onlynameurl{http://linuxwiki.de/dnsmasq}






















\subsubsection{crontab
    }



Um leafnode dazu zu bewegen regelm\"a\ss{}ig news zu fetchen,
sind folgende Zeilen in {\ttfamily /etc/crontab} einzuf\"ugen:

\begin{tscreen}
\begin{verbatim}
     34      2 * * * root  test -x /usr/sbin/fetchnews && /usr/sbin/fetchnews -f
     0-59/5  * * * * root  test -x /usr/sbin/fetchnews && /usr/sbin/fetchnews -v -l
   
\end{verbatim}
\end{tscreen}


Das bewirkt da\ss{} alle 5 Minuten ein fetch -v -l durchgef\"uhrt wird
der alle neuen Artikel fetcht aber nicht die supplementery server
befragt und da\ss{} um 02:34 t\"aglich ein
fetch forced durchgef\"uhrt wird, der alle Inhaltsverzeichnisse
neu l\"adt. Dieser Vorgang kann einige Stunden dauern und wurde
daher auf 02:34 gelegt da um 02:30 ein fetchnews -f -l l\"auft
der bis um 02:34 fertig sein sollte.

 
Wenn Sie zus\"atzlich noch die folgende Zeile einf\"ugen, dann wird alle
60 Sekunden alles was in /var/spool/news/outgoing liegt gepostet.

\begin{tscreen}
\begin{verbatim}
     0-59/5  * * * * root  test -x /usr/sbin/fetch && /usr/sbin/fetch -P -l
   
\end{verbatim}
\end{tscreen}







\subsubsection{inetd.conf
    }



In der Datei {\ttfamily /etc/inetd.conf} habe ich vor der Zeile in der folgender
Inhalt steht, das Kommentarzeichen entfernt:

\begin{tscreen}
\begin{verbatim}
    nntp        stream  tcp     nowait  news    /usr/sbin/tcpd  /usr/sbin/leafnode
   
\end{verbatim}
\end{tscreen}























\subsection{Date/time
    }

Damit mein Rechner im richtige Uhrzeit hat, habe ich {\ttfamily /etc/crontab}
folgende Zeile eingef\"ugt.

\begin{tscreen}
\begin{verbatim}
    5  0-24/4 * * * root  test -x /bin/datetimenow     && /bin/datetimenow
   
\end{verbatim}
\end{tscreen}


Das Script /bin/datetimenow sieht bei mir folgenderma\ss{}en aus:

\begin{tscreen}
\begin{verbatim}
    #! /bin/bash

    # time adjustement from some timeservers and write time to hardwareclock
    /usr/sbin/netdate elina.htlw16.ac.at \
                      ts1.univie.ac.at   \
                      time.tu-graz.ac.at \
                      time.vbs.at        \
                      ts2.univie.ac.at   \
                      2>&1 > /dev/null   \
                      &&                 \
                      /sbin/hwclock --systohc
   
\end{verbatim}
\end{tscreen}


Vorsicht beim Kopieren mit drag-n-drop: Nach dem Backslash d\"urfen keine Zeichen
im Script stehen (auch keine Leerzeichen und Tabulatoren).
















\subsection{Anmerkung zur Systemsicherheit
    }

Bei allen diesen Scripts die ich in diesem HOWTO beschrieben
habe, wird hier am Beispiel des Scripts datetimenow, noch etwas
f\"ur die Systemsicherheit getan. Es sollte mit 
\begin{tscreen}
\begin{verbatim}
     chmod a-rwx /bin/datetimenow 
   
\end{verbatim}
\end{tscreen}

f\"ur alle User alle Rechte abdrehen und dann mit 
\begin{tscreen}
\begin{verbatim}
     chmod u+rwx /bin/datetimenow 
   
\end{verbatim}
\end{tscreen}

nur dem User die Rechte zur\"uckgeben

Au\ss{}erdem macht es Sinn wenn Sie noch kontrollieren ob diese Files
auch dem User Root und der Gruppe root geh\"oren.
\begin{tscreen}
\begin{verbatim}
    chown root.root /bin/datentimeow
   
\end{verbatim}
\end{tscreen}

















\subsection{httpd
    }

Versuchsweise hatte ich einmal einen httpd gestartet. Da es IMHO in
den AGB meines Providers nicht verboten ist, aber in der Leistungsbeschreibung
des Produkts auch nicht ausdr\"ucklich erlaubt ist, habe ich 
den http-Server wieder abgeschaltet. Wenn Sie dies auch einmal
ausprobieren wollen, dann \"andern Sie folgende Zeilen in 
{\ttfamily /etc/http/httpd.conf}:

Zuerst alles was mit den Serverprozessen und Servereinstellungen zu 
tun hat. Doppelpunkte deuten an, da\ss{} dazwischen noch so manche andere, 
aber unver\"anderte Zeile vorkommt. Nach M\"oglichkeit steht hinter 
Kommentarzeichen oberhalb der ge\"anderten Zeile, die Originalzeile
wie Sie bei Ihnen zu Anfang noch sein k\"onnte/sollte.

\begin{tscreen}
\begin{verbatim}
     :
    MinSpareServers 5
    MaxSpareServers 10
     :
    StartServers 5
     :
    MaxRequestsPerChild 30
     :
    ServerAdmin heimo.schoen@gmx.at
     :
    #DocumentRoot "/usr/local/httpd/htdocs"
    DocumentRoot "/home/heimo/public_html"
     :
    <Directory />
    #   Options -FollowSymLinks
       Options FollowSymLinks
       AllowOverride None
    </Directory>
     :
    #<Directory "/usr/local/httpd/htdocs">
    <Directory "/home/heimo/public_html">
     :
    #   Options Indexes -FollowSymLinks +Includes
       Options Indexes FollowSymLinks Includes ExecCGI
     :
    #    AllowOverride None
        AllowOverride All
     :
    #<Directory /home/*/public_html>
    #    AllowOverride FileInfo AuthConfig Limit
    #    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    #    <Limit GET POST OPTIONS PROPFIND>
    #        Order allow,deny
    #        Allow from all
    #    </Limit>
    #    <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    #        Order deny,allow
    #        Deny from all
    #    </Limit>
    #</Directory>
    <Directory /home/*/public_html>
        AllowOverride FileInfo AuthConfig Limit
        Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI
        <Limit GET POST OPTIONS PROPFIND>
            Order allow,deny
            Allow from all
        </Limit>
        <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
            Order deny,allow
            Deny from all
        </Limit>
    </Directory>
     :
    #ServerSignature On
    ServerSignature EMail
     :
    #ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
    ScriptAlias /cgi-bin/ "/home/heimo/public_html/cgi-bin/"
     :
    #<Directory "/usr/local/httpd/cgi-bin">
    #    AllowOverride None
    #    Options None
    #    Order allow,deny
    #    Allow from all
    #</Directory>
    <Directory "/home/heimo/public_html/cgi-bin/">
        AllowOverride All
        Options All
        Order allow,deny
        Allow from all
    </Directory>
    <Directory "/usr/local/httpd/cgi-bin/">
        AllowOverride None
        Options All
        Order allow,deny
        Allow from all
    </Directory>
     :
    #<Location /cgi-bin>
    #AllowOverride None
    <Location /cgi-bin/>
    AllowOverride All
     :
    #DocumentRoot "/usr/local/httpd/htdocs"
    #ServerName boole.suse.de
    #ServerAdmin root@boole.suse.de
    DocumentRoot /home/heimo/public_html
    ServerName pc104-1.ternitz
    ServerAdmin heimo.schoen@gmx.at
     :
   
\end{verbatim}
\end{tscreen}


Damit auch in .html Files eingebettete Skripts ausgef\"uhrt werden, 
sollte die letzte Zeile des nachstehenden Blocks eingef\"ugt werden 
(die ersten beiden Zeilen gibt es schon im Original httpd.conf).
\begin{tscreen}
\begin{verbatim}
    #
    # To use server-parsed HTML files
    #
    AddType text/html .shtml
    AddHandler server-parsed .shtml
    AddHandler server-parsed .html
   
\end{verbatim}
\end{tscreen}

















\subsection{SMS
   \label{sms}
   }


\subsubsection{SMS-Routinen von http://idefix.htl-tex.ac.at
    }

Dieses Kapitel soll zeigen welche M\"oglichkeiten die SMS Dienste der Handy-Provider
bieten. Einerseits habe ich im File {\ttfamily /etc/ppp/ip-up} folgende Zeile
eingef\"ugt an der Stelle wenn die PPP-Verbindung hochgefahren wird:
\begin{tscreen}
\begin{verbatim}
      # Ein SMS könnte ich mir auch noch schicken
      echo "ip-up on ppp0 $LOCALIP $USER" | mail -s "xxxx-" 436763163472@max.mail.at
     
\end{verbatim}
\end{tscreen}

Wobei xxxx- der PIN ist, den Sie als Antwort auf das erste SMS
erhalten, da\ss{} Sie an ein maxmobil-Handy senden. Das Minus am Ende
des PIN teilt dem max.mail.at mit, da\ss{} er keine Zustellungsquittung senden
soll.

\"Ahnliche Zeilen k\"onnen Sie auch in anderen Scripts einf\"ugen. Z. B. in 
{\ttfamily /etc/profile.local} kann ein SMS Ihnen mitteilen, wenn sich jemand auf
Ihrem Gateway einloggt.

Wie Sie ein Mail als SMS an Ihr Handy weiterleiten k\"onnen wird in
\onlynameurl{SMS-forward unter Linux}
erkl\"art.






\subsubsection{SMS-Routinen von Christian Eder
    \label{sms2}
    }

Von 
\onlynameurl{Christian Eder {$<$}chris\_eder@aon.at{$>$}}
stammt der folgende Beitrag mit einigen Scripts zum Senden von
SMS an One-Handies:

\onlynameurl{OneSMS.java}
ist ein Javaprogramm, dass eine SMS an ein One Handy schickt.
Aufruf: java OneSMS {[}Onenummer ohne Vorwahl] {[}Nachricht].
Ich hab dieses Programm geschrieben, da die im vorigen Kapitel erw\"ahnten
SMS Skripts nicht mehr funktionieren (One hat den WebSMS Dienst etwas
ge\"andert). Prinzipiell m\"usste das Programm auch f\"ur A1 und Max
funktionieren, wenn man den Wert der Variablen gsmnet entsprechend
\"andert.

\onlynameurl{newip.sh}
ist ein Skript, da\ss{} \"uberpr\"uft ob sich die IP-Addresse
ge\"andert hat und in diesem Fall die neue IP-Addresse als SMS ans Handy
schickt.

\onlynameurl{.forward}
und
\onlynameurl{handymail.sh}
kann man verwenden, um beim Eintreffen
einer neuen EMail Absender und das Subject als SMS aufs Handy zu bekommen.






























\section{client setup
   \label{client-setup}
    }

Dieses Kapitel ist zum Teil noch in Arbeit 
(Wenn Sie einen guten Beitrag haben, dann her damit).




\subsection{ssh / VPN
    }

Wenn Sie die ISDN Verbindung aufgesetzt 
haben, steht einer Verbindung Ihres PCs
mit einem anderen PC im Internet nichts 
mehr im Weg. Wenn Sie Maschinen
\"uber das Internet verbinden, dann m\"ussen 
Sie diese Maschinen gegen 
fremden Zugriff sch\"utzen. Hierzu wird ein 
VPN (virutell private network)
aufgebaut. Wir bauen hier also ein privates 
Netzwerk \"uber das Internet auf,
wobei dieses so gesch\"utzt sein soll, da\ss{} 
niemand unsere Netzwerkdaten
einsehen oder mitlesen kann. Dieses Kapitel 
soll die Schritte erkl\"aren die f\"ur ein
einfaches aber effektives VPN notwendig sind.

Bevor Sie eine Verbindung \"uber das Internet 
mit einem anderen Rechner
aufbauen k\"onnen, tauchen zwei Schwierigkeiten auf:
\begin{itemize}
\item  Ihr Rechner hat alle paar Stunden eine andere IP-Adresse.
\item  Ihr Rechner und der Rechner auf der anderen Seite sind mit 
Firewalls gegen Zugriffe von au\ss{}en gesichert
\end{itemize}


Zum ersteren Punkt gibt es eine Randbedingung. Mindestens eine Maschine
im VPN mu\ss{} eine fixe IP-Adresse haben. Nur dann kann zwischen den VPN
Teilnehmern \"uber {\ttfamily /etc/ppp/ip-up} eine Verbindung wiederhergestellt
werden, wenn der 8 Stunden timeout zugeschlagen hat. Der Aufbau der Verbindung
wird mit ssh vorgenommen (s.u.)

Nat\"urlich k\"onnen zwei Partner mit wechselnder IP-Adresse auch ein VPN \"uber
einen dritten Rechner mit konstanter IP-Adresse aufbauen. Wichtig dabei ist
immer nur, da\ss{} wenigstens ein Rechner immer die gleiche IP-Adresse hat. 

Anm.: Es sollte auch zwischen zwei Usern mit wechselnder IP klappen, allerdings
wird dann das Scripting etwas komplizierter. Man m\"u\ss{}te sich z. B. die IP-Adresse
beim Verbindungsaufbau gegenseitig mailen. Auch das w\"are denkbar. Hier betrachten
wir im Moment nur die Variante, da\ss{} ein VPN-Teilnehmer eine fixe IP (Chello User)
hat.

     
Zuerst l\"osen wir den zweiten Punkt, die Aufweichung der Firewalls. Bei
allen VPN Teilnehmern m\"ussen am Beginn des Files ipchain.defaults, folgende
Zeilen eingef\"ugt werden:

\begin{tscreen}
\begin{verbatim}
    -A input -s x.x.x.x/255.255.255.0  -d 0.0.0.0/0.0.0.0     -i ppp0 -p 6 -j ACCEPT
   
\end{verbatim}
\end{tscreen}


wobei f\"ur x.x.x.x die IP-Adresse des VPN-Teilnehmers mit der fixen
IP-Adresse einzusetzen ist.

Zur Aktivierung einer ssh Verbindung sind folgende Schritte notwendig:

Wir verwenden die RSAAuthentication bei der nur keys verwendet werden.
Wir generier einen private-key mit:

\begin{tscreen}
\begin{verbatim}
     (user@home):[~] > ssh-keygen
     Generating p:  ......++ (distance 92)
     Generating q:  ............++ (distance 178)
     [...]
     Your public key has been saved in /home/user/.ssh/identity.pub
   
\end{verbatim}
\end{tscreen}


Es wird keine Passphrase f\"ur den key eingegeben. (Es wird zweimal mit
ENTER quittiert).
Allerdings ist der private Schl\"ussel ungesch\"utzt, und es mu\ss{} daher
darauf geachtet werden, da\ss{} niemand au\ss{}er Ihnen einen privilegierten
Zugang auf diesen Rechner hat.
Der private-key liegt nun im File ~/.ssh/identity und der zugeh\"orige
public-key liegt unter ~/.ssh/identity.pub. der private key ist
unverschl\"usselt.

Nun gehen Sie auf die Maschine, auf der Sie ohne Passwort
einloggen wollen (z. b. als root@office), und erstellen dort
die Datei ~/.ssh/authorized\_keys. In diese Datei kommt nun der
\_public\_ key ders user@home eingetragen. Beim pasten mu\ss{} darauaf geachtet werden,
da\ss{} der public key aus einer einzigen langen zeile besteht.

\begin{tscreen}
\begin{verbatim}
      (root@office):[~] # vi .ssh/authorized_keys
      [ ... paste den inhalt von user@home:~/.ssh/identity.pub ...]
      1024 33 168976988564775763....064089023 user@home
   
\end{verbatim}
\end{tscreen}


! Damit wird festgelegt, da\ss{} jeder User der den private key
des user@home vorweisen kann, \"uber ssh als root@office
einloggen darf, weil der private key beim Erstellen
nicht mit einer passphrase gesch\"utzt wurde, deshalb mu\ss{} man
sp\"ater bem Verbindungsaufbau keine mehr eingeben.

Der private key ist zu sch\"utzen. Wird er gestohlen, kann jeder
als root@office einloggen, ohne nach einem weiteren
Pa\ss{}wort gefragt zu werden.

Nun wird die ssh Verbindung aufgebaut:



\begin{tscreen}
\begin{verbatim}
     (user@homee):[~] > ssh -v -l root office
     [...]
     home: Trying RSA authentication with key 'user@home'
     home: Received RSA challenge from server.
     home: Sending response to host key RSA challenge.
     home: Remote: RSA authentication accepted.
     home: RSA authentication accepted by server.
     [...]
     (root@office):[~] #
   
\end{verbatim}
\end{tscreen}


In diesem Beispiel wurde gezeigt wie man root
User z.B. bei einer Verbindung auf die Maschien office
wird. \"Ublicherweise werden Sie ssh Verbindungnen nicht
f\"ur den User root einrichten sondern mit Ihrem
privaten Account von einer local-machine auf den selben 
privaten Account auf eine remote-machine gehen.

Sollten Sie auf der remote-machine den root account ben\"utzen
wollen, dann mu\ss{} die option "PermitRootLogin yes" in {\ttfamily /etc/sshd\_config} 
aktiviert sein.

Um RSA-Authentication zum Laufen zu bringen mu\ss{} in {\ttfamily /etc/sshd\_config}
die Option "RSAAuthentication yes" gesetzt sein. Diese Einstellung
ist ein default .





Um die ssh Verbindung bei jeder Aktivierung der ppp Verbindung zu
aktivieren, wird die Zeile

\begin{tscreen}
\begin{verbatim}
    case "$INTERFACE" in
      ppp0)
        su - user -c "/usr/bin/ssh -v -l root office /bin/startppp"
      ;;
    esac
   
\end{verbatim}
\end{tscreen}


in der Datei {\ttfamily /etc/ppp/ip-up} eingef\"ugt. Der beste Platz wird in
am Ende folgender symbolisch angedeuteter Struktur sein:

\begin{tscreen}
\begin{verbatim}
   :
case "$INTERFACE" in
ippp*)
   :
ppp*)
   :
    case "$BASENAME" in
    ip-up)
       :
  
\end{verbatim}
\end{tscreen}


Das auf der Maschine office gestartete Script /bin/startppp
startet eine ppp Verbindung \"uber die ssh Verbindung. Dadurch
k\"onnnen dann alle gewohnten Dienste (rlogin, telnet, rcp, etc.)
im VPN genutzt werden, ohne eine nennenswerte Verschlechterung
der Sicherheit im VPN.

Alle Teilnehmer des VPN m\"ussen sich aber dessen bewu\ss{}t sein,
da\ss{} wenn Sie selbst geknackt werden, alle anderen auch 
gegen\"uber dem Internet offen stehen. Es sollte daher mit
Vorsicht und Sorgfalt gearbeitet werden.

Daher m\"ochte ich an dieser Stelle nocheinmal auf 
\onlynameurl{Sicherheit im Kabelnetzwerk} und
\onlynameurl{Firewall HOWTO} verweisen.
























\subsection{ICQ
   \label{icq}
    }

Die Ideen zu disem Kapitel stammen von 
\onlynameurl{Szomraky Stefan{$<$}stsz@gmx.net{$>$}}
.
Danke Stefan!

F\"ur ICQ Setup sind folgende Arbeiten notwendig. 
(untested!!! Bitte schicken Sie mir Ihre Erfahrungen, 
wenn Sie nach diesem Kapitel ICQ aktiviert haben!)

Die empfohlenen Kernerleinstellungen sind :

\begin{tscreen}
\begin{verbatim}
     Sektion Networking Options
     TCP/IP Networking: yes
     IP: Firewalling: yes
     IP: Always defragment: yes
     IP: transparent proxy support: yes
     IP: masquerading: yes
     IP: ICMP masquerading: yes
     IP: masquerading special modules support: yes
     IP: ipautofw masquerade support (Experimental): module
     IP: ipportfw masquerade support: module
     IP: ipmarkfw masquerade support: module
   
\end{verbatim}
\end{tscreen}




ICQ-Client Einstellung  "I'm behind a firewall or proxy" ={$>$} 
"other Proxy" ={$>$} use TCP Range:  20000-20020 am ersten Client, 
20021-20040 am zweiten Client, usw.

Der Abstand kann auch auf 10 reduziert werden. (Auch wenn ICQ
sich dann beklagt.)

Das Modul ip\_masq\_icq bekommt man von
\onlynameurl{http://members.xoom.com/djsf/masq-icq/}
Nach dem download mu\ss{} man es noch compilieren,
und zwar NACHDEM man den kernel neukompiliert hat.
Auchtung das ICQ Module hat einen groben Fehler im Makefile!
Man mu\ss{} aus den beiden "§(shell egrep {[}...]" (Zeile 15 und 17) ein "S =
§(shell egrep {[}...]" machen. (Der Tip stammt von 
\onlynameurl{Oliver Bogen {$<$}Oliver.Bogen@gmx.at{$>$}})

Jetzt laden wir mal testweise das Modul ip\_masq\_icq 

\begin{tscreen}
\begin{verbatim}
     insmod ip_masq_icq range=20000,20020
   
\end{verbatim}
\end{tscreen}


Das schaltet die Ports 20000-20020 f\"ur die Clients frei.
Wenn man die Konfigration wie in Kapitel
\ref{pppd} {(pppd)}
gemacht hat reicht das f\"ur
einen Clienten. F\"ur 2 Clienten macht man:

\begin{tscreen}
\begin{verbatim}
    insmod ip_masq_icq range=20000,20040
   
\end{verbatim}
\end{tscreen}


Also immer LOWRANGE,HIGHRANGE



Jetzt m\"u\ss{}te ICQ auch funktionieren...

Man kann jetzt auch noch zus\"atzliche Module downloaden, in
/lib/modules/`uname -r`/net/
kopieren und einf\"ugen.

Wir wollen nat\"urlich jetzt nicht jedesmal das ganze hier eintippen, deswegen
schreiben wir mal das ganze in eine Datei, mit z.b den Namen enabicq
die etwa so aussieht:

\begin{tscreen}
\begin{verbatim}
     #!/bin/sh
     insmod ip_masq_icq range=20000,20020
   
\end{verbatim}
\end{tscreen}


Dann machen wir das Script ausf\"uhrbar und setzen die Permissions richtig:

\begin{tscreen}
\begin{verbatim}
     chmod 700 enabicq
   
\end{verbatim}
\end{tscreen}


Wir verschieben das Script nach
{\ttfamily /etc/rc.d} (was eigentlich ein Link auf {\ttfamily /sbin/init.d} ist)
und machen folgendes:

\begin{tscreen}
\begin{verbatim}
    cd rc2.d
    ln -s ../enabicq S31enabicq
    cd ..
    cd rc3.d
    ln -s ../enabmasq S31enabicq
   
\end{verbatim}
\end{tscreen}


So, jetzt wird nach dem Neustart das Script automatisch gestartet.

ip\_masq\_ftp wird im Kapitel  \ref{Masquerading} {(Linux als Internetgateway)} beschrieben.

   

Weiterf\"uhrende Anregungen zu Masquerading und auch zu ICQ finden Sie im
\onlynameurl{Linux IP Masquerade HOWTO}






















\subsection{hosts
    }

Das Hostsfile mu\ss{} zumindest auf den in diesem Dokument 
beschriebenen Gateway zeigen. Der Einfachheit halber 
nennt man den Gateway localhost. Bei mir hat der localhost
die IP-Adresse 192.169.1.60 erhalten und wird daher wie
folgt in {\ttfamily /etc/hosts} eingetragen:

\begin{tscreen}
\begin{verbatim}
    192.168.1.60    localhost
   
\end{verbatim}
\end{tscreen}













\subsection{route
    }

Meine {\ttfamily /etc/route.conf} auf den clients hat nur zwei Zeilen und sieht wie folgt aus:

\begin{tscreen}
\begin{verbatim}
    192.168.1.0             0.0.0.0                 255.255.255.0           eth0
    default                 localhost
   
\end{verbatim}
\end{tscreen}


Die erste Zeile dient dazu, da\ss{} z. B. der Localhost 192.168.1.60 
am Ethernetkabel gesucht wird. Die zweite Zeile f\"uhrt alle anderen 
Adressen zum Gateway localhost, da\ss{} mit der ersten Zeile \"uber eth0
gefunden werden kann. Das wars, mehr ist nicht notwendig.












\subsection{Netscape
    }

Proxyeinstellung wenn Sie wwwoffle verwenden, sollte nach localhost:8080 zeigen und bei squid  auf localhost:3128






























\section{Homepage
   \label{homepage}
    }



Dieses Kapitel ist eine kleine Anleitung wie Sie zu einer Homepage
kommen. Dieses Kapitel beschreibt nicht wie Sie Homepage Inhalte
erstellen, denn das w\"urde dieses Howto sprengen, weil alleine schon
die Bandbreite der Tools zur Erzeugung von HTML von vi/xemacs, bis
frontpage ;-), usw. reicht. Ich pers\"onlich bevorzuge nach wie vor
den xemacs. F\"ur dieses Howto editiere ich z. B. sgml-source, weil 
daraus jede Menge verschiedener Formate generiert werden k\"onnen. Als
Editor haben wir \onlynameurl{sgedit}
versucht, sind aber damit gescheitert, daher bleibt xemacs der 
Standard Editor :-)))








\subsection{h\"andischer HP upload
   \label{homepage-upload}
    }

Dieser Vorgang ist etwas ungl\"ucklich gew\"ahlt von gr\"o\ss{}ten \"osterreichischen Provider 
(vielleicht liest das ja mal einer und denkt dar\"uber nach ;-)
Man bekommt ein Kuvert indem schon nicht klar ist warum
es dort eine Kundennummer und eine Teilnehmerkennung und
dazu noch ein pers\"onliches Kennwort gibt. Aber mit
all diesen Dingen wird der 

\begin{tscreen}
\begin{verbatim}
    ftp members.aon.at    
   
\end{verbatim}
\end{tscreen}


immer nur die Antwort

\begin{tscreen}
\begin{verbatim}
    530 Login incorrect.
    Login failed.
   
\end{verbatim}
\end{tscreen}


bringen.

Bei einem Besuch der Service-Seite meines Providers wird einem dann
sch\"on langsam klar, da\ss{} es da offenbar auch noch einen anderen
Usernamen gibt. Er ist bei mir (nach welcher Regel auch immer)
so \"ahnlich wie "hschon".

Es geht nur aus der Service-Seite wieder nicht klar hervor
ob diese Kennung mit f\"uhrender Tilde oder ohne Tilde anzugeben ist. 
Hier hat mir wieder eine
Diskussion in der Newsgroup at.highway194 weitergeholfen.

Letztendlich ist mir der Login gelungen mit hschon (ohne Tilde)
und dem Pa\ss{}wort aus dem Kuvert.



Also nun zum Ablauf. mit ftp members.aon.at und dem Usernamen
von der Service-Seite, pers\"onlich-Homepage und dem Pa\ss{}wort
aus dem Kuvert einloggen. Binary Mode ausw\"ahlen und mit mput *
alle Files raufladen. Das wars.

Mit Netscape ausprobieren ob es funktioniert hat. Bei mir
w\"are dann die Homepage erreichbar unter:

\begin{tscreen}
\begin{verbatim}
    http://members.aon.at/~hschoen
   
\end{verbatim}
\end{tscreen}


Auf der Provider Service-Seite in der Rubrik pers\"onliche Homepage
kann man sich dann noch einen sprechenderen Namen einstellen.
Bei mir lautet das zur Zeit:

\begin{tscreen}
\begin{verbatim}
    http://members.aon.at/heimo.schoen
   
\end{verbatim}
\end{tscreen}


Um beim Upload nicht jedes Mal Username und Passwort eingeben
zu m\"ussen, k\"onnen Sie sich eine Datei .netrc in Ihrem Homedirectory
einrichten die wie folgt aussehen sollte:

\begin{tscreen}
\begin{verbatim}
    machine members.aon.at login hschon password xxxxxxx
   
\end{verbatim}
\end{tscreen}


\onlynameurl{Leo Eibler {$<$}leo\_eibler@gmx.at{$>$}} hat angemerkt,
da\ss{} am File .netrc alle Gruppenrechte und Worldrechte abgedreht
werden m\"ussen. Und zwar Lesen,Schreiben und Execute Rechte 
m\"ussen ausgeschaltet sein, ansonsten akzeptiert ftp das .netrc
nicht und stellt die Arbeit (kommentarlos) ein. This Bug is
a feature und soll davor sch\"utzen, da\ss{} Sie pers\"onliche Daten im
.netrc stehen haben, die dann der Rest der Welt oder der Gruppe
lesen kann. (Danke Leo f\"ur den Tip).

Aus diesem Grund geben Sie ein:
\begin{tscreen}
\begin{verbatim}
    chmod 600 .netrc
   
\end{verbatim}
\end{tscreen}


In meinem HTML Directory liegen die Files der Homepage. Um 
diese m\"oglichst einfach zu laden, hilft folgendes komplexe
Script ~/html/upload

\begin{tscreen}
\begin{verbatim}
    ftp -i members.aon.at
   
\end{verbatim}
\end{tscreen}


Nach start des upload scripts, sucht ftp nach der Datei ~/.netrc
und f\"uhrt selbst\"andig den Login durch. Ohne Eingabe von Username
und Pa\ss{}wort gelange Sie bis zum ftp Prompt und k\"onnen den uplaad
z. B. mit

\begin{tscreen}
\begin{verbatim}
    mput *.html
   
\end{verbatim}
\end{tscreen}


starten




\subsection{Generierung und upload von index.html
   \label{pushindex}
    }



Es w\"are denkbar, da\ss{} Sie einen http-Server aktivieren wollen und
einzelne Seiten von Ihrer Linux-Box aus, zur Verf\"ugung stellen
wollen.

In diesem Fall m\"ussen Sie zuerst im File {\ttfamily /etc/ppp/ip-up} ein
script z. B. push-index starten (f\"ur die hierf\"ur notwendige Zeile
siehe im Kapitel \ref{ip-up} {(ip-up)}). Das Script push-index
k\"onnte wie folgt aussehen. Das Script erwartet als Parameter
die aktuelle IP-Adresse.

\begin{tscreen}
\begin{verbatim}
#! /bin/bash

# push index.html to your homepage
#
# Copyright (C) 1999 Heimo Schön <heimo.schoen@telecom.at>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


# do your Settings here:
export           rootdir=/tmp             # where we can write tempfiles
export           ftpfile=index.html       # file we want to generate on homepage
# host-settings:
export         ftpserver=members.aon.at   # name of your ftp-host
export          username=<username>           # your ftp-username on host
export          password=<password>         # your ftp-password on host


# -----------------------------------------------------------------------------------

# the files we want to build here
export        targetfile=$rootdir/$ftpfile
# ftp-files
export tempnetrcfilename=$rootdir/.netrc-push-index
export savenetrcfilename=~/.netrc-push-index-temp
export     netrcfilename=~/.netrc

DATE=`date`
UPTIME=`uptime`

cat << EOF >  $targetfile
<HTML>
<HEAD>
  <TITLE>Dipl.-HTL-Ing. Heimo Schön - Homepage</TITLE>
  <meta content="20;url=http://$1/welcome.html"
        http-equiv="refresh">
</HEAD> 
<BR>
<BR>
<BR>
<CENTER><h2>
  Here you find the
  <A HREF="welcome.html">Homepage of Heimo Schön</A>  
</h2></CENTER>
<BR>
<BR>
<CENTER><b><h2>
  You can reach the 
  <A HREF="http://$1/welcome.html">$HOSTNAME</A>@home
</h2></b>
  <BR>
  <BR>
  If you have Problems with the $HOSTNAME link, 
  try to press the reload button on your browser.
  <BR>
  If this isn´t working too, 
  then try to use link on top of this page.
</CENTER>
<BR>
<BR>
   <CENTER>
      <map name="main1">
        <area shape="rect"
              coords="0,0,87,86"
              href="mailto:heimo.schoen@gmx.at">
      </map>
      <img width=50
           height=50
           src="mail.gif"
           usemap="#main1"
       ALT="Hier können Sie mich via Mail erreichen"
   </CENTER>
<BR>
<BR>
generated on $HOSTNAME at $DATE ($OSTYPE)<BR>
after uptime : $UPTIME<BR>
<BR>
© 2000 by Dipl.-HTL-Ing. Heimo SCHÖN
</BODY>
</HTML>

EOF


# das $targetfile wird für den nächsten Durchlauf mit Schreibrechten versehen
chmod a+rw $targetfile

# now we tell ftp what to do
cp $netrcfilename $savenetrcfilename 
echo "machine $ftpserver login $username password $password"  > $tempnetrcfilename
echo "macdef init"                                           >> $tempnetrcfilename
echo "put $ftpfile"                                          >> $tempnetrcfilename
echo "quit"                                                  >> $tempnetrcfilename
echo ""                                                      >> $tempnetrcfilename
cp $tempnetrcfilename $netrcfilename 
chmod 600 $netrcfilename

# und nun werfen wir ftp an
cd $rootdir
ftp -i members.aon.at

# netrc in Ordnung bringen
cp $savenetrcfilename $netrcfilename 

# und noch ein wenig aufräumen
rm $savenetrcfilename
rm $tempnetrcfilename
rm $targetfile
   
\end{verbatim}
\end{tscreen}


F\"ur $<$username{$>$} und $<$password{$>$} f\"ugen Sie Ihre Daten entsprechend 
Kapitel \ref{homepage-upload} {(H\"andischer HP upload)} ein.

ACHTUNG: Wenn Sie das obige Script mit drag-n-drop aus Ihrem Browser 
in ein File kopieren, dann achten Sie bitte darauf, da\ss{} in der Zeile 
in der EOF steht, keine f\"uhrenden Blanks enthalten sind.




























\section{Linux als Internetgateway
   \label{Masquerading}
    }






\subsection{Einleitung     }

Dieses Kapitel stammt von 
\onlynameurl{Roland Seuhs {$<$}roland@wertkarten.net{$>$}}.
Vielen Dank an \onlynameurl{Roland}
f\"ur diesen Beitrag.

Anmerkung von Heimo Sch\"on: 
F\"ur AON-Kunden sei hier angemerkt, da\ss{} Sie Sie ein Gateway betreiben d\"urfen. IMHO finden sich in den
\onlynameurl{AGB} von AON
keine Ausschlie\ss{}ungsgr\"unde f\"ur ein Gateway, aber sehr deutliche Worte spricht der Absatz 1
im Punkt 9 bez\"uglich Einzelplatznutzung. Kunden anderer Provider sollten Ihre AGB genau studieren bevor
Sie ein Gateway installieren, denn auch Masquerading ist kein einwandfreier Schutz, denn anhand
Ihres Surf-Verhaltens kann man sch\"on nachvollziehen ob hier nur ein User oder mehrere verschiedene User surfen.

However, 
der Einsatz eines Gateways erh\"oht AFAIK auch die Sicherheit Ihres Internetzugangs. Die 
Sicherheit der Kunden k\"onnte auch im Interesse des Providers sein, also nehme ich an, das
ein Gateway, bei normaler Nutzung als Einzelplatzsystem, zumindest geduldet wird. (Danke 
\onlynameurl{Georg Lippitsch {$<$}georg.lippitsch@gmx.at{$>$}}
f\"ur die anregende Diskussion dieser Anmerkung)






\subsection{Was ist ein Gateway?     }



Ein Gateway ist im Prinzip nichts anderes als Netzwerkpakete von 
einen Netzwerk in ein anderes zu transportieren. Um auf zwei Netzwerke 
zugreifen zu k\"onnen, mu\ss{} ein Gatewayrechner zwei Ger\"ate zu Verf\"ugung 
haben um Netzwerke anzusprechen. Also zum Beispiel zwei Netzwerkkarten, 
oder eine Netzwerkkarte und ein Modem. Wenn beide Netzwerke auf dem Rechner
bereits laufen und funktionieren, kann man den Gateway aufsetzen. Wenn Sie 
ein lokales Netzwerk haben und ein Rechner in diesen Netz verf\"ugt \"uber 
einen Internetanschlu\ss{}, so k\"onnen Sie dann mit allen anderen Rechnern im 
Netz ebenfalls auf das Internet zugreifen, wenn Sie diesen Rechner als 
sogenannten Gatewayrechner betreiben. Da die Lizenzgeb\"uhren f\"ur Windows NT
als Gateway sehr teuer sind, bietet sich Linux f\"ur diesen Zweck geradezu an. 

Nun stellt sich folgendes Problem: Die lokalen Netzwerkadressen 
(z.B. 192.168.x.x) werden nicht ins Internet geroutet. - Logischerweise, 
denn diese Adressen m\"ussen offiziell nicht angemeldet werden und sind f\"ur 
lokale Netzwerke reserviert. Man h\"atte tausende gleiche IP Adressen wenn diese 
ins Internet geroutet werden. Die L\"osung ist IP Maskierung. Bei diesem Verfahren 
werden die Pakete mit der IP Adresse des Gateways weitergeschickt. Um bei den vom 
Internet zur\"uckgeschickten Paketen unterscheiden zu k\"onnen welches Paket zu welchen 
Computer weitergeleitet werden soll, werden den Rechnern verschiedene Ports 
zugeordnet. (Die Antworten aus dem Internet gehen dann an diese Ports und werden 
dann vom Gateway an die jeweiligen Rechner weitergeleitet) Der Rechner, der die 
Pakete schickt, merkt nicht, da\ss{} der Gatewayrechner die Pakete an andere 
weiterleitet. Es werden Pakete an die selbe IP Adresse, aber an verschiedene 
Ports geschickt. - Aber das kann durchaus auch beim »normalen« Betrieb passieren; 
So benutzen z.B. Telnet, ftp und http verschiedene Ports. 




\subsection{Voraussetzungen     }



Um IP Maskierung einzurichten, mu\ss{} man (neben einen Internetzugang und einen 
lokalen Netz) unter Umst\"anden den Kernel neu konfigurieren. - Bei modernen 
Distributionen (z.B. SuSE 6.3 ist das jedoch nicht erforderlich) Probieren 
Sie es einfach aus; Falls sich die Module nicht laden lassen, m\"ussen sich 
folgende Optionen bei der Neukompilation anw\"ahlen: 

\begin{tscreen}
\begin{verbatim}
         * Prompt for development and/or incomplete code/drivers 
       CONFIG_EXPERIMENTAL 
       - this will allow you to select experimental
       IP Masquerade code compiled into the kernel

       * Enable loadable module support 
       CONFIG_MODULES 
       - allows you to load ipmasq modules such as ip_masq_ftp.o

       * Networking support 
       CONFIG_NET 

       * Network firewalls 
       CONFIG_FIREWALL 

       * TCP/IP networking 
       CONFIG_INET 

       * IP: forwarding/gatewaying 
       CONFIG_IP_FORWARD 

       * IP: firewalling 
       CONFIG_IP_FIREWALL 

       * IP: masquerading 
       CONFIG_IP_MASQUERADE 

       * IP: ipportfw masq support 
       CONFIG_IP_MASQUERADE_IPPORTFW
       - recommended

       * IP: ipautofw masquerade support
       CONFIG_IP_MASQUERADE_IPAUTOFW
       - optional

       * IP: ICMP masquerading
       CONFIG_IP_MASQUERADE_ICMP
       - support for masquerading ICMP packets, recommended.

       * IP: always defragment
       CONFIG_IP_ALWAYS_DEFRAG 
       - highly recommended

       * Dummy net driver support
       CONFIG_DUMMY 
       - recommended

       * IP: ip fwmark masq-forwarding support 
       CONFIG_IP_MASQUERADE_MFW
       - optional
   
\end{verbatim}
\end{tscreen}


Falls diese Optionen in Ihren Kernel nicht vorhanden sind, kompilieren 
Sie einen neuen Kernel. Bevor Sie den Computer neu starten, f\"ugen Sie 
folgende Zeilen in ein geeignetes (soll beim booten ausgef\"uhrt werden; 
z.B. {\ttfamily /sbin/init.d/boot.local} f\"ur SuSE, Sie k\"onnen aber auch das Netzwerk 
Start Skript nehmen) Skript ein. Schalten Sie au\ss{}erdem noch IP-forwarding 
ein: Unter SuSE setzen Sie die Variable 
\begin{tscreen}
\begin{verbatim}
       "IP_FORWARD" in /etc/rc.config auf »yes« setzen
   
\end{verbatim}
\end{tscreen}


Unter RedHat wird es folgenderma\ss{}en eingeschalten: 

\begin{tscreen}
\begin{verbatim}
       echo 1 > /proc/sys/net/ipv4/ip_forward 
   
\end{verbatim}
\end{tscreen}


Sie sollten das aber auch unter SuSE machen, weil viele Programme 
diese Datei \"uberpr\"ufen. 

Wenn Ihr Kernel nun geeignet ist um IP-Maskierung zu betreiben, 
dann geben Sie folgendes ein und achten Sie auf Fehlermeldungen: 

\begin{tscreen}
\begin{verbatim}
       # IP Maskierung: ############################
       # Module laden:
       /sbin/depmod -a
       /sbin/modprobe ip_masq_ftp
       /sbin/modprobe ip_masq_raudio
       /sbin/modprobe ip_masq_irc
       /sbin/modprobe ip_masq_cuseeme
       /sbin/modprobe ip_masq_vdolive
       # Forwarden einschalten (nur einmal notwendig:
       #echo 1 > /proc/sys/net/ipv4/ip_forward
       # Einstellungen machen:
       ipchains -P forward DENY
       ipchains -A forward -s 192.168.x.0/255.255.255.0 -j MASQ
   
\end{verbatim}
\end{tscreen}


Die letzte Zeile erlaubt dem Netz 192.168.x.0 IP-Maskierung zu 
benutzen. Wenn alles klappt, dann tragen sie obiges in {\ttfamily /sbin/init.d/boot.local} 
(bei SuSE) oder in ein anderes geeignetes Skript ein. 




\subsection{Erkl\"arung
    }



Zuerst werden die ben\"otigten Kernelmodule geladen. Dann 
werden die Einstellungen zur Sicherheit gesetzt: 

\begin{tscreen}
\begin{verbatim}
     ipchains -P forward DENY 
   
\end{verbatim}
\end{tscreen}


Diese Zeile bestimmt, da\ss{} die Standardeinstellung f\"ur alle Rechte 
die Verweigerung der IP Maskierung ist. Andernfalls k\"onnte jemand 
seine Identit\"at verschleiern indem er Pakete durch Ihr Gateway
schickt. (Ist zwar f\"ur einen W\"ahlleitungszugang unwahrscheinlich, aber 
die Konsequenzen k\"onnen sehr \"argerlich sein, wenn jemand Illegales \"uber 
Ihr Gateway gemacht hat.) Prinzipiell sollte man nur das n\"otigste 
erlauben, also erlauben wir IP Maskierung nur f\"ur unser lokales Netz mit 

\begin{tscreen}
\begin{verbatim}
      ipchains -A forward -s <Netzwerk>/<Netzmaske> -j MASQ 
   
\end{verbatim}
\end{tscreen}


Selbstverst\"andlich k\"onnen Sie IP-Maskierung auch nur f\"ur einzelne Rechner zulassen: 

\begin{tscreen}
\begin{verbatim}
     ipchains -A forward -s <Rechner>/<Netzmaske> -j MASQ 
   
\end{verbatim}
\end{tscreen}


Bedenken Sie aber, da\ss{} jemand, der auf einen von den Rechnern \"uber das 
Netz einloggen kann, trotzdem die IP Maskierung benutzen kann. Wenn Sie 
die IP-Maskierung ausprobieren, versuchen Sie zuerst einmal IP Nummern 
anstatt normaler Namen; Vielleicht stimmt Ihre Nameservereinstellung nicht. 








\subsection{Masquerading Clients
    }



Dieses Kapitel beschreibt die Einrichtung der Maschinen, die 
\"uber das Netz IP-Maskierung nutzen wollen: (Clients) 

SuSE-User mit  YaST:

\begin{tscreen}
\begin{verbatim}
                       -> Administration des Systems 
                       -> Netzwerk konfigurieren 
                       -> Netzwerk Grundkonfiguration
                       -> F6 (IP-Adressen) bei dem
                               entsprechenden Netz drücken
                       -> Adresse default-Gateway eintragen:
                               (=Adresse des Servers)

       /usr/sbin/rcroute restart
   
\end{verbatim}
\end{tscreen}





\subsection{Allgemeines
   }

Den Eintrag 
\begin{tscreen}
\begin{verbatim}
    default     <IP-Adresse des Servers>
   
\end{verbatim}
\end{tscreen}


in {\ttfamily /etc/route.conf} eintragen und Routing neu starten mit

\begin{tscreen}
\begin{verbatim}
    /sbin/init.d/route restart
   
\end{verbatim}
\end{tscreen}


Weiterf\"uhrende Anregungen zu Masquerading und auch zu ICQ finden Sie im
\onlynameurl{Linux IP Masquerade HOWTO}

Masquerading und Microsoft Netmeeting finden Sie
\onlynameurl{hier}












\section{dynamische DNS Anbieter
   \label{dyndns}
    }



Dieses Kapitel soll zeigen, wie man trotz er st\"andig wechselnden IP-Adresse
trotzdem einen Server aufbauen k\"onnte.

Ich habe zwei Varianten probiert und beide funkionieren im Moment problemlos.
Es bleibt Ihnen \"uberlassen welchen Weg Sie w\"ahlen. Manche militante
LINUX-Anh\"anger werden wahrscheinlich bsdonline.org vermeiden und sollten
dann dyndns.org w\"ahlen. Anf\"angern w\"urde ich bsdonline.org empfehlen, da
mir das Handling einfacher vorgekommen ist.






\subsection{dyndns.org
    }

Zuerst habe ich mir bei
\onlynameurl{http://dyndns.org}
einen Account besorgt. Ich habe dort den Namen
\onlynameurl{heimo.dyndns.org}
eingerichtet.
Bei dyndns.org gab es folgendes Script
\onlynameurl{ddclient}
zum kostenlosen download.
Dieses Script starte ich in ip-up mit
folgendem Kommando:
\begin{tscreen}
\begin{verbatim}
      su - heimo -c "/bin/ddclient -host heimo.dyndns.org -ip $LOCALIP"
    
\end{verbatim}
\end{tscreen}

Die Userdaten f\"ur das script ddclient hinterlegen Sie im Script
{\ttfamily /etc/ddclient.conf} :
\begin{tscreen}
\begin{verbatim}
      # Host                 login        password
      karli.dyndns.org       karli        karlispassword
      anotherhost.dyndns.org dyndns_login dyndns_password
    
\end{verbatim}
\end{tscreen}

Das Script ddclient legt dann ein Cachefile {\ttfamily /etc/ddclient.cache} an, indem dann inetwa
soetwas stehen wird:
\begin{tscreen}
\begin{verbatim}
      ## last updated at Thu Aug 24 19:30:50 2000 (967138250)
      heimo.dyndns.org 62.46.17.33 none none none 967138250                                           
    
\end{verbatim}
\end{tscreen}

\onlynameurl{Stefan Huber {$<$}schweinsaug@crosswinds.net{$>$}}
gibt uns folgenden Tip, was die Rechte an den beiden Files
{\ttfamily /etc/ddclient.conf} und {\ttfamily /etc/ddclient.cache} anlangt:

Es gibt ein kleines Problem, wenn man ddclient nicht als root 
startet bzw. ohne weitere Parameter. Starte ich ddclient als user, 
und sage ich ihm nicht, wo ddclient.cache liegt, kanns haarig 
werden. Das script nimmt dann an, sie sei {\ttfamily /etc/ddclient.cache} . 

In dieser Datei beh\"alt sich ddclient die letzte IP-Adresse, die 
es zum Server geschickt hat. Schickt man n\"amlich zu oft dieselbe 
IP-ADresse (ADSL User hergeh\"ort), wertet dyndns dieses 
verst\"andlicherweise
als Mi\ss{}brauch und sperrt den account (ist passiert mit einem account 
eines Studienkollegen, nach langer Korrespondenz mit dyndns hat 
er ihn wieder gekriegt). Nachdem ein normaler User in der Regel 
keine Schreibrechte im Directory {\ttfamily /etc} hat, kommt dieses file 
nie zustande.

 
Abhilfe:
\begin{tscreen}
\begin{verbatim}
      touch /etc/ddclient.cache
      chown <username>:<egal_welche_gruppe> /etc/ddclient.cache
      chmod 0700 /etc/ddclient.cache
    
\end{verbatim}
\end{tscreen}

Wobei $<$username{$>$} der sein mu\ss{}, als der man ddclient startet. 

Alternative:
\begin{tscreen}
\begin{verbatim}
      su - <username> -c "<pfad_zu_ddclient>/ddclient -host <accountname> -ip $LOCALIP -cache <voller_pfad_und_name_des_cachefiles>"
    
\end{verbatim}
\end{tscreen}

wobei $<$voller\_pfad\_und\_name\_des\_cachefiles{$>$} beschreibbar sein mu\ss{} vom user $<$username{$>$}.

An dieser Stelle nochmals besten Dank an 
\onlynameurl{Stefan Huber {$<$}schweinsaug@crosswinds.net{$>$}}
f\"ur den hilfreichen Beitrag.














\subsection{Eine dyndns.org - Variante
   \label{dyndns-variante}
    }

Das ddclient-script hat bei 
\onlynameurl{Ing.Christian Pohanka}
\onlynameurl{{$<$}cpw@aon.at{$>$}}
nicht funktioniert. Christian hat daher den
dyndns-update folgenderma\ss{}en gel\"ost:

Das Paket  ddns-2.4.0-beta.tar.gz  geladen und nach Readme vorgegangen...

Eine Configurationsdatei {\ttfamily /etc/ddns.conf} erstellt (darf keine Weltleserechte haben).

\begin{tscreen}
\begin{verbatim}
     # Set up /etc/ddns.conf for your dyndns account, like:
     #  members.dyndns.org:http:account:password:hostname.dyndns.org
     # Substitute your account, password, and hostname.
     members.dyndns.org:http:account:password:hostname.dyndns.org
    
\end{verbatim}
\end{tscreen}


Und diese Zeile in ppp-up eingef\"ugt:

\begin{tscreen}
\begin{verbatim}
      /usr/local/sbin/ddns --modify --address=$LOCALIP
    
\end{verbatim}
\end{tscreen}


Das paket hat Christian mit "make" und "make-install" installiert

Alles weitere wurde installiert wie in den \"ubrigen Kapiteln beschrieben..












\subsection{bsdonline.org
    }

Auch
\onlynameurl{http://bsdonline.org}
bietet dynamische IP Aufl\"osung an. Anmelden
und einrichten funktioniert \"ahnlich wie bei
dyndns.org, aber IMHO bei bsdonline \"ubersichtlicher
und einfacher. Ich habe mir dort die Adresse  
\onlynameurl{heimo.bsdonline.org}
eingerichtet.
Auf der Seite
\onlynameurl{http://bsdonline.org/update.php3}
kann man dann per Hand die eigene IP-Adresse
\"andern.

Da man auch bei bsdonline.org das nicht h\"andisch
machen will, f\"ugt man eine weitere Zeile in ip-up
ein:
\begin{tscreen}
\begin{verbatim}
      # Dieses kleine lynx-script sollte heimo.bsdonline.org uptodate halten.
      # (The Logfile is /tmp/push-bsd.log for more Info!)
      /bin/push-bsd-heimo
    
\end{verbatim}
\end{tscreen}

Das Script push-bsd-heimo sieht wie folgt aus:

\begin{tscreen}
\begin{verbatim}
      #!/bin/sh
      #

      USERNAME="heimo"              # insert your username/hostname here
      PASSWORD="<password>"         # insert your password here
      SERVICE="host"                # service type, host, ns or wild
      MX=""                         # mxhost
      MXTYPE=""                     # alt or sec

      INTERFACE="ppp0"              # what interface is your network connection on?

      IPADDRESS=`ifconfig $INTERFACE | grep inet | cut -d ' ' -f 12 | cut -d ':' -f 2`

      HOSTREDIR=http://$IPADDRESS/welcome.html

      # the URL should look like...
      UPDATE="http://bsdonline.org/update.php3?userid=$USERNAME&pass=$PASSWORD&ip=$IPADDRESS&hostredir=$HOSTREDIR&service=$SERVICE&mx=$MX&mxtype=$MXTYPE"

      # write to logfile
      echo "-----------------------------" >> /tmp/push-bsd.log
      echo `date`                          >> /tmp/push-bsd.log
      echo $UPDATE                         >> /tmp/push-bsd.log

      # dump it to lynx!

      lynx -dump $UPDATE                   >> /home/heimo/push-bsd.log
    
\end{verbatim}
\end{tscreen}


In diesem Script tragen Sie im Feld $<$password{$>$} das 
Password ein, das Sie von bsdonline per Mail bei der
Anmeldung erhalten haben. Das Script besorgt sich via 
ifconfig die aktuelle IP-Adresse und aktualisiert den
dyn-DNS Eintrag bei bsdonline.org.














\subsection{Links zu einigen dynamic-DNS Anbietern
    }

Hier finden Sie eine kleine Sammlung von dynamic IP Anbietern. Alle
bieten die M\"oglichkeit eine wechselnde IP Adresse auf einen gleichbleibenden
Namen umzusetzen. Diese Dienste sind d\"ur den privaten Bereich kostenlos
und unterscheiden sich im Wesentlichen nur durch die Methode mit der
man die neue IP-Adresse aus dem ip-up script heraus aktualisiert und
wie letztendlich Ihr Name lautet. Zum Beispiel sollte mein Linux-Server
bei www.dyndns.org \"uber \onlynameurl{http://heimo.dyndns.org/}
erreichbar sein. Wenn sich Ihre IP-Adresse \"andert und das ip-up
Script den Update der IP-Adresse durchf\"uhrt, dauert es einige Minuten
bis andere Nameserver auch diese \"Anderung erfahren. Es kann daher
durchaus vorkommen, da\ss{} andere User im Internet in Ihrem n\"achstgelegenen
Nameserver-Cache noch die Kombination "ihre-homepage"-"alte-IP" liegen
haben und erst nach Dr\"ucken des Reload Button wieder Ihre Seiten lesen
k\"onnen. \"Argern Sie sich nicht dar\"uber, das ist n\"amlich der Grund warum
viele Provider die IP-Adresse st\"andig wechseln lassen, um n\"amlich den Betrieb eines
Servers m\"oglichst zu erschweren. Dynamic DNS ist daher f\"ur Profis eher
nicht geeignet, ist aber f\"ur Private Anwendungen eine "nette Spielerei".

Hier nun die Links zu einer kleinen Auswahl von dynamic-DNS Anbietern:

\begin{itemize}
\item \onlynameurl{Dynamic DNS Network Services}
\item \onlynameurl{Free URL Redirection}
\item \onlynameurl{dynamic DNS}
\item \onlynameurl{www.dynip.com}
\item \onlynameurl{http://www.myip.org/dd/}
\item \onlynameurl{http://www.yi.org/}
\end{itemize}































\section{USV - Unterbrechungsfreie Stromversorgung
   \label{ups}
   }




\subsection{Vorwort
   \label{ups-vorwort}
    }

Ein Gateway das Ihre Internetverbindungen h\"alt, Ihre Mails buffert,
Ihren Newsserver hostet und viele andere mehr oder weniger 
wichtige Dinge f\"ur Sie erledigt, sollte vor den Auswirkungen
eines Stromausfalls gesch\"utzt werden.

Nun setze ich f\"ur mein Gateway (siehe auch Kapitel 
\ref{eingesetzteHardware} {(eingesetzte Hardware)}) einen
stromsparenden PC/104 SBC (single board computer) ein, der inklusive
Stromversorgung, Zyxel Modem und NT eine Stromaufnahme von ca. 10 Watt
(gemessen auf der 220 V Seite) hat.

Ich habe daher nach einer sehr kleine und vorallem billigen USV gesucht,
die wenn m\"oglich auch von Linux unterst\"utzt wird. Ein kurzes Einlesen
in das \onlynameurl{Linux UPS-HOWTO}
fand ich schnell heraus, da\ss{} der Linux Support von USVs mehrfach gel\"ost
wurde und sehr einfache Wege existieren die USV zu \"uberwachen.

Also suchte ich nach einer m\"oglichst schwachen USV (ich mu\ss{} ja nur
10 Watt am Leben erhalten), die auch eine Schnittstelle zur \"Uberwachung
besitzt. Die Wahl viel dann auf die BESTPOWER PATRIOT 250. Dieses Teil
kostete ca. 1.500,- ATS und lag mit seinen ca. 170 Watt Ausgangsleistung
weit \"uber meinen Bed\"urfnissen.

Die technischen Daten weisen darauf hin, da\ss{} bei Halblast (ca. 80 Watt)
der Akku ca. 14 Minuten \"uberbr\"ucken kann. Das hei\ss{}t, da\ss{} bei meinen 10 Watt
die USV auch l\"angere Gewitter im Sommer \"uberbr\"ucken sollte. Zu kl\"aren war
nun nur noch wie man die USV von Linux aus \"uberwachen kann. Das m\"ochte
ich hier dokumentieren.












\subsection{Treiber
   \label{ups-treiber}
    }

Die Treiber f\"ur die PATRIOT USVs bekommt man bei
\onlynameurl{www.bestpower.com} :
\onlynameurl{checkups.tar}

Kopieren Sie das tarfile in ein Directory Ihrer Wahl und packen Sie es aus mit:
\begin{tscreen}
\begin{verbatim}
      tar xvf checkups.tar
    
\end{verbatim}
\end{tscreen}

Starten Sie nun das Script:
\begin{tscreen}
\begin{verbatim}
      ./unixinst
    
\end{verbatim}
\end{tscreen}

und w\"ahlen Sie b f\"ur basic Installation und danach l f\"ur Linux. Nach wenigen
Sekunden ist checkups im Directory {\ttfamily /etc/best/checkups} installiert.

Im File checkups.c habe ich die Zeile 174 ge\"andert von
\begin{tscreen}
\begin{verbatim}
     #define D(x)
    
\end{verbatim}
\end{tscreen}

in
\begin{tscreen}
\begin{verbatim}
     #define D(x) usleep(10000);
    
\end{verbatim}
\end{tscreen}

damit bei jedem Debugoutput ein bischen gewartet wird. Es scheint mit
dem Timing des Programms ein kleines Problem zu geben. Es wird die
Steuerleitung eingeschaltet und aufgrund der pullup Widerst\"ande d\"urfte
einige Zeit vergehen bis der Pegel eingelesen werden kann. Diese Zeit
lasse ich mit dem usleep bewu\ss{}t vergehen. Sch\"on ist das nicht - aber
es funktioniert :-((

Danach checkups mit make compilieren. Wenn Sie bei den ersten Gehversuchen
Debug-Output von checkups sehen wollen, dann k\"onnen Sie
in Zeile 171 folgendes einf\"ugen
\begin{tscreen}
\begin{verbatim}
     #define DEBUG 1
    
\end{verbatim}
\end{tscreen}

das k\"onnen Sie nachher dann auch wieder wie folgt abschalten:
\begin{tscreen}
\begin{verbatim}
     //#define DEBUG 1
    
\end{verbatim}
\end{tscreen}













\subsection{startup
   \label{ups-startup}
    }

Das Startupscript {\ttfamily /sbin/init.d/ups} f\"ur die Patriot \"Uberwachung sieht
bei mir wie folgt aus:
\begin{tscreen}
\begin{verbatim}
#! /bin/sh
#
# Original template:
# Copyright (c) 1995-1998 SuSE GmbH Nuernberg, Germany.
#
# CheckUPS-Startup:
# Copyright (c) 2000 Heimo Schön - heimo.schoen@gmx.at
#
# Author: Heimo Schön
# Date  : 5. Okt. 2000
#
# /sbin/init.d/ups
#
#   and symbolic its link
#
# /sbin/rcups
#

. /etc/rc.config

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

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

# The echo return value for success (defined in /etc/rc.config).
return=$rc_done
case "$1" in
    start)
        echo -n "Starting service checkups"
        ## Start daemon with startproc(8). If this fails
        ## the echo return value is set appropriate.

        killall -q checkups

#        /etc/best/checkups/checkups -s1 -c20 -p5 -i5 -x1000 -o /dev/ttyS1 || return=$rc_failed
        /etc/best/checkups/checkups -s1 -c20 -p5 -i5 -x1000 -o /dev/ttyS1

        echo -e "$return"
        ;;
    stop)
        echo -n "Shutting down service checkups"
        ## Stop daemon with killproc(8) and if this fails
        ## set echo the echo return value.

        killall -q checkups

        echo -e "$return"
        ;;
    restart)
        ## If first returns OK call the second, if first or
        ## second command fails, set echo return value.
        ##$0 stop  &&  $0 start  ||  return=$rc_failed
        $0 start  ||  return=$rc_failed
        ;;
    reload)
        ## Choose ONE of the following two cases:

        ## First possibility: A few services accepts a signal
        ## to reread the (changed) configuration.

        #echo -n "Reload service foo"
        #killproc -HUP /usr/sbin/foo || return=$rc_failed
        #echo -e "$return"

        ## Exclusive possibility: Some services must be stopped
        ## and started to force a new load of the configuration.

        ##$0 stop  &&  $0 start  ||  return=$rc_failed
        $0 start  ||  return=$rc_failed
        ;;
    status)
        echo -n "Checking for service checkups: *not implemented*"
        ## Check status with checkproc(8), if process is running
        ## checkproc will return with exit status 0.

        #checkproc /usr/sbin/foo && echo OK || echo No process
        ;;
    probe)
        echo -n "Probeing for service checkups: *not implemented*"
        ## Optional: Probe for the necessity of a reload,
        ## give out the argument which is required for a reload.

        #test /etc/foo.conf -nt /var/run/foo.pid && echo reload
        ;;
    *)
        echo "Usage: $0 {start|stop|status|restart|reload[|probe]}"
        exit 1
        ;;
esac

# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0
    
\end{verbatim}
\end{tscreen}

Damit checkups auch wirklich beim Boot gestartet wird, m\"ussen Sie in
{\ttfamily /sbin/init.d/rc/rc2.d} und {\ttfamily /sbin/init.d/rc/rc3.d} noch folgende Links erzeugen:
\begin{tscreen}
\begin{verbatim}
     ln -s ../ups S98ups
     ln -s ../ups K98ups
    
\end{verbatim}
\end{tscreen}

Anmerkung: Vergessen Sie nicht das : chmod a+x ups



checkups wird mit folgenden Parametern gestartet:

\begin{tscreen}
\begin{verbatim}
     /etc/best/checkups/checkups -s1 -c20 -p5 -i5 -x1000 -o /dev/ttyS1

     -s1 .......... Startupdelay 1 Second
     -c20 ......... shutdown der Maschine 20 Minuten nach Stromausfall
     -p5 .......... polling (Abfrage der seriellen Schnittstelle) alle 5 Sekunden
     -i5 .......... Warnung senden alle 5 Sekunden
     -x1000 ....... bis zu 1000 Zeilen im Logfile aufzeichnen
     -o ........... Abschalten der USV nachdem der Rechner gestoppt wurde
     /dev/ttyS1 ... Device an dem Sie die USV angeschlossen haben (hier COM2 = /dev/ttyS1)
    
\end{verbatim}
\end{tscreen}

Folgende Files werden von checkups verwendet:
\begin{tscreen}
\begin{verbatim}
     /etc/best/checkups/checkups ..... die Applikation selbst
     /etc/best/checkups/upsdown ...... dieses Script wird gestartet um den shutdown auszuführen
     /etc/best/checkups/upsmsg ....... dieses Script wird zur Ausgabe von Meldungen gestartet
     /etc/best/checkups/ups_log.txt .. Logfile
    
\end{verbatim}
\end{tscreen}





















\subsection{Kabel
   \label{ups-kabel}
    }

Mit einer Auskreuzbox mit LEDs und einem Voltmeter bewaffnet habe
ich begonnen heruaszufinden was checkups an der seriellen Schnittstelle
"so treibt".

Dabei habe ich herausgefunden, da\ss{} manchmal Daten gesendet werden
und manchmal Pegel "aufblitzen". Anhand dieser Informationen und der
im Patriot Handbuch beschriebenen Belegung des 9 poligen Steckers
auf der R\"uckseite der USV, ergab sich folgende
\onlynameurl{Pinbelegung}



































\end{document}
