====== VPN Dokumentation ====== ===== Grundsätzliches ===== * Jeder Teilnehmer bekommt ein Class B Subnetz aus dem Bereich 10.0.0.0/8 zugewiesen. * Die Netze 10.0.0.0/16 und 10.255.0.0/16 sind reserviert. * Jeder Teilnehmer muss ein gültiges X509 Zertifikat - ausgestellt auf seinen Hostnamen - besitzen (vorzugsweise von [[http://www.cacert.org/|CAcert]], da kostenlos). ===== Aufteilung der jeweiligen Subnetze ===== ==== Netzaufteilung ==== * **10.x.0.0/24**: spezielle individuelle Verwendung (z.B. Management, Transfernetz, ...) * **10.x.1.0 - 10.x.9.0/24**: private Netze (Server, Clients, ...) * **10.x.10.0/24**: DMZ Netz * **10.x.11.0/24**: VPN Netz (Diese Netze sollen nur über VPN erreichbar sein, z.B. für Serverdienste) * **10.x.12.0/25**: VPN dynamisches Client Netz (Adressen aus diesem Netz koennen zb. Notebooks, welche in das Netz einwaehlen, **dynamisch** zugewiesen werden) * **10.x.12.128/25**: VPN festes Client Netz (Adressen aus diesem Netz koennen zb. Notebooks, welche in das Netz einwaehlen, **fest** zugewiesen werden) * **10.x.20.0/24**: WLAN Netz * **10.x.255.0/24**: spezielle individuelle Verwendung (z.B. Management, Transfernetz, ...) ==== Hostaufteilung ==== * **10.x.x.1**: Gateway * **ab 10.x.x.10**: Server * **ab 10.x.x.50**: Clients Für andere Geräte wurden keine Regeln festgelegt. Diesen können beliebige IP Adressen zugewiesen werden. ===== OpenVPN Konfiguration ===== ==== port ==== === Definition === Der auf beiden Seiten des OpenVPN Tunnel zu verwendende OpenVPN Port setzt sich wie folgt zusammen: 88 + kleineresOktett + größeresOktett Folgendes gilt: * Oktett = Dezimalwert des zweiten Oktetts des Teilnehmers (Beispiel: Netz des Teilnehmers: 10.21.0.0/16 -> Oktett: 21) * Sollte der Port den Bereich gültiger Ports übersteigen (> 65536), dann sind am Anfang so lange '8' wegzulassen, bis der Port in einen gültigen Bereich gelangt. * Für zwei dreistellige Oktette wird (wenn es jemals so weit kommt) eine Sonderregelung erlassen. === Beispiel === * Netz 1: 10.21.0.0/16 * Netz 2: 10.9.0.0/16 Das zweite Oktett von Netz 2 ('9') ist kleiner als das zweite Oktett von Netz 1 ('21'). Da das Ergebnis größer 65536 wäre, wird am Anfang eine 8 weggelassen. Die Formel zum Bau des Ports lautet: 8 + 9 +21. Der zu verwendende Port lautet also: 8921 === Ausnahme === Der Port 8800 ist fuer interne VPN Tunnel, sozusagen fuer die Verwendung des Server Client Prinzips in Verbindung mit dem dafuer reservierten Netz 10.x.12.0/24, reserviert. ==== ifconfig ==== === Definition === Die ifconfig Option definiert die Point-to-Point IP Adressen für das virtuelle tun Interface. Für diese Adressen wird das 10.0.0.0/16 Netz verwendet. Die IP Adressen bauen sich wie folgt auf: 10.0. . Es muss immer zuerst die lokale IP Adresse und anschließend die IP Adresse des Partners angegeben werden. Für die IP Adresse des Partners muss die Betrachtungsweise natürlich umgekehrt werden (oder besser gesagt: es muss aus der Richtung des Partners betrachtet werden). === Beispiel === * Netz 1: 10.21.0.0/16 * Netz 2: 10.9.0.0/16 Der Konfigurationseintrag sollte in Netz 1 wie folgt aussehen: ifconfig 10.0.21.9 10.0.9.21 Der Konfigurationseintrag sollte in Netz 2 wie folgt aussehen: ifconfig 10.0.9.21 10.0.21.9 ==== tls-server/tls-client ==== === Definition === Eine der beiden Seiten muss der tls-server sein, die andere Seite der tls-client. Es ist völlig irrelevant, welche Seite welche Rolle übernimmt. Das in tls-auth benannte keyfile sollte für jeden Tunnel einzigartig sein und vom tls-server erzeugt werden (mittels openvpn --genkey). ===== Vergebene IP Subnetze ===== ^Subnetz^Vergeben an^externe Hostadresse^DNS Domain(s)^Nameserver^Admin E-Mail^Kommentare| |10.1.0.0/16|Markus Schuster|g84.dyndns.org|cash-zone.local\\ 1.10.in-addr.arpa|10.1.1.1|markus@cash-zone.local| | |10.2.0.0/16|Florian Zavatzki|sol.homelinux.org|blue-network.local\\ 2.10.in-addr.arpa|10.2.1.11|bc@blue-network.local| | |10.3.0.0/16|Roland Weber|94060rj-weber2006.dyndns.org|rj-weber.local\\ 0.3.10.in-addr.arpa\\ 1.3.10.in-addr.arpa\\ 10.3.10.in-addr.arpa\\ 11.3.10.in-addr.arpa\\ 20.3.10.in-addr.arpa\\ 25.3.10.in-addr.arpa|10.3.1.1|administrator@rj-weber.de| | |10.4.0.0/16|Andreas Schiermeier|vpn-itpa-as.procolli.de|schiermi.local (18.06.07)\\ pixelinfarkt.de (18.06.07)\\ 4.10.in-addr.arpa {\\ 0.4.10.in-addr.arpa (18.06.07)\\ 1.4.10.in-addr.arpa (18.06.07)\\ 10.4.10.in-addr.arpa (18.06.07)\\ }|10.4.1.2|schiermi@schiermi.local|schneller als Roland ;)| |10.255.0.0/16|Global|hell.local| | |belzebub@hell.local|Endpoint WAN Tunnel - Testphase| ==== kritische IP-Adressen ==== * **10.6.6.6**: virtuelle PtP-IP vieler Mobiltelefone bei der GPRS/UMTS-Einwahl * **10.64.64.64**: virtuelle Fallback PtP-IP des PPPD wenn im PPP-Dialog keine andere mitgeteilt wurde (z.B. UMTS-Karten) ===== Beispiel OpenVPN Konfiguration ===== Diese Beispielkonfiguration verbindet die beiden Netze 10.1.0.0/16 und 10.2.0.0/16. **WICHTIG:** //server.dyndns.org-tlsauth.key// und //client.dyndns.org-tlsauth.key// besitzen den gleichen Inhalt und sind nur zur leichteren lokalen Handhabung unterschiedlich benannt. ==== tls-server (10.1.0.0/16) ==== remote client.dyndns.org proto udp dev tun2 persist-tun persist-key ifconfig 10.0.1.2 10.0.2.1 port 8812 comp-lzo float keepalive 10 60 daemon management localhost 8812 keysize 256 tls-server tls-auth client.dyndns.org-tlsauth.key tls-remote client.dyndns.org ca x509.crt/cacert.crt cert x509.crt/server.dyndns.org.crt key x509.key/server.dyndns.org.key route 10.2.0.0 255.255.0.0 user nobody group nogroup ==== tls-client (10.2.0.0/16) ==== remote server.dyndns.org proto udp dev tun1 persist-tun persist-key ifconfig 10.0.2.1 10.0.1.2 port 8812 comp-lzo float keepalive 10 60 daemon management localhost 8812 keysize 256 tls-client tls-auth server.dyndns.org-tlsauth.key tls-remote server.dyndns.org ca x509.crt/cacert.crt cert x509.crt/client.dyndns.org.crt key x509.key/client.dyndns.org.key route 10.1.0.0 255.255.0.0 user nobody group nogroup