The Inside Out


Este sitio La web

¿Sufriste un ataque de generosidad y quieres regalarme algo? ¡Gracias! Fíjate en mi lista de deseos en Amazon.

Hai avuto un attacco di generosità e vuoi regalarmi qualcosa? Grazie! Controlla nella mia lista dei desideri su Amazon.

Conectándonos a Internet

Para conectarnos a Internet en Linux podemos tomar el camino fácil o el difícil. La ventaja del fácil es que es, bueno, fácil. Las ventajas del difícil es que no requiere tener un entorno gráfico particular, es mucho más rápido, consume menos recursos del sistema, y nos permite aprender bastante. Esto es una traducción de este artículo de Tom Berger, un ex empleado de Mandriva Linux.

El modo fácil implica usar el programa kppp para KDE o gnome-ppp para GNOME. En estos días, gnome-ppp no está disponible y se encuentra en una fase de replanteo. Por lo tanto, la herramienta fácil de usar y gráfica es kppp. No explicaré cómo usarlo porque tiene una excelente ayuda propia, que deberías estar consultando si es tu caso. Kppp es una herramienta excelente, pero al estar integrada al entorno KDE, demora en cargar si uno usa otros administradores de ventanas (por ejemplo Blackbox). Pasemos al modo difícil entonces. Voy a ilustrar con la conexión a un proveedor ficticio, pero por supuesto pueden llamar a los archivos como quieran, siempre que sean consistentes.

Linux conecta a la internet usando dos programas: chat, que maneja la "charla" entre nuestro módem y el de nuestro proveedor de internet; y pppd, que maneja la autenticación y la conexión una vez que chat terminó de "presentarnos".

Vamos a editar varios archivos, y requeriremos privilegios de admin, por lo que vamos a abrir varias consolas, y en ellas tipearemos su e ingresamos el password del administrador del sistema. Ahora, en ellas editaremos los siguientes archivos:

  • /etc/ppp/PROVEEDOR
  • /etc/ppp/peers/PROVEEDOR
  • /etc/ppp/pap-secrets
  • /etc/ppp/options
  • /etc/ppp/resolv.conf
  • /usr/sbin/ppp-on
  • /usr/sbin/ppp-off

Si los archivos no existen, créenlos. Empecemos entonces.

/etc/ppp/peers/PROVEEDOR

En este archivo escribimos:

/dev/ttyS[0,1,2,3] 115200 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/PROVEEDOR'
noauth user usuario

En la primera línea le decimos a pppd (el programa que maneja el módem) que el mismo está en /dev/algo (puede ser también /dev/modem), que tiene que conectarse a la velocidad de 115200 baudios por segundo si puede (si no parece andar, prueben con 57200, especialmente en módems de menos de 56K); y que el control de flujo de datos lo hace el hardware.
La segunda línea dice que se conecte usando el programa <chat> con algunas opciones, y que el archivo que chat debe usar es /etc/ppp/PROVEEDOR. Por último, decimos en la tercera línea que pppd NO debe pedir autenticación del server, sino que tiene que darla: somos nosotros los que tenemos que identificarnos, con el usuario que tengamos. Pasemos al archivo que usa el programa chat.

/etc/ppp/PROVEEDOR

El nombre de archivo que usemos acá debe ser el mismo que usamos para llamar al archivo de arriba. En este caso, PROVEEDOR.

ABORT "NO CARRIER" #Cortar la conexión si no hay señal del otro lado.
ABORT "NO DIALTONE" #Cortar la conexión si no tenemos tono.
ABORT ERROR #Cortar la conexión si hay errores en la misma.
ABORT "NO ANSWER" #Cortar la conexión si no responde el servidor.
ABORT BUSY #Cortar la conexión si el servidor da ocupado.
ABORT "Username/Password Incorrect" #Cortar la conexión si el usuario o el password no coinciden.
TIMEOUT 70 #En mi caso es esencial un timeout largo, de 70 segundos. YMMV.
"" +++ATZ OK
ATM0L0 OK
ATX3 OK #Cadenas de inicio del módem.
ATDT1234567 #Conectar al número del servidor.
CONNECT "" ˜--"" #Pasar la conexión a pppd.

Si quieren usar estas cadenas de conexión, copien lo que está a la izquierda de los # en cada línea. Lo que está a la derecha son comentarios. Las opciones de módem que uso son:

  • ATZ OK equivale a decir "Hola, soy un módem", y que respondan "Todo bien". Esta es la opción mínima en la mayoría de los módems.
  • ATM0L0 OK es para que el módem baje el volumen.
  • ATX3 OK es para que el módem no espere al tono de marcado... Tengo una línea control que altera el tono normal.
  • Pueden agregar una línea de TIMEOUT N (en segundos) si la conexión se corta porque el server tarda demasiado en identificar nuestro usuario. Iría al principio del archivo. Por ejemplo, TIMEOUT 20

