#!/usr/bin/perl -T

use strict;

# 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 - http://www.lihas.de/tunnel?\${CUSTOMER}-\${HOST} | 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 https://install.lihas.de/tunnel/id_rsa_tun     -O ~/.ssh/id_rsa_tun
wget https://install.lihas.de/tunnel/id_rsa_tun.pub -O ~/.ssh/id_rsa_tun.pub
chmod 600 ~/.ssh/id_rsa_tun
cd ~/.ssh
echo $user | ssh -t -i id_rsa_tun tun-adm\@tunnel.lihas.de | sed '1,/^XXX---XXX/s/^/# /' | sh -v
mv ./tunnel.lihas.de-tunnel ~/tunnel.lihas.de-tunnel
head -1 ~/tunnel.lihas.de-tunnel >~/tunnel.lihas.de-tunnel.swap
echo POSSIBLE_SSH_PORT=$(sshd -T |awk -F'[ :]' '/^listenaddress/ { print $NF ;exit }')>> tunnel.lihas.de-tunnel.swap
tail -n +1 ~/tunnel.lihas.de-tunnel >~/tunnel.lihas.de-tunnel.swap
mv ~/tunnel.lihas.de-tunnel.swap ~/tunnel.lihas.de-tunnel
systemctl daemon-reload
echo "Der Tunnel wurde eingerichtet."
echo "Zum Start des Tunnels bitte '~/tunnel.lihas.de-tunnel' eingeben"

EOF
