Professional Documents
Culture Documents
Índice
Capitulo 1: Instalación
1.1 Conocimientos previos 3
1.2 Requisitos de Hardware 3
1.3 Instalación 3
Fuentes y Agradecimientos 34
Capitulo 1: Instalación
Lo que la hace diferente a otras guías disponibles en Internet es que explico paso a paso como se hace, algunos
de los posibles problemas que pueden aparecer con sus respectivas soluciones y consejos que me facilitaron la
instalación.
En esta guía no se explica en detalle la teoría de redes ni mucho menos los comandos de Linux, por lo que se
necesita mínimos conocimientos de Linux, uso básico de consola, crear archivos de texto, guardarlos, editarlos,
copiarlos, etc. y por parte de redes, los fundamentos teóricos y aplicaciones.
Los temas que se excluyen en esta guía se encuentran con facilidad en Internet o en otras guías.
Lógico que con una maquina de esas características no vamos a poder atender muchas computadoras, pero nos
sobra para aprender y atender unos 10 usuarios o algunos más.
Si conseguimos una PC un poco más potente, podemos darnos el lujo de instalar un entorno grafico para
facilitar las configuraciones. Se que mucha gente no esta de acuerdo en esto, pero a muchos les resulta muy
incomodo usar siempre la consola, a ellos les recomiendo ir familiarizándose de a poco con la consola seguro
les va a resultar extremadamente útil al cavo de unos capítulos y mas aun cuando usemos SSH.
Soporta perfectamente un entorno grafico y sobra procesador para es uso de mi red. Para que tengan una idea
del tráfico en mi red les paso este dato:
En 18 días la interfase que me conecta a Internet:
Recibió: 40 Gb
Envío: 7 Gb
No es mucho si lo comparamos con una gran red, pero sirve para empezar.
1.3 Instalación
La instalación es bastante sencilla y amigable, basta con solo bootear desde el CD-ROM que podemos obtener
de la página oficial de Ubuntu para inicial el proceso de instalación.
Durante el proceso se preguntan datos básicos, solo voy a explicar los más importantes o los que más hacen
renegar.
Una de las partes donde suelen generarse problemas es en el particionado del disco. No soy un experto en
Linux pero la forma que siempre me gusto hacer las particiones es la siguiente:
Tamaño Descripción Punto de montaje Formato
100 Mb Partición para boot /boot ext4
1 Gb Área de intercambio (Swap) no se monta el sistema se encarga del formato
20 Gb Raíz (/) / ext4
10 Gb Home /home ext4
100 Mb 1 Gb 20 Gb 10 Gb
/boot Swap / / home
Si tienen un disco mas grande pueden hacer mas grande la partición “/”, o si son mas organizados, crean mas
particiones para distintas aplicaciones. Lo mas fácil es hacer una partición “/” bien grande pero un gurú de
Linux no estaría de acuerdo.
Continuando con la instalación, los pasos siguientes son simples, solo voy a destacar los paquetes a instalar. En
el mismo CD de Ubuntu se encuentran muchos de los programas que necesitamos para nuestro servidor y el
proceso de instalación nos pregunta cuales de una pequeña lista de paquetes queremos instalar.
Los que se usan para esta guía son solo los siguientes:
DNS Server (Bind9)
LAMP Server (LAMP, significa: Linux + Apache2 + MySQL + PHP)
OpenSSH Server
Samba file server
Editamos:
nano /etc/network/interfaces
Agregando:
# WAN: # muestro como seria una WAN ESTATICA
auto eth1 # tengan en cuenta que usamos DHCP ó STATIC
iface eth1 inet dhcp # no las dos configuraciones al mismo tiempo
# ESTO ES UN EJEMPLO
# LAN: auto eth1
auto eth0 iface eth1 inet static
iface eth0 inet static address 192.168.110.229
address 192.168.1.1 netmask 255.255.255.0
netmask 255.255.255.0 network 192.168.110.0
network 192.168.1.0 broadcast 192.168.110.255
broadcast 192.168.1.255 gateway 192.168.110.1
Si vemos un error es porque escribimos mal algo (por ejemplo: addres, en ves de address), ahora ya podemos
apagar nuestro equipo y no perderemos la configuración.
# WAN:
auto eth1
iface eth1 inet dhcp
# LAN:
auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
Guardar el archivo y reiniciar Samba para que los cambios tengan efecto:
sudo /etc/init.d/samba restart
Al no tener entorno grafico nos puede ser útil esta información por si necesitamos instalar o borrar paquetes
cuyo nombre no conocemos.
Desinstalación
dpkg –l | grep (nombre o descripción de lo que quiero borrar, por ejemplo: dns)
apt-get remove (nombre del paquete, por ejemplo: dnsmasq-base)
Deshabilitarlos de Inicio
update-rc.d -f avahi-daemon remove
Estas líneas suelen estar comentadas en el archivo, si las encuentran comentadas borren el “#” al principio de
la línea y no hace falta que agreguen nada.
Actualizamos la lista, este paso es fundamental y se hace cada ves que modificamos la lista anterior, no se lo
olviden sino no funciona:
apt-get update
Puede tardar unos minutos, pero no más que 5 minutos, en general es rápido.
#deb cdrom:[Ubuntu-Server 9.10 _Karmic Koala_ - Release amd64 (20091027.2)]/ karmic main
restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ar.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
deb-src http://ar.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
Editamos su configuración:
nano /etc/ssh/sshd_config
El servidor puede escuchar en muchas direcciones IP, agreguen las que necesiten, por ejemplo:
ListenAddress 192.168.1.1
ListenAddress 192.168.0.3
ListenAddress 192.168.10.8
Reiniciamos el servidor:
/etc/init.d/ssh restart
# Logging
SyslogFacility AUTH
LogLevel INFO
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
#MaxStartups 10:30:60
#Banner /etc/issue.net
UsePAM yes
línea 25 authoritative;
Con esta configuración se logra un servidor DHCP que va a ofrecer servicios a CUALQUIER placa de red que sea
cliente, es la configuración más básica que se puede armar. Si examinan mejor el archivo de configuración se
muestran muchos ejemplos y también se muestra como asignar siempre las mismas direcciones a
determinadas computadoras.
Reiniciamos el servidor:
/etc/init.d/dhcp3-server restart
Muestra primero [fail] porque el servidor DHCP no estaba corriendo, lo importante es que en la línea de
Starting tengamos un [OK].
Si tenemos [fail] es porque escribimos algo mal en los archivos de configuración, para entender mejor el
error podemos ver el syslog:
nano /var/log/syslog
#
# 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="eth0"
/etc/dhcp3/dhcpd.conf
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;
default-lease-time 3600;
max-lease-time 86400;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
host ap {
hardware ethernet 00:23:xx:xx:xx:xx;
fixed-address 192.168.1.2;
}
host usuario101 {
hardware ethernet 00:01:xx:xx:xx:xx;
fixed-address 192.168.1.101;
}
host usuario102 {
hardware ethernet 00:1e:xx:xx:xx:xx;
fixed-address 192.168.1.102;
}
host usuario103 {
hardware ethernet 00:22:xx:xx:xx:xx;
fixed-address 192.168.1.103;
}
host usuario104 {
hardware ethernet 00:21:xx:xx:xx:xx;
fixed-address 192.168.1.104;
}
host usuario105 {
hardware ethernet 00:1f:xx:xx:xx:xx;
fixed-address 192.168.1.105;
}
host usuario106 {
hardware ethernet 00:1e:xx:xx:xx:xx;
fixed-address 192.168.1.106;
}
Como se ve en el archivo no uso asignaciones dinámicas, siempre asigno la misma dirección a las mismas
placas de red, si una MAC no esta cargada en la lista no será atendida por el servidor DHCP, esto lo hago por
una cuestión comodidad y tengan en cuenta que se pueden usar simultáneamente asignaciones dinámicas y
direcciones fijas.
Funcionamiento:
Línea 1: Activa reenvío de paquetes, esto permite que los paquetes que llegan a una interfase pasen a
la otra y viceversa.
Línea 2 y 3: Borra cualquier otra regla existente de filtrado.
Línea 4: Source Nat (SNAT para amigos), esta línea aplica una regla a todos los paquete que después
de haber sido rutiados que tienen que salir por la interfase eth1 (salida a Internet) realizando un
cambio en la dirección de origen por 192.168.0.3 (o la IP que tengamos configurada en la interfase
eth1)
Esto es lo que hace Win cuando hacemos Click derecho sobre una conexión de red, Compartir Conexión y luego
le damos Permitir a otros usuario usar esta conexión. Parece mas fácil hacerlo en Win?,… no se lo crean…
Ahora para que se ejecute al arranque instalaremos un pequeño programa que nos ayuda a configurar los
archivos que se ejecutan al iniciar el sistema
apt-get install rcconf
Ejecutamos:
Rcconf
Algunas aplicaciones nos permiten otros comandos, si quieren ver cuales son pueden hacer:
/etc/init.d/”APLICACION”
Y el sistema les mostrara la lista de comandos permitidos, suelen ser muy útiles los comandos reload, que
permiten re-cargar la configuración sin detener el servicio o el comando status, que muestran el estado del
servicio.
Los cambios que realizan los comandos se aplican instantáneamente, sin necesidad de reiniciar la computadora,
por eso es bueno antes de comenzar a implementar políticas de seguridad realizar un backup de la
configuración actual que funcione correctamente, si ven el archivo anterior “/etc/init.d/iptables.cf” líneas
2 y 3 son muy importantes porque borran todo lo anterior y luego se carga una nueva configuración, lo que nos
permite usar ese archivo para volver a una configuración limpia, muy básica pero que funciona.
Lo que recomiendo es realizar pequeños cambios y probarlos, cuando estamos completamente seguros que
funciona como esperábamos lo guardamos como archivo de backup.
Para esta tarea recomiendo mucho el uso de scripts, voy a explicar rápidamente como crear scripts.
Básicamente en Linux cualquier archivo de texto con permisos de ejecución y una línea principal al comienzo se
convierte en un script, es decir que todos los comandos que ejecutemos línea por línea se ejecutan uno por uno
al correr el script.
Adentro escribimos:
#!/bin/sh
echo “hola, esto funciona muy bien”
Guardamos nuestro poderoso script, y hacemos un “ls –l” para ver sus permisos:
-rw-r--r-- 1 root root 41 2010-03-16 11:31 mi-script
Con ese concepto, ahora podemos crear un hermoso filtro con Iptables.
Lo importante y a veces difícil es saber que filtrar o quienes son las amenazas, para mi caso (una red muy
sencilla) la gran amenaza es que un usuario no permitido navegue gratis por Internet, esto se soluciona
utilizando una política de filtrado por dirección MAC a todos los paquetes que llegan desde la LAN al router
(eth0), mi solución fue:
mi filtro con iptables
#!/bin/sh
# RESET DE REGLAS
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# CONFIGURO SNAT, TODO TIENE QUE SALIR POR eth1 CON LA IP: 192.168.0.3
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 192.168.0.3
# ---------------------
# FIREWALL
# ---------------------
### SEGURIDAD
# No respondo preguntas ICMP en la interfase de afuera: (eth1)
iptables -A INPUT -p icmp --icmp-type echo-request -i eth1 -j DROP
# No ip spoofing, denegar cualquier paquete con dirección local que quiera entrar:
iptables -A INPUT -j DROP \! -i lo -s 127.0.0.0/8
iptables -A FORWARD -j DROP \! -i lo -s 127.0.0.0/8
# Allowing established
iptables -A INPUT --match state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT --match state --state ESTABLISHED -j ACCEPT
# Allowing related
iptables -A INPUT --match state --state RELATED -j ACCEPT
iptables -A OUTPUT --match state --state RELATED -j ACCEPT
# Allowing loop
iptables -A INPUT -i lo --match state --state NEW -j ACCEPT
iptables -A OUTPUT -o lo --match state --state NEW -j ACCEPT
# Allowing outgoing
iptables -A OUTPUT -o eth1 --match state --state NEW -j ACCEPT
# ---------------------
# FILTRO POR MAC
# ---------------------
# Allowing incoming (SOLO MACs PERMITIDAS, Interfase de entrada LAN, eth0 IP: 192.168.1.1)
#LISTADO DE CLIENTES PERMITIDOS:
# AP
iptables -A INPUT -i eth0 -m mac --mac-source 00:23:xx:xx:xx:xx -j ACCEPT
# 101
iptables -A INPUT -i eth0 -m mac --mac-source 00:01:xx:xx:xx:xx -j ACCEPT
# 102
iptables -A INPUT -i eth0 -m mac --mac-source 00:1e:xx:xx:xx:xx -j ACCEPT
# 103
iptables -A INPUT -i eth0 -m mac --mac-source 00:22:xx:xx:xx:xx -j ACCEPT
# 104
iptables -A INPUT -i eth0 -m mac --mac-source 00:21:xx:xx:xx:xx -j ACCEPT
# 105
iptables -A INPUT -i eth0 -m mac --mac-source 00:1f:xx:xx:xx:xx -j ACCEPT
# 106
iptables -A INPUT -i eth0 -m mac --mac-source 00:1e:xx:xx:xx:xx -j ACCEPT
Como funciona:
Simplemente cambie la política por defecto para los paquete de entrada (INPUT) a DROP, la política por defecto
indica que se hace con el paquete si no cumple ninguna de las reglas de la lista.
en castellano: al entrar un paquete se compara con toda la lista de reglas, si no se cumple ninguna se
descarta el paquete, a la primera regla que se cumple se toma la decisión que indique esa regla
en criollo: llega un paquete con MAC xx:xx:xx:xx:xx:xx, recorre toda la lista de MAC permitidas si no
esta en la lista ese paquete se descarta, si esta en la lista se lo deja pasar por la placa de red eth0
en resumen: si queres entrar tenes que estar en la lista.
Hay muchas formas de hacer filtros, para mi caso y por el funcionamiento de Iptables (primera regla que se
cumple, se ejecuta) no me es conveniente colocar al principio reglas muy permisivas, es mejor comenzar
Denegando y luego permitiendo.
Instalamos el servidor:
apt-get install bind9
zone "1.168.192.in-addr.arpa" in {
type master;
file "/etc/bind/lamernet.inversa";
};
Iniciamos el servidor:
/etc/init.d/bind9 start
1. lamernet.com.ar
2. lamernet
El primero lo uso para la página web: www.lamernet.com.ar y el segundo para resolver la dirección de todos los
clientes de la red. Por ejemplo el servidor será: servidor.lamernet, mi maquina es: gerardo.lamernet, entonces
para entrar a otras maquinas de la red solo hace falta saber el nombre y no necesitas acordarte la dirección IP.
Como el servidor DNS tiene autoridad sobre 2 dominios distintos, voy a tener 2 archivos de definición directa (1
para cada dominio) y solo 1 archivo de resolución inversa, porque los dominios comparten la misma dirección
de red.
/etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
zone "lamernet.com.ar" {
type master;
file "/etc/bind/lamernet.directa";
};
zone "lamernet" {
type master;
file "/etc/bind/lan.directa";
};
zone "1.168.192.in-addr.arpa" in {
type master;
file "/etc/bind/lamernet.inversa";
};
/etc/bind/lamernet.directa
$TTL 604800
@ IN SOA lamernet.com.ar. root.lamernet.com.ar. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS @
www IN A 192.168.1.1
/etc/bind/lan.directa
$TTL 604800
@ IN SOA lamernet. root.lamernet. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS @
servidor IN A 192.168.1.1
ap IN A 192.168.1.2
usuario101 IN A 192.168.1.101
usuario102 IN A 192.168.1.102
usuario103 IN A 192.168.1.103
usuario104 IN A 192.168.1.104
usuario105 IN A 192.168.1.105
usuario106 IN A 192.168.1.106
/etc/bind/lamernet.inversa
$TTL 604800
@ IN SOA lamernet.com.ar. root.lamernet.com.ar. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS @
1 IN PTR www.lamernet.com.ar.
1 IN PTR servidor.lamernet.
2 IN PTR ap.lamernet.
101 IN PTR usuario101.lamernet.
102 IN PTR usuario102.lamernet.
103 IN PTR usuario103.lamernet.
104 IN PTR usuario104.lamernet.
105 IN PTR usuario105.lamernet.
106 IN PTR usuario106.lamernet.
En general el DNS es fácil de configurar y los errores mas comunes son de tipeo, si no funciona revisen bien los
archivos y cuidado con si usan comentarios en los archivos de bind, porque se identifican con “//” y no con “#”
Quedando:
<VirtualHost *:80>
ServerAdmin gpiermattei@gmail.com
ServerName www.lamernet.com.ar
DocumentRoot /home/www/www.lamernet.com.ar
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/www/www.lamernet.com.ar>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
</VirtualHost>
Si tenemos problemas con la instalación o su configuración y el servidor deja de funcionar puede resultar útil el
siguiente comando para reinstalar por completo el apache:
sudo apt-get remove --purge $(dpkg -l apache* | grep ii | awk '{print $2}') && sudo apt-get
install apache2
Ahora hay que configurar el Squid, para eso editaremos el siguiente archivo:
nano /etc/squid/squid.conf
No voy a explicar todas las funciones de Squid, solo voy a mostrar la configuración que utilice. Es una de las
más básicas pero de gran utilidad.
Como van a ver el archivo de configuración de Squid es GIGANTE, pero la mayoría de las líneas están
comentadas porque son ejemplos de usos y distintas configuraciones, voy a adjuntar un archivo de
configuración sin comentarios y solo con la parte básica que nos interesa a nosotros.
Para generar ese archivo podemos usar el siguiente comando:
grep -v "#" /etc/squid/squid.conf > sin-comentarios
Ese comando busca en el archivo squid.conf todas la líneas que NO comiencen por “#” y las guarda en el
archivo sin-comentarios
# Mis acl's:
acl no_facebook url_regex http://www.facebook.com
acl bloqueados src "/etc/squid/bloqueados"
acl no_porn url_regex "/etc/squid/porn"
Funcionamiento:
Por defecto Squid trae algunas ACL que nos brindan una seguridad básica y sirven de ejemplo, lo mas
importante de la configuración presentada es que es transparente al usuario, es decir, no hace falta configurar
el navegador de Internet o el sistema operativo para que usen el Proxy y los usuarios salen a Internet sin saber
que hay un Proxy.
Para eso esta la línea, que indica el puerto y el modo donde “escucha” Squid:
http_port 3128 transparent
Si probamos ahora notaran que no pueden acceder a las páginas hostiadas en nuestro propio servidor, se
soluciona agregando ANTES a la regla de redireccionar el tráfico Web la siguiente:
# --------------------------------------------------------------
# EL TRAFICO A NUESTRO SERVIDOR LO ACEPTO SIN REDIRECCIONAR
# --------------------------------------------------------------
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -d 192.168.1.1 -j ACCEPT
Además de proveer filtrado y seguridad, Squid funciona como chache, almacenado las paginas o parte de ellas
en su memoria para ahorrar trafico cuando la pagina sea consultada nuevamente.
Por el lado del filtrado a modo de ejemplo voy a explicar unos casos simples pero útiles para que entiendan
como se aplican filtros con Squid.
Su funcionamiento es sencillo, primero creamos la ACL de lo que queremos hacer, mis ACL son:
# Mis acl's:
acl no_facebook url_regex http://www.facebook.com
acl bloqueados src "/etc/squid/bloqueados"
acl no_porn url_regex "/etc/squid/porn"
La acl no_facebook, se aplica a las URL que contengan http://www.facebook.com
La acl bloqueados se aplica a la lista de direcciones IP que se guardan en el archivo "/etc/squid/bloqueados"
La acl no_porn es similar a la de Facebook, pero se aplica a la lista de palabras que se guardan en el archivo
"/etc/squid/porn"
/etc/squid/bloqueados /etc/squid/porn
192.168.1.110 porn
192.168.1.107 sex
xxx
Las ACL por si solas no hacen nada, noten que no toman ninguna decisión de filtrado (permitir, denegar, etc.).
Se aplican similar a los comando iptables (primera regla que se cumple se ejecuta), entonces importa el orden
de aplicación:
# Aplico las acl's:
http_access deny no_porn bloqueados
# muestro un error personalizado si se cumple la regla anterior:
deny_info ERR_NO_PORN.html no_porn bloqueados
Noten la forma de aplicar las ACL, para el contenido bloqueado lo aplique junto con la lista de direcciones
bloqueadas (Operación lógica AND), es decir que si se cumple que el paquete es de una de las direcciones de la
lista en “/etc/squid/bloqueados” Y además se cumple que su URL contiene una palabra de la lista
"/etc/squid/porn" el paquete se deniega y se muestra un error.
Aplicar las reglas una por línea equivale a la operación lógica OR, igual que en iptables.
Otro detalle, vean que en ningún momento aplique la acl no_facebook, es decir que se pueden tener ACL sin
aplicar pero no el caso contrario.
Por defecto se termina la lista con: http_access deny all, que como se lo imaginan deniega el paquete si no
cumplió con alguna de las reglas anteriores, esta condición se puede modificar según las características del
filtrado.
Como en el caso de iptables, esto es solo un ejemplo básico a modo de guía y tengan en cuenta que se pueden
hacer muchas reglas mas avanzadas que estas.
Podemos modificar los permisos para la carpeta compartida para permitir el acceso a ciertos usuarios de
Ubuntu
chown gerardo /home/compartida
chgrp gerardo /home/compartida
Esta es la forma más básica de compartir una carpeta en Linux. Muestro otro ejemplo donde no se necesita
contraseña para entrar a la carpeta y los visitantes solo tienen permiso de Lectura:
[Sin-Pass]
path = /Musica
comment = Musica Compartida para todos
browseable = yes
read only = yes
guest ok = yes
Es muy simple y funciona muy bien, solo necesitamos tener instalado PHP, MySQL (ya lo instalamos
previamente) y TorrentFlux.
Como primer paso antes de instalar TorrentFlux vamos a crear una nueva base de datos SQL que usaremos con
TorrentFlux. Durante la instalación el sistema nos solicitará configurar una base de datos para adaptarla a
TorrentFlux así que debemos crear una antes de instalarlo.
Introducimos el nombre del súper usuario (root) y el password de administrador para la base de datos
configurado durante el proceso de instalación.
Ahora en phpmyadmin vamos a crear una base de datos nueva para TorrentFlux y para ello vamos a introducir
el nombre ( torrentflux ) en la casilla:
Ahora tenemos una base de datos llamada (torrentflux), nos la apuntamos además del nombre de usuario,
password y continuamos arrancando nuestro servidor de descargas e identificándonos como root en el sistema
de la manera habitual.
A continuación el sistema nos avisa sobre un cambio que deberemos hacer, de momento pulsamos la tecla
(Enter)
Como ya hicimos anteriormente a la instalación de TorrentFlux una base de datos llamada (torrentflux)
especificaremos en esta pantalla la opción (Si) y continuamos con la tecla (Enter)
Ahora introducimos el password del super usuario (root) de MySQL y pulsamos la tecla (Enter)
Pasamos este mensaje por alto de momento, después lo revisaremos. Continuamos con la tecla (Enter) y una
vez terminada la instalación de TorrentFlux aremos unos ajustes para adaptarlo a nuestro servidor Web y que
funcione correctamente.
Para acceder a TorrentFlux desde un cliente, vamos a crear un enlace simbólico desde el directorio Web que
nos ofrece TorrentFlux hacia el directorio Web de nuestra página situada en nuestro servidor.
ln –s /usr/share/torrentflux/www/ /home/www/www.lamernet.com.ar/torrentflux
Ya esta listo para ser visitado desde un cliente, en un navegador escribimos www.lamernet.com.ar/torrentflux y
veremos:
Nos logeamos con root y la contraseña y tenemos un gestor de descargas con interfase web. Con un poco de
Dreamweaver el trabajo final quedo así:
TorrentFlux tiene buenas configuraciones, lo que recomiendo en configurarlo para que descargue los archivo en
una carpeta y luego compartir esa carpeta para poder acceder desde la red y así copiar los archivos a nuestra
maquina.
Instalación:
apt-get install phpsysinfo
Solo falta realizar un enlace simbolico desde el directorio de la aplicacion a la carpeta de nuestro sitio web:
ln –s /var/www/phpsysinfo /home/www/www.lamernet.com.ar/phpsysinfo
Destaco la línea donde podemos configurar el lenguaje y el estilo del reporte, la modificamos quedando:
// define the default language and template here
define('lang', 'es');
define('template', 'clean.css');
Instalación:
apt-get apt-get install awstats
Creamos un enlace simbólico desde la carpeta que creo awstats al directorio raíz de nuestra Web.
ln –s /usr/lib/cgi-bin /home/www/www.lamernet.com.ar/cgi-bin
Por ultimo paso solo falta generar un script que actualice las estadísticas, eso se logra usando un programador
de tareas incluido en el sistemas que es Crontab. Hay varias formas de hacer esto, explico la que me parece
más simple.
Si nos fijamos en el directorio /etc veremos una serie de carpetas generadas por la aplicación Crontab
Ejecutamos: Veremos:
ls /etc/ | grep cron cron.d
cron.daily
cron.hourly
cron.monthly
crontab
cron.weekly
Entonces si dentro del directorio cron.hourly generamos un script que actualice las estadísticas, tendremos el
problema resuelto:
nano /etc/cron.hourly/actualiza-estadisticas-web
/usr/lib/cgi-bin/awstats.pl -config=awstats.lamernet.com.ar.conf
echo "Estadisticas Web para www.lamernet.com.ar, Actualizadas correctamente"
Para esta tarea vamos a utilizar una aplicación llamada Sensors, que nos muestra información sobre los
sensores de nuestra computadora.
Instalación:
apt-get install lm-sensors
Ejecutamos al aplicación para que reconozca que sensores disponemos en nuestra PC:
sensors-detect
Con solo presionar “Yes” y “enter”, llegamos al final y el programa muestra los sensores que disponemos, para
mi caso el resultado fue:
#----cut here----
# I2C adapter drivers
i2c-i801
# Chip drivers
smsc47m192
smsc47m1
#----cut here----
Luego nos pregunta si queremos que agregue esas líneas automáticamente en /etc/modules, respondemos
“yes” y todo listo.
Si ejecutamos el comando:
Sensors
Para completar más aun nuestro script monitor de temperatura, vamos a agregar otro programa que nos
permite conocer la temperatura de nuestro disco rígido:
Instalación:
apt-get install hddtemp
El programa nos preguntará si queremos que se arranque al inicio, la interfaz en la que escuchar y el puerto. En
principio a las dos ultimas preguntas dejamos el valor por defecto pulsando Enter, a la primera yo aconsejo
poner SI, pero es una elección personal.
Con esto tendremos instalado el programa, si le hemos dicho que se arranque al inicio ya lo tendremos en
ejecución si no tendremos que arrancarlo nosotros, para ello ejecutaremos la siguiente instrucción:
hddtemp –d /dev/”dispositivo”
Si disponemos de varios dispositivos podemos listar todas las temperaturas con el comando:
hddtemp –d /dev/sd*
Ahora utilizando estos programas y Crontab, vamos a crear un script que genere un archivo de texto con los
resultados de las temperaturas y lo guardaremos para que se ejecute cada 1 hora.
nano /etc/cron.hourly/temperaturas
El Resultado final lo pueden ver entrando a: www.lamernet.com.ar/temps.txt, muestro uno de los archivos
generados por nuestro script:
Actualizado:
Fri Mar 19 12:17:04 ART 2010
Parte de la info de esta guía fue obtenida de foros o de otras guías, perdí un poco el rastro de cuales fueron las
páginas que use para armar la guía pero las principales fueron:
las secciones 4.3, 4.4 y 4.4 las copie directamente desde: www.forat.info
encontré la solución a varios problemas que surgieron de los foros de: www.ubuntu-es.org
A ellos mis agradecimientos por compartir sus conocimientos con el resto de la comunidad libre. En
agradecimiento esta guía será publicada abiertamente en los foros para que todos puedan usarla y aportar sus
conocimientos.
Los agradecimientos especiales se los llevan mis profesores y ayudantes de redes de la facultad:
Jose
Ivana
Daniel
Cristian
Hector
Nicolas