Script creador de sitios para openvpn en centos

Crear un file con permisos de ejecución la llamado por ejemplo, creasitios.sh, ubicarlos en /etc/openvpn/easy-rsa/2.0/ y llamarlo de la siguiente manera:

./creasitios.sh  sucursal #tunel que puede ser 0,1,2 etc

#!/bin/bash
#PREPARO LAS VARIALBES
TUNEL=$2
PUERTO=0
NOMBRE=$1
TUNEL=$2
estado=0
suma=$((1194+$TUNEL))
PUERTO=$suma
run=1

while [ $run = 1 ]
do
case $estado in
0)
if [ $# = 2 ]
then
echo “Se Configurara VPN para $NOMBRE en la interface $TUNEL”
estado=1
else
echo “error! Forma correcta $0 NOMBRETUNEL NRO_ADAPTADOR”
echo “arg1=$NOMBRE arg2=$TUNEL”
estado=99
fi
;;

1)
echo “Creando los certificados”
source ./vars
./clean-all
./pkitool –initca
./build-dh
./pkitool –server server_$NOMBRE
./pkitool $NOMBRE
echo “Verificacion de Certificados previamente creados”
if [ -f /etc/openvpn/easy-rsa/keys/ca.crt ]
then
resultado=$((resultado+1))
echo ca.crt OK
else
echo “error en ca.crt”
resultado=0
fi
if [ -f /etc/openvpn/easy-rsa/keys/dh1024.pem ]
then
resultado=$((resultado+1))
echo dh1024.pem OK
else
echo “error en dh1024.pem”
resultado=0
fi
if [ -f /etc/openvpn/easy-rsa/keys/server_$NOMBRE.crt ]
then
resultado=$((resultado+1))
echo server_$NOMBRE.crt OK
else
resultado=0
echo “error server_$NOMBRE.crt”
resultado=0
fi
if [ -f /etc/openvpn/easy-rsa/keys/$NOMBRE.crt ]
then
resultado=$((resultado+1))
echo $NOMBRE.crt OK
else
echo “error $NOMBRE.crt”
resultado=0
fi
if [ $resultado = 4 ]
then
echo “Prueba de certificados: OK”
estado=2
else
echo “Prueba de certificados: ERROR ”
estado=99
fi
;;

2)
echo “preparando directorios y variables internas”
mkdir /etc/openvpn/servers
mkdir /etc/openvpn/servers/Site_$NOMBRE
mkdir /etc/openvpn/servers/Site_$NOMBRE/logs
mkdir /etc/openvpn/servers/Site_$NOMBRE/keys
mkdir /etc/openvpn/servers/Site_$NOMBRE/ccd
mkdir /etc/openvpn/clients
mkdir /etc/openvpn/clients/$NOMBRE
estado=3
;;

3)
echo “Copio certificicados”
cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/servers/Site_$NOMBRE
cp /etc/openvpn/easy-rsa/keys/server_$NOMBRE.crt /etc/openvpn/servers/Site_$NOMBRE
cp /etc/openvpn/easy-rsa/keys/server_$NOMBRE.key /etc/openvpn/servers/Site_$NOMBRE
cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn/servers/Site_$NOMBRE
cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/clients/$NOMBRE/
cp /etc/openvpn/easy-rsa/keys/$NOMBRE.crt /etc/openvpn/clients/$NOMBRE/
cp /etc/openvpn/easy-rsa/keys/$NOMBRE.key /etc/openvpn/clients/$NOMBRE/
cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn/clients/$NOMBRE/
estado=4
;;
4)
# CREANDO EL FILE DE CONFIGURACION DEL SERVIDOR
echo port $PUERTO > /etc/openvpn/Site_$NOMBRE.conf
echo proto udp >> /etc/openvpn/Site_$NOMBRE.conf
echo dev tun$TUNEL >> /etc/openvpn/Site_$NOMBRE.conf
echo ca /etc/openvpn/servers/Site_$NOMBRE/ca.crt>> /etc/openvpn/Site_$NOMBRE.conf
echo cert /etc/openvpn/servers/Site_$NOMBRE/server_$NOMBRE.crt >> /etc/openvpn/Site_$NOMBRE.conf
echo key /etc/openvpn/servers/Site_$NOMBRE/server_$NOMBRE.key >> /etc/openvpn/Site_$NOMBRE.conf
echo dh /etc/openvpn/servers/Site_$NOMBRE/dh1024.pem >> /etc/openvpn/Site_$NOMBRE.conf
echo server $RED >> /etc/openvpn/Site_$NOMBRE.conf
echo server 192.168.$TUNEL.0 255.255.255.0 >> /etc/openvpn/Site_$NOMBRE.conf
echo ifconfig-pool-persist servers/Site_$NOMBRE/logs/ipp.txt >> /etc/openvpn/Site_$NOMBRE.conf
echo cipher BF-CBC >> /etc/openvpn/Site_$NOMBRE.conf
echo keepalive 10 120 >> /etc/openvpn/Site_$NOMBRE.conf
echo client-config-dir /etc/openvpn/servers/Site_$NOMBRE/ccd >> /etc/openvpn/Site_$NOMBRE.conf
echo comp-lzo >> /etc/openvpn/Site_$NOMBRE.conf
echo persist-key >> /etc/openvpn/Site_$NOMBRE.conf
echo persist-tun >> /etc/openvpn/Site_$NOMBRE.conf
echo ccd-exclusive >> /etc/openvpn/Site_$NOMBRE.conf
echo push \”route 192.168.$TUNEL.0 255.255.255.0\” >> /etc/openvpn/Site_$NOMBRE.conf

