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

Yo quiero montar un ciber

Yo quiero montar un ciber con la version de ubuntu 7.04. Para ello quiero instalar el CCL, en el servidor cuando le doy el "./configure" dentro del libccls me dice que hace falta el paquete "openssl" , lo instalo con apt-get install y me dice que tengo la versión mas reciente. Le doy de nuevo al "./configure" pero me sigue diciendo que lo tengo que instalar. ¿Alguien me puede ayudar?

Por cierto no sabreis si hay algun proyecto como el TCOS para ubuntu ?

gracias

Compilando

Imagen de pepo

Veo que quiere compilar desde el código fuente, para eso las dependencias están en los paquetes de desarrollo (development) y terminan con -dev

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
ICQ : 337889406
GnuPG-key : www.keyserver.net

------------------------------------------------
Linux User Registered #232544
Jabber : pepo@jabberes.org
Ekiga : pepo@ekiga.net
GnuPG-key : www.keyserver.net

se nota que soy nueva en el

se nota que soy nueva en el mundo linux.. jeje
Muchas gracias, ya parece que no me falla ./configure aunque parece que el make no me lo hace bien.
Tuve que instalar build-essential para que me lo ejecutase y cuando hago make despues del ./configure me aparece lo siguiente en el servidor (que no se muy bien lo que significa pero me da la sensación que no lo hace bien):

sudo make
Making all in src
make [1]: Entering directory 'usr/src/libccls-0.7.1/src'
/bin/bas ../libtool --tag=CC --mode=link gcc -Wall -ansi -pedantic -g -02 -o libccls.la -rpath /usr/local/lib -version-info 7:1:7 ccl.lo client.lo data.lo me mber.lo tarif.lo logging.lo util.lo -L/usr/local/lib -lglib-2.0 -lssl -lsqlite3
rm -fr .libs/libccls.a .libs/libccls.la .libs/libccls.lai .libslibccls.so .libs/libccls.so.0 .libs/libccls.so.0.7.1
gcc -shared .libs/ccl.o .libs/client.o .libs/data.o .libs/member.o .libs/tarif.o .libs/logging.o .libs/util.o -L/usr/local/lib /usr/lib/libglib-2.0.so -lssl /usr/lib/libsqlite3.so -Wl,-soname -Wl,libccls.so.0 -o .libs/libccls.so.0.7.1
(cd .libs && rm -f libccls.so && ln -s libccls.so.0.7.1 libccls.so.0)
(cd .libs && rm -f libccls.so && ln -s libccls.so.0.7.1 libccls.so)
ar cru .libs/libccls.a ccl.o client.o data.o member.o tarif.o logging.o util.o ranlib .libs/libccls.a
creating libccls.la
(cd .libs && rm -f libccls.la && ln -s ../libccls.la libccls.la)
make [1]: Leaving directory 'usr/src(liubccls-0.7.1/src'
make[1]: Entering directory 'usr/srclibccls-0.7.1'
make[1]: Nothing to be done for 'all-am'.
make [1]: Leaving directory 'usr/src/libccls-0.7.1'

Perdondad mi ignorancia y muchas gracias

pues parece que me vá en el

pues parece que me vá en el servidor, se vé que ayer estaba espesa, ademas que fué mi primer make!! :D. Lo que me ocurre ahora es en el cliente que cuando le pongo ./configure -nossl me dice que no lo reconoce, sospecho que es alguna libreria que me falta... muchas gracias por ayudarme

Exactamente cual es el

Imagen de RazaMetaL

Exactamente cual es el mensaje de error que te da?

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

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({});

configure: error:

configure: error: unrecognized option: -nossl
Try './configure --help' for more information

me ocurria lo mismo en el servidor cuando intentaba realizar make, ya que me faltaba el paquete essential buil-essential. Supongo que me faltará otro paquete en el cliente ...ya que he probado a instalar ese y cuando hago el ./configure -nossl me da el mismo error.

saludos

Eso significa que -nossl no

Imagen de acl

Eso significa que -nossl no es una opcion valida. Las opciones disponibles para la configuracion de las fuentes las puedes ver con './configure --help', tal y como dice el mensaje de error.

error en el howto

Imagen de acl

De hecho, es un error en el howto: el script de configure del cliente no soporta esa opcion. Ni siquiera existe el string 'nossl' en ningun archivo del arbol de la fuente.

Páginas