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 Tunnel
Jetzt 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 superstrenggeheimespasswort
Dann 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 
  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> 
===bgpd konfigurieren=== '''bgpd''' wird uns dienen, mit unseren ''Nachbarn'' Routen auszutauschen. ====Eine minimale /usr/local/etc/quagga/bgpd.conf==== Genau wie zebra:
hostname shniftimachine-BGP
password superstrenggeheimespasswort
Dann 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>