Page -> Diferencia entre revisiones de «PPTP-Ubuntu» Vistas :  Página  Discusión  Ver fuente  Historial 

De DIT-CDC

(Ubuntu 6.10 (Edgy Eft))
(Script dit)
Línea 213: Línea 213:
 
TUNSRVIPADDR=`host $TUNSRV | grep address | awk '{printf $4}'`
 
TUNSRVIPADDR=`host $TUNSRV | grep address | awk '{printf $4}'`
  
establecer_tunel()
+
establecer_tunel() {
{
+
  
ROUTER=`ip route list | grep default | awk '{printf $3; exit}'`
+
  ROUTER=`ip route list | grep default | awk '{printf $3; exit}'`
#ROUTER=`route -n | grep "^0.0.0.0" | awk '{printf $2; exit}'`
+
  IF=`ip route list | grep default | awk '{printf $5; exit}'`
IF=`ip route list | grep default | awk '{printf $5; exit}'`
+
  IPADDR=`ip addr show dev $IF | grep "inet " | awk '{print substr ($2, 1, length($2)-3)}'`
#IF=`route -n | grep "^0.0.0.0" | awk '{printf $8; exit}'`
+
  echo "Connecting to DIT with PPTP (router=$ROUTER,if=$IF,ipaddr=$IPADDR)..."
IPADDR=`ip addr show dev $IF | grep "inet " | awk '{print substr ($2, 1, length($2)-3)}'`
+
#IPADDR=`ifconfig $IF | grep "inet addr" | awk '{printf substr($2,6);exit}'`
+
echo "Connecting to DIT with PPTP (router=$ROUTER,if=$IF,ipaddr=$IPADDR)..."
+
  
cp /etc/resolv.conf /etc/resolv.conf.orig.DIT
+
  cp /etc/resolv.conf /etc/resolv.conf.orig.DIT
  
pon DIT
+
  pon DIT
sleep 2
+
if [ $? -eq 0 ]
+
then
+
  echo "ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
+
  ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
+
 
   sleep 2
 
   sleep 2
   echo "ip route replace default dev ppp0"
+
   if [ $? -eq 0 ]
  ip route replace default dev ppp0
+
  then
  echo "done"
+
    echo "ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
else
+
    ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
  echo "error"
+
    sleep 2
  exit 1
+
    echo "ip route replace default dev ppp0"
fi
+
    ip route replace default dev ppp0
 +
    echo "done"
 +
  else
 +
    echo "error"
 +
    exit 1
 +
  fi
 
}
 
}
  
liberar_tunel()
+
liberar_tunel() {
{
+
  
IF=`ip route list | grep "^$TUNSRVIPADDR" | awk '{printf $5; exit}'`
+
  IF=`ip route list | grep "^$TUNSRVIPADDR" | awk '{printf $5; exit}'`
#IF=`route -n | grep "^$TUNSRVIPADDR" | awk '{printf $8; exit}'`
+
  ROUTER=`ip route list | grep "^$TUNSRVIPADDR" | awk '{printf $3; exit}'`
ROUTER=`ip route list | grep "^$TUNSRVIPADDR" | awk '{printf $3; exit}'`
+
  IPADDR=`ip addr show dev $IF | grep "inet " | awk '{print substr ($2, 1, length($2)-3)}'`
#ROUTER=`route -n | grep "^$TUNSRVIPADDR" | awk '{printf $2; exit}'`
+
  echo "Disconnecting from DIT (if=$IF,router=$ROUTER,ipaddr=$IPADDR)..."
IPADDR=`ip addr show dev $IF | grep "inet " | awk '{print substr ($2, 1, length($2)-3)}'`
+
#IPADDR=`ifconfig $IF | grep "inet addr" | awk '{printf substr($2,6);}'`
+
echo "Disconnecting from DIT (if=$IF,router=$ROUTER,ipaddr=$IPADDR)..."
+
  
poff DIT  
+
  poff DIT  
if [ $? -eq 0 ]
+
  if [ $? -eq 0 ]
then
+
  then
  echo "ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
+
    echo "ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
  ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
+
    ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
  echo "ip route replace default via $ROUTER dev $IF"
+
    echo "ip route replace default via $ROUTER dev $IF"
  ip route replace default via $ROUTER dev $IF
+
    ip route replace default via $ROUTER dev $IF
  mv /etc/resolv.conf.orig.DIT /etc/resolv.conf
+
    mv /etc/resolv.conf.orig.DIT /etc/resolv.conf
  echo "done"  
+
    echo "done"  
else
+
  else
  exit 1
+
    exit 1
fi
+
  fi
 
}
 
}
  