Como verán, el archivo consiste de pares pregunta-respuesta, separadas por espacios. La cadena ˜-- funciona para hacer que el servidor nos conecte después de identificarnos. Asegúrense de que no quedan líneas vacías en el archivo, o dobles espacios; y borren los comentarios que pongo (lo que va a la derecha de los símbolos #). Si su proveedor no usa acceso con PAP o CHAP (raro, pero...), y en cambio prefiere una autenticación por terminal, agreguen antes del segundo par de comillas esto:

ogin:--ogin: usuario
word: password

Si ven que en lugar de las palabras login y password se usan otras, pongan eso (por ejemplo, suario:--suario: y lave:--lave: , o name:--name: si la palabra es username). El escribir suario:--suario: indica a pppd que busque luego de CONNECT la cadena "suario:" dos veces, por si acaso. Si el acceso en cambio es con el protocolo CHAP, lo único que tienen que cambiar es usar un archivo /etc/ppp/chap-secrets en lugar de /etc/ppp/pap-secrets.

Asegurando la conexión

Dado que la conexión por defecto es legible por todo el mundo, y sabiendo que esto es una pésima idea, vamos a ejecutar lo siguiente:

chmod 640 /etc/ppp/PROVEEDOR && chown root:pppusers /etc/ppp/PROVEEDOR

Ahora sólo el administrador del sistema y los miembros del grupo pppusers pueden leer el archivo (agreguen su usuario al grupo), y sólo el admin puede editarlo.

/etc/ppp/options

Aquí se guardan opciones generales de pppd, que cualquier conexión debería tener, independientemente del servidor al que nos conectamos. Un archivo options típico es éste:

lock
defaultroute
noipdefault
idle 1200
usepeerdns
  • lock hace que pppd cree un archivo para que nada más use el módem durante la conexión.
  • defaultroute hace que se use el servidor como ruta de acceso a Internet.
  • noipdefault hace que pppd acepte los números de IP que nos pase el proveedor.
  • usepeerdns hace lo mismo para los números de DNS.
  • idle N (en segundos) cuelga la conexión luego de n segundos sin flujo de datos.

Hay muchas otras opciones posibles, que descubrirán con el comando man pppd. Si su conexión no funciona, y no saben por qué, prueben alguna. En particular, uso

novj

que sirve para deshabilitar un tipo de compresión (de Van Jacobson) en el tráfico de datos. Mientras menos opciones usen, mejor, pero no saquen las que puse al principio (salvo tal vez idle n) si no saben qué hacen.

/etc/ppp/pap-secrets (o chap-secrets)

La sintaxis en estos archivos es la misma, y es algo así:

# Secrets for authentication using [PAP|CHAP]
# client     server   secret         IP addresses
usuario * password *

Pongan todos los pares que tengan si van a usar más de un proveedor. Pppd prueba cada uno. Los asteriscos son para decir a pppd que acepte lo que el servidor nos envía.

/etc/resolv.conf

Aquí pondremos los DNS que nos manda el servidor. No debieran ser necesarios, pero si notan que se conectan y no pueden acceder a sitios por su nombre pero sí por su dirección IP (por ej. pueden acceder a 200.68.222.254 pero no a www.PROVEEDOR.com), entonces editen este archivo y en él escriban uno o dos servidores DNS:

domain PROVEEDOR.com
nameserver 123.456.789.0
nameserver 456.789.123.0

/usr/sbin/ppp-on

En realidad, no hace falta que se llame ppp-on, sólo que esté ahí y que sea ejecutable. Si quieren usar scripts para varios proveedores, deberán usar varios archivos. Podemos llamar a uno /usr/sbin/PROVEEDOR, etc. Mi archivo ppp-on dice:

/usr/sbin/pppd call PROVEEDOR

/usr/sbin/ppp-off

Lo mismo que el anterior. Este sólo dice:

killall pppd

Testeando la conexión

Como root, ejecuten el comando ppp-on, o pppd call PROVEEDOR. La conexión debería funcionar. Chequeen los archivos por errores de tipeo primero. Usen uno de los números de IP que su proveedor puso en /etc/resolv.conf (recuerden que usamos las opciones usepeerdns y noipdefault) para hacer ping:

ping IP-del-proveedor

Eso debería devolver algo como esto:

PING número-IP (número-IP): 56 data bytes
64 bytes from número-IP: icmp_seq=0 ttl=39 time=239.2 ms
64 bytes from número-IP: icmp_seq=1 ttl=39 time=230.0 ms
64 bytes from número-IP: icmp_seq=2 ttl=39 time=230.0 ms

párenlo usando CONTROL-C y prueben ahora hacer:

ping PROVEEDOR.com

Que debería dar un resultado parecido. Si no responde, agreguen los DNS de su proveedor a /etc/resolv.conf y prueben de nuevo la conexión.

Y eso completa el testeo de la conexión.

Conectándonos como usuarios

Dado que conectarse a internet como root es algo que _NO_ queremos hacer, vamos a hacer a pppd accesible a los usuarios. Para hacer que un determinado grupo de usuarios pueda usar pppd usamos el comando siguiente:

chmod 4750 /usr/sbin/pppd && chown root:pppusers /usr/sbin/pppd

Lo que hace que el acceso a pppd sea posible para los usuarios incluídos en el grupo pppusers. Agreguen su usuario al grupo pppusers (se hace editando como root el archivo /etc/group o con alguna herramienta gráfica del tipo userdrake o linuxconf. En particular, les recomiendo no usar Linuxconf, pero si no les queda otra... Editen a mano. Si lo usan, tendrán que hacer los pasos de arriba (chmod etc.) con Linuxconf.

Una vez hecho esto, salgan de la sesión, loguéense de nuevo y prueben a conectarse, usando:

/usr/sbin/pppd call PROVEEDOR

o ppp-on, o como hayan llamado al archivo, que deben hacer ejecutable (again, como root, usen:

chmod 4750 /usr/sbin/ppp-on && chown root:pppusers /usr/sbin/ppp-on

y

chmod 4750 /usr/sbin/ppp-off && chown root:pppusers /usr/sbin/ppp-off

Los archivos deben estar en el directorio /usr/sbin. Para hacer un poco más fácil el tipeo, creen un par de alias en su archivo /home/usuario/.bashrc:

alias ppp-on='/usr/sbin/ppp-on'alias ppp-off='/usr/sbin/ppp-off'

o

alias ppp-on='/usr/sbin/pppd call PROVEEDOR'
alias ppp-off='killall /usr/sbin/pppd'

(esto elimina la necesidad de crear los archivos ppp-on y off, claro).

Creen un par de accesos directos, o atajos de teclado, o usen gkrellm o el applet de GNOME para conectarse con ppp-on y off.

Conexión automática

En Windows, si uno hace click en un enlace, o ingresa una dirección en un navegador, la conexión empieza automáticamente. Para lograr este efecto tenemos que editar el archivo /etc/ppp/options agregando lo siguiente:

demand
nopersist
192.168.0.3:192.168.0.4
ipcp-accept-remote
ipcp-accept-local
idle 30
holdoff 5

Lo que estamos haciendo es darle a la PC dos números falsos de IP (uno local y uno externo) que habilitan a pppd para hacer la conexión de esta manera. holdoff 5 hace que pppd vuelva a marcar tras 5 segundos si hubo algún error la primera vez. la opción nopersist hace que se eviten muchas conexiones indeseadas. Idle 30 hace que la conexión se corte luego de 30 segundos sin flujo de datos. Asegúrense de que esos dos números de IP NO existen en su red.

Ahora pueden agregar su comando pppd al archivo /etc/rc.d/rc.local y reiniciar para probar esto (al iniciar, pppd no debería conectarse sino setear todo y esperar a que haya un pedido de conexión).

Este sistema no es todo lo confiable que uno quisiera. A veces puede que intente conectarse solo. Testéenlo bien antes de darle luz verde.

Problemas

Si no parecen poder conectarse, lo primero a hacer es ver lo que el sistema nos está diciendo. pppd graba su output a /var/log/messages, así que pueden leerlo como root con un editor o usar el comando tail -f /var/log/messages para verlo mientras usan la conexión. Pero en el caso de debuguear, conviene usar un archivo aparte para guardar los mensajes. Para eso:

  1. Graben una copia de seguridad del archivo /etc/syslog.conf
  2. Agreguen esto a ese archivo:
    local2.* /var/log/ppp daemon.* /var/log/ppp
  3. Corran
    touch /var/log/ppp
  4. Usen pppd en modo debug:
    /usr/sbin/pppd debug call PROVEEDOR
    Eso graba el log en /var/log/ppp
  5. Una vez que todo anda, devuelvan syslog.conf a su estado original.

Problemas típicos

El módem no reacciona. Han puesto el /dev/algo equivocado. Chequeen el archivo /etc/ppp/peers/PROVEEDOR. Controlen también los cables, y asegúrense, antes, de que su módem es soportado en Linux.

El módem reacciona pero no marca. El log indica Connect script failed. Pueden haber errores en su archivo de chat (/etc/ppp/PROVEEDOR). Pueden ser también problemas de la línea telefónica.

El módem marca pero cuelga antes de conectar. Chequeen errores de tipeo en los scripts, y asegúrense de no tener opciones superfluas en /etc/options.

Para otros problemas, lean el PPP-HOWTO o el PPP-COMO (que deberían venir en sus discos de instalación pero que de todos modos pueden googlear) y también man pppd. Consúltenme también.

Gran parte de este texto se basa en una serie de artículos escritos por Tom Berger de Mandrakesoft. Están bajo la GNU Free Documentation License [gnu.org]. Gracias a Tom y Mandrakesoft por todo lo que me han dado. Esta traducción es mi manera de agradecerles.

Contactarme - Contattarmi

Ningún dato es necesario, salvo antispam y el texto del mensaje.

Nessun dato è necessario, aparte antispam e il testo del messaggio.

Si tienes problemas con el formulario, escríbeme a la dirección de correo en la imagen:

Se hai problemi usando il form, scrivi all'email nell'immagine:

mailto image

Nombre / Nome
Email
Subject
Anti Spam: 2 + 2 =
Texto / Testo