Ankalima


Por qué vendemos tan barata nuestra libertad ?? Por qué no perseguimos nuestros sueños con más ahínco ?? Por qué no amamos más ??

sábado, noviembre 12, 2005

PPP en portátil sin puerto Serie en FreeBSD 5.3 RELEASE



INTRODUCCIÓN

Si lo que buscas es solucionar el tema rápidamente y poner a trabajar tu módem, puedes bajar directamente a la sección CONECTANDO HARDWARE y pasar de mis preferencias y filosofías. Pero ten en cuenta que de no ser por ellas, nunca me hubiese molestado en escribir este manual tan detallado.
No os avergonceis y al grano, es natural, a todos nos gusta y a veces los preámbulos sobran :-)

OBJETIVO

Configurar una conexión a Internet (¡¡segura!!) en un PC portátil, sobre una línea telefónica básica "RTB", disponiendo de una tarifa plana o ondulada.

ANTECEDENTES Software y hardware

La máquina no dispone de puerto serie ni diskettera (dos elementos condenados a desaparecer más bien pronto, desplazados por los puertos USB y las Pen-Drive). Además, como la mayoría de los portátiles se vende con un sistema operativo (en adelante OS) preinstalado y un módem PCI ensamblado para ese OS. Para distinguirlos de los módem "no capados" les llamamos "winmodem". Esto es así debido a la presión comercial, mediática y monopolista de algunos fabricantes que persiguen por cualquier medio, que lo "suyo" sea un estándar del que nadie pueda prescindir. Por lo demás el resto de hardware del PC es de buena calidad y las marcas de reconocido prestigio.
El vendedor es muy conocido y nos ofrece un precio razonable y una buena garantía post venta. Ahora veremos como todo lo demás tiene solución

FILOSOFÍA

Para conseguir el objetivo que nos planteamos, tenemos que conseguir un sistema operativo estable, seguro, actualizable y barato. Un módem externo, nos vale perfectamente el que tenemos para el PC de sobremesa. Los sistemas operativos "serios" son caros nuestra máquina no es un cajero automático (vamos a suponer que nosotros tampoco somos banqueros, por mi parte ni siquiera bancario :-). Además queremos instalar programas que usamos a diario tanto para el trabajo como para el ocio. Optaremos por uno de esos OS de código abierto, libre, o las dos cosas y si es posible sin invertir mas de lo que ya pagamos por el OS que nos vendieron, a nuestro pesar.
Teemos en Internet mucho donde escoger. Más de una docena de distribuciones GNU+Linux* completas (Slackware, Debian, SuSe, Gentoo, Kanopix, Mandriva, Fedora....), un Sun Solaris (Solaris 10) y varias distribuciones muy completas *BSD (FreeBSD, NetBSD y Open BSD). Algunas empresas como IBM (Aix), SCO (Unixware), Novel (Netware) y otras, facilitan sistemas operativos de forma gratuita a estudiantes y otros colectivos (para fines no comerciales).

En honor a la verdad hay que decir en este punto que, cerca del 80% de los "servidores" en producción en todo el mundo, corren alguno de los OS ante-dichos y algunas versiones comerciales de Linux y UNIX* que no he nombrado, por esa razón, porque son comerciales y sus empresas se encargan de publicitarlos cuando y como quieren. Un 15% ejecutan otros sistemas operativos UNIX*, AS/400, AS/390 y otros. Me refiero a empresas como Google, Yahoo, o a algunas más conocidas como ECI, BSCH, BBVA.Para nuestra máquina hemos escogido FreeBSD RELEASE 5.3, porque es posiblemente el que dispone de más software (entre los *BSD), varios métodos de gestión de ese software, y es el menos complicado de los *BSD. Los niveles de seguridad (altos ya en una instalación básica), son muy configurables y la estabilidad de su kernel es proverbial y de sobra conocida. El método de licenciamiento del software que se desarrolla en la Berkeley Software Distribution (departamento de desarrollo de software de la Universidad de California en Berkeley), es el menos restrictivo de todos los que conozco. Podría haber escogido cualquier otro OS de los mencionados
más arriba, pero este es de los que menos documentación tiene en castellano, y de esta forma cotribuyo quizá, a que otros lo instalen sin miedo a no poder acceder a Internet y por lo tanto a que se popularice un buen OS.

