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?
/etc/ppp/ está el fichero de configuración ppp-on-dialer y algún otro que viene por defecto./usr/sbin/ están los scripts de conexión ppp-on y ppp-off.
/usr/sbin (también) está el demonio de ppp, "pppd".
/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'.TIMEOUT 3: Configuramos el tiempo máximo de espera de cadenas de respuesta.
ABORT '\nBUSY\n' Configura la cadena '\nBUSY\n' como respuesta del modem cuando
una conexión no ha podido ser efectuada. Lo mismo con las demás ABORT.
'' \rAT Esta cadena indica que no ha de esperar nada ('') y enviar un retorno
de carro y el comando AT. (Esto se utiliza para ver si el modem está en modo comando).
'OK-+++\c-OK' ATH0: Esto sirve para poner el modem en modo comando si estuviese
conectado, y para colgar.
TIMEOUT 45: Configuramos el tiempo máximo hasta que el modem de respuesta de
conexión efectuada...
OK ATDT$TELEPHONE: Cuando llegue el OK en respuesta al comando ATH0 de antes,
marcamos el teléfono. TELEPHONE es una variable que se define en otro script, no
te preocupes por eso ahora... Fijate que ATDT es para marcar por tonos. Si tienes una
línea que marca por tonos, cámbialo por ATDP.
CONNECT '': Al recibir CONNECT, el modem ha conseguido conectar. El '' del final
simplemente indica que no hay más que enviar.
(.. 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.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./etc/ppp/ y le daremos como nombre, por ejemplo, login_pass.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)
.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.----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.
/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)TELEPHONE en ppp-on-dialer (bueno,
tenía un símbolo de dólar $ delante, pero ahora la estamos definiendo). Aquí es
donde se pone el número del teléfono a marcar.
ACCOUNT) ni el password (PASSWORD),
porque conectando a través de infovía, proporcionamos esos datos a través
del fichero /etc/ppp/login_pass. (Si tuvieses que dar login y password antes
de iniciar el pppd, p.ej. un número de teléfono que te pidiera login y password
antes de permitirte conectar a internet, SI que tendrías que ponerlo).
LOCAL_IP se deja tal y como está, lo que indica a pppd que el servidor
nos ha de proporcionar una IP.
DIALER_SCRIPT, que pasaremos al pppd, y que es
el que pppd ejecutará para conseguir portadora con el modem. Este es el conocido
/etc/ppp/ppp-on-dialer.
pppd, el artífice de la conexión
a internet. Como ves tiene activada la opción debug y kdebug. Una de las dos
(ahora no recuerdo cual), permite que veas en el fichero de log (normalmente
/var/log/messages), el progreso de la llamada, y si la conexión ha tenido
exito o no. Es útil para cuando estás haciendo pruebas, tener una consola con
el comando tail -f /var/log/messages para ir viendo como progresa la conexión.
+ua /etc/ppp/login_pass por una que diga algo así como
user root@encomix, para que pppd encuentre el par login/password en
el fichero /etc/ppp/pap-secrets
cd /dev ln -sf cua0 modemSi tu modem está en COM2, usa
cua1, si está en COM3, cua2, etc.
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.