Conexión PPP con módem RTB en Linux (avanzado)

De BandaAncha.st
Saltar a: navegación, buscar
Sobre este documento
Tipo Manual (How To)
Categoria Linux
Plataforma All GNU/Linux
Dificultad TuxTuxTuxTux

En este apartado trataremos la configuración de nuestra conexión a Internet a través de la línea telefónica con los típicos módems RTB. Este tipo de conexiones utilizan el protocolo de transmisión de datos PPP (protocolo punto a punto). Para la correcta configuración de esta conexión deberemos tener un módem bien conectado y que sea compatible con el sistema, y como último punto una buena puntería para la configuración.

El protocolo de transferencia de datos PPP es un estándar muy utilizado junto con el SLIP, pero debido a ser el primero más versátil y potente se ha impuesto sobre el SLIP. Este par de protocolos son utilizados por los servidores de acceso a Internet para manejar los paquetes IP que son los que se utilizan para la transmisión de datos. Por ser el SLIP un protocolo en la actualidad poco utilizado (como ya he dicho antes) trataré solamente una configuración de una conexión con protocolo punto a punto. Las siglas de RTB hacen referencia a la Red Telefónica Básica, como su propio nombre indica es la forma mas básica de conexión, su siguiente sucesor fue el RDSI (Red Digital de Servicios Integrados), las mejoras que supone la segunda sobre la primera son notables pero no tienen lugar en este texto.

Sobre los módems en sistemas Unix[editar]

En la introducción hacíamos referencia a los elementos necesarios para llevar a buen puerto una conexión a Internet, uno de ellos era el módem y es algo muy importante, esto es debido a que, en la actualidad, existen una serie de módems denominados "winmodems" cuyas principales funciones de transmisión y recepción de datos son emuladas por software propietario de la marca que fabrica los dispositivos y raramente las portan a sistemas Unix (ya sea linux o cualquier otro) por lo tanto nos será imposible utilizar nuestro módem (hasta que aparezcan drivers específicos o un programador espabilado). Si nos encontramos en esta situación la mejor solución es ponerse en contacto con la compañía de nuestro modem o visitar su página web, allí se nos mostrará la información necesaria, aún así, os remito al apartado de este FAQ que hace referencia a los winmodems.

Configuración de la conexión[editar]

Mediante PPPD[editar]

Establecer una conexión a internet mediante el demonio pppd. Lo primero que tienes que saber es donde tienes los archivos de su configuracion, de manera general se encuentran en /etc/ppp, ahí te encontras una serie de archivos en los que encontrarás la configuración que utilizará el demonio para negociar la conexión con tu servidor. Estos archivos son:

/etc/ppp/options[editar]

/etc/ppp/options es el archivo predeterminado del cual pppd toma su configuración. Una configuración estandar sería la que viene a continuación:

 lock
 crtscts
 modem
 noipdefault
 defaultroute
 /dev/cuaa0
 115200

Esta configuración significa:

  • lock: establece un bloqueo para el modem para que se limite el acceso al mismo mientras pppd está utilizandolo.
  • crtsct: establece que la transmisión de los datos sea realizado y controlado por hardware.
  • noipdefault: tu dirección ip es adjudicada por el servidor de manera dinámica.
  • defaultroute: esto establece que la ruta que se establece esta conexión será la predeterminada para todos los paquetes del sistema.
  • /dev/cuaa0 -> establece el puerto al cual está conectado el módem en nuestro sistema, esta nomenclatura se encuentra en los sistemas BSD (esta página está escrita desde una FreeBSD Release 4.5 en estos momentos). Esta es la nomenclatura en distintos sistemas:
    • Linux: COM1: /dev/ttyS0 (también /dev/cua0) COM2: /dev/ttyS1 (también /dev/cua1)
    • FreeBSD: COM1: /dev/cuaa0 COM2: /dev/cuaa1
    • NetBSD: COM1: /dev/tty00 COM2: /dev/tty01

Lo mejor que puedes hacer es crear un enlace virtual llamado "modem" en tu directorio /dev para facilitando la tarea, para ello con el comando:

 # ln -sf /dev/ttyS0 /dev/modem  ((ttyS0 o óomo se llame en tu sistema el puerto del modem))

Así siempre que se necesite acceder al modem con que te acuerdes de /dev/modem te servirá (te agiliza muchas tareas, pero has de recordar siempre el puerto al que hace referencia).

  • 115200: la velocidad en baudios a la que quieres que como máximo se establezca la conexión, obviamente un modem normal no los alcanza pero asi se le "exige el maximo". Si ves que no conecta o se cae la conexión pues bajale a 57600, he vistos casos que se solucionaba, y es una buena prueba antes de romperse la cabeza.

/etc/ppp/peers/inet[editar]

/etc/ppp/peers/inet es el script para conectar. Puedes llamarlo como prefieras. El script hace lo siguiente:

  connect '/usr/bin/chat -v -f /etc/ppp/peers/inet.chat'
  noauth
  user pinorrana@galileo

En este archivo se encuentran la propia conexión, la primera linea representa la llamada a chat que se encargará de realizar la llamada y que tomará los datos del archivo inet.chat. Las siguientes lineas pertenecen a la autentificación que hará que se chequee el archivo /etc/ppp/pap-secrets en busca del la password adecuada para el usuario especificado. NOTA: ¡Fíjate donde está el programa "chat", ya que yo lo tengo en /usr/bin/ pero tú quizás lo tengas en /usr/sbin/! Puedes localizarlo con which chat.

