Dieses Paket erlaubt es, gesicherte Verbindungen zwischen privaten Netzwerken über öffentliche, aber unsichere Netzwerke aufzubauen.
PPTP4.27 bietet eine Möglichkeit, einen privaten Kanal über ein öffentliches Netzwerk aufzubauen. Dabei wird der Tunnelaufbau und -abbau über ein spezielles TCP/IP-Kontrollprotokoll gesteuert. Die eigentlichen Nutzdaten werden in PPP-Paketen verpackt, die über einen GRE-Tunnel4.28 geschickt werden.
In Österreich (und anderen europäischen Ländern) wird PPTP zusätzlich als Protokoll zwischen Router und DSL-Modem verwendet. Im Gegensatz zu PPPoE und PPPoA, die beide noch unterhalb der IP-Ebene arbeiten (Sicherungsschicht, ``Link Layer''), gibt es bei PPTP wie oben beschrieben zwei Datenströme. Somit benötigt man für DSL über PPTP im Gegensatz zu anderen DSL-Zugangsmethoden auch für die für PPTP reservierte Ethernet-Karte eine IP-Adresse. Die ist je nach Provider entweder fest vorgegeben oder muss via DHCPv4 konfiguriert werden. Mehr dazu steht in der Beschreibung der Variable CIRC_x_PPP_PPTP_PEER.
Ist man auf Grund eines DSL-Anschlusses oder einer veralteten VPN-Gegenstelle nicht gezwungen, PPTP zu nutzen, so wird davon abgeraten, PPTP als VPN-Lösung zu verwenden. Die Verschlüsselung in PPTP gilt als geknackt4.29, so dass man über PPTP-Tunnel nicht sicherheitskritische Daten verschicken sollte. Für einen solchen Einsatzweck bilden Tunnel auf der Basis von OpenVPN sicherlich die bessere Wahl.
Generell werden ausgehende PPTP-Verbindungen als PPP-Circuits konfiguriert (siehe Circuits vom Typ ``ppp''), d.h. es gilt:
CIRC_x_TYPE='ppp'
Zusätzlich muss das OPT_PPP_PPTP
aktiviert werden:
Diese Variable aktiviert die Unterstützung für PPTP. Damit auch tatsächlich eine PPTP-Verbindung genutzt werden kann, muss mindestens ein PPP-Circuit den Typ ``pptp'' besitzen, d.h. es muss zusätzlich gelten
CIRC_x_TYPE='ppp' CIRC_x_PPP_TYPE='pptp'
(wobei ``x'' einen gültigen Circuit-Index darstellt).
Standard-Einstellung: OPT_PPP_PPTP='no'
Beispiel: OPT_PPP_PPTP='yes'
Diese Variable definiert, wer die PPP-Datenpakete in GRE-Paketen kapselt und über die Leitung schickt. Dies kann durch ein Benutzerprogramm (pptp) oder durch den Kern erfolgen. Mittels CIRC_x_PPP_PPTP_TYPE wird die Art und Weise der GRE-Paketerzeugung definiert, siehe hierzu Tabelle 4.23.
Momentan ist ``daemon'' die einzige unterstützte Methode (und somit auch Standard, falls der Typ nicht angegeben wird). Eine Erweiterung des Pakets um das Nutzen des entsprechenden pptp-Kernel-Moduls steht noch aus.
Standard-Einstellung: CIRC_x_PPP_PPTP_TYPE='daemon'
Hier wird die IP-Adresse der PPTP-Gegenstelle eingetragen.
Nutzt man PPTP für einen DSL-Internet-Zugang, muss dazu passend die IP-Adresse der fli4l-PPTP-Ethernet-Karte gewählt werden. In Tabelle 4.24 sind bekannte Konfigurationsvarianten aufgelistet.
|
Für den Fall, dass DHCP zur Konfiguration der lokalen Netzwerk-Karte benötigt wird, ist das dhcp_client-Paket zu installieren und ein entsprechender DHCPv4-Circuit für die jeweilige Ethernet-Karte (in der Regel eth1) einzurichten. Ein Beispiel für Inode xDSL findet sich am Ende des Abschnitts.
Der PPTP-Client muss unter Umständen Pakete zwischenpuffern und umordnen. Normalerweise wartet er 0,3 Sekunden auf ein ausstehendes Paket. Mit dieser Variable kann man den Timeout zwischen 0.00 (gar nicht puffern) und 10.00 (max. 10 Sekunden warten) variieren. Die Zeiten müssen immer mit Punkt und zwei Nachkommstellen angegeben werden.
Standard-Einstellung: CIRC_x_PPP_PPTP_REORDER_TIMEOUT='0.30'
Beispiel: CIRC_1_PPP_PPTP_REORDER_TIMEOUT='1.00'
Mit dieser Variable kann konfiguriert werden, wieviel Ausgaben der PPTP-Client produziert. Möglich sind 0 (wenig), 1 (mittel) und 2 (viel).
Standard-Einstellung: CIRC_x_PPP_PPTP_LOGLEVEL='1'
Beispiel: CIRC_1_PPP_PPTP_LOGLEVEL='2'
Der fli4l kann auch konfiguriert werden, eingehende PPTP-Verbindungen anzunehmen, also als ein Server zu fungieren. Solche PPTP-Verbindungen werden ebenfalls als PPP-Circuit konfiguriert (siehe Circuits vom Typ ``ppp''), d.h. es gilt:
CIRC_x_TYPE='ppp'
Zusätzlich muss das OPT_PPP_PPTP_SERVER
aktiviert werden:
Mit dieser Variable wird die Unterstützung für eingehende PPTP-Verbindungen aktiviert. Damit auch tatsächlich PPTP-Verbindungen angenommen werden können, muss mindestens ein PPP-Circuit den Typ ``pptp-server'' besitzen, d.h. es muss zusätzlich gelten
CIRC_x_TYPE='ppp' CIRC_x_PPP_TYPE='pptp-server'
(wobei ``x'' einen gültigen Circuit-Index darstellt).
Standard-Einstellung: OPT_PPP_PPTP_SERVER='no'
Beispiel: OPT_PPP_PPTP_SERVER='yes'
Zu den allgemeinen Circuit-Variablen kommen die folgenden, für PPP-Circuits des Typs ``pptp-server'' spezifischen Variablen hinzu:
Mit dieser Variable kann die IPv4-Adresse festgelegt werden, an welcher der PPTP-Server horcht. Wird diese Variable weggelassen, horcht der PPTP-Server an allen Schnittstellen des Routers.4.30
Mit Hilfe der hier konfigurierten Adresse wird im Falle von PF_INPUT_ACCEPT_DEF='yes' bzw. PF_OUTPUT_ACCEPT_DEF='yes' die Firewall in den INPUT- und OUTPUT-Ketten sowohl für das PPTP-Kontrollprotokoll auf TCP-Port 1723 als auch für die GRE-Pakete geöffnet. Fehlt diese Variable, wird die Firewall so konfiguriert, dass die Kontroll- und Daten-Pakete an jeder Adresse des PPTP-Servers empfangen werden können.
Beispiel: CIRC_1_PPP_PPTP_SERVER_LISTEN='IP_NET_1_ADDR'
Dieses Array enthält eine Liste von IPv4-Netzadressen, für die ein Zugriff auf den PPTP-Server in der Firewall erlaubt wird. Mit Hilfe der hier konfigurierten Adressen wird im Falle von PF_INPUT_ACCEPT_DEF='yes' bzw. PF_OUTPUT_ACCEPT_DEF='yes' die Firewall in den INPUT- und OUTPUT-Ketten sowohl für das PPTP-Kontrollprotokoll auf TCP-Port 1723 als auch für die GRE-Pakete geöffnet. Fehlt dieses Array, wird die Firewall so konfiguriert, dass die Kontroll- und Daten-Pakete von bzw. nach überall akzeptiert werden.
Beispiel:
CIRC_1_PPP_PPTP_SERVER_ALLOW_FROM_N='3' CIRC_1_PPP_PPTP_SERVER_ALLOW_FROM_1='IP_NET_1' CIRC_1_PPP_PPTP_SERVER_ALLOW_FROM_2='10.1.2.0/24' CIRC_1_PPP_PPTP_SERVER_ALLOW_FROM_3='{Labor}'
Diese Variable enthält die Anzahl der Verbindungen, die dieser PPTP-Server maximal gleichzeitig verwalten kann. Maximal werden 255 Tunnel unterstützt. 4.31
Standard-Einstellung: CIRC_x_PPP_PPTP_SERVER_SESSIONS='100'
Beispiel: CIRC_1_PPP_PPTP_SERVER_SESSIONS='200'
Beispiel 1 (Internet-Zugang über PPTP mit fester lokaler Adresse):
IP_NET_N='2' # (mindestens) zwei Netze (LAN + PPTP) IP_NET_1='192.168.6.0/24' # lokales Netz, wie benötigt konfigurieren IP_NET_1_DEV='eth0' # lokales Netz hängt an erster Karte IP_NET_2='10.0.0.140/29' # unsere Adresse im PPTP-Netz IP_NET_2_DEV='eth1' # Internet-Modem hängt an zweiter Karte # OPT_PPP='yes' # PPP-Circuits aktivieren OPT_PPP_PPTP='yes' # PPTP-Client-Circuits aktivieren # CIRC_N='1' CIRC_1_NAME='DSL-mxstream' # beliebig, aber eindeutig CIRC_1_TYPE='ppp' # das ist ein PPP-Circuit CIRC_1_ENABLED='yes' CIRC_1_NETS_IPV4_N='1' CIRC_1_NETS_IPV4_1='0.0.0.0/0' # Default-Route ins Internet CIRC_1_CLASS_N='1' CIRC_1_CLASS_1='internet' # Klasse für Internet-Anbindung CIRC_1_UP='yes' # beim Booten aktivieren CIRC_1_TIMES='Mo-Su:00-24:0.0:Y' CIRC_1_USEPEERDNS='yes' # DNS-Server des Providers nutzen CIRC_1_PPP_TYPE='pptp' # PPTP-Client CIRC_1_PPP_USERID='anonymer' # Benutzername zur Authentifizierung CIRC_1_PPP_PASSWORD='surfer' # Passwort zur Authentifizierung CIRC_1_PPP_PPTP_PEER='10.0.0.138' # Adresse des Internet-Modems im PPTP-Netz # CIRC_CLASS_N='1' CIRC_CLASS_1='internet' # Klasse aller Internet-Circuits
Beispiel 2 (Internet-Zugang über PPTP mit dynamisch zugewiesener lokaler Adresse):
IP_NET_N='2' # (mindestens) zwei Netze (LAN + PPTP) IP_NET_1='192.168.6.0/24' # lokales Netz, wie benötigt konfigurieren IP_NET_1_DEV='eth0' # lokales Netz hängt an erster Karte IP_NET_2='{DHCP-Inode}' # PPTP-Netz, via DHCP konfiguriert IP_NET_2_DEV='eth1' # Internet-Modem hängt an zweiter Karte # OPT_DHCP_CLIENT='yes' # DHCP-Circuits aktivieren OPT_PPP='yes' # PPP-Client-Circuits aktivieren OPT_PPP_PPTP='yes' # PPTP-Client-Circuits aktivieren # CIRC_N='2' # zwei Circuits: DHCP und PPTP # CIRC_1_NAME='DHCP-Inode' # beliebig, aber eindeutig CIRC_1_TYPE='dhcp' # das ist ein DHCP-Circuit CIRC_1_ENABLED='yes' CIRC_1_NETS_IPV4_N='1' # hierüber soll die PPTP-Gegenstelle CIRC_1_NETS_IPV4_1='10.0.0.138/32'# (= Internet-Modem) erreichbar sein CIRC_1_DHCP_DEV='IP_NET_2_DEV' # die PPTP-Ethernet-Karte CIRC_1_UP='yes' # beim Booten aktivieren # CIRC_2_NAME='PPTP-Inode' # beliebig, aber eindeutig CIRC_2_TYPE='ppp' # das ist ein PPP-Circuit CIRC_2_ENABLED='yes' CIRC_2_PPP_TYPE='pptp' # PPTP-Client CIRC_2_PPP_USER='anonymer' # Benutzername zur Authentifizierung CIRC_2_PPP_PASS='surfer' # Passwort zur Authentifizierung CIRC_2_PPP_FILTER='yes' # Datenverkehr-Filter aktivieren CIRC_2_PPP_PPTP_PEER='10.0.0.138' # Adresse des Internet-Modems im PPTP-Netz CIRC_2_NETS_IPV4_N='1' CIRC_2_NETS_IPV4_1='0.0.0.0/0' # Default-Route ins Internet CIRC_2_USEPEERDNS='yes' # DNS-Server des Providers nutzen CIRC_2_HUP_TIMEOUT='600' # nach 10 Minuten Inaktivität auflegen CIRC_2_UP='yes' # beim Booten aktivieren CIRC_2_DEPS='DHCP-Inode' # PPTP benötigt DHCP-Konfiguration
Beispiel 3 (VPN-Client):
IP_NET_N='1' # (mindestens) ein (lokales) Netz IP_NET_1='192.168.6.0/24' # lokales Netz, wie benötigt konfigurieren IP_NET_1_DEV='eth0' # lokales Netz hängt an erster Karte # OPT_PPP='yes' # PPP-Circuits aktivieren OPT_PPP_ETHERNET='yes' # PPPoE-Client-Circuits aktivieren (DSL) OPT_PPP_PPTP='yes' # PPTP-Client-Circuits aktivieren (VPN) # CIRC_N='2' # zwei Circuits: PPPoE (Internet) und PPTP # CIRC_1_NAME='DSL-Telekom' # beliebig, aber eindeutig CIRC_1_TYPE='ppp' # das ist ein PPP-Circuit CIRC_1_ENABLED='yes' CIRC_1_NETS_IPV4_N='1' CIRC_1_NETS_IPV4_1='0.0.0.0/0' # Default-Route ins Internet CIRC_1_CLASS_N='1' CIRC_1_CLASS_1='internet' # Klasse für Internet-Anbindung CIRC_1_UP='yes' # beim Booten aktivieren CIRC_1_TIMES='Mo-Su:00-24:0.0:Y' CIRC_1_USEPEERDNS='yes' # DNS-Server des Providers nutzen CIRC_1_PPP_TYPE='ethernet' # PPPoE-Client CIRC_1_PPP_USERID='anonymer' # Benutzername zur Authentifizierung CIRC_1_PPP_PASSWORD='surfer' # Passwort zur Authentifizierung CIRC_1_PPP_ETHERNET_TYPE='kernel' # Kernel soll PPPoE-Pakete packen CIRC_1_PPP_ETHERNET_DEV='eth1' # DSL-Modem hängt an zweiter Karte # CIRC_2_NAME='VPN-Firma' # beliebig, aber eindeutig CIRC_2_TYPE='ppp' # das ist ein PPP-Circuit CIRC_2_ENABLED='yes' CIRC_2_NETS_IPV4_N='1' CIRC_2_NETS_IPV4_1='10.11.12.0/24'# Firmennetz CIRC_2_DEPS='internet/ipv4' # Verbindung zur Firma benötigt # IPv4-Internet CIRC_2_UP='yes' # beim Booten aktivieren CIRC_2_TIMES='Mo-Su:00-24:0.0:Y' CIRC_2_PPP_TYPE='pptp' # PPTP-Client CIRC_2_PPP_USERID='mustermann' # Benutzername zur Authentifizierung CIRC_2_PPP_PASSWORD='geheim' # Passwort zur Authentifizierung CIRC_2_PPP_PPTP_PEER='192.0.2.1' # Adresse des PPTP-Servers der Firma # CIRC_CLASS_N='1' CIRC_CLASS_1='internet' # Klasse aller Internet-Circuits
Beispiel 4 (VPN-Server):
OPT_PPP='yes' # PPP-Circuits aktivieren OPT_PPP_PPTP_SERVER='yes' # PPTP-Server-Circuits aktivieren OPT_PPP_PEERS='yes' # zum Speichern der Anmeldedaten PPP_PEER_N='1' # 1x Anmeldedaten hinterlegen PPP_PEER_1_USERID='user' # Benutzername vom Client PPP_PEER_1_PASSWORD='pass' # Passwort vom Client PPP_PEER_1_CIRCUITS='pptp-eth1' # Anmeldedaten gelten für PPTP-Circuit # CIRC_N='1' CIRC_1_NAME='pptp-eth1' # beliebig, aber eindeutig CIRC_1_TYPE='ppp' # das ist ein PPP-Circuit CIRC_1_ENABLED='yes' CIRC_1_UP='yes' # beim Booten aktivieren CIRC_1_TIMES='Mo-Su:00-24:0.0:Y' CIRC_1_PROTOCOLS='ipv4' # IPv4 soll über die Verbindung laufen CIRC_1_PPP_TYPE='pptp-server' # PPTP-Server CIRC_1_PPP_PEER_AUTH='yes' # Client-Authentifizierung ist Pflicht CIRC_1_PPP_COMP_MPPE='yes' # benutze Verschlüsselung CIRC_1_PPP_LOCALIP='192.168.222.1' # IP-Adresse des Servers CIRC_1_PPP_REMOTEIP='192.168.222.2' # Start-IP-Adresse der Clients CIRC_1_PPP_PPTP_SERVER_SESSIONS='10' # max. 10 Tunnel