Gateway

Der Gateway vermittelt den Rechnern im LAN den Zugang zum Internet. Bei den meisten ISPs gehört ein DSL-Router zum Lieferumfang, dieses Dokument beschreibt, wie man vergleichbare Funktionen selbst konfiguriert. Mit Hilfe von dynamischem DNS kann man nach Hause zu telefonieren. Ausserdem kann der Gateway als Endpunkt für ein VPN dienen.

Datensammlung

Installation

apt-get install pppoe pppoeconf ddclient iptables squid squidguard chastity-list openvpn

Wählverbindung mit PPPoE

Steht nur ein DSL-Modem zur Verfügung, muss man die Zugangsdaten bei der Installation der PPPoE-Pakete eingeben. Manuelle Einstellungen kann man in der Konfigurationsdatei /etc/ppp/peers/dsl-provider vornehmen.

Dynamischer DNS

Möchte man Serverdienste im Internet anbieten, kann man seine dynamisch zugewiesene Internet-Adresse bei jeder Einwahl mit einem DNS Namenseintrag versehen. Dazu legt man sich bei einem Anbieter wie DynDNS.org ein Benutzerkonto an und trägt die Zugangsdaten für das Programm ddclient(8) in die Konfigurationsdatei /etc/ddclient.conf ein.

Paketfilter

Das Skript /etc/init.d/firewall generiert die Regeln für den Paketfilter iptables(8). Es muß manuell an die Gegebenheiten des Systems angepaßt werden. Durch folgendes Kommando wird es in den Startprozess eingebunden:

update-rc.d firewall start 40 S . stop 89 0 6 .

Squid Web-Proxy

Squid dient als Proxy für Internet-Protokolle wie HTTP, FTP und Gopher am Port 3128. Zur moralisch fragwürdigen Zeit- und Verhaltenskontrolle dient SquidGuard, vorgefertigte Regeln enthält die Chastity Liste. Damit andere Rechner diesen Dienst nutzen können, muß die Zugriffskontrolle in der Konfigurationsdatei /etc/squid.conf etwas gelockert werden:

# /etc/squid.conf
...
#redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
#redirect_program /usr/bin/squidGuard -c /etc/chastity/squidGuard-chastity.conf
...
acl localnet src 192.168.23.0/24
...
http_access allow localnet
http_access deny all

Die Feineinstellung für SquidGuard können über /etc/squid/squidGuard.conf beziehungsweise /etc/chastity/squidGuard-chastity.conf vorgenommen werden.

OpenVPN

VPNs dienen der verschlüsselten Kopplung von Netzwerken über das Internet. OpenVPN realisiert dies im Gegensatz zu IPSec nicht im Kernel sondern auf Benutzerebene über die TUN/TAP Schnittstellen. Im Folgenden wird lediglich die Punkt-zu-Punkt via TUN auf Internetprotokollebene besprochen, TAP arbeitet auf der MAC-Ebene und eignet sich auch für andere Protokollfamilien.

Virtual Private Network

Für die Konfiguration werden folgende OpenSSL-Zertifikate benötigt:

Wurzelzertifikat der Zertifizierungsstelle
example-ca.crt
Hostzertifikat des Servers
office.crt
office.key
Hostzertifikate der Clients
home.crt
home.key

Die Hostzertifikate kopiert man in das jeweilige Verzeichnis /etc/openvpn/ auf dem entsprechenden Gateway, das Wurzelzertifikat benötigen beide Enden. Für die Schlüsselvereinbarung benötigt man zusätzlich einen Satz Diffie-Hellmann-Parameter:

openssl dhparam -out dh1024.pem 1024

Office

# /etc/openvpn/office.conf

dev tun
ifconfig 10.1.0.1 10.1.0.2
up ./office.up
tls-server

# certificates
dh dh1024.pem
ca my-ca.crt
cert office.crt
key office.key

# logging
verb 3
#!/bin/bash
route add -net 192.168.23.0 netmask 255.255.255.0 gw $5

Home

# /etc/openvpn/home.conf

dev tun
remote office.dyndns.org
ifconfig 10.1.0.2 10.1.0.1
up home.up
tls-client

# certificates
ca my-ca.crt
cert home.crt
key home.key 

# logging
verb 3
#!/bin/bash
route add -net 192.168.24.0 netmask 255.255.255.0 gw $5

Literatur