138 lines
5.3 KiB
Plaintext
138 lines
5.3 KiB
Plaintext
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:
|
|
<pre>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
|
|
</pre>
|
|
|
|
====Config des Partners====
|
|
<pre>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
|
|
</pre>
|
|
|
|
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====
|
|
<pre>hostname shniftimachine
|
|
password superstrenggeheimespasswort</pre>
|
|
|
|
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:
|
|
<pre>% 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 <UP,POINTOPOINT,RUNNING,MULTICAST>
|
|
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> </pre>
|
|
|
|
===bgpd konfigurieren===
|
|
'''bgpd''' wird uns dienen, mit unseren ''Nachbarn'' Routen auszutauschen.
|
|
|
|
====Eine minimale /usr/local/etc/quagga/bgpd.conf====
|
|
Genau wie zebra:
|
|
<pre>hostname shniftimachine-BGP
|
|
password superstrenggeheimespasswort</pre>
|
|
|
|
Dann den Daemon starten:
|
|
zebra -df /usr/local/etc/quagga/zebra.conf
|
|
|
|
Dieser hat ebenfalls ein Telnet-Interface, diesmal auf Port '''2605'''.
|
|
<pre>% 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> </pre>
|