Línea 270: Línea 262:
  
 
case $1 in
 
case $1 in
 
 
     on)
 
     on)
 
       establecer_tunel
 
       establecer_tunel
 
       ;;
 
       ;;
 
 
     off)
 
     off)
 
       liberar_tunel
 
       liberar_tunel
 
       ;;
 
       ;;
 
 
     *)
 
     *)
 
       echo "$usage" 1>&2
 
       echo "$usage" 1>&2
 
       exit 1
 
       exit 1
 
       ;;
 
       ;;
     
 
 
esac
 
esac
 
</pre>
 
</pre>
 
 
 
 
 
 
</ul>
 
  
 
== Referencias ==
 
== Referencias ==
  
 
* http://pptpclient.sourceforge.net/howto-ubuntu.phtml
 
* http://pptpclient.sourceforge.net/howto-ubuntu.phtml

Revisión de 15:33 1 abr 2007

Configuración de túneles PPTP en Ubuntu


Ubuntu 6.06 (Dapper Drake)

Instalación

Procedimiento para configurar el acceso PPTP al DIT sobre un Ubuntu 6.06:

  • Instalar pptp-linux
  • apt-get install pptp-linux
    
  • Instalar pptpconfig
    1. Añadir la fuente de pptpconfig a /etc/apt/sources.list:
    2. echo -e '\n# PPTP GUI\ndeb http://quozl.netrek.org/pptp/pptpconfig ./' >> /etc/apt/sources.list
      
    3. Añadir el repositorio "universe" si no está disponible ya. Para ello, descomentar la línea siguiente en /etc/apt/sources.list:
    4. deb http://es.archive.ubuntu.com/ubuntu/ edgy universe
      
    5. actualizar:
    6. apt-get update
      
    7. instalar PPTP Client GUI:
    8. apt-get install pptpconfig
      
  • Arrancar pptpconfig:
  • pptpconfig
    
  • Configurar una conexión con los parámetros siguientes:
  •  Solapa Server:
     Name: DIT
     Server: rpv.dit.upm.es
     Domain:
     Username: fulanito
     Password: clavedefulanito
    
     Solapa Encryption:
     Seleccionar "Require Microsoft Point-to-Point (MPPE)"
    
  • Pulsar el botón "Add" para grabar la configuración.

Establecimiento/liberación del tunel

El establecimiento y liberación del túnel se realiza desde la aplicación pptpconfig:

  • Establecimiento: seleccionar la línea "DIT" en la parte superior y pinchar en la opción "Start".
  • Liberación: pinchar en la opción "Stop".

También puede realizarse desde la línea de comandos mediante:

  • Establecimiento:
pptpconfig DIT start
  • Liberación:
pptpconfig DIT stop

Ubuntu 6.10 (Edgy Eft)

Instalación

Existe un fallo conocido en Ubuntu 6.10 debido a una incompatibilidad entre la version ppp distribuida (2.4.4) y el pptpconfig, que impide que funcionen correctamente los túneles de la misma forma que lo hacen en 6.06.

Para solucionarlo hay que:

  • Bajarse una versión anterior de ppp (2.4.3) desde aquí
  • Instalarla mediante:
dpkg -i ppp_2.4.3-20050321+2ubuntu1.1_i386.deb