# CONFIGURACION DEL CCD
echo ifconfig-push 192.168.$TUNEL.2 192.168.$TUNEL.1 > /etc/openvpn/servers/Site_$NOMBRE/ccd/$NOMBRE
echo push \”route 10.10.209.0 255.255.255.0\” >> /etc/openvpn/servers/Site_$NOMBRE/ccd/$NOMBRE
echo push \”route 192.168.0.0 255.255.255.0\” >> /etc/openvpn/servers/Site_$NOMBRE/ccd/$NOMBRE
echo push \”dhcp-option DNS 10.10.209.20\” >> /etc/openvpn/servers/Site_$NOMBRE/ccd/$NOMBRE

# CREANDO EL FILE DE CONFIGURACION DEL CLIENTE
echo client > /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo proto udp >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo dev tun >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo ca ca.crt >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo dh dh1024.pem >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo cert $NOMBRE.crt >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo key $NOMBRE.key >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo remote 190.221.152.78 $PUERTO >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo cipher BF-CBC >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo verb 2 >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo mute 20 >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo keepalive 2 5 >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo comp-lzo >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo persist-key >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo persist-tun >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo float >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo resolv-retry infinite >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
echo nobind >> /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf
estado=5
cp /etc/openvpn/clients/$NOMBRE/$NOMBRE.conf /etc/openvpn/clients/$NOMBRE/$NOMBRE.ovpn
;;

5)
echo “Se ingresaron las siguientes rutas”
echo “10.10.209.0 255.255.255.0”
echo “192.168.0.0 255.255.255.0”
echo “A continuacion se podran ingresar las redes de la nueva sucursal”
estado=6

;;

6)
read -p “ingrese la nueva red de la siguiente forma 192.168.1.0 255.255.255.0 n para salir ” RED MASK
echo escribiste $RED $MASK
if [ $RED = n ]
then
estado=7

else
echo Cargo la ruta $RED y $MASK
echo route $RED $MASK >> /etc/openvpn/Site_$NOMBRE.conf
echo iroute $RED $MASK >> /etc/openvpn/servers/Site_$NOMBRE/ccd/$NOMBRE

fi
;;

7)
echo “Armo el paquetito para el cliente”
cd /
zip -rj /etc/openvpn/clients/$NOMBRE.zip /etc/openvpn/clients/$NOMBRE/

# PERMITO LOS NUEVOS PUERTOS
echo “ESTE PROCESO PUEDE DEMORAR ALGUNOS MINUTOS”
semanage port -a -t openvpn_port_t -p udp $PUERTO

echo “****************************************************************”
echo “* INFORME DE INSTALACION DE $NOMBRE *”
echo “****************************************************************”
echo “RED: 192.168.$TUNEL.0/24”
echo “Interface: tun$TUNEL”
echo “Recuerde abrir el puerto $PUERTO UDP en el router”
service openvpn restart
stado=99
run=0
;;

99)
echo “fin”
run=0
;;
esac
done

Saludos!

Mira también estos otros artículos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*