/etc/ppp/pap-secrets[editar]

En /etc/ppp/pap-secrets se encuentran las contraseñas para los diferentes usuarios que puedas tener en tus conexiones ppp. En mi caso el nombre de usuario lo he tomado como "pinorrana@galileo" y pongamos que como contraseña tengo "idoru" entonces tendría un archivo pap así:

  pinorrana@galileo * idoru 
  (los espacios son tabulaciones)

Lo primero es el nombre de usuario, y el ultimo la clave, y esa * que tenemos en el medio se refiere al servidor con el cual utilizaremos ese nombre de usuario y clave, al ponerse una * se tomará como válido cualquier servidor (esto se utiliza cuando se tienen varias cuentas). PAP es un Protocolo de Autentificación de Contraseñas, otro método de autentificación es el CHAP.

/etc/ppp/peers/inet.chat[editar]

En /etc/ppp/peers/inet.chat se realizará la llamada al servidor (recordemos que es invocado desde /etc/ppp/peers/inet, asi que puedes cambiarle el nombre, siempre y cuando tambien lo cambies en el anterior). El contenido de este archivo de manera general sería algo como:

 ABORT BUSY
 ABORT "NO CARRIER"
 ABORT "NO DIALTONE"
 REPORT CONNECT
 SAY "Llamando al Servidor..."
 ATDT900666666
 CONNECT

Lo primero establece las cadenas ante las cuales se abortará, después espera que le sea devuelto un CONNECT que se realizará cuando se conecte al servidor y lleve a cabo el proceso de autentificación. El número es ficticio (bueno, hasta hace poco existía).


Conectando[editar]

Ya lo tenemos todo configurado, es hora de probar tu conexión. Ejecutamos

 pppd call inet

Con lo que pediremos (amablemente :)) a pppd que establezca la conexión llamada "inet", que fue el nombre que le pusimos al archivo en la carpeta peers (es en esta carpeta /etc/ppp/peers/ donde pppd busca los nombres de conexiones). Si funciona... ¡bravo!. S da problema, revisa la configuración, modem, prueba combinaciones, infórmate acerca si tu modem es problemático...

Como último apunte, la configuración se podría incluir de manera mas compacta, incorporando el proceso de autentificación en el archivo options, pero de la manera explicada es mas fácil permitir a usuarios normales que establezcan conexiones permitidas por el administrador.

Mediante PPP[editar]

El comando "ppp" o "user-ppp" surge como una alternativa del soporte ppp del kernel, fue creado por el Internet Institut of Japan, razón por la cual también es conocido como iijppp. Este programa se apoya en la interfaz de tunnel (tun). Una de sus principales ventajas es que podemos ejecutar ppp olvidandonos de compilar interfaz alguna en el kernel ya que se sirve solamente de tunnel para enviar y recibir a través del kernel. Leete su man si deseas mas información de el.

Empecemos la configuración. Para ello tan solo tendremos que configurar el archivo /etc/ppp/ppp.conf, ahí iran todas las configuraciones, de los archivos comentados anteriormente solo tendrás que tener semejante el archivo resolv.conf, por lo tanto lo que pongo a continuación será la configuración de ppp.conf:

 default:
   set device /dev/cuaa0
   set speed 115200
   set dial set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT  5 \"\" AT OK-AT-OK ATE1Q0 OK ATM0 OK \\dATDT\\T TIMEOUT 60 CONNECT"
 conexion:
   set phone 909400400
   set login
   set authname pinorrana@galileo
   set authkey idoru
   set timeout 600
   set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
   add default HISADDR
   enable dns
   dial

En esta configuración se establecen dos partes diferenciadas, la primera que inicia el dispositivo de conexión (como ya vimos, en mi caso se trata de un modem serial en Freebsd por lo tanto será /dev/cuaa0), encuanto a las cadenas que vienen despues pues aconsejo dejarlas asi, si zos intersa que vuestro modem suene al conectar elminiad ATM 0 OK ya que con ella no emito sonido al conectar ni durante la conexión. Después viene el nombre de la conexión (se pueden establecer varias), dentro de ella vemos las opciones comunes a toda conexión, sólo deberemos cambiar el nombre de usuario, pass, telefono y poco mas. Ahora que lo tienes configurao, con el comando siguiente: "ppp -background conexion" el ppp llama a la conexion definida con el original nombre de "conexion" en el ppp.conf, y con la opción -background le obliga a que permanezca en segundo plano.

Permisos de archivos[editar]

Ya que la seguridad es otro punto importante, a continuación pongo cuales son los permisos que podremos fijar para guardar los archivos a los ojos de algunos.

/etc/ppp: "chmod 700 /etc/ppp"
/etc/ppp/peers: "chmod 700 /etc/ppp/peers"
/etc/ppp/options: "chmod 644 /etc/ppp/options"
/etc/ppp/pap-secrets: "chmod 600 /etc/ppp/pap-secrets"
/etc/ppp/ppp.conf: "chmod 700 /etc/ppp/ppp.conf"