This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-ISDN-HOWTO-9.html is in doc-linux-de 2003.10-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.65">
 <TITLE>Linux ISDN HOWTO: Dial-on-Demand kontrollieren       </TITLE>
 <LINK HREF="DE-ISDN-HOWTO-10.html" REL=next>
 <LINK HREF="DE-ISDN-HOWTO-8.html" REL=previous>
 <LINK HREF="DE-ISDN-HOWTO.html#toc9" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-ISDN-HOWTO-10.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-8.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc9"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="DE-ISDN-HOWTO-dodCtrl"></A> <A NAME="s9">9.</A> <A HREF="DE-ISDN-HOWTO.html#toc9">Dial-on-Demand kontrollieren       </A>      <!--Dial-on-Demand-->      <!--ISDN!Dial-on-Demand-->    </H2>

<P>W&auml;hrend der Konfiguration sollte man unbedingt das System &uuml;berwachen
und feststellen, wann und warum eine Verbindung aufgebaut wird.
Ansonsten kann es schnell zu unerw&uuml;nschten Telefonrechnungen 
kommen.</P>
<P>Man kann sich aber sicher sein, da&szlig; niemals grundlos eine
Verbindung aufgebaut oder offengehalten wird. Die geschieht immer nur
dann, wenn auch tats&auml;chlich Pakete &uuml;ber die Leitung verschickt werden.</P>
<P>Es gilt also insbesondere die beteiligten Serverdienste auf dem 
Rechner zu &uuml;berpr&uuml;fen, ob Sie richtig konfiguriert wurden, und ggf.
die Ursachen der Verbindung aufzusp&uuml;ren.</P>

<H2><A NAME="ss9.1">9.1</A> <A HREF="DE-ISDN-HOWTO.html#toc9.1">Verbindungen &uuml;berwachen            </A>
<!--imon-->           <!--xisdnload-->           <!--ISDN!Statusmonitor!imon-->           <!--ISDN!Statusmonitor!xisdnload-->           <!--ISDN!Statusmonitor!isdnmon-->           <!--ISDN!Statusmonitor!isdnmonp-->        </H2>

<P>Es gibt eine Vielzahl von ISDN-Statusmonitoren; der wichtigste
ist <CODE>imon</CODE>. Dieses Konsolenprogramm l&auml;&szlig;t sich in jeder
Umgebung einsetzen, reagiert prompt und verschlingt keine
Systemressourcen.</P>
<P>Weitere Programme sind: <CODE>xisdnload</CODE> (zeigt auch den Durchsatz),
<CODE>isdnmon</CODE> und <CODE>isdnmonp</CODE>.
Alle Monitore zeigen die Telefonnummer und die Art der Verbindung,
also ob es eine ein- oder ausgehende Verbindung ist, an.</P>

<H2><A NAME="DE-ISDN-HOWTO-verbose"></A> <A NAME="ss9.2">9.2</A> <A HREF="DE-ISDN-HOWTO.html#toc9.2">Grund der Verbindung feststellen     </A>
        </H2>

<P>
<UL>
<LI> Durch den Befehl 
<BLOCKQUOTE><CODE>
<PRE>
isdnctrl verbose 3
</PRE>
</CODE></BLOCKQUOTE>
 wird das
i4l-Subsystem veranlasst, bei jedem Verbindungsaufbau
eine Meldung in <CODE>/var/log/messages</CODE> zu schreiben,
anhand derer man erkennen kann, zwischen welchen IP-Nummern
und Port-Nummern ein Paket verschickt wird.

Dieses Beispiel ist eine Anfrage an den WWW-Server
<CODE>www.suse.com</CODE> mit dem Alias <CODE>goldengate</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
Apr 10 21:05:06 glen kernel: OPEN: 1.1.1.1 -> 209.0.51.1 TCP, port: 2224 -> 80
                
</PRE>
</CODE></BLOCKQUOTE>

Ein Nachteil ist jedoch, da&szlig; man nicht &uuml;berpr&uuml;fen kann, 
warum eine Verbindung nicht abgebaut wird. Weitere
Informationen sind im Abschnitt
<A HREF="DE-ISDN-HOWTO-13.html#DE-ISDN-HOWTO-isdnDial">SDB: ungewollte Verbindungen</A> zu finden.
</LI>
<LI>  
<!--
tcpdump
-->

<!--
Netzwerk!tcpdump
-->

<!--
Paketsniffer
-->

<!--
Netzwerk!Paketsniffer
-->
 
<CODE>tcpdump</CODE> ist ein Paketsniffer,
der alle Pakete auf einem Netzdevice mitschneidet.
Die Ausgabe des Programmes ist leider nicht sehr 
menschenfreundlich, aber zumindest die verwendeten 
IP-Nummern und Port-Nummern werden sichtbar gemacht.

