Para quem já utilizou a solução de SSLVPN da Juniper, sabe que é preciso mapear as portas para seu uso (no meu FreeBSD não funciona o modo de tunelamento).
Como vários serviços são acessiveis via portas baixas, incluindo ssh, ftp, telnet, etc, existe a possibilidade de mapear as portas acima de 1024 nas portas baixas através de vários ips de loopback.
O script abaixo gera o arquivo rinetd.conf para as várias interfaces :-)
#! /bin/sh
CONF="/usr/local/etc/rinetd.conf"
PORTS="110:11000 25:2500 443:44300 80:8000 22:2200 23:2300 21:2100 20:2000"
### Commands here ###
TMSTAMP=`date "+%Y%m%d"`
if [ -f $CONF ]; then
mv $CONF $CONF-$TMSTAMP
fi
IPS=`ifconfig lo0 | grep netmask | awk '{print $2}'`
for ip in $IPS
do echo "Configuring: $ip"
for port in $PORTS
do
LOW_PORT=`echo $port | awk -F":" '{print $1}'`
HIGH_PORT=`echo $port | awk -F":" '{print $2}'`
echo -e "$ip $LOW_PORT \t $ip $HIGH_PORT" >> $CONF
done
done