Unterschiede zwischen den Revisionen 1 und 2
Revision 1 vom 2004-12-16 23:37:26
Größe: 3807
Autor: anonym
Kommentar: missing edit-log entry for this revision
Revision 2 vom 2005-01-04 17:53:02
Größe: 2925
Autor: anonym
Kommentar: faxe-spezifische Dinge entfernt
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 3: Zeile 3:
== warum? ==
 * da k und i durch ein-, bzw. zweifaches Masquerading von der freien Welt getrennt sind (oder werden), brauchen wir ein vpn, um miteinander Kontakt aufzunehmen
 * wenn die 2.6er-Kernel in einen stabilen Bereich gelangt sind, koennen wir auch mal versuchen, einen solchen fuer faxe zu kompilieren, um endlich in den Genuss eines crypto-Dateisystems und eines ipsec-vpn zu kommen
 * bis dahin bietet amritavpn eine einfache Methode, ein vpn ohne Kernel-Module, bzw. -Patches aufzubauen
 * bis vor kurzem lief amritavpn wegen eines Bugs im 2.4.18-Modul "tun" auf faxe nicht - doch nun haben wir 2.4.21 und alles klappt
 * die unten angegebenen Namen sind bei joker.com registriert - da sie nur auf lokale IPs zeigen, kann natuerlich niemand ausser uns damit etwas anfangen ...
== Was ist das? ==
''VPN'' (virtual private network) ist der Oberbegriff aller Implementationen, die verschlüsselten Netzwerk-Verkehr zwischen den beteiligten Peers ermöglichen.
Zeile 10: Zeile 6:
== Adressierung ==
im Folgenden habe ich einfach mal festgelegt, welche IPs (und dazugehoerige Ports auf faxe) wir verwenden
 a:: 192.168.42.5 Port 12001
 i:: 192.168.42.9 Port 12002
 k:: 192.168.42.13 Port 12003
 m:: 192.168.42.17 Port 12004
 faxe:: 192.168.42.1
Amrita ist eine Umsetzung im userspace, also ohne spezielle Kernelmodule (abgesehen vom ''tun''-Modul im Standardkernel). Es verwendet ein Client-Server-Modell, also mindestens einer der Beteiligten muss eine öffentliche IP besitzen (ansonsten ist eine [PortForwardingHowto Port-Weiterleitung] nötig).
Zeile 18: Zeile 8:
die entsprechenden Namen (bei joker.com konfigurierbar)
 * a.vpn.systemausfall.org
 * k.vpn.systemausfall.org
 * m.vpn.systemausfall.org
 * staub.vpn.systemausfall.org
 * faxe.vpn.systemausfall.org