Dieses Beispiel ist eine Anfrage an den WWW-Server
<CODE>www.suse.com</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
# tcpdump -i ippp0
tcpdump: listening on ippp0
21:05:39.382188 pec-30.au1.n.uunet.de.2230 > 
 goldengate.suse.com.www: S 1384488919:1384488919(0)
 win 512 &lt;mss 1460>
21:05:39.642188 goldengate.suse.com.www > 
 pec-30.au1.n.uunet.de.2230: S 3326089293:3326089293(0)
 ack 1384488920 win 32736 &lt;mss 1460>
21:05:39.642188 pec-30.au1.n.uunet.de.2230 > 
 goldengate.suse.com.www: . ack 1 win 32120 (DF)
                
</PRE>
</CODE></BLOCKQUOTE>

Nachteilig ist, da&szlig; bei Verwendung dynamischer IP-Nummern 
durch den PPP-Daemon das Interface <CODE>ippp0</CODE> neu angelegt 
wird.
<CODE>tcpdump</CODE> zeigt nach dem Neuanlegen keine Daten mehr an
und mu&szlig; abgebrochen und neu gestartet werden.</LI>
</UL>
</P>

<H2><A NAME="DE-ISDN-HOWTO-isdnrep"></A> <A NAME="ss9.3">9.3</A> <A HREF="DE-ISDN-HOWTO.html#toc9.3">Verbindungen auswerten            </A>
           <!--ISDN!isdnlog-->           <!--ISDN!isdnrep-->        </H2>

<P>Das Programm <CODE>isdnlog</CODE> l&auml;uft im Hintergrund und horcht
st&auml;ndig auf dem D-Kanal mit. Alle Aktivit&auml;ten werden zum einen
in <CODE>/var/log/messages</CODE> geloggt und zum anderen in die
Log-Datei <CODE>/var/log/isdn.log</CODE> protokolliert.</P>
<P>Mit dem Tool <CODE>isdnrep</CODE> kann man diese Datei wiederum
zu einem sp&auml;teren Zeitpunkt aufrufen. Es gibt eine Vielzahl
von Parametern, hier dir wichtigsten:
<UL>
<LI> <CODE>isdnrep</CODE>: alle Verbindungen des heutigen Tages</LI>
<LI> <CODE>isdnrep -a</CODE>: alle protokollierten Verbindungen</LI>
<LI> <CODE>isdnrep -t01/04/98-03/04/98</CODE>: alle Verbindungen
vom 1. bis 3. April 1998</LI>
</UL>

Mehr Infos sind in der Datei 
<BLOCKQUOTE><CODE>
<A HREF="file:/usr/doc/packages/i4l/isdnlog/README">/usr/doc/packages/i4l/isdnlog/README</A></CODE></BLOCKQUOTE>

bzw. im Quellpaket zu finden.</P>

<H2><A NAME="DE-ISDN-HOWTO-dodOnOff"></A> <A NAME="ss9.4">9.4</A> <A HREF="DE-ISDN-HOWTO.html#toc9.4">Dial-On-Demand an- und ausstellen     </A>
        </H2>

<P>Das i4l-Subsystem ist, wenn es denn einmal gestartet wurde, nicht 
daf&uuml;r vorgesehen, da&szlig; Verbindungen
nur manuell gestartet werden. Man k&ouml;nnte das Konzept bei i4l also 
auch so formulieren: wenn es gestartet ist,
besteht st&auml;ndig eine Verbindung, die aber automatisch gekappt 
wird, wenn nichts passiert.</P>
<P>Wer es dennoch manuell machen will, der entferne einfach die 
Default-Route. In diesen Fall wird nur noch dann eine Verbindung
aufgebaut, wenn ein IP-Paket an die direkte Gegenstelle geschickt 
wird, was i.a. nicht vorkommt, da diese Gegenstelle keine
Internetdienste anbietet und daher von keinem Client angesprochen
wird.</P>
<P>Als endg&uuml;ltigen Schritt kann man auch das komplette Interface
(<CODE>ippp0</CODE>) herunterfahren; dann k&ouml;nnen grunds&auml;tzlich keine
Verbindungen aufgebaut werden.</P>

<H2><A NAME="DE-ISDN-HOWTO-dodSuse"></A> <A NAME="ss9.5">9.5</A> <A HREF="DE-ISDN-HOWTO.html#toc9.5">Tips f&uuml;r das SuSE System                </A>
               <!--ISDN!/sbin/init.d/i4l-->               <!--/sbin/init.d/i4l-->               <!--ISDN!W&auml;hlen-->               <!--ISDN!Auflegen-->            </H2>

<P>Man kann die Runlevel-Skripte nat&uuml;rlich auch manuell benutzen:
<BLOCKQUOTE><CODE>
<PRE>
/sbin/init.d/i4l stop
            
</PRE>
</CODE></BLOCKQUOTE>

