Ab 4.3 bietet OpenSSH das Feature die gesamte Datenkommunikation im
Sinne eines VPN zu verschluesseln. Bisher konnte man mit OpenSSH immer
nur einzelne Ports tunneln.
Meine Versuchsumgebung:
Internet <----> OpenBSD_3.9 <---- Ubuntu_6.10
Folgende Schritte sind auszufuehren:
1. Server: Auf dem OpenBSD-Server, der auch als FW fungiert, ist in der
sshd_config die Option 'PermitTunnel yes' anzuschalten. Ferner sind
root-Logins zu erlauben.
2. Server/Client: Auf dem Ubuntu-Client ist fuer den User root mittels
ssh-keygen ein Schluesselpaar zu erzeugen und der oeffentliche Teil ist
auf den Server zu uebertragen.
3. Server: Der oeffentliche Teil des Schluessels, also das File
authorized_keys, ist zu ergaenzen:
---
tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... root@clientpc
---
Damit wird auf dem Server das 'tun1'-Interface fuer den Tunnel
definiert.
4. Server: In das File hostname.tun1 ist folgendes zu schreiben:
---
inet 192.168.5.1 255.255.255.252 192.168.5.2
---
5. Client: Das File /root/.ssh/config ist zu erzeugen mit folgendem
Inhalt:
---
Host sshgateway
Tunnel yes
TunnelDevice 0:any
PermitLocalCommand yes
---
6. Client: Das File /etc/hosts ist zu ergaenzen:
---
1.2.3.4 sshgateway
---
Um nun den Tunnel zu starten gibt man einfach auf dem Client als root
folgenden Befehl ab:
% ssh -fw 0:1 sshgateway true
Damit steht der Tunnel und es muss clientseitig lediglich noch das
Client-Tunnel-Interface konfiguriert und die Defaultroute modifiziert
werden:
% ifconfig tun0 192.168.5.2 dstaddr 192.168.5.1 netmask 255.255.255.252
% route del default
% route add default gw 192.168.5.1
Viel Glueck!
PS.: Weitere Infos hier: /usr/src/usr.bin/ssh/README.tun
--
I.S.
|