#!/usr/bin/perl -T use strict; my $url = "http://{my.websrv}/tunnel"; my $urlkey = "http://{my.websrv}/tun/id_rsa_tun"; my $tunhub = "{my.tunhub}"; # der Username darf 32 Zeichen lang werden # da noch ein Prefix hinzukommt, sind hier 25 Zeichen erlaubt my ( $user ) = $ENV{QUERY_STRING} =~ /^([-a-z0-9.]{1,25})$/; if ( ! $user ) { print << "EOF"; Content-type: text/plain echo "FEHLER!" echo "" echo "Der korrekte Aufruf lautet:" echo " wget -O - $url?KENNUNG | sh " echo "" echo "Dabei muss KENNUNG aus 1 bis 25 Zeichen bestehen." echo "" echo "Zulaessig sind Kleinbuchstaben, Ziffern sowie die Zeichen '.' und '-'." echo "" EOF exit 1; } print << "EOF"; Content-type: text/plain wget $urlkey -O ~/.ssh/id_rsa_tun wget $urlkey.pub -O ~/.ssh/id_rsa_tun.pub chmod 600 ~/.ssh/id_rsa_tun cd ~/.ssh echo $user | ssh -t -i id_rsa_tun -o AddressFamily=inet tun-adm\@$tunhub | sed '1,/^XXX---XXX/s/^/# /' | sh -v mv ./remote-ssh-tunnel ~/remote-ssh-tunnel echo "Der Tunnel wurde eingerichtet." echo "Zum Start des Tunnels bitte '~/remote-ssh-tunnel' eingeben" EOF