Dieses f&auml;hrt alle ISDN-Netzdevices runter.
<BLOCKQUOTE><CODE>
<PRE>
/sbin/init.d/i4l start
/sbin/init.d/route
            
</PRE>
</CODE></BLOCKQUOTE>

Und dieses legt sie wieder an und setzt die Routen.</P>
<P>Wer bei einer syncPPP-Verbindung die Verbindung nur manuell
starten m&ouml;chte, kann eine Eigenschaft des Skriptes
<CODE>/etc/ppp/ip-up</CODE> ab SuSE 5.2 ausnutzen.
Dieses legt beim Verbindungsaufbau eine Default-Route
auf die neu erkannte PtP-Adresse. Beim Verbindungsabbau
wird das Device neu angelegt und die Default-Route 
gel&ouml;scht. Schlie&szlig;lich wird die Datei <CODE>/etc/route.conf</CODE>
durchsucht und die Default-Route, wenn definiert, neu angelegt.
Definiert man dort keine Default-Route, so hat man nach 
Verbindungsabbau eben keine.</P>
<P>Gestartet werden kann dann nur mit dem Kommando:
<BLOCKQUOTE><CODE>
<PRE>
isdnctrl dial ippp0
            
</PRE>
</CODE></BLOCKQUOTE>

Wer manuell auflegen will, benutzt folgendes:
<BLOCKQUOTE><CODE>
<PRE>
isdnctrl hangup ippp0
            
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="DE-ISDN-HOWTO-sudo"></A> <A NAME="ss9.6">9.6</A> <A HREF="DE-ISDN-HOWTO.html#toc9.6">Wie erlaube ich normalen Benutzern, Dial-On-Demand             zu aktivieren?         </A>
            </H2>

<P>Am besten gar nicht, denn das ist Aufgabe des Administrators.
Es ist nur ihm vorbehalten, Netzdevices und
Routen zu konfigurieren.</P>
<P>Versuche nicht, den notwendigen Programmen suid-Attribute zu
geben. Erstens ist diese Aufgabe sehr schwer, und zweitens
handelt man sich damit ein riesiges Sicherheitsloch ein,
denn wenn diese Programme erstmal <EM>offen</EM> sind, lassen
sich auch andere unerw&uuml;nschte Dinge damit tun.</P>
<P>Einem einzelnen Skript suid-Attribute zu geben, ist unter
Linux ebenfalls verboten.</P>
<P>Wer es dennoch unbedingt machen will, der benutze ein Paket
wie z.B. <CODE>sudo</CODE>. Damit lassen sich f&uuml;r einzelne Benutzer
bestimmte Kommandos definieren, die diese dann als Benutzer
<CODE>root</CODE> ausf&uuml;hren d&uuml;rfen.</P>
<P>Hier ein einfaches Beispiel:
<OL>
<LI> Paket <CODE>sudo</CODE> installieren.</LI>
<LI> Mit <CODE>visudo</CODE> die Konfigurationsdatei editieren, z.B.
soll der Benutzer <CODE>kfr</CODE> das Programm 
<CODE>/usr/local/bin/dial</CODE> ausf&uuml;hren d&uuml;rfen:
<BLOCKQUOTE><CODE>
<PRE>
# Angabe der privilegierten Benutzer
kfr     ALL=/usr/local/bin/dial
                
</PRE>
</CODE></BLOCKQUOTE>


Benutze nur das Kommando <CODE>visudo</CODE>, um
die Konfigurationsdatei <CODE>/etc/sudoers</CODE> zu
ver&auml;ndern.
</LI>
<LI> Das Skript <CODE>dial</CODE> k&ouml;nnte z.B. so aussehen:
<BLOCKQUOTE><CODE>
<PRE>
#!/bin/sh

DEVICE=ippp0

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

case "$1" in

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

esac
                
</PRE>
</CODE></BLOCKQUOTE>

Wird es nicht als User <CODE>root</CODE> aufgerufen, startet es sich
selbst mit <CODE>sudo</CODE> neu. Mit <CODE>dial</CODE> wird gew&auml;hlt,
mit <CODE>dial stop</CODE> wird aufgelegt.</LI>
<LI> <CODE>sudo</CODE> fragt beim ersten Start und danach von Zeit 
zu Zeit das Pa&szlig;wort des aufrufenden Benutzers ab.</LI>
<LI> Um die Pa&szlig;wortabfrage zu verhindern, mu&szlig; das Schl&uuml;sselwort
<CODE>NOPASSWD</CODE> mit angegeben werden, z.B.
<BLOCKQUOTE><CODE>
<PRE>
kfr     ALL=NOPASSWD:/usr/local/bin/dial
                
</PRE>
</CODE></BLOCKQUOTE>
</LI>
</OL>
</P>


<HR>
<A HREF="DE-ISDN-HOWTO-10.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-8.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc9"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>