Implementar un cyber cafe con GNU/Linux y Software Libre

Imagen de RazaMetaL

Este pequeno manual indica como administrar un cyber cafe usando software libre en la distribucion Debian Etch y varios terminales de bajos recursos.

[b]Que es lo que planeamos hacer?[/b]
Controlar el consumo monetario de Internet en las terminales, una maquina con mejores caracteristicas de hardware la usaremos como servidor grafico para las terminales, ademas esta maquina va a correr CUPS para poder imprimir, asterisk para hacer llamadas internacionales y a2billing para administrar la facturacion del gasto telefonico y ccl para administrar las pcs.

Para implementar un cybercafe requerimos de:

1 servidor
n terminames
n dispositivos VoIP

En mi caso mi servidor es:

Procesador : Pentium IV 2.8Ghz
RAM : 1GB
Disco Duro : 40GB

Y tengo varios terminales de las siguientes caracteristicas:

Procesador Pentium I 133Mhz
Disco duro 2GB
1 Interfaz de Red
RAM 32MB


Procesador Pentium III 733Mhz
Disco duro 10GB
1 Interfaz de Red
RAM 128MB

Para hacer VoIP usaremos cualquier dispositivo que soporte SIP o IAX2 y que se pueda registrar con Asterisk.

Sofware a Utilizar:

Debian GNU/Linux
TCOS
ccl
asterisk
a2billing
cups
gnome

[b]Instalacion de TCOS.[/b]
Vamos a instalar TCOS para administrar eficientemente y sin dificultad los terminales, TCOS es un proyecto libre que crea un micro sistema operativo para ser cargado por NFS/PXE en las terminales. Para su implementacion exitosa debemos tomar en cuenta varios detalles como por ejemplo los terminales deben tener de 24 a 32MB de RAM para poder botear via NFS y minimo 64MB para botear usando PXE.

TCOS permite a mis terminales de bajo performance botear por red y descargar una imagen del kernel via NFS, a las terminales que tiene mas de 64MB les va a permitir usar PXE. Una ventaja de usar NFS es que puedes usar terminales bastante viejos, pero una desventaja es que agregan carga a la red.

Características de TCOS

* Arrancar en modo PXE (necesita al menos 64 MB de RAM)
* Arrancar por medio de NFS (necesita entre 28 y 32 MB de RAM)
* Sonido en red en aplicaciones como JClic o Firefox.
* Splash de arranque (al estilo ubuntu)
* Auto configuración de las X (discover y configurexorg)
* Soporte para tarjetas de sonido ISA o PCI
* Varios servidores de sonido (ESound o PulseAudio) sobre ALSA
* Autenticación con las cookies de X-window o usuario y contraseña (shadow).
* Soporte para aplicaciones locales (navegadores links2, dillo, FreeNX ...)
* Posibilidad de instalar Debian o Ubuntu en terminales (debootstrap, install-system.sh)
* Monitor de equipos y realización de varias acciones (TcosMonitor)
* Asistente gráfico (opcional) para la construcción de las imágenes de arranque (TcosConfig)
* Uso de dispositivos remotos de manera sencilla (USB, cdrom y disquetes) (TcosDevices)
* Control remoto de los niveles de audio de la tarjeta de sonido (TcosVolumeManager)
* Personalización de algunos valores para cada equipo (TcosPersonalize)
* Ahorro de energía. Gracias a una pequeña aplicación es posible reiniciar, apagar o mandar un aviso en cualquier momento y de manera desatendida, muy útil por ejemplo para ponerlo como tarea programada cron

Para instalar TCOS agregamos el repositorio de TCOS en /etc/apt/sources.list, pero antes debemos descargar la llave publica para estos paquetes:


wget http://cls-tcos.forja.rediris.es/repos/mariodebian-pub.key
apt-key add mariodebian-pub.key

Agregamos en /etc/apt/sources.list :

# tcos debian unstable/testing repos
deb http://cls-tcos.forja.rediris.es/repos unstable main
deb-src http://cls-tcos.forja.rediris.es/repos unstable main

Ejecutamos :

aptitude update
aptitude install tcos dhcp3-server atftpd syslinux xfs build-essential module-assistant linux-header-`uname -r` squashfs-source unionfs-source unionfs-tools unionfs-utils aumix

Instalamos unionfs:

m-a a-i unionfs squashfs

Adicionalmente es recomendable instalar los siguientes paquetes:

aptitude install dhcp3-client console-data iftop strace twm xterm grub openbsd-inetd debootstrap libltdl3 x11vnc dropbear alsa-base alsa-utils ltspfs-client ltspfs-server pulseaudio tcosconfig tcos-usplash