In der Linux-Kernel-Serie 2.6 ist ''ipsec'' inzwischen integriert. Es ist für größere Netze auf jeden Fall vorzuziehen.
Zeile 28: Zeile 13:
 * '''./configure''', '''make''' und '''make install'''
 * wenn du magst, kannst du jetzt deine zukuenftige Schluessellaenge optimieren (2048 statt 1024 Bits):
  * indem du diesen [https://systemausfall.org/senselab/patches/amvpn-keytool-0.99.patch Patch] auf '''/sbin/amvpn-keytool''' anwendest: '''patch /sbin/amvpn-keytool amvpn-keytool-0.99.patch'''
  * es sind nur 2048 statt 4096, da manche ssl-Versionen keine Schluessel dieser Groesse akzeptieren
 * ''amrita'' installieren{{{
./configure
make
make install}}}
 * wenn du magst, kannst du jetzt deine zukünftige Schlüssellänge optimieren (z.B.: 2048 statt 1024 Bits), indem du die '''/sbin/amvpn-keytool''' anpasst
Zeile 35: Zeile 21:
 * server-ip 139.30.131.251 -> die echte faxe-ip
 * tunnel-ip 192.168.42.XX -> deine tunnel-ip (siehe oben)
 * port 120XX -> dein Port auf faxe (siehe oben)
 * server-ip 139.30.131.251 -> die Beispiel-IP eines Servers
 * tunnel-ip 192.168.42.XX -> die tunnel-ip eines Clients
 * port 120XX -> ein Client-Port auf dem Server
Zeile 39: Zeile 25:
 * unter '''run-as-user''' folgende Zeile einfuegen:
`run-as-group amvpn`
 * unter '''run-as-user''' folgende Zeile einfuegen:{{{
run-as-group amvpn}}}
Zeile 42: Zeile 28:
 * in der /etc/passwd die Gruppe fuer den Nutzer '''amvpn''' einstellen und sein Home-Verzeichnis auf "/usr/share/amvpn" setzen  * in der ''/etc/passwd'' die Gruppe fuer den Nutzer '''amvpn''' einstellen und sein Home-Verzeichnis auf ''/usr/share/amvpn'' setzen
Zeile 44: Zeile 30:
== Schluessel erzeugen ==
fuer den Server (also bereits geschehen):
`amvpn-keytool genca`
`amvpn-keytool genkey`
`amvpn-keytool gencert`
== Schlüssel erzeugen ==
für den Server:
{{{amvpn-keytool genca
amvpn-keytool genkey
amvpn-keytool gencert}}}
Zeile 50: Zeile 36:
Client-Schluessel:
 * erstmal erzeugen:
`amvpn-keytool genkey`
Client-Schlüssel:
 * erstmal erzeugen:{{{
amvpn-keytool genkey}}}
Zeile 54: Zeile 40:
  * entweder vom Client aus:
`amvpn-keytool -r xxx@systemausfall.org:/usr/share/amvpn -c gencert`
  * oder von faxe aus:
`amvpn-keytool -r root@CLIENT:/usr/share/amvpn gencert`
  * entweder vom Client aus:{{{
amvpn-keytool -r root@example.net:/usr/share/amvpn -c gencert}}}
  * oder vom Server aus:
{{{amvpn-keytool -r root@CLIENT:/usr/share/amvpn gencert}}}
Zeile 61: Zeile 47:
WICHTIG: nach dem Schluessel-Erzeugen musst du unbedingt auf faxe '''rm /usr/share/amvpn/remote*''' ausfuehren - ansonsten erhaelt der Naechste folgende Meldung:
`Couldn't get handle: Permission denied`
`Killed by signal 2.`
wegen '''(uid != 0) == true'''
WICHTIG: nach dem Schlüssel-Erzeugen musst du unbedingt auf dem Server `rm /usr/share/amvpn/remote*` ausfuehren - ansonsten erhält der Nächste folgende Meldung: {{{
Couldn't get handle: Permission denied
Killed by signal 2.}}}
falls er nicht ''root'' ist
Zeile 66: Zeile 52:
anschliessend auf Client und Server:
`amvpn-keytool secure amvpn`
(das setzt wohl die Zugriffsrechte des Schluessel-Verzeichnisses: auf faxe erstmal ignorieren, bis ihr alle eure Schluessel erstellt habt)
=== Schlüssel fixieren ===
{{{amvpn-keytool secure amvpn}}}
Zeile 70: Zeile 55:
(das setzt wohl die Zugriffsrechte des Schluessel-Verzeichnisses: erst ausführen, wenn alle Clients ihre Schlüssel erzeugt haben)
Zeile 73: Zeile 58:
 1. das Modul "tun" unter '''Network-Devices''' -> "Universal TUN/TAP-Driver..." ist noetig
 1. falls es kein Geraet '''/dev/net/tun''' gibt, dann:
 1. das Modul "tun" unter '''Network-Devices''' -> "Universal TUN/TAP-Driver..." ist nötig
 1. falls es kein Gerät '''/dev/net/tun''' gibt, dann:
Zeile 79: Zeile 64:
`amvpn -d` {{{amvpn -d}}}
Zeile 83: Zeile 68:
 * logs in /var/log/syslog und /var/log/daemon.log  * logs in ''/var/log/syslog'' und ''/var/log/daemon.log''
Zeile 86: Zeile 71:
 * Schluessel erzeugen
 * /usr/share/amvpn muss amvpn gehoeren
 * Schlüssel erzeugen
 * ''/usr/share/amvpn'' muss ''amvpn'' gehören

vpn mit amrita

Was ist das?

VPN (virtual private network) ist der Oberbegriff aller Implementationen, die verschlüsselten Netzwerk-Verkehr zwischen den beteiligten Peers ermöglichen.

Amrita ist eine Umsetzung im userspace, also ohne spezielle Kernelmodule (abgesehen vom tun-Modul im Standardkernel). Es verwendet ein Client-Server-Modell, also mindestens einer der Beteiligten muss eine öffentliche IP besitzen (ansonsten ist eine [PortForwardingHowto Port-Weiterleitung] nötig).

In der Linux-Kernel-Serie 2.6 ist ipsec inzwischen integriert. Es ist für größere Netze auf jeden Fall vorzuziehen.

Installation

Konfiguration

/etc/amvpn.conf anpassen:

  • server-ip 139.30.131.251 -> die Beispiel-IP eines Servers

  • tunnel-ip 192.168.42.XX -> die tunnel-ip eines Clients

  • port 120XX -> ein Client-Port auf dem Server

  • route-ip 192.168.42.0
  • unter run-as-user folgende Zeile einfuegen:

    run-as-group amvpn
  • Gruppe amvpn anlegen (etc/group)

  • in der /etc/passwd die Gruppe fuer den Nutzer amvpn einstellen und sein Home-Verzeichnis auf /usr/share/amvpn setzen

Schlüssel erzeugen

für den Server: {{{amvpn-keytool genca amvpn-keytool genkey amvpn-keytool gencert}}}

Client-Schlüssel:

  • erstmal erzeugen:

    amvpn-keytool genkey
  • dann signieren
    • entweder vom Client aus:

      amvpn-keytool -r root@example.net:/usr/share/amvpn -c gencert
    • oder vom Server aus:

amvpn-keytool -r root@CLIENT:/usr/share/amvpn gencert

nix Passwort!

WICHTIG: nach dem Schlüssel-Erzeugen musst du unbedingt auf dem Server rm /usr/share/amvpn/remote* ausfuehren - ansonsten erhält der Nächste folgende Meldung:

Couldn't get handle: Permission denied
Killed by signal 2.

falls er nicht root ist

Schlüssel fixieren

amvpn-keytool secure amvpn

(das setzt wohl die Zugriffsrechte des Schluessel-Verzeichnisses: erst ausführen, wenn alle Clients ihre Schlüssel erzeugt haben)

tun-Device

  1. das Modul "tun" unter Network-Devices -> "Universal TUN/TAP-Driver..." ist nötig

  2. falls es kein Gerät /dev/net/tun gibt, dann:

cd /dev; MAKEDEV tun

Benutzung

das Start-Skript (/etc/init.d/amvpn) ist nicht brauchbar, also per Hand: amvpn -d

Notizen

  • logs in /var/log/syslog und /var/log/daemon.log

  • tun-Modul installieren
  • tun-Device erstellen
  • Schlüssel erzeugen
  • /usr/share/amvpn muss amvpn gehören


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.