/usr/share/doc/HOWTO/de-html/DE-ISDN-HOWTO-10.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 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 | <!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: Konfiguration der Internet-Dienste </TITLE>
<LINK HREF="DE-ISDN-HOWTO-11.html" REL=next>
<LINK HREF="DE-ISDN-HOWTO-9.html" REL=previous>
<LINK HREF="DE-ISDN-HOWTO.html#toc10" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-ISDN-HOWTO-11.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-9.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc10"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s10">10.</A> <A HREF="DE-ISDN-HOWTO.html#toc10">Konfiguration der Internet-Dienste </A></H2>
<P>Voraussetzung für diesen Abschnitt des Dokumentes ist, daß die
Internet-Verbindung über die Dial-On-Demand Wählverbindung und das
Routing bereits funktioniert.
Jetzt sollen je nach Bedarf weitere Internetdienste eingerichtet
werden.</P>
<H2><A NAME="DE-ISDN-HOWTO-dnsCache"></A> <A NAME="ss10.1">10.1</A> <A HREF="DE-ISDN-HOWTO.html#toc10.1">DNS-Cache </A>
<!--DNS!Cache--> <!--Name Resolver!Cache--> </H2>
<P>Die Hintergrundinformationen zum DNS-Cache sind in Abschnitt
<A HREF="DE-ISDN-HOWTO-8.html#DE-ISDN-HOWTO-ipnummern">IP-Nummern Auflösung</A> zu finden. Um einen DNS-Cache
einzurichten, geht man so vor:
<OL>
<LI> Paket <CODE>bind</CODE> installieren.
</LI>
<LI>
<!--
/etc/named.boot
-->
<!--
DNS!/etc/named.boot
-->
<!--
Name Resolver!/etc/named.boot
-->
Dann editiere man <CODE>/etc/named.boot</CODE>:
<P>
<BLOCKQUOTE><CODE>
<PRE>
cache . root.cache
options query-log
forwarders 192.76.144.66
slave
</PRE>
</CODE></BLOCKQUOTE>
Bei <CODE>forwarders</CODE> werden ein oder mehrere IP-Nummern
der Nameserver eingetragen. Die Option <CODE>slave</CODE> steuert
das Verhalten, wenn der Nameserver selbst noch keine
Antwort hat. Ohne die Option müßte jetzt der eigene
Nameserver die Anfrage auflösen, was recht aufwendig sein
kann. Mit dieser empfohlenen
Option wird dem Forwarder gesagt, daß
er die Anfrage auflösen soll. Bei der nächsten Anfrage
hat er diese dann im Cache.</P>
<P>Zur Diagnose ist zu empfehlen, noch die Zeile
<CODE>options query-log</CODE> einzufügen; es werden dann über
Syslog, also in <CODE>/var/log/messages</CODE>, alle
Anfragen an den Nameserver protokolliert. Dadurch
lassen sich einfach die »Übeltäter« im lokalen
Netz finden. Beispiel:
<BLOCKQUOTE><CODE>
<PRE>
named[232]: XX /192.168.1.2/www.suse.de/A
</PRE>
</CODE></BLOCKQUOTE>
Der Rechner 192.168.1.2 fragt nach dem A-Record
für <CODE>www.suse.de</CODE>.</P>
</LI>
<LI> Wir benutzen uns selbst als Nameserver.
<P>Trage
als Nameserver die lokale IP-Nummer ein (<CODE>192.168.1.1</CODE>),
siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-8.html#DE-ISDN-HOWTO-resolv">Konfiguration der Namensauflösung</A>.</P>
</LI>
<LI> Nun muß der eigene Nameserver gestartet werden.
<UL>
<LI>
<!--
DNS!/etc/rc.config
-->
<!--
Name Resolver!/etc/rc.config
-->
<!--
DNS!/sbin/init.d/named
-->
<!--
Name Resolver!/sbin/init.d/named
-->
<!--
/sbin/init.d/named
-->
SuSE Methode:
Trage in <CODE>/etc/rc.config</CODE> folgendes ein:
<BLOCKQUOTE><CODE>
<PRE>
START_NAMED=yes
</PRE>
</CODE></BLOCKQUOTE>
Starte Nameserver durch Reboot oder direkt
durch <CODE>/sbin/init.d/named start</CODE></LI>
<LI> Manuelle Methode:
<CODE>/usr/sbin/named</CODE></LI>
</UL>
</LI>
<LI> Nun sollte getestet werden, ob alles funktioniert:
<BLOCKQUOTE><CODE>
<PRE>
nslookup www.suse.de
</PRE>
</CODE></BLOCKQUOTE>
<P>
Als Ergebnis wird eine Verbindung aufgebaut, in <CODE>messages</CODE>
wird die Anfrage protokolliert und die IP-Nummer wird
aufgelöst.</P>
<P>Eine Wiederholung der Anfrage, wenn die Verbindung nicht
besteht, darf keine Verbindung aufbauen, die Anfrage
muß sofort beantwortet werden.</P>
</LI>
</OL>
</P>
<H2><A NAME="DE-ISDN-HOWTO-squid"></A> <A NAME="ss10.2">10.2</A> <A HREF="DE-ISDN-HOWTO.html#toc10.2">Squid </A>
<!--Squid--> <!--FTP!Proxy--> <!--WWW!Proxy--> </H2>
<P>Squid ist ein WWW- und FTP-Proxy. Der Vorteil eines Proxies liegt
nicht nur darin, Anfragen für mehrere Benutzer zu cachen, sondern
auch darin, daß die Clientrechner im lokalen Netz nicht unbedingt
echten Internetzugriff über Masquerading haben müssen, was
die Übersicht und die Sicherheit erhöht.</P>
<P>
<!--
Squid!/etc/squid.conf
-->
<!--
/etc/squid.conf
-->
Squid hat eine Vielzahl von Optionen und Features. Die mitgelieferte
Beispielkonfiguration in <CODE>/etc/squid.conf</CODE> ist sehr gut
dokumentiert und funktioniert zunächst einmal ohne Änderung.</P>
<H3>Starten von Squid <!--Squid!Start--> </H3>
<P>Bei SuSE wird über die <CODE>rc.config</CODE>-Variable
<CODE>START_SQUID</CODE> gesteuert, ob Squid gleich beim Systemstart
hochgefahren werden soll (über <CODE>/sbin/init.d/squid</CODE>).</P>
<P>Manuell kann man <CODE>squid</CODE> z.B. durch
<BLOCKQUOTE><CODE>
<PRE>
/usr/sbin/squid -sYD >> /var/squid/squid.out 2>&1 &
</PRE>
</CODE></BLOCKQUOTE>
starten.</P>
<P>Vor dem ersten Start muß das Cache-Directory
initialisiert werden; dies sollte als Benutzer squid
geschehen. Als root kann man einfach folgendes aufrufen:
<BLOCKQUOTE><CODE>
<PRE>
su squid -c "/usr/sbin/squid -z"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3>Clients anpassen <!--Squid!Clients--> </H3>
<P>Die WWW-Browser müssen konfiguriert werden, damit Sie
den Proxy ansprechen. Bei Netscape gibt es die
Maske <EM>Options/Network Preferences</EM>, <EM>Proxies/Manual
Proxy Configuration</EM>. In der Maske gibt man jeweils
für FTP und HTTP-Proxy die IP-Nummer des IZG im lokalen
Netz ein und als Portnummer <CODE>3128</CODE> oder was in
<CODE>/etc/squid.conf</CODE> definiert ist.</P>
<P>Zusätzlich sollte man noch im Feld <EM>No Proxy for</EM>
eintragen, für welche Domains nicht über den Proxy gegangen,
sondern direkt auf den WWW-Server zugegriffen werden soll,
z.B.: <CODE>localhost isdnworkshop.de</CODE>.</P>
<H2><A NAME="DE-ISDN-HOWTO-fetchmail"></A> <A NAME="ss10.3">10.3</A> <A HREF="DE-ISDN-HOWTO.html#toc10.3">Fetchmail </A>
<!--fetchmail--> <!--POP3!fetchmail--> <!--Mail!fetchmail--> </H2>
<P>Das Programm <CODE>fetchmail</CODE> (Paket <CODE>pop</CODE>) eignet sich dazu,
Mails über das POP3-Protokoll vom Provider abzuholen.</P>
<P>Das Abholen kann auch als normaler User durchgeführt werden,
wir holen hier die Mails als root ab, dadurch läßt sich der
Vorgang besser automatisieren. Nach dem Abholen werden die
Mails dem lokalen Sendmail übergeben und zugestellt.</P>
<P>Der Mailserver sei <CODE>mail.provider.de</CODE>. Es gibt zwei Benutzer
<EM>asterix</EM> und <EM>obelix</EM>, die auf dem lokalen Rechner <EM>eva</EM>
und <EM>maria</EM> heissen. Als
Paßwörter werden auf dem Mailserver <EM>adam</EM> und <EM>josef</EM> benutzt. </P>
<P>
<UL>
<LI> Lege eine Datei <CODE>/root/.fetchmailrc</CODE> an:
<BLOCKQUOTE><CODE>
<PRE>
poll mail.provider.de protocol POP3 user asterix
password adam is eva
poll mail.provider.de protocol POP3 user obelix
password josef is maria
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI> Zum Test starte:
<BLOCKQUOTE><CODE>
<PRE>
fetchmail -v --keep -a
</PRE>
</CODE></BLOCKQUOTE>
Die Option <CODE>-v</CODE> führt zu mehr Ausgaben, die Option
<CODE>--keep</CODE> sorgt dafür, daß die Mails auf dem Server
zunächst nicht gelöscht werden.
</LI>
<LI> Wenn das erfolgreich war, trage in <CODE>/etc/ppp/ip-up</CODE>
das Kommando
<BLOCKQUOTE><CODE>
<PRE>
fetchmail -a >> /var/log/fetchmail
</PRE>
</CODE></BLOCKQUOTE>
in den Start-Abschnitt ein.
</LI>
</UL>
</P>
<P>Mehr Informationen findet man hier:
<BLOCKQUOTE><CODE>
<A HREF="http://www.suse.de/Support/sdb/fetchmail.html">http://www.suse.de/Support/sdb/fetchmail.html</A></CODE></BLOCKQUOTE>
</P>
<P>Übung: Auf dem Server liegen Mails für jede Workstation
bereit. Richte <CODE>fetchmail</CODE> so ein, daß bei jedem Verbindungsaufbau
Mails abgeholt werden. Prüfe die lokale Zustellung.</P>
<H2><A NAME="DE-ISDN-HOWTO-sendmail"></A> <A NAME="ss10.4">10.4</A> <A HREF="DE-ISDN-HOWTO.html#toc10.4">Sendmail </A>
<!--sendmail--> <!--Netzwerk!Mail--> <!--Mail!sendmail--> </H2>
<P>Über Sendmail kann man dicke Bücher schreiben, siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-13.html#DE-ISDN-HOWTO-bookSendmail">Sendmail</A>.</P>
<P>Das SuSE Paket <CODE>sendmail</CODE> ist für diese Zwecke hier
bestens gerüstet. Besonders wichtig ist hier zum einem, daß
die Absenderadresse richtig gesetzt wird, denn die lokale
Domain könnte ja zur E-Mail-Adresse beim Provider unterschiedlich
sein. Zum anderen sollen lokale E-Mails sofort zugestellt
werden, Mails, die über die Wählleitung verschickt werden müssen,
sollen dagegen in eine Warteschlange gestellt werden, ohne daß eine
Verbindung aufgebaut wird.</P>
<P>Wie immer gibt es mehrere Wege:</P>
<P>
<UL>
<LI>
<!--
sendmail!/etc/rc.config
-->
Sendmail über <CODE>/etc/rc.config</CODE> konfigurieren:
<P>
<BLOCKQUOTE><CODE>
<PRE>
FROM_HEADER="klaus.franken.de"
SENDMAIL_TYPE="yes"
SENDMAIL_SMARTHOST="mail-n.franken.de"
SENDMAIL_LOCALHOST="localhost franken.b.eunet.de \
glen.home.suse.de klaus.franken.de"
SENDMAIL_RELAY=""
SENDMAIL_ARGS="-bd -om"
SENDMAIL_EXPENSIVE="yes"
SENDMAIL_NOCANONIFY="yes"
</PRE>
</CODE></BLOCKQUOTE>
</P>
</LI>
<LI>
<!--
sendmail!m4-Makros
-->
<!--
sendmail!/etc/sendmail.cf
-->
<!--
/etc/sendmail.cf
-->
Sendmail über m4-Makro-File konfigurieren:
<P>Seit Sendmail Version 8 bietet Sendmail ein Makro-Paket,
bei dem die eigentliche Konfigurationsdatei
<CODE>/etc/sendmail.cf</CODE> nicht <EM>von Hand</EM> erstellt
werden muß, sondern über eine Meta-Datei generiert wird.
Das Verzeichnis der Makros ist je nach Distribution
unterschiedlich, üblich ist z.B. <CODE>/usr/share/sendmail/m4</CODE>
oder bei SuSE auch <CODE>/etc/mail</CODE>.</P>
<P>In der Distribution sollten sich Vorlagen befinden.
Bei SuSE ist eine gut kommentierte
<CODE>/etc/mail/linux.mc</CODE> dabei. Bevor man diese
ändert, sollte man in <CODE>/etc/rc.config</CODE> mit
<CODE>SENDMAIL_TYPE="no"</CODE> das automatische
Generieren abstellen.</P>
<P>Man generiert eine neue Konfigurationsdatei mit:
<BLOCKQUOTE><CODE>
<PRE>
m4 linux.mc > /etc/sendmail.cf
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Weitere Informationen sind in der Datei <CODE>/etc/mail/README</CODE>
zu finden. </P>
</LI>
<LI>
<!--
sendmail!/etc/mail/genericstable
-->
<!--
/etc/mail/genericstable
-->
Sendmail Finetuning:
<P>Bei ausgehenden E-Mails werden abhängig vom lokalen
Benutzernamen die E-Mail-Adressen mit Hilfe der
Datei <CODE>/etc/mail/genericstable</CODE> umgeschrieben:
<BLOCKQUOTE><CODE>
<PRE>
kfr kfr@klaus.franken.de
sandra sandra@klaus.franken.de
sr sandra@klaus.franken.de
</PRE>
</CODE></BLOCKQUOTE>
</P>
</LI>
</UL>
</P>
<P>Nun kann mal folgende Übungen machen:
<UL>
<LI> Schreibe Dir selbst eine Mail auf dem lokalen Rechner.</LI>
<LI> Schreibe anderen Usern eine Mail auf dem lokalen Rechner.</LI>
<LI> Schreibe eine Mail an <CODE>root@server.isdnworkshop.de</CODE>.</LI>
<LI> Schreibe eine Mail an andere Benutzer auf
<CODE>server.isdnworkshop.de</CODE> (ws0, ws1, ...).</LI>
<LI> Prüfe nach, wo Deine Mails sind.</LI>
<LI> Stelle sicher, daß Mails beim Verbindungaufbau
gequeued verschickt werden, lokale Mails aber sofort
zugestellt werden.</LI>
<LI> Prüfe die Mailqueue mit <CODE>mailq</CODE> </LI>
</UL>
</P>
<H2><A NAME="ss10.5">10.5</A> <A HREF="DE-ISDN-HOWTO.html#toc10.5">News </A>
<!--News--> <!--Netzwerk!News--> <!--$NNTPSERVER--> </H2>
<P>Online News kann man schon jetzt sehr einfach lesen. Als News-Server
gibt man den entsprechenden Server des ISPs an.
Dazu muß man für die meisten
News-Reader die Variable <CODE>NNTPSERVER</CODE> setzen:
<BLOCKQUOTE><CODE>
<PRE>
export NNTPSERVER='klaus.franken.de'
</PRE>
</CODE></BLOCKQUOTE>
Dies sollte man systemweit in der <CODE>/etc/profile</CODE>
setzen.</P>
<P>Wünschenswert ist natürlich, News offline zu lesen und entweder
bei Bedarf zu holen bzw. zu verschicken oder dieses
per Cron-Job z.B. jede Nacht durchführen zu lassen.</P>
<P>Die Installation eines eigenen News-Servers ist recht
aufwendig, es bieten sich <EM>CNews</EM> oder <EM>INN</EM> an.
Siehe dazu auch das <EM>
<A HREF="DE-News-HOWTO.html">News HOWTO</A></EM>. </P>
<P>Ein eigener News-Server ist aber eigentlich nur dann notwendig,
wenn man auf diesem selber Newsgruppen einrichten möchte.
Will man das nicht, sind CNews und INN vollkommen überdimensioniert;
deshalb möchte ich hier zwei andere Möglichkeiten vorstellen.</P>
<P>
<!--
News!Leafnode
-->
<!--
News!slrn
-->
<!--
Leafnode
-->
<!--
slrn
-->
Zwei Pakete bieten sich an: <EM>Leafnode</EM> und <EM>slrn</EM>.
Beide sind einfach einzurichten und zu warten und reichen für
ein mittleres Newsaufkommen vollkommen aus.</P>
<P><CODE>slrn</CODE> ist eigentlich ein eigener textorientierter, sehr
flexibler und schneller News-Reader und bietet
ein eigenes Programm <CODE>slrnpull</CODE>, das die News abholt und in
ein eigenes Spool-Verzeichnis stellt, auf welches direkt von
<CODE>slrn</CODE> zugegriffen werden kann.
Es existieren allerdings auch einige Einschränkungen:
es kann kein anderes News-Programm
darauf zugreifen; es kann nicht über Netzwerk auf die News
zugegriffen werden, da kein lokaler News-Server läuft.
Eventuell geht das jedoch über NFS.</P>
<P>Leafnode stellt dagegen einen eigenen News-Server zur
Verfügung, braucht aber insgesamt mehr Ressourcen.
Der Trick bei Leafnode ist der, daß sich der Server
quasi selbst konfiguriert: wird von einem Client auf eine
Gruppe zugegriffen, wird diese automatisch abonniert und ist
beim nächsten Abgleich vorhanden; wird dagegen längere Zeit
nicht mehr auf eine Gruppe zugegriffen, wird diese automatisch
gelöscht. Man kann Leafnode also in einem kleineren Netz mit
mehreren Lesern trotzdem nahezu unbeaufsichtigt laufen lassen.</P>
<P>Beide Programme arbeiten sehr gut in dieser
Dial-On-Demand-Umgebung. Zugriffe auf den News-Server
beim Provider werden nur auf Wunsch, nie aber automatisch
ausgeführt.</P>
<H3>slrn installieren und konfigurieren <!--slrn!Installation--> </H3>
<P>Die getestete Version ist 0.9.5.2 von folgendem Server:
<BLOCKQUOTE><CODE>
<A HREF="ftp://space.mit.edu/pub/davis/slrn">space.mit.edu:/pub/davis/slrn</A></CODE></BLOCKQUOTE>
</P>
<P>Es wird die <CODE>slang</CODE>-Bibliothek ab Version
1.0.3 benötigt. Bei SuSE 5.2 ist noch die Version 0.99.38
dabei. Zu bekommen ist die Bibliothek unter
<BLOCKQUOTE><CODE>
<A HREF="ftp://space.mit.edu/pub/davis/slang">space.mit.edu:/pub/davis/slang</A></CODE></BLOCKQUOTE>
</P>
<P>Beim Kompilieren darf nicht vergessen werden, auch
<CODE>make slrnpull</CODE> einzugeben.
Die Binaries werden z.B. nach <CODE>/usr/local/bin</CODE>
kopiert oder es wird folgendes ausgeführt:
<BLOCKQUOTE><CODE>
<PRE>
install -m 755 -o root -g root src/objs/slrn \
/usr/local/bin
install -m 755 -o root -g root src/objs/slrnpull \
/usr/local/bin
install -d /usr/doc/packages/slrn -m 755 \
-o root -g root
install -m 644 -o root -g root doc/* \
/usr/doc/packages/slrn
install -m 644 -o root -g root COPYRIGHT \
/usr/doc/packages/slrn
install -m 644 -o root -g root COPYING \
/usr/doc/packages/slrn
install -m 644 -o root -g root README \
/usr/doc/packages/slrn
install -m 644 -o root -g root changes.txt \
/usr/doc/packages/slrn
install -m 644 -o root -g root doc/slrn.1 \
/usr/local/man/man1
install -d /usr/doc/packages/slrn/slrnpull \
-m 755 -o root -g root
install -m 644 -o root -g root slrnpull/* \
/usr/doc/packages/slrn/slrnpull
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Dann wird das Spool-Verzeichnis angelegt und die Config-Datei
erstellt:
<BLOCKQUOTE><CODE>
<PRE>
mkdir /var/spool/slrnpull
cd /var/spool/slrnpull
cp /src/slrn/slrnpull/slrnpull.conf .
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<!--
slrn!slrnpull.conf
-->
In <CODE>slrnpull.conf</CODE> könnte z.B. folgendes stehen:
<BLOCKQUOTE><CODE>
<PRE>
default 0 14
de.alt.comm.isdn4linux
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<!--
slrn!~/.slrnrc
-->
Jetzt muß noch der News-Reader auf diesen Spool-Pfad
konfiguriert werden. Dazu fügt man folgendes in
<CODE>~/.slrnrc</CODE> ein bzw. paßt die Datei entsprechend
an:
<BLOCKQUOTE><CODE>
<PRE>
%%% Spool
set spool_inn_root "/var/spool/slrnpull"
set spool_root "/var/spool/slrnpull/news"
set spool_nov_root "/var/spool/slrnpull/news"
set use_slrnpull 1
set read_active 1
set server_object "spool"
hostname "klaus.franken.de"
set username "kfr"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Das Abholen und Verschicken eigener News
und das Löschen alter Artikel
geschieht mit einem einzigen Kommando, das als root ausgeführt
wird:
<BLOCKQUOTE><CODE>
<PRE>
slrnpull -d /var/spool/slrnpull -h news.franken.de
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Beim ersten Mal dauert das natürlich sehr lange und sollte daher
manuell ausgeführt werden. Im Betrieb kann man das über einen
Croneintrag oder in <CODE>/etc/ppp/ip-up</CODE> bei jedem
Verbindungsaufbau durchführen lassen.</P>
<P>Beim manuellen Start gibt <CODE>slrnpull</CODE> Meldungen
auf der Console aus; wird es im Hintergrund
gestartet, loggt es nach <CODE>/var/spool/slrnpull/log</CODE>.
Aber Achtung, diese Datei kann groß werden.</P>
<H3>Leafnode installieren und konfigurieren </H3>
<P>Leafnode (Version 1.4) gibt es auf
<BLOCKQUOTE><CODE>
<A HREF="ftp://ftp.troll.no/pub/freebies/">ftp.troll.no:/pub/freebies/</A></CODE></BLOCKQUOTE>
</P>
<P>Die mitgelieferten Dateien <CODE>README</CODE> und <CODE>INSTALL</CODE>
beschreiben die Installation sehr gut.</P>
<P>
<!--
fetch
-->
<!--
texpire
-->
Im folgenden Beispiel werden die Binaries
<CODE>leafnode</CODE>, <CODE>fetch</CODE> und <CODE>texpire</CODE> nach
<CODE>/usr/local/bin</CODE> installiert; der Makefile muß
dafür angepaßt werden.</P>
<P>Zunächst wird der NNTP-Server <CODE>leafnode</CODE>
in der <CODE>/etc/inetd.conf</CODE> durch folgende Zeile
aktiviert:
<BLOCKQUOTE><CODE>
<PRE>
nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/bin/leafnode
</PRE>
</CODE></BLOCKQUOTE>
Danach muß
<BLOCKQUOTE><CODE>
<PRE>
killall -1 inetd
</PRE>
</CODE></BLOCKQUOTE>
ausgeführt werden.
Als nächstes muß ein User und eine Gruppe <CODE>news</CODE>
angelegt werden, z.B. durch folgenden Eintrag
in <CODE>/etc/passwd</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
news:x:9:13::/var/spool/news:/bin/bash
</PRE>
</CODE></BLOCKQUOTE>
Alle Arbeiten müssen dann als User <CODE>news</CODE>
ausgeführt werden.</P>
<P>Im Verzeichnis <CODE>/usr/lib/leafnode</CODE>
wurde bei der Installation eine Beispiel-Datei angelegt,
die man kopieren und anpassen muß:
<BLOCKQUOTE><CODE>
<PRE>
su - news
cd /usr/lib/leafnode
cp config.example config
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Die Datei ist kommentiert, hier arbeiten folgende
Einträge:
<BLOCKQUOTE><CODE>
<PRE>
server = news.franken.de
expire = 20
maxcount = 1000
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Jetzt muß man dafür sorgen, daß das Programm
<CODE>texpire</CODE> regelmässig aufgerufen wird, ansonsten
werden alte News nicht wieder gelöscht; hier arbeitet
folgender Crontab-Eintrag vom Benutzer root jede Nacht
um 5:42 und löscht die alten Artikel:
<BLOCKQUOTE><CODE>
<PRE>
42 5 * * * su news -c texpire
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Durch das Kommando <CODE>fetch</CODE> oder besser <CODE>fetch -v</CODE>
wird nun der Newsserver initialisiert, aber es sind keine
Gruppen verfügbar.</P>
<P>In dem man jetzt einmalig durch einen News-Reader
auf diesen Newsserver und auf die interessanten
Gruppen zugreift, die natürlich alle mit der
Anzahl 0 angezeigt werden, werden die Gruppen abonniert.
Beim nächsten Aufruf von <CODE>fetch</CODE> werden dann die Artikel
geholt.
Auch hier kann man <CODE>fetch</CODE> via Crontab regelmässig
oder durch einen Eintrag in <CODE>/etc/ppp/ip-up</CODE>
aufrufen.</P>
<P>Ein Problem ist allerdings, daß man keinen direkten Einfluß
darauf hat,
welche Gruppen abonniert werden. Es sei denn, daß man vor dem
Aufruf von <CODE>fetch</CODE> das Verzeichnis
<CODE>/home/opt/spool/news/interesting.groups</CODE>
»aufräumt«.</P>
<P>Die Ausgabe von <CODE>fetch</CODE> sollte beachtet werden; abgelehnte
eigene Postings werden nirgends abgespeichert, sondern
einfach gelöscht.</P>
<H2><A NAME="DE-ISDN-HOWTO-ipfwadm"></A> <A NAME="ss10.6">10.6</A> <A HREF="DE-ISDN-HOWTO.html#toc10.6">Firewall </A>
<!--Firewall--> <!--Netzwerk!Firewall--> <!--IP!Firewall--> </H2>
<P>Firewalls sind ein heikles Thema. Der Autor übernimmt keine Garantie
für die Richtigkeit der hier gemachten Angaben.
Wer ein wirklich sicheres System benötigt, sollte zumindest
das <EM>
<A HREF="DE-Firewall-HOWTO.html">Firewall HOWTO</A></EM> lesen oder einen Experten dafür
beauftragen.
Über Firewalls kann man dicke Bücher schreiben, siehe Abschnitt
<A HREF="DE-ISDN-HOWTO-13.html#DE-ISDN-HOWTO-bookFirewall">Firewall</A>.</P>
<P>Die einfachste aber wirkungsvolle Methode ist die Benutzung
eines Paketfilters. Diese Methode wird direkt vom Linux-Kernel
unterstützt und
über das Kommando <CODE>ipfwadm</CODE> (IP-FireWall ADMinistration)
konfiguriert.</P>
<H3>Was ist ein Paketfilter? </H3>
<P>Jedes IP-Paket, das vom Kernel behandelt wird, wird nach einer
Regelliste untersucht und entweder akzeptiert oder abgelehnt.</P>
<P>Es werden drei verschiedene Listen geführt:
<OL>
<LI>Incoming (Schalter <CODE>-I</CODE>): einkommende Pakete</LI>
<LI>Outgoing (Schalter <CODE>-O</CODE>): ausgehende Pakete</LI>
<LI>Forwarding (Schalter <CODE>-F</CODE>): durchgehende Pakete</LI>
</OL>
</P>
<H3>Wie gibt man eine Firewall-Regel an? <!--ipfwadm!IP Firewall--> </H3>
<P>Der <CODE>ipfwadm</CODE>-Aufruf setzt sich zusammen aus:</P>
<P>
<DL>
<DT><B>Wann?</B><DD>
<P>Incoming (<CODE>-I</CODE>), Outgoing (<CODE>-O</CODE>) oder
Forwarding (<CODE>-F</CODE>)</P>
<DT><B>Wohin?</B><DD>
<P>Man kann neue Regeln an den Anfang der Liste
(<CODE>-i</CODE>) oder an das Ende der Liste (<CODE>-a</CODE>) setzen.
Die Regeln werden immer von vorne nach hinten interpretiert,
bei der ersten passenden Regel wird nicht weitergesucht.</P>
<DT><B>Was tun?</B><DD>
<P>Soll das Paket akzeptiert werden (accept),
oder abgewiesen (deny) werden?</P>
<DT><B>Protokoll?</B><DD>
<P>
Mögliche Protokolle sind tcp, udp, icmp oder alles (all).</P>
<DT><B>Quell-IP?</B><DD>
<P>Angabe des Source-IP-Nummern-Bereiches (<CODE>-S</CODE>), z.B.
<CODE>-S 192.168.42.0/24</CODE></P>
<DT><B>Ziel-IP?</B><DD>
<P>Angabe des Ziel-IP-Nummern Bereiches (<CODE>-D</CODE>)</P>
<DT><B>Port?</B><DD>
<P>Meist wird direkt hinter der Ziel-IP-Nummer noch der
Ziel-Port mit angegeben, dies kann der numerische
Wert oder das Alias, wie in <CODE>/etc/services</CODE>
definiert, sein.</P>
<DT><B>Wo?</B><DD>
<P>Mit dem Schalter <CODE>-W</CODE> kann die Regel auf ein Netzdevice
beschränkt werden.</P>
</DL>
</P>
<P>Weiterhin gibt es folgende wichtige Optionen:
<UL>
<LI> <CODE>-f</CODE>: Setzt das Regelwerk für <CODE>-I</CODE>, <CODE>-O</CODE>
oder <CODE>-F</CODE> zurück.</LI>
<LI> <CODE>-o</CODE>: Beim Zutreffen der Regel wird eine Meldung
via syslog in <CODE>/var/log/messages</CODE> geschrieben.</LI>
<LI> <CODE>-m</CODE>: Masquerading, s.u.</LI>
<LI> <CODE>-A</CODE>: Accounting, s.u.</LI>
<LI> <CODE>-l</CODE> oder <CODE>-lne</CODE>: Listet die Regeln.</LI>
</UL>
</P>
<H3>Was für Regeln brauche ich mindestens? </H3>
<P>Eines der größten Sicherheitslöcher ist das sogenannte
<EM>Spoofing</EM>. Darunter versteht man, daß ein eigentlich
fremder Rechner behauptet, eine IP-Nummer aus dem eigenen,
sicheren Netz zu haben. Daher müssen als erstes Regeln
definiert werden, die verhindern, daß eigene IP-Nummern
aus dem unsicheren Netz hereinkommen können.</P>
<P>Als nächstes sollte man alle Zugriffe von außen verbieten und
nur bei Bedarf die benötigten Dienste wie Mail oder WWW
freischalten.</P>
<H3>Ein einfacher Firewall </H3>
<P>Das lokale Ethernet ist auf 192.168.42.0 konfiguriert.
Wir erwarten IP-Nummern aus dem Bereich
193.110.3.0/24 zugewiesen zu bekommen, wobei der
PtP-Partner nicht aus diesem Bereich ist, da ansonsten
seine Pakete auch abgewiesen werden würden.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# Spoofing verhindern:
/sbin/ipfwadm -I -a deny -o -P all -S 192.168.42.0/24 \
-D 192.168.42.0/24 -W ippp0
/sbin/ipfwadm -I -a deny -o -P all -S 192.168.42.0/24 \
-D 193.110.3.0/24 -W ippp0
/sbin/ipfwadm -I -a deny -o -P all -S 193.110.3.0/24 \
-D 192.168.42.0/24 -W ippp0
/sbin/ipfwadm -I -a deny -o -P all -S 193.110.3.0/24 \
-D 193.110.3.0/24 -W ippp0
# Zugriffe von überall auf den Mail-Server (Port 25)
# erlauben:
/sbin/ipfwadm -I -a accept -P tcp -S 0/0 \
-D 192.168.42.1 25 -W ippp0
# Zugriffe von überall auf den DNS-Server (Port 53)
# erlauben:
/sbin/ipfwadm -I -a accept -P tcp -S 0/0 \
-D 192.168.42.1 53 -W ippp0
# sonst alles verbieten (getrennt für Protokoll tcp
# und udp)
/sbin/ipfwadm -I -a deny -o -P tcp -S 0/0 \
-D 192.168.42.0/24 1:1023 -W ippp0
/sbin/ipfwadm -I -a deny -o -P tcp -S 0/0 \
-D 193.110.3.0/24 1:1023 -W ippp0
/sbin/ipfwadm -I -a deny -o -P udp -S 0/0 \
-D 192.168.42.0/24 1:1023 -W ippp0
/sbin/ipfwadm -I -a deny -o -P udp -S 0/0 \
-D 193.110.3.0/24 1:1023 -W ippp0
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Bei SuSE läßt sich obiges Beispiel auch in der
<CODE>/etc/rc.config</CODE> einstellen:
<BLOCKQUOTE><CODE>
<PRE>
FW_START="yes"
FW_LOCALNETS="192.168.42.0/24 193.110.3.0/24"
FW_MAILSERVER="192.168.42.1"
FW_DNSSERVER="192.168.42.1"
FW_WORLD_DEV="ippp0"
FW_LOG_ACCEPT="no"
FW_LOG_DENY="yes"
FW_TCP_LOCKED_PORTS="1:1023"
FW_UDP_LOCKED_PORTS="1:1023"
</PRE>
</CODE></BLOCKQUOTE>
Siehe auch <CODE>/usr/doc/packages/firewall</CODE>.</P>
<H2><A NAME="DE-ISDN-HOWTO-ipfwadm-m"></A> <A NAME="ss10.7">10.7</A> <A HREF="DE-ISDN-HOWTO.html#toc10.7">Masquerading </A>
<!--Masquerading--> <!--Netzwerk!Masquerading--> <!--IP!Masquerading--> <!--Network Address Translation--> <!--ipfwadm!IP Masquerading--> </H2>
<P>Masquerading, auch <EM>Network Address Translation</EM> genannt,
braucht man dann, wenn man ein internes Netz mit
privaten IP-Nummern hat, vom ISP aber nur eine offizielle IP-Nummer
bekommt und dieses vielleicht sogar dynamisch geschieht. Die
IP-Pakete werden beim Rausschicken auf der Internetleitung
umgeschrieben und mit der eigenen offiziellen IP-Nummer versehen.
Umgekehrt wird eine Tabelle der offenen Verbindungen gehalten,
damit einkommende Pakete wieder dem ursprünglichen Absender
zugestellt werden können.</P>
<P>Hat man sich mit dem Firewall bzw. Paketfilter via <CODE>ipfwadm</CODE>
vertraut gemacht, ist Masquerading fast trivial, denn
es findet an derselben Stelle statt und wird fast genauso
konfiguriert, es wird lediglich der Schalter <CODE>-m</CODE> dazugegeben.</P>
<P>Sollen z.B.
Pakete aus dem internen Netzwerk (192.168.42.0/24), die zum Provider
(Device <CODE>ippp0</CODE>) verschickt werden, mit der jeweils
gültigen IP-Nummer maskiert werden, geht man so vor: Es wird einer
Forwarding-Rule der Schalter <CODE>-m</CODE> mitgegeben:
<BLOCKQUOTE><CODE>
<PRE>
/sbin/ipfwadm -F -a accept -P all -S 192.168.42.0/24 \
-D 0/0 -m -W ippp0
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<!--
FTP!Masquerading
-->
Bei manchen Internet-Diensten wie z.B. FTP wird nicht nur ein Socket
geöffnet, sondern auch ein zweiter für die Datenübertragung,
die der Server zum Client aufbaut. Da der Client aber selbst
aufgrund seiner privaten IP-Nummer nicht erreichbar ist
und der Server die Verbindung
zum falschen Rechner (IZG) aufbaut, klappt diese Methode
ohne weiteres Wissen über die speziellen Eigenheiten des
entsprechenden Protokolls nicht. Abhilfe dafür schaffen
spezielle Routinen, die auch dafür <EM>remaskieren</EM> können.
Diese werden durch Kernel-Module geladen:
<BLOCKQUOTE><CODE>
<PRE>
/sbin/insmod ip_masq_cuseeme
/sbin/insmod ip_masq_ftp
/sbin/insmod ip_masq_irc
/sbin/insmod ip_masq_quake
/sbin/insmod ip_masq_raudio
/sbin/insmod ip_masq_vdolive
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Bei SuSE läßt sich obiges Beispiel auch in der
<CODE>/etc/rc.config</CODE> einstellen:
<BLOCKQUOTE><CODE>
<PRE>
MSQ_START="yes"
MSQ_NETWORKS="192.168.42.0/24"
MSQ_DEV="ippp0"
MSQ_MODULES="ip_masq_cuseeme ip_masq_ftp ip_masq_irc \
ip_masq_quake ip_masq_raudio ip_masq_vdolive"
</PRE>
</CODE></BLOCKQUOTE>
Siehe auch <CODE>/usr/doc/packages/firewall</CODE>.</P>
<H2><A NAME="DE-ISDN-HOWTO-accounting"></A> <A NAME="ss10.8">10.8</A> <A HREF="DE-ISDN-HOWTO.html#toc10.8">Accounting </A>
</H2>
<P>Auf das Accounting wollen wir hier nicht weiter eingehen.
Informationen hierzu finden sich in der Manual Page von
<CODE>ipfwadm</CODE> unter dem Stichwort <CODE>-A</CODE>.</P>
<H2><A NAME="DE-ISDN-HOWTO-samba"></A> <A NAME="ss10.9">10.9</A> <A HREF="DE-ISDN-HOWTO.html#toc10.9">Samba </A>
<!--Samba--> <!--ISDN!Probleme!Samba--> </H2>
<P>Samba ist ein File- und Druckerserver für das unter
Windows benutzte SMB-Protokoll.
Das Thema gehört also gar nicht hier her? Doch, denn Samba
kann in unserem Fall Probleme machen.</P>
<P>Beim SMB-Protokoll wird sehr viel mit Broadcasts gearbeitet;
die Rechner schicken sich ständig, auch wenn eigentlich keine
Aktionen ausgeführt werden, Nachrichten zu.
Der Samba-Server wird meist so ausgeliefert, daß dieser
alle verwendendbaren Netzdevices benutzt und dorthin
Nachrichten schickt, also auch an das <CODE>ippp0</CODE>-Device.
Das führt dann dazu, daß ständig Verbindungen zum Provider
aufgebaut werden.</P>
<P>Lösen kann man das Problem so:
<OL>
<LI> Starte Samba nur, wenn Du es auch brauchst.
<P>
<!--
Samba!/etc/rc.config
-->
Bei SuSE wird Samba schon aktiviert, wenn das Paket
installiert ist.
Setze daher in <CODE>/etc/rc.config</CODE>:
<CODE>START_SMB="no"</CODE>.</P>
</LI>
<LI> Wenn Du es brauchst, sage Samba, welche Devices
benutzt werden dürfen.
<!--
Samba!/etc/smb.conf
-->
<!--
/etc/smb.conf
-->
In der <CODE>/etc/smb.conf</CODE> setze z.B. im
<CODE>global</CODE>-Abschnitt:
<BLOCKQUOTE><CODE>
<PRE>
interfaces = 192.168.2.1/24
</PRE>
</CODE></BLOCKQUOTE>
Mehr Infos gibt es hier:
<BLOCKQUOTE><CODE>
<A HREF="http://www.suse.de/Support/sdb/isdn_samba.html">http://www.suse.de/Support/sdb/isdn_samba.html</A></CODE></BLOCKQUOTE>
</LI>
</OL>
</P>
<HR>
<A HREF="DE-ISDN-HOWTO-11.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-ISDN-HOWTO-9.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-ISDN-HOWTO.html#toc10"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>
|