Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Índice Introducción..........................................................................................................................................2 Acceso Telefónico a Redes desde el entorno Windows....................................................................... 3 Puesta en marcha de un Cliente PPP desde el entorno Linux.............................................................. 6 Configuración en modo gráfico usando KPPP............................................................................6 Configuración en modo texto usando chat y pppd.................................................................... 11 1 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Introducción En esta práctica usaremos el módem interno del equipo pasarela para realizar la conexión telefónica con el servidor del Laboratorio, que nos permitirá la conexión a Internet, tanto desde Windows como desde Linux. El proceso desde uno y otro sistema operativo se comentará detalladamente por separado para cada uno de ellos, en los siguientes apartados de la memoria. En el caso de Linux, la conexión de acceso telefónico a redes podrá hacer tanto desde un entorno de configuración en modo gráfico, como directamente en modo texto, con los comandos chat y pppd, como ya se verá en su momento; para la configuración gráfica, el KPPP es una buena opción y resulta bastante cómodo y similar a los entornos gráficos de configuración de Windows. Por otro lado, para un correcto funcionamiento de la conexión de acceso telefónico a redes, hay que hacer que el módem llame por pulsos (lo cual se indicaba al módem con el comando Hayes que tenía la forma: ATP). Para que en Windows, la marcación sea correcta debemos instalar previamente los drivers del módem interno de la pasarela, que hemos obtenido desde el ftp de la asginatura, que está en el servidor del Laboratorio (ftp 172.16.1.1); desde la carpeta modems/Dinalink se pueden obtener dichos drivers, que permitirán que en las llamadas se haga ATP y luego ATD al número de telefóno que marquemos, pues con los drivers que Windows instala por defecto, la llamada es hecha directamente con ATDP, de modo que falla. Una vez hecho esto se va a la configuración de nuestro acceso telefónico a redes y desde él se va a la pestaña General y luego en Reglas de Marcado --> Editar, indicamos: Marcar utilizando Pulsos. Para el caso de Linux esto no es necesario, pues basta con indicar la cadena de llamada correcta, como se verá más adelante. 2 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Acceso Telefónico a Redes desde el entorno Windows El proceso para configurar el acceso telefónico a redes se hará con una llamada al número 49 ó 50 para equipos con numeración de 2 dígitos, como es el caso de nuetros equipos (21 y 22); si fuera con numeración de 3 dígitos, el número a llamar sería el 211 ó 213. De este modo, usamos el número 50, que nos conecta con el servidor del Laboratorio. El nombre y contraseña para el acceso es prueba y prueba, respectivamente. Los pasos a seguir son los siguientes: 1. Accedemos a las conexiones de red y en las Propiedades de Redes se procede a la configuración del número de teléfono al que marcar (en nuestro caso el 50), que se pone tal cual sin ningún tipo de prefijo, como se ve en la siguiente captura de pantalla. 3 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo 2. A continuación, y de forma opcional, podemos realizar ciertas configuraciones como que se nos indique el muestreo del progreso al conectar, la petición de nombre de usuario y contraseña, que son prueba y prueba, respectivamente, etc. Igualmente, es conveniente configurar las Opciones para volver a marcar, pues la conexión con los números de teléfono del servidor del Laboratorio sólo permitirán la conexión de un único equipo por cada número telefónico. 3. Finalmente, podemos indicar la IP que se usará en la conexión, pero en este caso, por simplicidad y comodidad resulta mucho mejor indicar que la dirección IP y del DNS se obtengan de forma automática, desde las Propiedades del Protocolo Internet (TCP/IP). 4 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Tras este proceso de configuración ya se puede conectar a Internet sin ningún problema a través de la conexión a de acceso telefónico a redes creada. 5 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Puesta en marcha de un Cliente PPP desde el entorno Linux Desde Linux, el proceso de configuración de la conexión de acceso telefónico a redes, se realizará de forma similar al de Windows, pero en este caso la herramienta usada para tal configuración será el KPPP desde modo gráfico y los comandos chat y pppd desde modo texto. El proceso de configuración para cada uno de ellos se comenta a continuación: Configuración en modo gráfico usando KPPP Este método, por ser gráfico, resulta ligeramente más cómodo, y sus pasos, muy similares a los de la configuración gráfica desde Windows, son los siguientes: 1. Accedemos al KPPP y desde el menú de Configuración accedemos a la configuración manual. 2. Ponemos un nombre a la configuración, por ejemplo, redes. 3. Seguidamente configuramos dicha configuración, indicando los números de telefóno válidos para conectarnos con el servidor que nos provee el acceso telefónico a redes, que en nuestro caso serán los números 50 y 49. 6 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo 4. Finalmente, como para poder conectarnos debemos usar la marcación por pulsos, debemos indicar que se use el comando ATDP a la hora de marcar al número 49 ó 50 (ATDP49 ó ATDP50); de lo contrario fallará la conexión. Hay que indicar igualmente que el uso de ATDP directamente es equivalente al de usar ATP y ATD de forma consecutiva, funcionando ambas técnicas, pero resultando más cómoda la primera, que es además al usada. Esto se hará cambiando la Cadena de marcado en las configuraciones de la conexión redes que hemos creado en el KPPP. 7 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Igualmente, se puede ver en la pestaña de Dispositivo (mostrada en la siguiente ilustración) que dispositvo módem se está usando, así como ciertas configuraciones del módem. 8 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Realizados estos pasos, podremos conectarnos con la configuración creada bajo el nombre de redes. Para lo cual se abre el KPPP, y como ya existe una configuración creada bajo el nombre de redes, introduciendo el nombre de usuario y contraseña (prueba y prueba, respectivamente), y picando en le botón marcar, se realizará la conexión de acceso telefónico a redes. Si activamos la Ventana de depuración del script de conexión, podremos ver como se ejecuta dicho script, a nivel de los comandos que realiza, de modo que podemos ver como usa ATDP50 y ATDP49 como cadena de marcado. Así, cuando consigue conectarse (en este caso al llamar al 9 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo número 49), aparece el mensaje que indica que estamos conectados a 57600 bps, como se observa en la siguiente ilustración. Finalmente, una vez conectados, podemos ver las Estadísticas Kppp (ver siguiente ilustración), que durante la conexión muestran información sobre la misma, tal como nuestra IP local y la remota, que es la del servidor de acceso telefónico a redes. Igualmente, muestra el típico histórico del tráfico de información por la red, que puede ver como el número de paquetes de entrada y de salida, así como una gráfica del tráfico de la conexión. 10 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Configuración en modo texto usando chat y pppd En el caso de optar por la configuración en modo texto, haremos uso del demonio pppd y del comando chat, así como de un total de 3 archivos de configuración básicos, que se verán más adelante. En primer lugar, comanetamos la funcionalidad del demonio pppd y el comando chat, que usaremos fundamentalmente con scripts de comunicación con el módem; en nuestro caso estaremos conectándonos a través de un módem interno, por lo que en principio el comando ATDP es válido para realizar las llamadas por pulsos. Demonio pppd --> Es el encargado de realizar la conexión de acceso telefónico a redes con nuestro servidor, que se encuentra en el número 49 ó 50. Para ello hará uso de un módem, que se controlará con comandos AT, tarea para la cual se requiere de un comando que permita mandar dichos comandos al módem, como es el caso del comando chat, explicado a continuación. Comando chat --> Este comando permite el envío de comandos AT al módem, pudiendo por 11 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo tanto controlar éste. Pero además, aporta cierta inteligencia, es decir, capacidad algorítmica, pues podemos controlar los comandos mandados en función de los mensajes recibidos. De este modo, su funcionamiento se basa en el envío de comandos y la espera de mensajes. Estos mensajes se esperan para saber si un comando posterior debe lanzarse o no; así tenemos una especie de control de flujo de nuestro script. Por lo general, se hace un script con los comandos AT y luego se llama al comando chat directamente con dicho script como parámetro, como se verá más adelante. Conocida la funcionalidad de cada uno de los comandos anteriores se procede a continuación a indicar los ficheros quese modificarán, así como los comandos a lanzar para activar el demonio y tener acceso telefónico a redes. Para empezar se enumeran en las siguientes líneas los ficheros que hay que modificar o configurar correctamente para que nuestra conexión de acceso telefónico a redes sea factible. El orden de modificación de los mismos es indiferente. 1. /etc/ppp/options --> Debemos generar el archivo options que contendrá las opciones de configuración para el demonio pppd, el cual lo usará en el momento de activarse. En este fichero se pone en primer lugar el comando que establece la conexión con el módem, que será el comando chat haciendo uso del script que será otro de los ficheros a crear, que se comenta seguidamente. Existen muchas opciones que se pueden incluir en el fichero options, que pueden consultarse en man pppd. Este fichero es un ejemplo de fichero options, que hemos usado satisfactoriamente en una conexión de acceso telefónico a redes, y se comentan las opciones de configuración empleadas en el mismo, más adelante. /dev/modem 115200 crtscts noipdefault defaultroute noauth debug connect "/usr/sbin/chat -v -f /etc/ppp/chat_script" name prueba 12 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo La primera línea indica el dispositivo módem usado. Nosotros en realidad usamos un enlace simbólico al dispositivo del módem, es decir, dev/modem apunta al dispositivo del módem interno (dev/ttyS0): dev/modem --> dev/ttyS0. Con 115200 indicamos la velocidad deseada para la conexión a realizar, es decir, la máxima posible; como es lógico, puede variarse este valor a velocidades más lentas. Con crtscts se habilita el control de flujo por hardware, pues de lo contrario se usará control de flujo software (con XON/XOFF) o sencillamente no se realizará el control de flujo. Es necesario habilitarlo, para que sea correcta la conexión. Por otro lado, usamos noipdefault para que el servidor nos asigne dirección IP, y defaultroute, para que se use la ruta definida para nuestro PC. También es necesario poner noauth para que en el momento de la conexión con el servidor de acceso telefónico a redes no se requiera la autentificación, de modo que la conexión funcione correctamente, de modo que si no se pone nada se requerirá la autentificación (auth) y la conexión podrá fallar. En cuanto a debug, es opcional y simplemente hace que se muestre información adicional a modo de depuración en la ejecución del demonio pppd, que podrá verse con el comando tail, indicado a lo largo de la memoria. Igualmente, se hace que nos conectemos usando el comando chat, que usará el script bajo el nombre de chat_script. Los modificadores usados tienen la siguiente función: -v --> Activa el verbose, para que se muestre la ejecución de los comandos que se tengan en el fichero de script, al igual que también se mostrarán dichos comandos. Esto no es útil en el fichero optiones, pues al activar el demonio pppd no se mostrará nada de eso, pero si lanzamos el comando a parte sí puede ser útil. Además, como se verá más adelante, el fichero messages si almacena el proceso de ejecución de cada uno de los comandos del script. -f --> Indica que se tome del fichero el script que usará el comando chat, para enviar todos los comandos del mismo al módem, que a su vez tendrán una cadena de espera, que debe obtenerse antes de que el comando de cada línea sea enviado al módem, lo que dota al script de una cierta inteligencia y control sobre lo que le ocurra al módem y/o comunicación que se realice con éste. 13 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Finalmente, se indica con name prueba, que el nombre del usuario que se conectará al servidor de acceso telefónico a prueba será el de prueba, que el fichero pap-secrets estará igualmente indicado. 2. Archivo de script para controlar el módem --> Debemos crear un script para el comando chat, que contendrá fundamentalmente el comando de incialización del módem y posteriormente la llamada al servidor (bien a la línea telefónica 49 ó 50). A continuación puede verse el script que hemos usado en nuestro caso, que no es más que uno de los posibles ejemplos. '' ATZ0 OK ATP OK ATM1L1 OK ATD50 CONNECT '' Como se ha dicho, el formato de los comandos es el siguiente: CADENA_ESPERADA COMANDO_AT_A_ENVIAR En este script se hace lo siguiente: '' ATZ0 --> Directamente se inicializa el módem; también valdrían otros comandos como AT&F, que en lugar de resetear los registros y dejar el módem al estado por defecto anterior, resetea el módem a las configuraciones de fábrica. OK ATP --> Cuando se reciba OK (es decir, la respuesta al comando anterior), se activa la llamada por pulsos. En realidad, para el módem interno, que es el que se está usando, no es necesario lanzar ATP de forma separada a la llamada con ATD, es decir, podemos llamar directamente con ATDP. OK ATM1L1 --> Cuando se reciba OK, se manda este comando para activar el sonido del módem (M) y se le pone el volumen con L. OK ATD50 --> Cuando se reciba OK se llama al número 50; se puede usar directamente el comando ATDP porque el módem interno lo permite, de forma que llamamos por pulsos. CONNECT '' --> Cuando se reciba CONNECT tendremos la conexión establecida. 14 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo 3. Archivos de Autentificación --> Finalmente hay que configurar los archivos de autentificación, que pueden ser el pap-secrets y/o chap-secrets. El hecho de que la configuración de autentificación puede realizarse en dos ficheros distintos es consecuencia de que en el proceso de autentificación, en el cual se enviará al servidor el nombre de usuario y contraseña, existen dos métodos, y dependiendo del que usemos, deberemos configurar uno u otro. En cualquier caso, el contenido del fichero de configuración será idéntico. En nuestro caso, indicamos que se use el nombre de usuario prueba y la contraseña prueba, sea cual sea el servidor e IP, como puede verse a continuación: # Secrets for authentication using PAP # client server secret IP addresses "prueba" * "prueba" * Como curiosidad se comenta a continuación la diferencia entre las dos técnicas de autentificación: PAP (Password Authentification Protocol) --> Funciona como un proceso normal de login, y es usado por la mayoría de ISPs del mercado. El cliente se autentifica enviando su nombre de usuario y su contraseña (opcionalmente encriptada) al servidor. El servidor comparará el nombre de usuario y contraseña con los que están contenidos en sus bases de datos de secrets (contraseñas). Esta técnica es, en principio, vulnerable a ataques de espías de la línea telefónica. CHAP (Challenge Handshake Authentification Protocol) --> Con este protocolo, el servidor envía una ristra “challenge” generada aleatoriamente al cliente, con su hostname, que el cliente usará para buscar el secret (contraseña) apropiado, el cual combinará con el “challenge” y encriptará con una función hash no invertible. El resultado se enviará al servidor con el hostname del cliente. El servidor realizará una tarea idéntica y si observa que la autentificación es correcta se lo hará saber al cliente. Este método además, hace la comprobación de autentificación durante la conexión, no sólo al crearla, de forma que se evita que nadie puede reemplazar al auténtico cliente. En otro orden de cosas, si se desea ver información durante la conexión ppp, puede visualizarse el fichero var/log/messages del sistema, que contiene todo lo que ocurre en el sistema 15 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo UNIX y permite ver el proceso de conexión y el establecimiento de la misma. Una forma útil de mostrar esto es con el comando tail -f messages, el cual hace que en el terminal se quede esperando a que el fichero messages reciba nuevos mensajes y se irán viendo directamente en dicho terminal, como si tuvieramos abierto el fichero con auto-actualización. 4. Archivo de Resolución de nombres --> El archivo resolv.conf es el que modificaremos en este caso, para asegurarnos que la resolución de nombres sea correcta; en principio no debería modificarse si ya está bien configurado de prácticas previas. Su contenido podrá ser el siguiente: ; generated by /sbin/dhclient-script search redes.dis.ulpgc.es nameserver 172.16.1.1 nameserver 193.145.143.100 Con el comando search redes.dis.ulpgc.es se indica que busque URL indicada, al igual que con nameserver se le indican los nombres del servidor del Laboratorio (172.16.1.1), que es el servidor de acceso telefónico a redes, y el servidor del DIS (193.145.143.100) al que se accede finalmente para llegar a Internet. Finalmente, una vez configurados los archivos anteriores, podrá lanzarse el demonio pppd. Para que las tablas de enrutamiento sean correctas y no haya problemas a la hora de tener conexiones de acceso telefónico y de tipo Ethernet, comviviendo en un mismo equipo como es nuestro caso, es recomendable observar el estado de la configuración de dichas tablas con el comando route. A la hora de establecer la conexión de acceso telefónico a redes, en cuanto a este fenómeno, pueden darse dos casos. Por un lado, se no existe la ruta default, cuando se establezca la conexión al lanzar el demonio pppd, no habrá problema, pues automáticamente se añadirá la línea de enrutamiento para default, con la dirección IP que nos asigne el servidor de acceso telefónico a redes, de modo que nosotros no tendremos que hacer nada más. Como por defecto existe un ruta para default, tendríamos que serguir los siguientes pasos: 16 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo 1. Eliminar la ruta para default --> Simplement se lanza el comando: route del default. De este modo, si visualizamos con route la tabla de enrutamiento, antes de eliminar la ruta del default tenemos: 172.16.1.0 * 255.255.255.0 U 0 0 0 eth1 172.16.3.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 0 0 0 eth1 127.0.0.0 default * 255.0.0.0 172.16.1.1 0.0.0.0 U U 0 0 UG 0 0 lo 0 0 eth1 Y después de eliminarla tendremos: 172.16.1.0 * 255.255.255.0 U 0 0 0 eth1 172.16.3.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 0 0 0 eth1 127.0.0.0 * 255.0.0.0 U U 0 0 0 lo 2. Lanzamos el demonio pppd y automáticamente actualizará la tabla de rutas, de modo que ya podremos conectarnos a Internet. Si vemos la tabla de enrutamiento con route, tendremos: 172.16.32.100 * 255.255.255.255 UH 0 0 0 ppp0 172.16.1.0 * 255.255.255.0 U 0 0 0 eth1 172.16.3.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 0 0 0 eth1 127.0.0.0 default * 255.0.0.0 172.16.32.100 0.0.0.0 U U 0 0 UG 0 0 lo 0 0 ppp0 Se observa que la IP que nos ha asignado el servidor la tenemos para la conexión por el dispositivo ppp0 (esto aparece en todos los casos, siempre que se realiza la conexión de acceso telefónico a redes) e igualmente aparece como la ruta default. El hecho de que la tabla de rutas se actualice puede servirnos de indicador de que la conexión se ha establecido completa y satisfactoriamente; también es posible usar el ya conocido comando ifconfig, para ver si el dispositivo de conexión PPP tiene ya asignada una dirección IP válida. 17 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo Otro posible caso se daría si no eliminamos la ruta default antes de la conexión de acceso telefónico a redes, o lo que es lo mismo, si lanzamos el demonio pppd antes de borrar la ruta default de la tabla de rutas. De este modo, si ya hemos lanzado el demonio pppd, los pasos para corregir la tabla de rutas serán los siguientes: 1. Eliminar la ruta default --> Se lanza el comando route del default; ocurre lo mismo que lo visto en el caso anterior, salvo que ahora, antes de eliminarlo ya aparece la ruta para la conexión de acceso telefónio a redes. Así, antes de eliminarla tenemos: 172.16.32.100 * 255.255.255.255 UH 0 0 0 ppp0 172.16.1.0 * 255.255.255.0 U 0 0 0 eth1 172.16.3.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 0 0 0 eth1 127.0.0.0 default * 255.0.0.0 172.16.1.1 0.0.0.0 U U 0 0 UG 0 0 lo 0 0 eth1 Y después tenemos: 172.16.32.100 * 255.255.255.255 UH 0 0 0 ppp0 172.16.1.0 * 255.255.255.0 U 0 0 0 eth1 172.16.3.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 0 0 0 eth1 127.0.0.0 * 255.0.0.0 U U 0 0 0 lo 2. Añadimos la ruta default --> Para ello se usa el siguiente comando: route add default gw 172.16.32.100 dev ppp0 Este comando añade la puerta de enlace (gw) para la ruta default, y lo hace para el dispositivo de la conexión de tipo PPP (dev ppp0). De este modo, la tabla de rutas tendremos finalmente la siguiente forma: 172.16.32.100 * 172.16.1.0 * 255.255.255.255 UH 255.255.255.0 U 0 0 0 0 0 ppp0 0 eth1 18 Práctica 4: Acceso Telefónico a Redes Redes de Computadores – U.L.P.G.C. David Jesús Horat Flotats Enrique Fernández Perdomo 172.16.3.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 0 0 0 eth1 127.0.0.0 default * 255.0.0.0 172.16.32.100 0.0.0.0 U U 0 0 UG 0 0 lo 0 0 ppp0 Esto ya permite que la conexión a Internet esté completamente disponible. 19