MÉTODO

No podemos conseguir que nuestro vendedor se quede con el winmodem y nos devuelva el importe (además el importe es irrisorio, por eso las empresas ensambladoras los montan), pero si podemos conseguir que nos devuelvan el importe de ese sistema operativo de código cerrado, alto precio, alta instabilidad y altísima vulnerabilidad que nos colarían si no conociésemos las leyes. Esto es, lo que pone en la letra minúscula. O no tuviésemos otros OS para sustituirlo. Pero ese no es el caso, así que sin desprecintar el estuche del CD, seguimos los pasos encontraremos en tantas páginas de Internet como documentos para renunciar a la religiones impuestas en la más tierna infancia (que es otra forma de cercenar la poca libertad que nos dejan los miles de leyes que nuestros políticos nos regalan cada día). Con ese dinero podemos adquirir unos cientos
de CDs (sin canon para la SGAE) o simplemente gastarlo en cerveza. Seguro que encontráis algo que necesitáis, lo importante es que ese dinero no vaya a parar al bolsillo del hombre más rico del mundo. Para comportarse como Albert Capone no da la talla.

Acto seguido hacemos una operación de limpieza en nuestro nuevo disco duro (en adelante HD), eliminando de esta forma cualquier otro "malware", "virus", "spiware", "troyano" y demás código maligno. Procedemos a la instalación del nuevo OS, para lo cual recomiendo ayudarse del
FreeBSD Handbook. Si encontramos algún amigo con experiencia estas latitudes de los universos libres y se presta a echar una mano (esto no es lo más fácil precisamente), acabaremos antes y nos podremos dedicar a disfrutar de toda la potencia y blindaje de nuestra nueva máquina y a conocer el nuevo OS.

CONECTANDO HARDWARE

Solucionamos la conexión entre PC y módem por medio de un latiguillo que dispone de un conector USB en uno de los extremos y un conector Serie en el otro, junto a un "chip" que se encarga de la compatibilidad de los dos puertos. Existen en el mercado diferentes marcas que comercializan estos latiguillos con diferentes chips. Usaremos uno de la marca Taurus con un chip soportado en los OS *BSD, Sun Solaris, Irix, Linux y Mac OS X, entre otros.

El módulo necesario para manejar este latiguillo, está escrito por la empresa Magic Control y se llama "umct". Lo añadimos al archivo "/boot/loader.conf" como cualquier otro módulo que necesitemos que se cargue en el arranque. La sintaxis es "umct_load="YES", justificado a la izquierda del fichero. Al arrancar de nuevo la máquina hacemos un "dmesg -a" y vemos una línea como esta:

"ucom0: USB-RS232 Interface Converter USB Ver1.2 Device, rev 1.10/1.03, addr 2"

El kernel al disponer del módulo "umct" lo carga y devfs o devd crea en /dev el dispositivo especial de dispositivo"ucom0", que es como un nuevo puerto serie

# ls -l /dev/ucom0 30 crw-rw---- 1 uucp dialer 241, 128 Oct 30 02:32 /dev/ucom0

Lo utilizaremos en lugar del clásico "/dev/cuaa0", a la hora de configurar nuestra conexión a Internet.

SOFTWARE COMPROBACIONES PREVIAS

Vamos a usar el método ppp-user en lugar de pppd. Queremos que cualquier usuario al que autoricemos pueda establecer una conexión en modo "userland", esto es, sin que el kernel este ejecutando ningún demonio. En el momento que un usuario ejecuta "ppp", devfs o devd creará un fichero especial de dispositivo llamado "tun0 o tun1" que utilizará el kernel como un túnel por el que salir al exterior, en este caso a Internet. El dispositivo aparecerá sólo con listarlo.

# ls -l /dev/tun0 #108 crw------- 1 uucp dialer 225, 0 Oct 30 02:55 /dev/tun0

OTRAS MEDIDAS PARA PREVENIR PROBLEMAS

