⇤ ← Revision 1 vom 2004-12-16 23:37:26
3807
Kommentar: missing edit-log entry for this revision
|
2925
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
Quellen von sourceforge holen: http://cesnet.dl.sourceforge.net/sourceforge/amvpn/amvpn-0.99.tar.gz
eventuell libssl-dev installieren
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
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
das Modul "tun" unter Network-Devices -> "Universal TUN/TAP-Driver..." ist nötig
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