Configuramos el servidor DHCP, necesitamos editar /etc/default/dhcp3-server e indicar en que interfaz de red debe escuchar por peticiones DHCP, en este caso es la interfaz eth1:

# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/dhcp3-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth1"

El servidor se puede configurar de dos maneras, para que asigne ips a los equipos conforme se vayan solicitando o configurando la MAC de cada tarjeta de red del Cliente. En este caso de ejemplo requerimos que cada terminal tenga siempre la misma direccion IP, esto para poder luego usar el software de control y facturacion de las terminales con IPs fijas y no dinamicas.

El archivo deberia quedar asi, asumimos que la red del cyber es 192.168.1.0/24 :

#/etc/dhcp3/dhcpd.conf
## Sample configuration file for ISCD dhcpd
##
## Don't forget to set run_dhcpd=1 in /etc/init.d/dhcpd
## once you adjusted this file and copied it to /etc/dhcpd.conf.
##
#
default-lease-time 21600;
max-lease-time 21600;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.254;
option domain-name "razametal.homelinux.org";
option root-path "192.168.1.254:/opt/ltsp/i386";
next-server 192.168.1.254;

shared-network TERMINALES {
subnet 192.168.1.0 netmask 255.255.255.0 {
}
}

group {
use-host-decl-names on;
option log-servers 192.168.1.254;
next-server 192.168.1.154;

host terminal01 {
# Computador No 1
hardware ethernet 00:02:A5:28:1F:76;
fixed-address 192.168.1.1;
filename "pxelinux.0";
option vendor-encapsulated-options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff;
}

host terminal02 {
# Computador No 2
hardware ethernet 00:02:A5:55:83:2A;
fixed-address 192.168.1.2;
filename "pxelinux.0";
option vendor-encapsulated-options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff;
}

host terminal03 {
# Computador No 3
hardware ethernet 00:02:a5:33:f2:ef;
fixed-address 192.168.1.3;
filename "pxelinux.0";
option vendor-encapsulated-options 09:0f:80:00:0c:4e:65:74:77:6f:72:6b:20:62:6f:6f:74:0a:07:00:50:72:6f:6d:70:74:06:01:02:08:03:80:00:00:47:04:80:00:00:00:ff;
}
}

Agregamos en /etc/hosts :

# Para TCOS
192.168.1.1 terminal01
192.168.1.2 terminal02
192.168.1.3 terminal03
192.168.1.254 servidor

Construimos las imagenes de arranque:

m-a a-i squashfs
gentcos -tftp -nbi -nfs -rootfs -allmodules