* LÍNEAS que deben crearse o modificarse en el "/etc/rc.conf"

- hostname="blade.runner" <---- debe de existir un nombre de host con esta sintáxis

- outer_enable="NO" <---- probar a ponerlo en YES cuando el ppp se queje de que no puede
establecer las rutas de la red

- sendmail_flags="-bd"

- named="NO" <----- o SI .. pero entonces no es necesaria la línea "enable dns", en el "/etc/ppp/ppp.conf"

* VERIFICAR el contenido de estos archivos

- Asegurarse de que en el "/etc/host.conf" existen estas lineas:

hosts
bind

(esto es para versiones de FreeBSD anteriores a las 5.x, aunque por cuestiones de compatibilidad
también puede estar en versiones posteriores a las 5.x)

- Verificar que en el "/etc/nsswitch.conf" existe esta linea:

hosts: files dns

(este fichero sustituye al "/etc/host.conf" en versiones posteriores a las 5.x)

- Comprobar que el fichero "/etc/hosts" contiene algo como esto:

::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain blade.runner blade

- Hacemos "cat etc/resolv" para ver si contiene las IPs de los DNS de nuestra ISP (si están, no será necesario que en el "/etc/ppp.conf" pongamos la entrada "enable dns", pero si la ponemos no pasa nada, simplemente al establecer la conexión se añadirán las nuevas IPs a las que existan). La sintaxis del archivo es esta:

nameserver 80.58.61.250
nameserver 80.58.61.254

- Aunque en "/var/log/messages" se puede encontrar bastante información en tiempo real
ejecutando en otro terminal: "tail -f /var/log/messages" podemos hacer más.

- Verificar que el archivo "/etc/syslog.conf" contiene estas líneas. Así se habilitará el ppp.log.

!ppp
*.* /var/log/ppp.log

**** Y AHORA SÍ VAMOS A CREAR LOS ARCHIVOS NECESARIOS EN LOS LUGARES ADECUADOS ****



- Debemos de entrar en el directorio "/etc/ppp/". Si existe allí un archivo llamado, "ppp.conf"
, lo renombramos como "ppp.conf.OLD" y lo dejamos como respaldo (esto lo haremos siempre que vayamos a sustituir un archivo de configuración).

- Creamos un archivo "ppp.conf" con nuestros datos particulares en las líneas que a
continuación voy describiendo. Es muy importante respetar el sangrado, las entradas que terminan en : (dos puntos), deben de empezar en la primera columna de la izquierda (justificación izquierda), el resto deben de comenzar separadas de la primera columna de la izquierda por un mínimo de dos espacios o una tabulación.

- Descripción línea a línea del contenido del archivo "ppp.conf". Las líneas o grupos de palabras precedidas por el caracter # son comentarios, los programas que leen estos archivos no las tendrán en cuenta y seguirán leyendo y en su caso, interpretando las líneas que no vayan precedidas de #. Las líneas que debe de contener el archivo son las que he numerado, de la primera a la decimosexta (aunque no todas son imprescindibles)

default: <---- primera línea obligaroria
 set log Phase Chat LCP IPCP CCP tun command <---- segunda línea
 para que se haga el log
 set log phase tun <---- sustituye a la anterior cuando todo vaya bien y hayais probado
 la conexión durante un tiempo prudencial sin experimentar problemas
 ident user-ppp VERSION (built COMPILATIONDATE) <---- tercera línea
 set device /dev/ucom0 <---- cuarta línea.. identifica el puerto serie
 este dispositivo es especial.. generalmente sería el de un puerto serie normal tipo
 /dev/cuaa0
 set speed 115200 <---- quinta línea.. se refiere a la velocidad del modem, probamos
 con la máxima
 set speed 38400 <---- probar con esta si la anterior falla
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT OK-AT-OK ATE1Q0
 OK \\dATDT\\T TIMEOUT 40 CONNECT"

 la anterior es la sexta línea y corresponde a la cadena de marcado y
 mejor si va en una sóla línea
 set timeout 180 <---- séptima línea
 enable dns <---- octava línea.. no es obligatoria si tenemos las IPs de los DNS en
 "/etc/resolv.conf"
 allow users user1 user7 <---- novena línea en la que habilitamos los usuarios
 que pueden ejecutar ppp, además deben de estar en el grupo "network"

