|
Linux VPN mit "ppp over ssh"Es gibt viele verschiedene Lösungen um ein VPN unter Linux aufzubauen. Selbst mit der Methode eine ppp-Verbindung über eine ssh-Verbindung aufzubauen gibt es mehrere Vorgehensweisen. Ein Ansatz hat bei mir innerhalb kürzester Zeit zum Erfol geführt, weshalb ich ihn hier festhalten möchte. Prinzip:?? Eine ssh-Verbindung starten und an beide Enden (Terminals) einen ppd anhängen?? Als erstes brauchen wir auf dem VPN-Gateway einen Benutzer für unser VPN. Diesen nennen wir "vpn". Eintrag in /etc/passwd: vpn:*:105:100::/home/vpn:/bin/bash durch den "*" ist es nicht möglich, sich per Passwort
als vpn-User am VPN-Gateway anzumelden. folgende Skript erledigt die Verbindung auf dem VPN-Gateway /home/vpn/vpnd: -------------------------------------------------------------------------------- #!/bin/bash # /home/vpn/vpnd LOCAL_VPN_IP=10.1.2.11 REMOTE_VPN_IP=$1 sudo /usr/sbin/pppd nodetach notty noauth ${LOCAL_VPN_IP}:${REMOTE_VPN_IP} -------------------------------------------------------------------------------- "LOCAL_VPN_IP" ist die IP-Adresse des Tunnels auf der Server-Seite
(eine freie IP-Adresse aus dem lokalen Netz des Servers) Das ganze ausführbar machen: # chmod 755 /home/vpn/vpnd Das vpnd-Skript wird von diesem Skript auf dem VPN-Client aus gestartet /etc/ppp/vpn-up: -------------------------------------------------------------------------------- #!/bin/bash # /etc/ppp/vpn-up VPN_GW=$1 LOCAL_VPN_IP=192.168.1.11 /usr/sbin/pppd updetach noauth passive \ pty "/usr/bin/ssh ${VPN_GW} -2 -l vpn -o Batchmode=yes \ /home/vpn/vpnd $LOCAL_VPN_IP" && echo "connected" \ || echo "connection failed" -------------------------------------------------------------------------------- "pty" gibt an, das als Terminal für den pppd das nachfolgende
Skript genommen werden soll (???). Das ganze ausführbar machen: # chmod 755 /home/vpn/vpnd Als nächstes braucht man einen Key um sich auf dem VPN-Gateway anmelden zu können. Diesen ezeugt man durch den Aufruf: # ssh-keygen -d und kopiert ihn z.B. mit scp auf den VPN-Server: # scp ~/.ssh/id_dsa.pub root@vpnserver.myip.irgendwas:/home/vpn/.ssh/temp Auf dem VPN-Gateway trägt man diesen Schlüssel in /home/vpn/.ssh/authorized-keys2 ein: # cat /home/vpn/.ssh/temp >> /home/vpn/.ssh/authorized-keys2 # rm /home/vpn/.ssh/temp Als nächstes am besten mal eine ssh-Verbindung aufbeuen, um den Key zu akzeptieren: # ssh -l vpn vpngateway.myip.irgendwas Jetzt kann das VPN gestartet werden: # /etc/ppp/vpn-up vpngateway.myip.irgendwas Das wars! Was sonst noch getan werden muß:
Falls es nicht klappt:Als Fehlerquelle Nr. 1 hat sich bei mir der pppd, genauer die options-Datei
des pppd /etc/ppp/options herausgestellt. Folgendes darf dort (am
besten weder auf dem Server noch auf dem Client) auf keinen Fall auftauchen:
noipdefault, ipcp-accept-remote, ipcp-accept-local. |
|||||||||||||||||||||
efixes · webmaster[at]efixes.de · 07. August 2002 |