howto: Verbindung via syncppp zu t-online


Kostis Netzwerkberatung
Konstantinos Kostis
Talstr. 25, D-63322 Rödermark
Tel. +49 6074 881056, FAX 881058
kosta@kostis.de, http://www.kostis.de/

Diese Information darf kostenfrei auf eigenes Risko verwendet werden

2000-09-01


Worum geht es?

Dieser Text beschreibt, wie man ein Netzwerk über einen Linux Rechner per ISDN über t-online ans Internet verbindet.

Die Verbindung zu t-online geschieht über syncppp, was bei anderen Providern auch üblich ist. Die Informationen in diesem Text sind daher streckenweise auch zum Anbinden an andere Provider geeignet.

Die Konfiguration dient nicht nur dem blossen Zugang, sondern bietet einige Funktionen einer Firewall, so daß es nicht so einfach für Hacker ist, sich von draussen auf den Maschinen im Netz zu schaffen zu machen.

Dieser Text beschreibt die notwendigen Anpassungen unter Redhat Linux 6.x (x > 0), bei anderen Linux Distributionen können leichte Unterschiede bestehen. Es wird für die Firewall/NAT Einstellungen auch nur ipchains (Kernel 2.2.x) beschrieben und nicht ipfwadm (Kernel 2.0.x).

Vorarbeiten

Bevor wir loslegen können, müssen wir dafür sorgen, daß ein paar Dinge eingerichtet sind bzw. installiert, die wir später benötigen.

Linux Systemdienste für das Netz

Dienst   Beschreibung
i4l   ISDN für Linux
ipchains   IP Masquerading (aka NAT)
named   DNS Namensauflösung
dhcpd   dynamische IP Adressenverteilung und PC Konfiguration
squid   Proxy für http und ftp

i4l

i4l ist bei der Installation der Linux Distribution mitzuinstallieren. Sollte das nicht geschehen sein, so kann man mit Hilfe des Programmes rpm Pakete nachinstallieren.

Wenn ich hier i4l schreibe, meine ich nicht nur i4l selbst, sondern auch die isdn4k-utils. i4l ist Bestandteil des Kernels.

Unter Redhat Linux 6.2 ist keine besondere Aktion notwendig um i4l in Betrieb zu nehmen, also auch kein Neugenerieren des Kernels.

Seit ich Redhat Linux fahre, habe ich keinen Kernel mehr übersetzen müssen und habe es nicht vermisst. Bei SuSE war das noch Gang und Gäbe.

Um festzustellen, on die isdn4k-utils installiert sind, gibt man ein:

rpm --query isdn4k-utils

Auf meinem Redhat Linux 6.2 System liefert das:

isdn4k-utils-3.1-22

Die Version, die bei 6.1 dabei ist, ist ausreichend aktuell und stabil. Jedenfalls hatte ich damit keine Probleme.

Sollten die isdn4k-utils nicht installiert sein, so sind sie mit dem Paket von der CD nachzuinstallieren.

rpm --install isdn4k-utils-3.1-22.rpm

i4l benötigt ein paar kleine Einstellungen. Ich habe ein paar Skripte angepaßt bzw. erstellt, da mir die "Automatiken", die die Linux Distributoren anbieten, nicht behagen. Ich habe das lieber selbst unter Kontrolle. ISDN wird unter Redhat Linux unter /etc/rc.d/init.d/isdn gestartet. Das von mir modifizierte Skript sieht wie folgt aus:

/etc/rc.d/init.d/isdn


#! /bin/bash
#
# isdn Starts isdn. This script starts the isdnlog program
# and brings up isdn interfaces.
#
#
# chkconfig: - 80 20
# description: Starts and stops ISDN services. ISDN is a networking \
# interface, common in Europe.

export PATH=/sbin:/etc:/bin:/usr/bin:/usr/sbin
export I4L=/etc/rc.d/init.d

case "$1" in
start)
        $I4L/i4l_hardware start
        $I4L/i4l start
        ;;
stop)
        $I4L/i4l stop
        $I4L/i4l_hardware stop
        ;;
restart)
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac


Die beiden in diesem Skript verwendeten Skripte sehen so aus:

/etc/rc.d/init.d/i4l_hardware


#!/bin/bash
#
# ISDN-Module laden bzw. entfernen
#
export PATH=/sbin:/etc:/bin:/usr/bin:/usr/sbin

DRIVERID=HiSax

case "$1" in
start)
        echo "Loading ISDN drivers ..."
        #
        # startup for ISDN
        #
        modprobe slhc
        modprobe isdn
        modprobe hisax io=0xd80 protocol=2 type=3 irq=10 id=$DRIVERID
        #
        # settings for isdnlog
        #
        hisaxctrl $DRIVERID 1 0
        isdnlog -S -D -v8 -m0xdf7 -l7 -t2 -w60 -n -M -C /dev/tty9 /dev/isdnctrl
        #
        ;;
stop)
        echo "Unloading ISDN drivers ..."
        
        # stopping isdnlog
        kill -TERM `/bin/cat /var/run/isdnlog.isdnctrl.pid`
        sleep 1
        if [ -e /var/run/isdnlog.isdnctrl.pid ] ; then
                kill -TERM `/bin/cat /var/run/isdnlog.isdnctrl.pid` 2> /dev/null
        fi
        
        # unload modules
        rmmod hisax
        rmmod isdn
        rmmod slhc
        ;;
restart)
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac


/etc/rc.d/init.d/i4l


#! /bin/sh

export PATH=/sbin:/etc:/bin:/usr/bin:/usr/sbin
PIDFILE=/var/run/ipppd.pid