<---- línea de separación.. ppp y chat no tienen en cuanta las líneas en blanco

isp: <---- décima línea.. es el nombre de la conexión, poner aquí la palabra que se prefiera
 set phone "908200000" <---- decimoprimera línea, escribir
 el número de teléfono siempre entre comillas
 set authname nombre@usuario <---- decimosegunda línea
 sustituir nombre@usuario, por el nombre que nuestra ISP nos haya adjudicado
 set authkey password <---- decimotercera línea
 sustituir password por la clave verdadera
 accept CHAP <---- decimocuarta línea
 no es realmente necesaria puesto que aceptará la autenticación CHAP o PAP
 pero no está demás decirle cual preferimos
 set timeout 0 <---- decimoquinta línea
 si no hay actividad en los segundos que figuren aquí, el ppp cortará la conexión.
 Lo fijamos a 0 para que no haya límite alguno
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 <---- decimosexta línea

- Este archivo debe estar en el directorio "/etc/ppp/" con, permisos 644

INICIO DE LA CONEXIÓN

-Una vez hecho esto, ya es posible iniciar la conexión, se puede hacer de varias formas.. consultar "man ppp" y "man chat" para ver otras posibilidades. En general como usuario bastará con ejecutar: ppp, de inmediato responderá :

usuario@host% ppp
Working in interactive mode
Using interface: tun0
ppp ON host>

- Como vemos se coloca en modo interactivo (es decir, esperando órdenes) y devuelve el prompt. Introducimos entonces la orden: dial isp (isp se corresponde con el nombre que adjudicamos a la conexión en el fichero "/etc/ppp/ppp.conf/", justo antes del nº de teléfono).

usuario@host% ppp
Working in interactive mode
Using interface: tun0
ppp ON host> dial isp
ppp
Ppp
PPp
PPP

- Si todo va bien, el módem marcará, se producirá la autenticación del usuario que figura en el archivo "ppp-conf" con la clave que pusimos también en ese archivo y aparecerán esas tres líneas finales como, ppp Ppp PPp PPP. En este punto la conexión se ha realizado con éxito. Si hemos llegado hasta aquí con este resultado, ya podemos comunicarnos con el resto del mundo.

- Para cerrar la conexión introducimos la orden close y a continuación quit all para salir del modo interactivo de ppp

usuario@host% ppp
Working in interactive mode
Using interface: tun0
ppp ON host> dial isp
ppp ON host>
Ppp ON host>
PPp ON host>
PPP ON host>close
PPp ON host>
Ppp ON host>
ppp ON host>quit all
usuario@host%


CRÉDITOS

- Es obligado escribir aquí que, todo lo que se refiere a la configuración de la conexión, es decir, lo que figura por debajo del título "CONECTANDO HARDWARE", se puede encontrar en otros documentos existentes en la red, como en este elaborado por Koji
que figura en la web eldemonio.org, una página en español para los amigos y usuarios de los *BSD. Yo sólo he añadido las modificaciones que me han parecido necesarias para el caso muy específico de este usuario y de esta máquina. Por lo tanto, leyendo detenidamente el FreeBSD Handbook y los manuales de los programas ppp y chat, es posible escribir los mismos archivos que figuran en este documento y llegar a similares resultados, sin haberlo visto nunca. Y de paso ahorrarse todo el parloteo acerca de sistemas operativos, "mafias" comerciales y demás filosofía.

Salute fratres

3 comentarios:

Anónimo dijo...

gracias por escribir , tu articulo , para los pocos que usamos estos sistemas operativos.
Manolo

Anónimo dijo...

Nice site!
[url=http://crjszmon.com/kojl/qhfd.html]My homepage[/url] | [url=http://xfilxfub.com/eofp/tmsw.html]Cool site[/url]

Anónimo dijo...

Well done!
http://crjszmon.com/kojl/qhfd.html | http://nkokcabk.com/mdee/mxzw.html