Es gibt ein ChaosVPN mit OpenVPN, BGP, ... Details unter [http://wiki.diac24.net/ wiki.diac24.net]. Interessenten bei [[Benutzer:toidinamai|toidinamai]] melden! =Mitmachen= ==Vorbereitung== # Gucken, welcher Rechner der eigene Router sein soll # Folgende Programme sollten dort installiert sein: #* [http://openvpn.net/ OpenVPN] zum Tunneln ('''''tun'''tap''-Support im Betriebssystem wird benötigt) #* [http://quagga.net/ Quagga] mit ''zebra'' und ''bgpd'' # Netznummer von [[toidinamai]] (oder [[Benutzer:Astro|Astro]]) holen #* ChaosVPN hat die Nummern ''64..127'' vom DIAC24-Projekt erhalten #* AS-Nummer ist dann ''64600+n'' #* Eigenes Netz ist dann bspw. ''172.22.n.0/24'' (wir wollen sparsam sein) # Ein oder zwei erste Tunnelpartner suchen (z.B. [[toidinamai]] oder in ''irc.spaceboyz.net #spaceboyz'' fragen) ==Tunneln== Wenn zwei Teilnehmer nicht direkt verbunden sind, dann muss ein ''virtuelles Netzwerk'' über einen Tunnel hergestellt werden. Das geht zum Beispiel per ''GRE'' oder ''OpenVPN''. ===OpenVPN=== ====Schlüssel erzeugen==== '''Einer''' erzeugt einen OpenVPN-Schlüssel, für den Tunnel zwischen Nummer 16 und 104 bspw.: openvpn --genkey --secret dc16-dc104.key Dieser muss dem Partner gegeben werden, denn beide verwenden für den Tunnel zwischen ihnen den selben Key. ====Config anlegen==== Das sind nur ungefähre Richtlinien:
mode p2p # Peer-to-peer-Modus remote shnifti.dyndns.org # Peer-Adresse, kann auch (Dyn)DNS sein wenn nicht statisch lport 2399 # Lokaler Port rport 2301 # Remote-Port proto udp # ...über UDP dev-type tun dev tun104 # Interfacename, darf unter Linux beliebig sein tun-ipv6 # Wir wollen IPv6 können comp-lzo # Komprimierung cd /usr/local/etc/openvpn # Hier finden wir den Key secret dc16-dc104.key # Name des Keys user nobody # Unter diesen Rechten soll OpenVPN laufen group nobody # ...dito persist-key # Bei Verbindungsabbruch Key nicht vergessen persist-tun # Bei Verbindungsabbruch Interface dalassen status /var/log/openvpn-status-dc104.log log-append /var/log/openvpn-dc104.log verb 1 # Verbosity ifconfig 172.22.16.1 172.22.104.1 # Adresseinstellung lokal-remote *im* Tunnel====Config des Partners====
mode p2p # P2P Modus lport 2300 # Localer Port rport 2304 # Remote Port - Astros Port dev-type tun dev tun16 tun-ipv6 # IP Version 6 wird verwendet comp-lzo # Komprimierung cd /etc/openvpn # Ort des Keys secret vpn_astro.key # Name des Keys user guest # Rechte für Open Vpn group guest # guest persist-key # merkt sich den key bei Verbindungsabbruch persist-tun # lässt das Interface da bei Verbindungsabbruch status /var/log/openvp0n_status_astro.log log-append /var/log/openvpn_astro.log verb 1 # Verbosity ifconfig 172.22.104.1 172.22.16.1 # Adresseneinstellung local-remote im TunnelJetzt steht die Verbindung. Nun muss noch dafür gesorgt werden, dass alle Netze allen bekannt gemacht werden... ==BGP-Peering== ===zebra konfigurieren=== '''zebra''' bildet die Schnittstelle zwischen den Quagga-Routingdaemonen und dem Betriebssystem. Weiterhin kann man noch die (statische) Adresskonfiguration der Interfaces darüber machen, aber vielleicht will man das lieber von seiner Distribution gemacht haben. ====Eine minimale /usr/local/etc/quagga/zebra.conf====
hostname shniftimachine password superstrenggeheimespasswortDann den Daemon starten: bgpd -df /usr/local/etc/quagga/bgpd.conf Der Daemon öffnet einen Port, über den man ihn konfigurieren kann. Bei Gelegenheit wegfirewallen. Jetzt kann getestet werden:
% telnet localhost 2601 Trying ::1... Connected to localhost. Escape character is '^]'. Hello, this is Quagga (version 0.98.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. User Access Verification Password: ISP> sh ISP> show int ISP> show interface tun99 Interface tun99 is up, line protocol detection is disabled index 12 metric 1 mtu 1500===bgpd konfigurieren=== '''bgpd''' wird uns dienen, mit unseren ''Nachbarn'' Routen auszutauschen. ====Eine minimale /usr/local/etc/quagga/bgpd.conf==== Genau wie zebra:inet6 fe80::250:bfff:fe41:5e57/64 pointopoint :: inet 172.22.16.1/32 pointopoint 172.22.99.1 input packets 371, bytes 59096, dropped 0, multicast packets 0 input errors 0 output packets 448, bytes 38804, multicast packets 4 output errors 0 collisions 0 ISP>
hostname shniftimachine-BGP password superstrenggeheimespasswortDann den Daemon starten: zebra -df /usr/local/etc/quagga/zebra.conf Dieser hat ebenfalls ein Telnet-Interface, diesmal auf Port '''2605'''.
% telnet ::1 2605 Trying ::1... Connected to localhost. Escape character is '^]'. Hello, this is Quagga (version 0.98.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. User Access Verification Password: ISP-bgp>