case "$1" in
start)
        for i in /etc/rc.d/init.d/rc.isdn/*
        do
                $i start
        done
        
        # start ipppd
        modprobe ppp
        modprobe ppp_deflate
        ifconfig | grep>/dev/null ippp
        if [ "$?" = "0" ]
        then
                if [ -f $PIDFILE ]
                then
                        echo "ipppd already running? (pid=`cat $PIDFILE`)"
                else
                        ipppd file /etc/ppp/ioptions &
                        echo>$PIDFILE "$!"
                fi
        fi
        ;;
stop)
        # shutdown ipppd
        if [ ! -f $PIDFILE ]
        then
                echo "ipppd not running?"
        else
                kill `cat $PIDFILE`
                if [ -f $PIDFILE ] ; then rm $PIDFILE ; fi
        fi
        rmmod ppp_deflate
        rmmod ppp
        
        for i in /etc/rc.d/init.d/rc.isdn/*
        do
                $i stop
        done
        ;;
restart)
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac


Das Skript im Verzeichnis /etc/rc.d/init.d/rc.isdn sieht wie folgt aus:

/etc/rc.d/init.d/rc.isdn/t-online


#! /bin/sh

PATH=/sbin:/etc:/bin:/usr/bin:/usr/sbin
export PATH

IDEV=ippp0
IPADDR=0.0.0.0
IPBRCA=0.0.0.0
IPMASK=0.0.0.0
MYPHONE=881056
RIPNET=0.0.0.0
RIPMASK=0.0.0.0

case "$1" in
start)
        # Verbindung zu t-online
        isdnctrl addif $IDEV
        isdnctrl secure $IDEV on
        isdnctrl eaz $IDEV $MYPHONE
        isdnctrl addphone $IDEV out 0191011
        isdnctrl l2_prot $IDEV hdlc
        isdnctrl encap $IDEV syncppp
        isdnctrl huptimeout $IDEV 90
        isdnctrl chargehup $IDEV on
        isdnctrl dialmax $IDEV 1
        isdnctrl dialmode $IDEV auto
        isdnctrl pppbind $IDEV
        ifconfig $IDEV $IPADDR pointopoint
        route add -net $RIPNET netmask $RIPMASK $IDEV
        ;;
stop)
        route delete -net $RIPNET netmask $RIPMASK $IDEV
        ifconfig $IDEV down
        isdnctrl delif $IDEV
        ;;
restart)
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac


Damit dynamisches IP und automatische Einwahl sauber funktionieren können, muß der Kernel beim Booten konfiguriert werden. Dazu fügen wir an die Datei /etc/rc.d/rc.local folgendes an:

/etc/rc.d/rc.local

# Enable RST-Provoking Mode
echo>/proc/sys/net/ipv4/ip_dynaddr 7

i4l wäre damit soweit klar. Jetzt muß noch ipppd konfiguriert werden, IP Masquerading (NAT), DNS und der Web-Proxy squid, damit wir die ersten Gehversuche vornehmen können.


ipppd

ipppd muß gestarted werden, um ein automatisches Anwählen zu garantieren, wenn jemand auf das Internet zugreifen will. Hier werden auch die Zugangsdaten konfiguriert wie Username und Kennwort. Eine einfache Prüfung, ob ipppd installiert ist, kann wie folgt durchführen:

which ipppd

Auf meinem Redhat Linux 6.2 System liefert das:

/usr/sbin/ipppd

Wenn das gute Stück nicht installiert ist, muß es nachinstalliert werden. Wo war das noch mal dabei und was benötigt es? { Hinweis auf rpm }

Wir erinnern uns, ipppd wurde wie folgt gestartet: ipppd file /etc/ppp/ioptions

Damit sind die notwendigen Einstellungen dort zu suchen:

/etc/ppp/ioptions


# /etc/ppp/ioptions
#
# i4l syncppp global options for ipppd
#

# device name
/dev/ippp0

# lock device
lock

# dynamic ip
#0.0.0.0:

# use username for authentication
user "aaaaaaaaaaaattttttttttttmmmm"

# accept IP addresses from peer
ipcp-accept-local
ipcp-accept-remote
noipdefault

ipcp-accept-local
ipcp-accept-remote
noipdefault

# try to get IP address from interface
# option specific to ipppd (as opposed to pppd)
#useifip
defaultroute

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

# max receive unit
mru 1524

# max transmit unit
mtu 1500


Der Username setzt sich zusammen aus einer zwölfstelligen Anschlusskennung "aaaaaaaaaaaa", der zwölfstelligen T-Online-Nr. "tttttttttttt" und der vierstelligen (Mit-) Benutzerkennung "mmmm". Dieser Tage fangen die T-Online-Nr. mit "320" an und die Benutzerkennung ist in der Regel "0001".

Wir brauchen den Usernamen gleich noch mal in der Datei /etc/ppp/pap-secrets:

/etc/ppp/pap-secrets


# Secrets for authentication using PAP
#client server secret IP addresses
"aaaaaaaaaaaattttttttttttmmmm" * "Kennwort"


Bitte aus Sicherheitsgründen darauf achten, daß diese Datei dem Benutzer "root" gehört und nur dieser darauf schreibend und lesend zugreifen darf:

-rw------- 1 root root 123 Mar 24 13:57 pap-secrets

Ggf. als "root" wie folgt anpassen:

chown root:root /etc/ppp/pap-secrets
chmod 600 /etc/ppp/pap-secrets

Nach jeder Anwahl ging bei mir die Default-Route verloren, so daß die nächste Anwahl nicht mehr klappte, bis ich manuell wieder eine Default-Route auf ippp0 gesetzt hatte. Daher habe ich ein Skript /etc/ppp/ip-down.local gebaut mit folgendem Inhalt:

/etc/ppp/ip-down.local


#! /bin/sh

/sbin/route | /bin/grep>/dev/null default
if [ ! "$?" = "0" ]
then
        /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 ippp0
fi


Ich gehe davon aus, daß es eine elegantere Lösung dieses Problems gibt, diese ist mir aber nicht bekannt. Auf die Schnelle fiel mir nichts besseres ein und es funktioniert immerhin. ;)

Nun brauchen wir noch IP Masquerading und DNS um die ersten Gehversuche machen zu können.


ipchains

ipchains ermöglicht eine weitgehende Firewall Konfiguration. Uns interessiert erst einmal nur IP Masquerading (aka NAT).

Zu diesem Zweck müssen wir sicherstellen, daß Routing im Kernel aktiviert ist. Diese Einstellung ist bei Redhat Linux 6.2 per linuxconf einzustellen.

Danach fügen wir an die Datei /etc/rc.d/rc.local folgende Zeilen an:

/etc/rc.d/rc.local


# enable IP Masquerading
ipchains -P forward DENY
ipchains -A forward -s 192.168.0.0/24 -j MASQ


Dazu sollte man wissen, daß ich ein RFC-1918 Netzwerk betreibe: 192.168.0.0 mit einer Subnetzmaske 255.255.255.0

Alle Zugriffe dieser Maschinen zum Internet laufen über meinen Linux Rechner. Dieser nimmt die Datenpakete entgegen, tauscht die echte IP Adresse mit seiner eigenen, über den ISP vergebenen IP Adresse aus und umgekehrt. Damit ist es möchlich, daß meine Maschinen Kontakt nach "draussen" aufbauen. Eine Verbindung von draussen auf einen Rechner in meinem Netz geht jedoch nicht, mit einer Ausnahme: dem Linux Recher selbst. Um die Sicherheit dieser Maschine zu gewährleisten, habe ich ein paar Vorkehrungen getroffen. Hier ein paar Tipps, was man da machen kann:

/etc/hosts.allow

#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#

ALL: 192.168.0.0/255.255.255.0

/etc/hosts.deny

#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!

ALL: ALL

portmap ist bei mir deaktiviert, da ich kein NFS verwende und NFS ohnehin nicht "sicher" ist (aus Firewall Admin Sicht). Wenn ich schon Dateifreigaben mache, dann verwende ich SMB (samba), wo man den Zugriff recht fein regeln kann, was hier aber zu weit führen würde.

Grundsätzlich fahre ich auf dem Server selbst so wenig Dienste wie unbedingt notwendig. Meine /etc/inetd.conf ist fast leer:

/etc/inetd.conf


ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  in.ftpd -l -a
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
auth    stream  tcp     wait    root    /usr/sbin/in.identd in.identd -e -o


named

Ohne DNS nix los im Internet, es sei denn man will sich hundertprozentig abhängig machen vom Proxy des ISP. Ich gehe mal nicht davon aus, ich habe jedenfalls bei mir DNS mit eigener Domäne aufgesetzt (kostis.net) und einen Forwarder konfiguriert um den Rest per DNS auflösen zu können und meinen Maschinen im Netz DNS als Dienst bieten zu können. Schließlich möchte ich auch ohne /etc/hosts Dateien oder Äquivalente auf meinen Server per telnet etc. zugreifen können.

Die named Konfigurationsdatei sieht bei mir wie folgt aus:

/etc/named.conf


// /etc/named.conf for DNS/bind 8 generated by netdb.mknamed.conf
//
// DO NOT EDIT THIS FILE AT ANY OTHER LOCATION THAN $NETDB/def/named.conf
//
// Global options for kostis.net and kostis.de
//
// 194.25.2.129 is dns00.btx.dtag.de

options
{
        directory "/var/named";
        forwarders { 194.25.2.129; };
        forward only;
        multiple-cnames yes;
};

//

zone "." { type hint ; file "named.ca"; };

//
// localhost and loopback things - this can be identical everywhere
//

zone "0.0.127.in-addr.arpa" { type master; file "named.local"; };

//
// The rest is generated by netdb.mknamed.conf
//
// This script uses the files at $NETDB/def/named/ to find out which zones
// should be added. Add all zone file headers there.
//
// Use the string KEY instead of a real key since the script netdb.mknamed
// will automagically replace KEY with a current key comprised of current
// date and an index from 01 to 99.
//
// If you have static DNS zones such as kostis.de
// make sure to create a symbolic link (in this example for kostis.de):
//
// ln -s /var/named/db.kostis.de /etc/netdb/def/named/db.kostis.de
//

zone "0.168.192.in-addr.arpa" { type master; file "db.192.168.0"; };
zone "kostis.de"
{
        type master;
        file "db.kostis.de";
};
zone "kostis.net"
{
        type master;
        file "db.kostis.net";
};
// end of config file generated by netdb


Nicht wundern, ich verwende ein selbstgeschriebenes Tool (netdb) zum Erzeugen der named Dateien. Das geht natürlich auch alles manuell und bei Redhat linux 6.2 auch über linuxconf.


/etc/resolv.conf


domain kostis.net
search kostis.net kostis.de
nameserver 192.168.0.254


/var/named/named.ca


; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: May 19, 1997
; related version of root zone: 1997051700
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000     A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000     NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000     A     128.9.0.107
;
; formerly C.PSI.NET
;
.                        3600000     NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000     A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000     NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000     A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000     NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000     A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000     NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000     A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000     NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000     A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000     NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000     A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000     NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000     A     192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
.                        3600000     NS    J.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000     A     192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
.                        3600000     NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000     A     198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
.                        3600000     NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000     A     193.0.14.129
;
; temporarily housed at ISI (IANA)
;
.                        3600000     NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000     A     198.32.64.12
;
; temporarily housed at ISI (IANA)
;
.                        3600000     NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000     A     198.32.65.12
; End of File


/var/named/named.local


@               IN      SOA     localhost.        root.localhost. (
                        2000031901 ; serial
                        28800 ; refresh
                        14400 ; retry
                        3600000 ; expire
                        86400 ; default_ttl
                        )
@               IN      NS      localhost.
1               IN      PTR     localhost.


/var/named/db.kostis.net


@       IN      SOA     live.kostis.net. hostmaster.kostis.net. (
                        2000032401 ; serial
                        86400 ; refresh
                        3600 ; retry
                        2419200 ; expire
                        86400 ; default_ttl
)

                        IN      A       195.185.186.47
                        IN      MX      100     mail.kostis.net.
                        IN      NS      live.kostis.net.
;
; Loopback Interface
;
loopback                IN      A       127.0.0.1
localhost               IN      A       127.0.0.1
lo                      IN      A       127.0.0.1
;
; the rest is generated by netdb
;
mail            IN      A       62.144.115.20
www             IN      A       195.185.186.47
c1003           IN      A       192.168.0.1
rt328           IN      A       192.168.0.2
natlive         IN      A       192.168.0.5
soul            IN      A       192.168.0.6
funk            IN      A       192.168.0.7
soultx          IN      A       192.168.0.8
rock            IN      A       192.168.0.9
dhcp01          IN      A       192.168.0.11
dhcp02          IN      A       192.168.0.12
dhcp03          IN      A       192.168.0.13
dhcp04          IN      A       192.168.0.14
dhcp05          IN      A       192.168.0.15
dhcp06          IN      A       192.168.0.16
dhcp07          IN      A       192.168.0.17
dhcp08          IN      A       192.168.0.18
dhcp09          IN      A       192.168.0.19
dhcp10          IN      A       192.168.0.20
ps65172f        IN      A       192.168.0.253
live            IN      A       192.168.0.254
ftp             IN      CNAME   www
ns              IN      CNAME   live
ldap            IN      CNAME   live


/var/named/db.kostis.de


@       IN      SOA     live.kostis.net. kosta.kostis.net. (
                        2000011202 ; serial
                        86400 ; refresh
                        3600 ; retry
                        2419200 ; expire
                        86400 ; default_ttl
)

;
; this file is maintained manually
;
                IN      A       195.185.186.47
                IN      MX      100     live.kostis.net.
                IN      NS      live.kostis.net.
;
; Loopback Interface
;
loopback        IN      A       127.0.0.1
localhost       IN      A       127.0.0.1
lo              IN      A       127.0.0.1
;
; machine(s) on the Internet
;
www             IN      A       195.185.186.47
ftp             IN      A       195.185.186.47
mail            IN      A       62.144.115.20


/var/named/db.192.168.0


@       IN      SOA     live.kostis.net. hostmaster.kostis.net. (
                        KEY ; Serial
                        10800 ; Refresh 3H
                        3600 ; Retry 1H
                        604800 ; Expire 1W
                        86400 ) ; Minimum 1D

        IN      NS      live.kostis.net.

;
; DO NOT EDIT THIS FILE DIRECTLY. APPLY ALL CHANGES TO NETDB
;

;
; the rest is generated by netdb
;
1       IN      PTR     c1003.kostis.net.
2       IN      PTR     rt328.kostis.net.
5       IN      PTR     natlive.kostis.net.
6       IN      PTR     soul.kostis.net.
7       IN      PTR     funk.kostis.net.
8       IN      PTR     soultx.kostis.net.
9       IN      PTR     rock.kostis.net.
11      IN      PTR     dhcp01.kostis.net.
12      IN      PTR     dhcp02.kostis.net.
13      IN      PTR     dhcp03.kostis.net.
14      IN      PTR     dhcp04.kostis.net.
15      IN      PTR     dhcp05.kostis.net.
16      IN      PTR     dhcp06.kostis.net.
17      IN      PTR     dhcp07.kostis.net.
18      IN      PTR     dhcp08.kostis.net.
19      IN      PTR     dhcp09.kostis.net.
20      IN      PTR     dhcp10.kostis.net.
253     IN      PTR     ps65172f.kostis.net.
254     IN      PTR     live.kostis.net.


dhcpd

Um Maschinen im Netzwerk automatisch mit einer IP Adresse zu versorgen und Dinge wie das Default-Gateway etc. einzustellen, bietet sich DHCP an. dhcpd ist einfach zu konfigurieren. Ein Beispiel für eine solche Konfiguration ist hier:

/etc/dhcpd.conf


subnet 192.168.0.0 netmask 255.255.255.0
{
        default-lease-time 864000 ;
        max-lease-time 2592000 ;
        
        option subnet-mask 255.255.255.0 ;
        option broadcast-address 192.168.0.255 ;
        
        option routers live ;
        
        option domain-name-servers live.kostis.net ;
        option domain-name "kostis.net" ;
        
        option netbios-name-servers live.kostis.net ;
        option netbios-node-type 8 ;
        
        option pop-server live.kostis.net ;
        
        range 192.168.0.11 192.168.0.20 ;
        
        host natlive
        {
                hardware ethernet 00:60:97:82:96:8A ;
                fixed-address natlive.kostis.net ;
        }
        
        host soul
        {
                hardware ethernet 00:80:C8:89:3C:FD ;
                fixed-address soul.kostis.net ;
        }
        
        host ps65172f
        {
                hardware ethernet 00:90:27:65:17:2F ;
                fixed-address ps65172f.kostis.net ;
        }
        
        host soultx
        {
                hardware ethernet 00:20:18:68:14:77 ;
                fixed-address soultx.kostis.net ;
        }
        
        host funk
        {
                hardware ethernet 00:80:C8:89:3C:FE ;
                fixed-address funk.kostis.net ;
        }
        
        host c1003
        {
                hardware ethernet 00:60:70:61:AA:90 ;
                fixed-address c1003.kostis.net ;
        }
        
        host rt328
        {
                hardware ethernet 00:A0:C5:E0:08:1B ;
                fixed-address rt328.kostis.net ;
        }
        
        host live
        {
                hardware ethernet 00:00:1C:D1:D8:AA ;
                fixed-address live.kostis.net ;
        }
}


Nein, diese Datei habe ich nicht manuell erstellt, sondern mit netdb generiert. :)

Nach all diesen Einstellungen und Änderungen müssen wir einmal das tun, was man unter Linux fast nie machen muß: den Rechner neu starten. Eigentlich muß man das gar nicht, man dann das auch "on the fly" aktivieren, man weiß dann allerdings nicht, ob das bei nächsten Neustart alles noch funktioniert.


squid

Zu bearbeiten ist die Datei /etc/squid/squid.conf.

/etc/squid/squid.conf


Im Abschnitt OPTIONS FOR EXTERNAL SUPPORT PROGRAMS ist die eigene email Adresse einzutragen:

ftp_user kosta@kostis.net

Im Abschnitt ACCESS CONTROLS ist eine Zeile einzufügen:

acl lan src 192.168.0.0/255.255.255.0

wobei die Netzwerkadresse meines LANs 192.168.0.0 ist mit der Subnetzmaske 255.255.255.0.

Weiterhin ist hinzuzufügen:

http_access allow lan

Damit dürfen Maschinen im LAN den Proxy verwenden.

Folgende Differenzen ergeben sich also gegenüber der Default-Konfigurationsdatei:

[root@live squid]# diff squid.conf squid.conf.default
544c544
< ftp_user kosta@kostis.net
---
> #ftp_user Squid@
994d993
< acl lan src 192.168.0.0/255.255.255.0
1031d1029
< http_access allow lan