Revisamos el archivo /var/lib/tcos/tftp/pxelinux.cfg/default el mismo que debe lucir mas o menos asi (tengo kernel 2.6.18-4-686:

## Generated file don't edit, edit /etc/tcos/pxelinux.cfg.tpl instead
## File generated by gentcos on Fri Mar 16 11:52:09 EDT 2007
default tcos
prompt 1
timeout 200
display tcos.msg
F0 tcos.msg
F1 help.msg

label tcos
kernel vmlinuz-2.6.18-4-686
append ramdisk_size=65536 initrd=initramfs-2.6.18-4-686 root=/dev/ram0 boot=tcos quiet splash

label update
kernel vmlinuz-2.6.18-4-686
append ramdisk_size=65536 initrd=initramfs-2.6.18-4-686 root=/dev/ram0 boot=tcos quiet splash installer-update

label nfs
kernel vmlinuz-2.6.18-4-686
append ramdisk_size=32768 initrd=initramfs-2.6.18-4-686-nfs root=/dev/ram0 boot=tcos quiet splash

# other examples
#label tcos-low
# kernel vmlinuz-2.6.18-4-686
# append ramdisk_size=65536 initrd=initramfs-2.6.18-4-686 root=/dev/ram0 boot=tcos quiet discover=0 noautofs noltspfs nosound
#
#label tcos-new-pc
# kernel vmlinuz-2.6.18-4-686
# append ramdisk_size=65536 initrd=initramfs-2.6.18-4-686 root=/dev/ram0 boot=tcos quiet showmodules discover=1

Configuramos el servidor NFS para asistir a terminales de bajos recursos. Como indicaba en unos parrafos al inicio se usa NFS para equipos que tienen de 28 a 32MB de RAM.


aptitude install nfs-kernel-server

Agregamos en /etc/exports :

# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/var/lib/tcos/tftp 192.168.0.0/255.255.255.0(ro,sync,no_root_squash,no_subtree_check)

Ejecutamos:

exportfs -ra

Generamos la imagen:

gentcos -nfs -rootfs

Para que los terminales arranquen por nfs debemos escribir nfs cuando aparezca boot:

boot: nfs

Debemos configurar servidor de fuentes comentando la linea no-listen en /etc/X11/fs/config :

# turn off TCP port listening (Unix domain connections are still permitted)
#no-listen = tcp

Configuramos gdm:

gdmsetup

Seleccionamos la opcion REMOTE, luego cambiamos la opcion REMOTE LOGON DISABLED a PLAIN. Finalmente cerramos gdmsetup.

Ahora arrancamos las terminales y configuramos el bios para que utilizen la red para hacer boot, veremos una pantalla de TCOS y luego nuestro terminal arrancara, podemos configurar desde el servidor que los terminales hagan autologin en gdm con:


tcos-gdm-autologin --configure

Agregamos los usuarios con:

tcos-gdm-autologin --add

Este comando nos mostrara una salida mas o menos asi, he ilustrado el ejemplo agregando tres terminales:

# tcos-gdm-autologin --configure
# tcos-gdm-autologin --add
Please input the common prefix of hosts/users (example host): terminal0
Need network IP Address of thin clients (example 192.168.0): 192.168.1
Number of host/users to generate (number): 3
Start generating from (default 1): 1

I will generate users and hostnames from "terminal01" to "terminal03"
with ip adresses from 192.168.1.1 to 192.168.1.3
and uncompress "/root/skel.tar.gz" as HOME_TEMPLATE

Are you sure you want this? [y/n] y
Adding user: terminal01
useradd: el usuario terminal01 existe
Adding user `terminal01' to group `fuse' ...
Hecho.
IP 192.168.1.1 is in /etc/hosts
Adding user: terminal02
useradd: el usuario terminal02 existe
Adding user `terminal02' to group `fuse' ...
Hecho.
IP 192.168.1.2 is in /etc/hosts
Adding user: terminal03
useradd: el usuario terminal03 existe
Adding user `terminal03' to group `fuse' ...
Hecho.
IP 192.168.1.3 is in /etc/hosts
done.

Si incrementamos terminales podemos realizar el mismo procedimiento las veces que sea necesario.

[b]Instalar CCL:[/b]
CCL es un administrador de Cyber Cafe bastante vistoso. Su instalacion es sencilla al igual que su configuracion.

Para instalarlo necesitamos tener las siguientes dependencias instaladas:

aptitude install libsqlite3-dev libfox-1.6-dev libxml-parser-perl

Vamos primero a instalar la porcion del programa que actua como servidor en nuestro servidor:

wget http://ccl.sourceforge.net/tmp/cclfox-0.7.1-FOX-1.6.tar.bz2
wget http://ccl.sourceforge.net/tmp/libccls-0.7.1.tar.bz2

Instalamos:

cd /usr/src
tar jvxf libccls-0.7.1.tar.bz2
cd libcclc-0.7.1
./configure
make
make install

cd /usr/src
tar jvxf cclfox-0.7.1-FOX-1.6.tar.bz2
cd cclfox-0.7.1
./configure
make
make install

Ejecutamos el servidor con el comando:

cclfox

Si pide certificados ssl debemos hacer lo siguiente:

wget http://ccl.sourceforge.net/tmp/CA.pem -O /home/usuario/.ccl/CA.pem
wget http://ccl.sourceforge.net/tmp/cert.pem -O /home/usuario/.ccl/cert.pem
cclfox

Para instalar el cliente demos hacer lo siguiente:

cd /usr/src
wget http://ccl.sourceforge.net/tmp/libcclc-0.7.1.tar.bz2
wget http://ccl.sourceforge.net/tmp/cclcfox-0.7.1-FOX-1.6.tar.bz2

tar jvxf libcclc-0.7.1.tar.bz2
cd libcclc-0.7.1
./configure -nossl
make
make install

tar jvxf cclcfox-0.7.1-FOX-1.6.tar.bz2
./configure -nossl
make
make install

Ejecutamos el cliente con el comando:

cclcfox

Tambien hay un cliente win32 que se puede utilizar en terminales con el sistema operativo Windows:
[url]http://ccl.sourceforge.net/tmp/client_win32.rar[/url]

El paso siguiente es configurar en el servidor las tarifas por el uso de los terminales. En cada terminal se debe ejecutar al inicio

[b]Instalamos Asterisk:[/b]
En este [url=http://www.ecualug.org/?q=2007/01/14/comos/instalar_asterisk_y_freepbx_2_2_0_en_debian]link[/url] estan los detalles.

Con Asterisk podremos brindar el servicio de llamadas internacionales a bajo costo usando VoIP.

[b]Instalamos A2billing:[/b]
En este [url=http://www.ecualug.org/?q=2006/07/19/comos/instalar_un_sistema_de_facturacion_para_asterisk]link[/url] estan los detalles.

Con a2billing facturaremos el consumo telefonico del Cyber.

Para terminar con la implementacion configuramos los dispositivos de VoIP para que se registren con asterisk.

Ahora estamos listos para abrir el cyber al publico :)

Comentarios

Problema con CCL

Hola a todos.

Quisiera saber como se hace para que el CCL inicie en las terminales con la pantalla bloqueada al reiniciar la PC.

les cuento que l única forma que tuve para hacerlo andar en Ubuntu fue iniciar el server desde consola, no desde línea de comandos con:

sudo cclfox -nossl
de esta forma me permite modificar las tarifas y no se cierra el programa por no tener permisos de escritura en los diferentes archivos.
Si se te cierra el programa cuando inician las terminales o en cualquier otro momento este puede ser tu problema !!!

y en las terminales: cclcfox -host xxx.xxx.xxx.xxx -name xxx -nossl

con esto evito el tema del ssl que me da un error de certificados caducos.
para el inicio del programa en las terminales puse el comando directamente en las opciones de inicio (sistema - preferencias sesiones) sin hacer ningún script pero después de que inicia una vez hay que volver a sesiones y cambiar en la pestaña "sesión actual" el valor de orden por uno mayor al que tenga nautilus , 60 o 70 debería funcionar bien, de esta forma el CCL se inicia después de nautilus sino pasa que cuando aparece el fondo de pantalla desaparece el CCL.
no te olvides de en la última pestaña darle que guarde tu sesión actual una vez hayas hecho este cambio, es fundamental !!

Espero que esto le sea útil a quienes como yo están armando su cibercafé con GNU/LINUX.

y si alguno sabe como iniciar las terminales bloqueadas por favor que lo escriba por aquí que le estaré muy agradecido.

un abrazo

Rubens

Te comento que cambie CCL

Imagen de RazaMetaL

Te comento que cambie CCL por una freeware llamado CBM. El servidor corre muy bien con WINE y me permite controlar pcs windows (si, tengo una para hacer tŕamites del SRI) y GNU/Linux, en los clientes windows hay una version esclavo.exe que trabaja muy bien, para mis terminales gnu/linux uso la versión del cliente CBM para linux el cual bloquea la pantalla desde que inicias la sesión, para hacerlo trabajar es muy sencillo:


/home/pc4/bin/esclavolinux -ip 192.168.0.1 -p 10000 -t 4

En ese ejemplo copié el binario del cliente CBM en /home/pc4/bin/esclavolinux y lo ejecuto al inicio de gnome. El servidor tiene la ip 192.168.0.1 y CBM escucha en el puerto 10000, el -t indica el número de terminal que en este caso es el cuarto. Cada vez que se inicia la sesión el terminal inicia bloqueado :evil:

------------

Antes de preguntar visita el [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

 

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

He visto una aplicación que

Imagen de RazaMetaL

He visto una aplicación que reemplaza al CBM:

[url]http://openlanhouse.org/[/url]

Saludos,

------------

Antes de preguntar visita el [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

 

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Es cierto parece

Imagen de Tonny

Es cierto parece interesante, yo tambien la estaba checando ayer, por esa notica del primer año del ciber argentino con debian, ahi lo utilizan

La razon de porque no se usa

La razon de porque no se usa linux en los cybers es porque muchas personas que administran cybers no es que los administran ni nada… simplemente son un front-end :p

3 cybers que conozco bien cerca de mi casa, los 3 son exactamente la misma situacion: es una señora que no tiene ni la mas MINIMA idea de lo que hace mas alla de darle “clip” a las cosas para dar el internet y ya :p, lo que esta por detras es uno de esos “tecnicos” cuya panacea es el format C:\. Estoy seguro que es el comun denominador of web hosting services.

Si lo que saben hacer es eso, y para ellos es mucho mas facil formatear cada mes e instalar todo… para que “complicarse” la vida :p

Creo que no les importa dar un buen servicio, sino obtener dinero y mas nada… aunque esa practica me parece tonta porque mientras mejor sea tu servicio mas gente va a querer usarlo y mas dinero mas a obtener.

Eso en el caso que tu mismo administres tu propio cyber, en caso que sea uno de esos cybers “front-end”, al que le hace mantenimiento a los pcs le conviene que lo llamen cada media hora para pedirle que los formatee porque estan llenos de virus, y por nada en el mundo va a renunciar a ese ingreso seguro.

Es otro de esos casos donde ser mediocre da mas dinero que hacerlo de la forma correcta :p

Páginas