Configuración del acceso a Infovía+ desde Linux

por Jonathan Ruano Jul 17 10:26:18 CEST 1999

Páginas específicas para RedHat en este mismo servidor.

Bueno, en los canales de irc de linux he visto muchas veces dudas y preguntas acerca de cómo configurar Linux para conectar a internet a través de un enlace PPP (protocolo punto a punto).

Como he visto alguna documentación y ninguna explicaba el método que yo utilicé para conseguir el tan deseado contacto con internet (a través de Infovía, pero se puede aplicar a cualquier otro medio), voy a explicarlo a continuación.

Primero de todo, voy a repasar lo que se supone has de tener antes de seguir leyendo:

Si tienes todo esto, puedes seguir leyendo (de lo contrario, no pierdas el tiempo y busca cosas más interesantes...).
Por cierto, has de hacer login como root, ¿ok?

  1. Las primeras veces que intentaba conectar con internet, utilizaba los scripts de conexión que venían con las distribuciones standard de Linux, que eran, todo hay que decirlo, bastante ponzoñosos.

    Cuando tuve que actualizar la version del PPP, me traje por FTP la versión 2.2.0f, que aparte de solucionar mis problemas por la antiguedad de versión, me proporcionaron unos scripts de conexión bastante mejores.

    Ahora, vamos a poner claramente dónde van a estar los ficheros de los que vamos a hablar:
  2. Perfecto, vamos a ver primero de todo el fichero /etc/ppp-on-dialer, que es el que se encarga de llamar al proveedor y, optativamente, enviar login y password (esto no es necesario cuando se llama al 055):
    #!/bin/sh
    #
    # This is part 2 of the ppp-on script. It will perform the connection
    # protocol for the desired connection.
    #
    exec chat -v                                            \
            TIMEOUT         3                               \
            ABORT           '\nBUSY\r'                      \
            ABORT           '\nNO ANSWER\r'                 \
            ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
            ''              \rAT                            \
            'OK-+++\c-OK'   ATH0                            \
            TIMEOUT         45                              \
            OK              ATDT$TELEPHONE                  \
            CONNECT         ''
    
    (Coger este archivo)
    chat es un programa que sirve para enviar unos textos y esperar otros. En este caso, lo utilizamos para enviar comandos al modem y esperar respuestas de éste. El formato general de los comandos en chat es 'cadena-a-esperar' 'cadena-a-enviar'.
    Este script hace las siguiente cosas:


    Si tuvieses que añadir más comandos a este script, como por ejemplo esperar "login" y teclear tu login y esperar "password" y teclear tu password, tendrías que hacer algo como:
    	(.. resto del fichero... )
            OK              ATDT$TELEPHONE                  \
            CONNECT         ''				\
            ogin		$ACCOUNT			\
            word		$PASSWORD
    
    Muy importante poner al final de las líneas un caracter de \, EXCEPTO EN LA ULTIMA, para que se considere todo como opciones de chat.
    En realidad ogin y word son parte de "Login" y "Password", pero se pone menos porque algunos sitios ponen o no mayúsculas ("login", "password") o dos puntos al final... Así abarcamos todas las posibles combinaciones.
    Acerca de dónde definimos las variables ACCOUNT y PASSWORD, tranquiiilo. En el fichero ppp-on lo haremos.

  3. Le toca el turno al fichero que va a tener algo muy preciado: Nuestro login y nuestro password.
    Atención: el modo de especificar el login y password que se indica a continuación, está desechado en las versiónes nuevas de pppd (2.3.x+). Para esas versiones, salta al siguiente paso.
    Crearemos este fichero en /etc/ppp/ y le daremos como nombre, por ejemplo, login_pass.
    Este fichero contiene TRES lineas:


    La linea en blanco del final es muy importante, y puede ocasionarte problemas si no la pones (espero que esto se soluciones con versiones nuevas del pppd). Por ejemplo, si mi cuenta en el proveedor encomix es root, y mi password es password, mi fichero login_pass tendrá el siguiente aspecto:

    ----corta-aqui----
    root@encomix
    password
    
    ----corta-aqui----
    
    (Coger este archivo)
    Supongo que eso de poner la cuenta de e-mail SIN el .es ya te sonará... así que no voy a insistir más. Es importante que este fichero tenga permiso de solo lectura para root y nada para los demás. De lo contrario, cualquier podría leer tu password. Haz chmod 600 /etc/ppp/login_pass para conseguirlo.

  4. Si la versión de pppd es 2.3.x o superior, necesitarás un fichero llamado pap-secrets que se encuentre en /etc/ppp/ y que contenga unos valores similares a estos:
    ----corta-aqui----
    root@encomix	ppp0	password
    ----corta-aqui----
    
    El valor ppp0 es el nombre del interface que tendrá el enlace con tu proveedor. Los campos se separan con tabulados, mejor que con espacios.
  5. Bueno, ya casi está todo. Ahora falta modificar el fichero ppp-on, (recuerda, localizado en /usr/sbin), que es el más aparatoso, pero el más fácil de configurar:

    #
    # Script to initiate a ppp connection. This is the first part of the
    # pair of scripts. This is not a secure pair of scripts as the codes
    # are visible with the 'ps' command.  However, it is simple.
    #
    # These are the parameters. Change as needed.
    TELEPHONE=055           # The telephone number for the connection
    ACCOUNT=george          # The account name for logon (as in 'George Burns')
    PASSWORD=gracie         # The password for this account (and 'Gracie Allen')
    LOCAL_IP=0.0.0.0        # Local IP address if known. Dynamic = 0.0.0.0
    REMOTE_IP=0.0.0.0       # Remote IP address if desired. Normally 0.0.0.0
    NETMASK=255.255.255.0   # The proper netmask if needed
    #
    # Export them so that they will be available at 'ppp-on-dialer' time.
    export TELEPHONE ACCOUNT PASSWORD
    # 
    # This is the location of the script which dials the phone and logs
    # in.  Please use the absolute file name as the $PATH variable is not
    # used on the connect option.  (To do so on a 'root' account would be
    # a security hole so don't ask.)
    #
    DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
    #
    # Initiate the connection
    # 
    # I put most of the common options on this command. Please, don't
    # forget the 'lock' option or some programs such as mgetty will not
    # work. The asyncmap and escape will permit the PPP link to work with
    # a telnet or rlogin connection. You are welcome to make any changes
    # as desired. Don't use the 'defaultroute' option if you currently
    # have a default route to an ethernet gateway.
    #
    exec /usr/sbin/pppd debug lock modem crtscts /dev/modem 57600 \
            asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
            noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT \
            +ua /etc/ppp/login_pass
    
    (Coger este archivo)
    Por partes:

Bueno, hasta aquí todo. No creo que sea muy complicado, ya ves que tiene su miguilla, pero vaya.

He visto otras formas de conectar, con el fichero pap-secrets y tal, pero simplemente son eso, formas distintas. Esta funciona, pero con versiones de pppd menores que 2.3.x.


Se agradecen comentarios a jonah@encomix.es