5 <h3>Internetzugang über Uni Oldenburg</h3>
7 <em>Von Michael Granzow</em> <p>
9 Internet-Zugang mit Modem über den PPP-server des
10 Hochschulrechenzentrums der Universität Oldenburg mit GNU/Linux. <p>
12 <p><h4>Vorbemerkung:</h4> Diese Seite ist nur eine praktische
13 Gebrauchsanweisung. Details und Hintergründe zu Netzwerken
14 unter GNU/Linux werden hier nicht beschrieben. Wen es nach mehr
15 Information gelüstet, der sei auf die exzellenten
16 Online-Dokumente verwiesen, die es zu diesem Thema gibt:<p>
19 <li><a href="<url linuxdoc>LDP/nag/">Network
20 Administrator's Guide</a> (NAG) </a>, version 1.0, by Olaf Kirch.
21 <li><a href="<url linuxdoc>HOWTO/PPP-HOWTO.html">PPP HOWTO</a>
22 ausfürliche information zu PPP
23 (point-to-point-protocol) unter linux.
24 <li><a href="<url linuxdoc>HOWTO/Serial-HOWTO.html">Serial HOWTO</a>
25 Benutzung der Seriellen Schnittstellen (Modems, Terminals) mit
27 <li><a href="<url metalab>pub/Linux/docs/faqs/PPP-FAQ">PPP FAQ</a>
28 Frage-Antwort-Katalog zu PPP-Networking unter GNU/Linux.
30 href="<url linuxdoc>HOWTO/ISP-Hookup-HOWTO.html">ISP-Hookup-HOWTO</a>
31 Einwahl bei einem Internet Service Provider.
34 Da ihr um die beiden HOWTOs und das FAQ wohl kaum herumkommen
35 werdet, sind sie in dem tar-file, das die weiter unten
36 beschriebenen Konfigurations-Skripts enthält ebenso aufgenommen wie
37 die Anleitung, die ihr gerade lest. Der <i>Network Administrator's Guide</i> hingegen ist mit
38 seinen über 250 Seiten wohl mehr als abendliche
39 Hintergrundlektüre geeignet (als solche aber sehr zu
40 empfehlen). Bedingt durch seine Grösse ist er allerdings in
41 mancher Hinsicht nicht mehr ganz auf dem neuesten Stand. Einige
42 HOWTOs gibt es mittlerweile auch in deutscher Übersetzung.
44 href="ftp://ftp.gwdg.de/pub/linux/doc/howto/translations/de/html">
45 ftp://ftp.gwdg.de/pub/linux/doc/howto/translations/de/html</a>
46 um. (<a href="footnotes.html#manual">anmerkung zum PPP-HOWTO</a>)
49 <p><h4>Allgemeines:</h4> Die PPP-Unterstützung besteht bei GNU/Linux aus
50 mehreren Komponenten: zum einen dem PPP-Treiber im Kern, zum
51 anderen dem PPP-Daemon auf User-Ebene sowie einem Programm zum
52 Herstellen der Verbindung (Chat) und schließlich aus einer
53 Handvoll Konfigurationsdateien, mit denen das Setup an das Modem
54 und an den PPP-Server angepaßt wird.
57 <p><h4>Procedere:</h4> Die folgenden Schritte müssen unternommen
58 werden, bevor man sich einwählen kann:<p>
60 <li> Anpassung des Kernels
61 <li> Installation von pppd (PPP Daemon) und chat (Programm zum
63 <li> Editieren einiger System-Konfigurations-Dateien
64 <li> Erzeugen einiger PPP-spezifischen Dateien
67 <h4>Anpassung des Kernels</h4>
69 Wer noch keine Erfahrung mit dem Compilieren des Kernels hat: es genügt,
70 sich an die Anleitung in /usr/src/linux/README zu halten. Wenn man
71 allerdings verstehen will, was man macht, sollte man
72 das <a href="<url linuxdoc>LDP/HOWTO/Kernel-HOWTO.html">Kernel HOWTO</a> zu Rate ziehen.
73 Die folgenden Variablen müssen mit <tt>make config</tt> (oder
74 <tt>make xconfig</tt>) gesetzt werden (auszüge aus
75 /usr/src/linux/.config; diese Datei wird automatisch mit make
81 # Loadable module support
84 # CONFIG_MODVERSIONS is not set
108 # Network device support
111 # CONFIG_DUMMY is not set
112 # CONFIG_EQUALIZER is not set
113 # CONFIG_PLIP is not set
124 Natürlich könnt ihr auch auf Kernel-Daemon und
125 ladbare Kernel-Module verzichten, dann wäre `m' durch `y'
126 zu ersetzen. Nach dem Übersetzen des Kernels muß der Rechner
127 mit dem neuen Kernel gebootet werden.
129 <p><h4>Installation</h4> Der pppd sowie chat sollten bei jeder
130 Distribution im Lieferumfang enthalten sein.
132 href="ftp://ftp.gwdg.de:/pub/linux/mirrors/sunsite/system/network/serial/ppp/">
133 pppd und chat</a> über FTP zu beziehen.
135 <p><h4>Editieren von Dateien</h4> Im Verzeichnis /etc müssen einige Dateien
142 <tt>order</tt> gibt die Reihenfolge an, in der die Dienste zum
143 ÜBersetzen von <i>host names</i> in IP-Nummern verwendet werden.
144 Dies braucht ihr, wenn ihr nicht alle Nummern auswendig wißt, sondern
145 manchmal auch dummy.hrz.uni-oldenburg.de o. ä. verwenden wollt. wie
146 angegeben wird zuerst die Datei /etc/hosts konsultiert und dann - falls dies
147 nicht zum erfolg geführt hat - der <i>Berkeley Internet Name Domain
148 Service</i> (<tt>bind</tt>). letzterer benötigt einen
149 <i>nameserver</i>, der in der datei
152 domain uni-oldenburg.de
153 nameserver 134.106.49.2
154 nameserver 134.106.40.3
155 nameserver 134.106.1.7
157 Beim Namen (eigentlich sollte man sagen bei der Nummer) genannt wird.
158 <i>nameservers</i> sind Computer, die Rechnernamen in IP-Nummern
159 übersetzten. Deshalb müssen zumindest ihre IP-Nummern lokal
161 <p><a name="ppp_group">/etc/group: fügt die folgende Gruppe hinzu.
163 ppp:x:15:ppp_user1,ppp_user2
165 <tt>ppp_user?</tt> ist natürlich durch die <i>users</i>
166 zu ersetzen, die eine PPP-Verbindung in Gang setzen dürfen
167 (wenn diese einmal besteht, kann jeder <i>user</i> sie benutzen).
169 <p><h4>Erzugen von Dateien</h4> zieht euch <a href="<root_prefix>download/ppp-dialup-ol-0.1.tar.gz">
170 Diese tar-Datei</a>, aus dem alle Konfigurationsdateien (fast :)
171 unverändert übernommen werden können. Entpackt es
172 anschließend als root in eurem Hauptverzeichnis (unter der
173 Annahme, daß euer tar nicht aus großvaters zeiten stammt):
176 # tar zxvf ppp-dialup-ol-0.1.tar.gz
183 etc/ppp/scripts/ppp-on
184 etc/ppp/scripts/ppp-off
185 etc/ppp/scripts/ppp-on-dialer
190 usr/doc/howto/HTML/PPP-HOWTO-1.html
192 usr/doc/howto/HTML/toc.gif
193 usr/doc/howto/HTML/procedere.html
196 Gestartet wird die PPP-Verbindung mit dem Shell-Skript
197 /etc/ppp/scripts/ppp-on. Dieses setzt zunächst einige Variablen und
198 ruft dann das Shell-Skript /etc/ppp/scripts/ppp-on-dialer auf. Zu den
199 Variablen im einzelnen:
202 <li> <tt>PPPD</tt> gibt an, wo sich das Programm pppd auf eurem
203 Rechner befindet. Bei mir steht es im Verzeichnis /usr/sbin,
204 womöglich weicht eure Distribution davon ab.
205 <li> <tt>CHAT</tt> gibt den Ort von chat an und setzt gleichzeitig die
206 Option `-v' (verbose mode, siehe <tt>man chat</tt>).
207 <li> <tt>MODEM</tt> bezeichnet die Schnittstelle, an die euer modem
208 angeschlossen ist. Bei mir hängt die Maus an der ersten
209 (/dev/ttyS0) und das Modem an der zweiten (/dev/ttyS1).
210 Paßt diese Variable bitte an eure Verkabelung
211 an. (<a href="footnotes.html#devmodem">anmerkung</a>)
212 <li> <tt>SPEED</tt> gibt an, wie schnell euer Modem ist. Siehe die
213 <a href="<url linuxdoc>HOWTO/Serial-HOWTO-9.html#spdhi">Erläuterung</a> im Serial-HOWTO.
214 <li> <tt>NAME</tt> entält den <i>login string</i>, der euch vom
215 HRZ zugewiesen wurde. <tt>HRZ-NAME</tt> ist entsprechend zu
217 <li> <tt>INITSTRING</tt> ist der AT-Befehl zur Initialisierung eures
218 Modems. "&F" lädt die Standard-Einstellung ab Werk, die
219 meistens alle voraussetzungen für den PPP-Betrieb schafft.
220 siehe hierzu die entsprechende <a
221 href="<url linuxdoc>HOWTO/PPP-HOWTO-9.html#ss9.3">Anmerkung</a> im PPP-howto.
222 <li> <tt>DIAL</tt> ist auf `T' zu setzen, wenn euer
223 telefonanschluß das Frequenzwahlverfahren verwendet und
224 auf `P', wenn das (alte) Pulswahlverfahren verwendet wird.
227 In /etc/ppp/chap-secrets müßt ihr <tt>HRZ-NAME</tt>
228 wie oben ersetzen und außerdem für <tt>HRZ-PASSWD</tt> das
229 euch zugeteilte Paßwort eintragen. Die Datei /etc/ppp/ip-up dient
230 dazu, einige Befehle, die immer dann ausgeführt werden sollen, wenn
231 eine Internet-Verbindung hergestellt wurde, zu starten. Falls ihr
232 diesbezüglich Wünsche habt (beispielsweise Mails abholen), so
233 fügt die entsprechenden Kommandos hier ein (näheres <a
234 href="<url linuxdoc>HOWTO/PPP-HOWTO-23.html">im
238 <h4>Starten der Verbindung</h4>
240 nach all diesen Vorarbeiten kann nun die PPP-Verbindung aufgebaut
242 # /etc/ppp/scripts/ppp-on&
243 </pre>da <tt>debug</tt> eine der Optionen ist, die pppd beim Aufruf
244 übergeben werden, teilt pppd wichtige Informationen dem
245 Syslog-Daemon mit. Dieser schreibt sie (meistens, siehe <tt>man
246 syslogd</tt>) in die Datei /var/log/messages, die nur der Superuser
247 lesen darf. Wenn die Verbindung wie vorgesehen aufgebaut wird,
248 enthält /var/log/messages (ungefähr) die folgenden
250 # tail -n60 /var/log/messages
252 Jul 31 09:38:15 localhost kernel: CSLIP: code copyright 1989 Regents of the University of California
253 Jul 31 09:38:15 localhost kernel: PPP: version 2.2.0 (dynamic channel allocation)
254 Jul 31 09:38:15 localhost kernel: PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
255 Jul 31 09:38:15 localhost kernel: PPP line discipline registered.
256 Jul 31 09:38:15 localhost kernel: registered device ppp0
257 Jul 31 09:38:15 localhost pppd[367]: pppd 2.2.0 started by pppuser, uid 007
258 Jul 31 09:38:16 localhost chat[373]: timeout set to 3 seconds
259 Jul 31 09:38:16 localhost chat[373]: abort on (\nBUSY\r)
260 Jul 31 09:38:16 localhost chat[373]: abort on (\nNO ANSWER\r)
261 Jul 31 09:38:16 localhost chat[373]: abort on (\nRINGING\r\n\r\nRINGING\r)
262 Jul 31 09:38:16 localhost chat[373]: send (AT&F^M)
263 Jul 31 09:38:16 localhost chat[373]: timeout set to 30 seconds
264 Jul 31 09:38:16 localhost chat[373]: expect (OK)
265 Jul 31 09:38:16 localhost chat[373]: AT&F^M^M
266 Jul 31 09:38:16 localhost chat[373]: OK - got it
267 Jul 31 09:38:16 localhost chat[373]: send (ATDT0441779010^M)
268 Jul 31 09:38:16 localhost chat[373]: expect (CONNECT)
269 Jul 31 09:38:16 localhost chat[373]: ^M
270 Jul 31 09:38:38 localhost chat[373]: ATDT0441779010^M^M
271 Jul 31 09:38:38 localhost chat[373]: CONNECT - got it
272 Jul 31 09:38:38 localhost chat[373]: send (^M)
273 Jul 31 09:38:38 localhost pppd[367]: Serial connection established.
274 Jul 31 09:38:39 localhost pppd[367]: Using interface ppp0
275 Jul 31 09:38:39 localhost pppd[367]: Connect: ppp0 <-> /dev/ttyS1
276 Jul 31 09:38:39 localhost pppd[367]: sent [LCP ConfReq id=0x1 <mru 1500> <asyncmap 0x0> <magic 0x399bfbb7> &
277 lt;pcomp> <accomp>]
278 Jul 31 09:38:40 localhost pppd[367]: rcvd [LCP ConfReq id=0x1 <mru 1524> <asyncmap 0xa0000> <auth chap md5>
279 <pcomp> <accomp> < 13 09 03 00 c0 7b 61 85 13> < 17 04 9c 00>]
280 Jul 31 09:38:40 localhost pppd[367]: sent [LCP ConfRej id=0x1 < 13 09 03 00 c0 7b 61 85 13> < 17 04 9c 00>]
281 Jul 31 09:38:40 localhost pppd[367]: rcvd [LCP ConfAck id=0x1 <mru 1500> <asyncmap 0x0> <magic 0x399bfbb7> &
282 lt;pcomp> <accomp>]
283 Jul 31 09:38:40 localhost pppd[367]: rcvd [LCP ConfReq id=0x2 <mru 1524> <asyncmap 0xa0000> <auth chap md5>
284 <pcomp> <accomp>]
285 Jul 31 09:38:40 localhost pppd[367]: sent [LCP ConfAck id=0x2 <mru 1524> <asyncmap 0xa0000> <auth chap md5>
286 <pcomp> <accomp>]
287 Jul 31 09:38:40 localhost pppd[367]: rcvd [CHAP Challenge id=0x1 <2a4ef42fb5co9836c2b097ebb15eed7r>, name = "dialsrv1"]
288 Jul 31 09:38:40 localhost pppd[367]: sent [CHAP Response id=0x1 <218beb7545deba68c2t2afc5ez3429303>, name = "HRZ-NAME"]
289 Jul 31 09:38:41 localhost pppd[367]: rcvd [CHAP Success id=0x1 "\000"]
290 Jul 31 09:38:41 localhost pppd[367]: Remote message:
291 Jul 31 09:38:41 localhost pppd[367]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <compress VJ 0f 01>]
292 Jul 31 09:38:41 localhost pppd[367]: rcvd [CCP ConfReq id=0x1 < 11 06 00 01 01 03>]
293 Jul 31 09:38:41 localhost pppd[367]: sent [CCP ConfReq id=0x1]
294 Jul 31 09:38:41 localhost pppd[367]: sent [CCP ConfRej id=0x1 < 11 06 00 01 01 03>]
295 Jul 31 09:38:41 localhost pppd[367]: rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 134.106.40.219>]
296 Jul 31 09:38:41 localhost pppd[367]: sent [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 134.106.40.219>]
297 Jul 31 09:38:41 localhost pppd[367]: rcvd [proto=0x8031] 01 01 00 0a 03 03 01 07 03 00
298 Jul 31 09:38:41 localhost pppd[367]: Unknown protocol (0x8031) received
299 Jul 31 09:38:41 localhost pppd[367]: sent [LCP ProtRej id=0x2 80 31 01 01 00 0a 03 03 01 07 03 00]
300 Jul 31 09:38:41 localhost pppd[367]: rcvd [proto=0x802b] 01 01 00 18 01 06 cf cf 12 34 02 08 00 c0 7b 61 85 13 04 04 00 00 06
302 Jul 31 09:38:41 localhost pppd[367]: Unknown protocol (0x802b) received
303 Jul 31 09:38:41 localhost pppd[367]: sent [LCP ProtRej id=0x3 80 2b 01 01 00 18 01 06 cf cf 12 34 02 08 00 c0 7b 61 85 13 04 0
305 Jul 31 09:38:41 localhost pppd[367]: rcvd [IPCP ConfNak id=0x1 <addr 134.106.40.228>]
306 Jul 31 09:38:41 localhost pppd[367]: sent [IPCP ConfReq id=0x2 <addr 134.106.40.228> <compress VJ 0f 01>]
307 Jul 31 09:38:41 localhost pppd[367]: rcvd [CCP ConfRej id=0x1]
308 Jul 31 09:38:41 localhost pppd[367]: rcvd [IPCP ConfAck id=0x2 <addr 134.106.40.228> <compress VJ 0f 01>]
309 Jul 31 09:38:41 localhost pppd[367]: local IP address 134.106.40.228
310 Jul 31 09:38:41 localhost pppd[367]: remote IP address 134.106.40.219
313 Entscheidend sind die Zeilen <tt>serial connection established</tt> und
314 <tt>local IP address 134.106.40.228</tt>. Da der PPP-Server am HRZ
315 IP-Adressen dynamisch vergibt, werdet ihr jedesmal eine andere
316 bekommen. (Anmerkung zu <a href="footnotes.html#protocol">unknown
317 protocol</a>) das Programm <tt>ifconfig</tt> gibt Auskunft über
318 das nun vom pppd konfigurierte <i>network interface</i>:<pre>
320 lo Link encap:Local Loopback
321 inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
322 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
323 RX packets:0 errors:0 dropped:0 overruns:0
324 TX packets:0 errors:0 dropped:0 overruns:0
326 ppp0 Link encap:Point-Point Protocol
327 inet addr:134.106.40.228 P-t-P:134.106.40.219 Mask:255.255.0.0
328 UP POINTOPOINT RUNNING MTU:1524 Metric:1
329 RX packets:12 errors:0 dropped:0 overruns:0
330 TX packets:11 errors:0 dropped:0 overruns:0
332 Weitere Information liefert der Aufruf von <tt>netstat</tt>:
335 Kernel IP routing table
336 Destination Gateway Genmask Flags MSS Window irtt Iface
337 134.106.40.219 * 255.255.255.255 UH 1524 0 0 ppp0
338 loopback * 255.0.0.0 U 3584 0 0 lo
339 default 134.106.40.219 0.0.0.0 UG 1524 0 0 ppp0
342 Nun ist euer Internet-Zugang hergestellt und die PPP-Verbindung wird als
343 <i>default route</i> verwendet. viel spaß beim
344 surfen ... aber denkt an die Telefonrechnung!<p>
345 Auf Dauer wird es euch nerven, ständig die lange Zeile
346 /etc/ppp/scripts/ppp-on& zu tippen. Daher hier <a
347 href="footnotes.html#online">ein etwas komfortableres Skript für einen
348 <tt>ppp_user</tt></a>
350 <p>Hier noch zwei wichtige Links: Informationen bei <a
351 href="http://www.ssc.com/linux">SSC</a> und <a
352 href="http://www.cs.indiana.edu/elisp/w3/docs.html">w3: Eine Erweiterung,
353 die aus Emacs einen WWW-Browser macht.</a>
356 <p><h4>Sicherheit:</h4> An dieser Stelle seien noch ein paar Worte zur
357 Sicherheit eures Internet-Zugangs gesagt:
359 <p> Generell solltet ihr bedenken, daß PPP ein bidirektionales
360 Protokoll ist. Das heißt, daß durch die Herstellung einer
361 PPP-Verbindung einerseits euer Computer Zugriff auf das Netz erhält,
362 andererseits aber auch alle Rechner des Internets auf euren Computer
363 zugreifen können. Wie Weit dieser Zugriff geht, könnt ihr aber
364 durch sogenanntes <i>Wrapping</i> von <i>Internet-Services</i> mit
365 Hilfe des Programmes tcpd sehr genau kontrollieren. Detaillierte
366 Beschreibungen hierfür finden sich auf der <i>manual (8) page</i>
367 von tcpd und der <i>man (5) page</i> von hosts_access. Wer auf Nummer
368 sicher gehen will, ersetzt zunächst in der Datei /etc/inetd.conf
369 in den Zeilen der zu schützenden Dienste in der sechsten spalte den
370 direkten Aufruf des jeweiligen Programmes durch /usr/sbin/tcpd
371 (bzw. den absoluten Pfadnamen des tcpd-Programmes in eurem Filesystem)
372 und legt die Datei /etc/hosts.deny mit folgendem inhalt an<pre>
374 </pre>Um sich selbst nicht auch auszubooten, sollte man /etc/hosts.allow
375 wie folgt editieren:<pre>
377 </pre>(Denkt an die abschßießenden <i>newline characters</i>; um
378 inetd zu veranlassen, das aktualisierte /etc/inetd.conf file
379 einzulesenüßmüßt ihr ihm das signal <tt>HUP</tt> schicken:
380 <tt>kill -H<P <pid></tt>, wob<i <pid> durch die
381 Prozeßnummer von inetd zu ersetzen ist). Wollt ihr einigen hosts
382 (oder domains) den Zugriff erlauben, so konsultiert die oben
383 erwähnten Manpages oder den <i>Network Administrator's Guide</i>
384 (Abschnitt 9.2). Auf jeden Fall solltet ihr dann die Dateien
385 /etc/hosts.equiv und ~/.rhosts überprüfen (vgl. NAG,
386 Abschnitt 9.5). Womöglich konfiguriert eure Distribution den
387 Netzwerzugriff ohnehin sehr sicher und ihr müßt euch um
388 diese Frage gar keine Gedanken machen. Das mindeste, was ihr jedoch tun
389 müßt, ist alle Accounts mit einem Paßwort zu schützen.
392 <p>Bei Fragen, Unklarheiten oder Anmerkungen wendet euch bitte direkt
393 an den <a href="mailto:mg@medi.physik.uni-oldenburg.de">Autor</a>
396 <a href="ppp-footnotes.html">Fußnoten</a>