Dieses Wiki ist ein Archiv bis 2023. Das aktuelle Wiki findet sich unter https://wiki.hamburg.ccc.de/

ChaosVPN:DebianHowto

From CCCHHWiki
Revision as of 22:05, 19 July 2006 by Haegar (talk | contribs) (text ins wiki uebernommen)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

mir war das ganze angedachte setup mit openvpn zu aufwendig, bis da was verwendbares fertig ist wuerde es noch lange dauern, und die skalierungsprobleme sind ja schon absehbar.

ich habe mich daher heute abend mal hingesetzt, und eine schnell funktionierende mini-loesung mit tinc gebaut.

die angedachten groesseren sachen mit ip-uebermittlung und datenbank lassen sich da spaeter ohne grosse planungs-aenderungen integrieren


folgende system-vorraussetzungen fuer clients gibt es bis jetzt:

  • linux only first
    • tinc gibts auch fuer praktisch alle unix-varianten und windows, aber mein kleines quickhack-config-perl-script kann bis jetzt nur mit linux umgehen
  • perl mit LWP und https-Support
  • funktionierenden dyndns hostname, der immer die aktuelle router-ip enthaellt, oder mit statischer ip


QUICK HOWTO FUER DEBIAN USER

0. noetige perl module und helper-programme installieren

# apt-get install libwww-perl
# apt-get install libcrypt-ssleay-perl

geht natuerlich auch von hand oder per CPAN, aber die beiden obigen module brauchen noch selbst weiter diverse andere

# apt-get install iproute

1. tinc instalieren

# apt-get install tinc

entweder das packet aus sid, oder meinen backport von debian.sdinet.de

es sollte mindestens version 1.0.2 sein

oder halt von http://tinc.nl.linux.org/ downloaden und selber compilieren - dort solltet ihr beim ./configure nur mindestens den parameter --sysconfdir=/etc mit angeben, und im script (unten) muss der pfad zum binary gecheckt werden

wenn bei der tinc-installation folgende Fehlermeldung kommt:

> ./MAKEDEV: don't know how to make device "tun"

dann das device von hand anlegen

# mkdir -p /dev/net
# mknod /dev/net/tun c 10 200
# chown root:root /dev/net/tun
# chmod 600 /dev/net/tun


2. config verzeichnis anlegen

# mkdir -p /etc/tinc/chaos

3. keys erzeugen

# tincd -n chaos --generate-keys=2048

und ein paar mal return druecken

4. netz-nick ausdenken

dies ist der name des netz-teils/gateways, nicht unbedingt der name des users - es kann ja mehr gateways pro user geben

immer dort einsetzen wo im foldenden text <nodename> steht

5. gateway-rechner mit dyndns-hostname versehen

oder halt bei statischer ip den festen hostname/die feste ip verwenden

immer dort einsetzen wo im foldenden text <clienthost> steht

6. infos an haegar@ccc.de mailen

ich brauche folgende infos:

nodename=<nodename> gatewayhost=<clienthost> network=<ipv4 subnetzrange im vpn> network6=<ipv6 subnetzrange im vpn> kann auch mehr als eins sein, ipv4 und/oder ipv6

dieses subnetz muss in unserem vpn eindeutig sein, schlagt einfach euer wunsch-netz/das bisher zuhause verwendete netz vor, und mit glueck ists noch frei

*.23.*, *.42.*, *.0.* und *.1.* sind schlechte kanditaten ;)

bisher gibts noch keine abfragbare liste der schon zugeordneten subnetze

owner= admin des vpn-teils, mit email-adresse key rsa-public-key - inhalt von /etc/tinc/chaos/rsa_key.pub

optional sind noch folgende angaben moeglich:

use-tcp-only=1 ich kann kein udp machen, beschraenken wir uns auf das fuer tunnel suboptimale tcp hidden=1 zu mir koennen keine verbindungen aufgemacht werden, ich kann nur rausconnecten (z.b. hinter nat) silent=1 ich kann nicht rausconnecten, aber ihr koennt zu mir connections aufbauen

7. auf reaktion warten

8. goto 6 unless $success

9. chaos-client downloaden:

# cd /usr/local/bin
# wget -nd https://www.vpn.hamburg.ccc.de/chaosvpn-client.pl

10. config-template downloaden:

# cd /etc/tinc
# wget -nd https://www.vpn.hamburg.ccc.de/chaosvpn.conf

11. configfile anpassen

im oberen teil befinden sich die configurations-variablen

12. script in /etc/ppp/ip-up o.ae. integrieren, oder von zeit-zu-zeit per cron restarten

und mit glueck funktioniert das dann sogar schon ;)


todo: massig ;) vor allem testen, anpassen und anleitung schreiben mit anderen linux-varianten, und vielleicht sogar mit *bsd