A partir de aquí en procedimiento es:

  • Instalar pptp-linux
  • apt-get install pptp-linux
    
  • Instalar pptpconfig
    1. Añadir la fuente de pptpconfig a /etc/apt/sources.list:
    2.  echo -e '\n# PPTP GUI\ndeb http://quozl.netrek.org/pptp/pptpconfig ./' >> /etc/apt/sources.list
      
    3. actualizar:
    4.      apt-get update
      
    5. instalar PPTP Client GUI:
    6.      apt-get install pptpconfig
      
  • Arrancar pptpconfig:
  •  > pptpconfig
    
  • Configurar una conexión con los parámetros siguientes:
  •  Solapa Server:
     Name: DIT
     Server: rpv.dit.upm.es
     Domain:
     Username: fulanito
     Password: clavedefulanito
    
     Solapa Encryption:
     Seleccionar "Require Microsoft Point-to-Point (MPPE)"
    
  • Pulsar el botón "Add" y salir del programa (Nota: por los fallos mencionados de ppp en Ubuntu 6.10, no se puede arrancar y parar los túneles desde pptpconfig.
  • Crear dos scripts llamados "pon-dit" y "poff-dit" con el contenido siguiente:
    • pon-dit:
    • #!/bin/bash
      
      TUNSRV="rpv.dit.upm.es"
      TUNSRVIPADDR=`host $TUNSRV | grep address | awk '{printf $4}'`
      ROUTER=`route -n | grep "^0.0.0.0" | awk '{printf $2; exit}'`
      IF=`route -n | grep "^0.0.0.0" | awk '{printf $8; exit}'`
      IPADDR=`ifconfig $IF | grep "inet addr" | awk '{printf substr($2,6);exit}'`
      echo "Connecting to DIT with PPTP (router=$ROUTER,if=$IF,ipaddr=$IPADDR)..."
      
      cp /etc/resolv.conf /etc/resolv.conf.orig.DIT
      
      pon DIT
      sleep 2
      if [ $? -eq 0 ]
      then
        echo "ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
        ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
        sleep 2
        echo "ip route replace default dev ppp0"
        ip route replace default dev ppp0
        echo "done"
      else
        echo "error"
        exit 1
      fi
      
    • poff-dit:
    • #!/bin/bash
      TUNSRV="rpv.dit.upm.es"
      TUNSRVIPADDR=`host $TUNSRV | grep address | awk '{printf $4}'`
      IF=`route -n | grep "^$TUNSRVIPADDR" | awk '{printf $8; exit}'`
      ROUTER=`route -n | grep "^$TUNSRVIPADDR" | awk '{printf $2; exit}'`
      IPADDR=`ifconfig $IF | grep "inet addr" | awk '{printf substr($2,6);}'`
      echo "Disconnecting from DIT (if=$IF,router=$ROUTER,ipaddr=$IPADDR)..."
      
      poff DIT 
      if [ $? -eq 0 ]
      then
        echo "ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
        ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
        echo "ip route replace default via $ROUTER dev $IF"
        ip route replace default via $ROUTER dev $IF
        mv /etc/resolv.conf.orig.DIT /etc/resolv.conf
        echo "done" 
      else
        exit 1
      fi
      
  • Dar permisos de ejecución a los scripts:
  •  chmod +x pon-dit poff-dit
    

    Establecimiento/liberación del tunel

    Script dit

    #!/bin/bash
    
    usage="
    Conexión PPTP a la intranet del DIT
    -----------------------------------
    Uso:    $0 on   --> Establecer túnel
            $0 off  --> Liberar túnel
    "
    
    if [ "$#" -ne 1 ]; then 
        echo "$usage" 1>&2
        exit
    fi
    
    TUNSRV="rpv.dit.upm.es"
    TUNSRVIPADDR=`host $TUNSRV | grep address | awk '{printf $4}'`
    
    establecer_tunel() {
    
      ROUTER=`ip route list | grep default | awk '{printf $3; exit}'`
      IF=`ip route list | grep default | awk '{printf $5; exit}'`
      IPADDR=`ip addr show dev $IF | grep "inet " | awk '{print substr ($2, 1, length($2)-3)}'`
      echo "Connecting to DIT with PPTP (router=$ROUTER,if=$IF,ipaddr=$IPADDR)..."
    
      cp /etc/resolv.conf /etc/resolv.conf.orig.DIT
    
      pon DIT
      sleep 2
      if [ $? -eq 0 ]
      then
        echo "ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
        ip route replace $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
        sleep 2
        echo "ip route replace default dev ppp0"
        ip route replace default dev ppp0
        echo "done"
      else
        echo "error"
        exit 1
      fi
    }
    
    liberar_tunel() {
    
      IF=`ip route list | grep "^$TUNSRVIPADDR" | awk '{printf $5; exit}'`
      ROUTER=`ip route list | grep "^$TUNSRVIPADDR" | awk '{printf $3; exit}'`
      IPADDR=`ip addr show dev $IF | grep "inet " | awk '{print substr ($2, 1, length($2)-3)}'`
      echo "Disconnecting from DIT (if=$IF,router=$ROUTER,ipaddr=$IPADDR)..."
    
      poff DIT 
      if [ $? -eq 0 ]
      then
        echo "ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR"
        ip route del $TUNSRVIPADDR via $ROUTER dev $IF src $IPADDR
        echo "ip route replace default via $ROUTER dev $IF"
        ip route replace default via $ROUTER dev $IF
        mv /etc/resolv.conf.orig.DIT /etc/resolv.conf
        echo "done" 
      else
        exit 1
      fi
    }
    
    # Main
    
    case $1 in
        on)
          establecer_tunel
          ;;
        off)
          liberar_tunel
          ;;
        *)
          echo "$usage" 1>&2
          exit 1
          ;;
    esac
    

    Referencias




Navegación
Herramientas personales