6.6. Konfigurieren von Clients für CIPE

Nachdem Sie erfolgreich den CIPE-Server konfiguriert und dessen Funktionalität getestet haben, können Sie nun die Verbindung auf dem Client-Rechner einsetzen.

Der CIPE-Client sollte die CIPE-Verbindung automatisch aktivieren und deaktivieren können. Aus diesem Grund enthält CIPE integrierte Mechanismen, um Einstellungen an individuelle Benutzer anpassen zu können. So kann sich zum Beispiel ein Remote-Mitarbeiter durch folgende Eingabe mit dem CIPE-Gerät im LAN verbinden:

/sbin/ifup cipcb0

Das Gerät sollte automatisch angezeigt werden; Firewall-Regeln und Routing-Informationen sollten zusammen mit der Verbindung konfiguriert werden. Der Remote-Mitarbeiter sollte in der Lage sein, die Verbindung mit folgender Eingabe zu beenden:

/sbin/ifdown cipcb0

Das Konfigurieren von Clients erfordert das Erstellen von lokalen Skripten, die ausgeführt werden, nachdem das Gerät geladen wurde. Die Gerätekonfiguration kann lokal über eine vom Benutzer erstellte Datei mit dem Namen /etc/sysconfig/network-scripts/ifcfg-cipcb0 erfolgen. Diese Datei enthält Teile von Parametern, die unter anderem festlegen, ob die CIPE-Verbindung zum Bootzeitpunkt erfolgt oder wie das CIPE-Gerät heißt. Es folgt die Datei ifcfg-cipcb0 für einen Remote-Client, der sich mit dem CIPE-Server verbindet.

DEVICE=cipcb0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

# This is the device for which we add a host route to our CIPE peer through.
# You may hard code this, but if left blank, we will try to guess from
# the routing table in the /etc/cipe/ip-up.local file.
PEERROUTEDEV=

# We need to use internal DNS when connected via cipe. 
DNS=192.168.1.254

Das CIPE-Gerät trägt den Namen cipcb0. Das CIPE-Gerät wird zum Bootzeitpunkt geladen (konfiguriert über das Feld ONBOOT) und verwendet kein Bootprotokoll (z.B. DHCP) zum Empfang einer IP-Adresse für das Gerät. Das Feld PEERROUTEDEV legt den Gerätenamen für den CIPE-Server fest, der sich mit dem Client verbindet. Wird kein Gerät in diesem Feld angegeben, wird nach Laden des Gerätes eins festgelegt.

Befinden sich Ihre internen Netzwerke hinter einer Firewall, müssen Sie Regeln aufstellen, die der CIPE-Schnittstelle auf dem Client-Rechner ermöglichen,UDP-Pakete zu senden und zu empfangen. Unter Kapitel 7 finden Sie weitere Informationen zum Konfigurieren einer Firewall. In dieser Beispielkonfiguration werden iptables-Regeln implementiert.

AnmerkungHinweis
 

Clients sollten so konfiguriert werden, dass alle lokalen Parameter in einer vom Benutzer erstellen Datei mit dem Namen /etc/cipe/ip-up.local gespeichert werden. Die lokalen Parameter sollten mittels /etc/cipe/ip-down.local umgekehrt werden, wenn die CIPE-Sitzung beendet wird.

Firewalls sollten auf Client-Maschinen so konfiguriert werden, dass CIPE UDP-Pakete akzeptiert werden. Regeln sind von Fall zu Fall verschieden, aber grundsätzlich ist die Akzeptanz von UDP-Paketen für die CIPE-Verbindung erforderlich. Die folgenden iptables-Regeln ermöglichen CIPE-UDP-Übertragungen auf der entfernen Client-Maschine, die sich mit dem LAN verbindet; die letzte Regel fügt IP-Masquerading hinzu, um dem Remote-Client die Kommunikation mit dem LAN und dem Internet zu ermöglichen:

/sbin/modprobe iptables
/sbin/service iptables stop
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT
/sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.1
/sbin/iptables -A INPUT -j ACCEPT -i cipcb0
/sbin/iptables -A INPUT -j ACCEPT -i lo
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

Sie müssen desweiteren Routing-Regeln zur Client-Maschine hinzufügen, um auf die Knoten hinter der CIPE-Verbindung wie in einem lokalen Netzwerk zugreifen zu können. Dies erreichen Sie mit dem route-Befehl. In unserem Beispiel muss die folgende Netzwerk-Route zur Client-Workstation hinzugefügt werden:

route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.2

Folgendes zeigt das endgültige /etc/cipe/ip-up.local-Skript für die Client-Workstation:

#!/bin/bash -v
if [ -f /etc/sysconfig/network-scripts/ifcfg-$1 ] ; then
        . /etc/sysconfig/network-scripts/ifcfg-$1
else
        cat <<EOT | logger
Cannot find config file ifcfg-$1. Exiting.
EOF
        exit 1
fi

if [ -n ${PEERROUTEDEV} ]; then
        cat <<EOT | logger
Cannot find a default route to send cipe packets through!
Punting and hoping for the best.
EOT
        # Use routing table to determine peer gateway
        export PEERROUTEDEV=`/sbin/route -n | grep ^0.0.0.0 | head -n 1 \
           | awk '{ print $NF }'`

fi

####################################################
# Add The routes for the remote local area network #
####################################################

route add -host 10.0.1.2 dev $PEERROUTEDEV
route add -net 192.168.1.0 netmask 255.255.255.0 dev $1

####################################################
# IP TABLES Rules to restrict traffic              #
####################################################

/sbin/modprobe iptables
/sbin/service iptables stop
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT
/sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.2
/sbin/iptables -A INPUT -j ACCEPT -i $1
/sbin/iptables -A INPUT -j ACCEPT -i lo
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE