Siempre que nos conectemos a un proveedor de acceso a internet, será necesario enviar un nombre de usuario y una contraseña. Para ello hay diversas posibilidades que nos vendrán impuestas por el proveedor.
Además de las 3 opciones expuestas, también es posible que la conexión no necesite autentificación (normalmente cuando el destino de la llamada es otro ordenador también nuestro y no deseamos autentificar).
Actualmente no es un método muy utilizado en entornos de acceso a internet.
La identificación se realiza antes de lanzar el demonio pppd
, y es el
propio programa marcador, normalmente chat
, el que envía los
identificadores de usuario y clave. Este envío de usuario y clave se
realiza «en claro», por lo que no puede ser considerado seguro.
Un ejemplo de script para el programa chat
en el que sea necesario
indicar usuario y contraseña antes de lanzar pppd
podría ser el
siguiente:
ABORT BUSY
ABORT "NO CARRIER"
ABORT VOICE
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
"" ATZ
OK ATDT_NumeroDeTelefono_
CONNECT \d\c
ogin _NombreUsuario_
assword _Contraseña_
Las 2 ultimas lineas son las que definen el nombre del usuario y la contraseña y cuando deben ser enviadas (después de recibir «ogin» y «assword» respectivamente. No se suelen poner las primeras letras de dichas palabras para no preocuparse de que unos servidores las envíen en mayúsculas y otros en minúsculas).
Este script suele estar en un fichero en el directorio
/etc/chatscripts
, y, suponiendo que el fichero de script se llama
provider
, puede ser llamado con la linea siguiente:
/usr/sbin/chat -v -f /etc/chatscripts/provider
En caso de que el servidor de acceso al que nos conectamos requiera PAP
como protocolo para realizar la autentificación de nuestra conexión,
durante el establecimiento de la sesión LCP de PPP se negociará dicho
protocolo, es decir, una vez establecida la conexión de chat
y
lanzado pppd
, será este quien realice el envio del nombre de
usuario y clave, buscando en el fichero /etc/ppp/pap-secrets
los
valores que debe usar. Este fichero tiene acceso de lectura y escritura
solo para root
, de modo que nadie que no sea el administrador vea su
contenido con las claves.
PAP es un protocolo poco seguro, ya que envía la clave sin cifrar, como texto libre, por lo que puede ser leída por alguien que analice la linea de transmisión.
Ejemplo de contenido de /etc/ppp/pap-secrets
:
_NombreUsuario_ * _Contraseña_
En caso de que el servidor de acceso al que nos conectamos requiera CHAP
como protocolo para realizar la autentificación de nuestra conexión,
durante el establecimiento de la sesión LCP de PPP se negociará dicho
protocolo, es decir, una vez establecida la conexión de chat
y
lanzado pppd
, será este quien realice el envio del nombre de
usuario y clave, buscando en el fichero /etc/ppp/chap-secrets
los
valores que debe usar. Este fichero tiene acceso de lectura y escritura
solo para root
, de modo que nadie que no sea el administrador vea
su contenido con las claves.
CHAP es un protocolo más seguro que PAP, ya que nunca se envía la clave por la linea de transmisión sin cifrar. En su lugar, el equipo que realiza la autentificación envía un identificador aleatorio con el que codificar la clave en el lado del cliente para después enviar esta clave codificada.
Ejemplo de contenido de /etc/ppp/chap-secrets
:
_NombreUsuario_ * _Contraseña_
Es posible que un proveedor de acceso en ocasiones utilice PAP y en otras ocasiones utilice CHAP, por lo que es común definir en ambos sitios el usuario y la clave a utilizar.