1. MANUAL DE INSTALACIÓN DE
UN SERVIDOR CASERO BASADO EN DEBIAN
ASOCIACIÓN LINUX ALBACETE
www.linuxalbacete.org
2. Alejandro Navarro López ( papiro@gmail.com )
Alfonso Moratalla Moreno ( alfonso.moratalla@gmail.com )
Versión 1.5 – Abril, 2006
Versión 1.4 – Marzo, 2006
Versión 1.2 – Diciembre, 2005
Versión 1.0 – Noviembre, 2005
Asociación Linux Albacete www.linuxalbacete.org
Esta obra está bajo una licencia Attribution-NonCommercial-ShareAlike 2.5
Spain de Creative Commons. Para ver una copia de esta licencia consulte el
apéndice A, visite http://creativecommons.org/licenses/by-nc-sa/2.5/es/ o
envie una carta a Creative Commons, 559 Nathan Abbott Way, Stanford,
California 94305, USA.
1
3. ÍNDICE
1. INTRODUCCIÓN
1.1 Objetivos................................................................... pág 3
1.2 Hardware.................................................................. pág 4
1.3 Software.................................................................... pág 4
1.4 ¿Qué es Debian?........................................................ pág 4
2. INSTALACIÓN
2.1 Empezamos............................................................... pág 7
2.2 Idioma....................................................................... pág 8
2.3 Red............................................................................ pág 10
2.4 Particionado.............................................................. pág 11
2.5 Gestor de arranque................................................... pág 14
2.6 Configuración post-instalación.................................. pág 16
2.7 Usuarios y contraseñas............................................. pág 17
2.8 Instalación de paquetes............................................ pág 20
3. INSTALACIÓN Y CONFIGURACIÓN DE SERVICIOS
3.1 Repaso de comandos................................................. pág 24
3.2 Instalación y uso del mc............................................ pág 26
3.3 Configuración de red................................................ pág 28
3.4 Servidor DNS bind.................................................... pág 31
3.5 Servicio DHCP dhcpd................................................ pág 31
3.6 Firewall y NAT con iptables...................................... pág 33
3.7 Servicio de secure shell con sshd............................. pág 34
3.8 Servicio de FTP con ProFTPd....................................pág 35
3.9 Servicio de DNS dinámico con dyndns..................... pág 37
3.10 Servicio MTA con exim........................................... pág 40
3.11 Servidor web con Apache + PHP4......................... pág 42
3.12 Servicio de BBDD con MySQL................................ pág 46
3.13 Aplicación de foro phpBB2..................................... pág 46
3.14 Aplicación P2P MLDonkey......................................pág 49
3.15 Servidor de ficheros con Samba............................. pág 56
4. APÉNDICES
4.1 Apéndice A – Licencia CC......................................... pág 60
4.2 Apéndice B – Bibliografía y recursos........................pág 65
2
4. 1 INTRODUCCIÓN
1.1 OBJETIVOS
Nos planteamos montar un servidor casero que sea capaz de darnos servicios tanto a
nuestra red local como hacia internet, así mismo nos servirá de firewall poniendo una capa
más de seguridad para nuestra red interna.
Estos es la lista de servicios y las aplicaciones que las prestarán:
– Router con prestaciones NAT y DHCP -> Iptables, dhcpd
– Firewall -> Iptables
– Servidor de páginas web con soporte PHP -> Apache 2
– Servidor de ficheros FTP -> Proftpd
– Servidor de correo -> Exim
– Servidor de DNS -> Bind
– Servidor de bases de datos -> MySQL
– Servidor de ficheros -> Samba
– Acceso remoto por SSH -> Sshd
– Cliente para servicios P2P -> Mldonkey
3
5. 1.2 HARDWARE
CPU: Sirve cualquiera, como mínimo se recomienda un Petium II 350Mhz (uso casero
del servidor), si va a dar servicio por ejemplo una web con muchas visitas es recomendable
tener más capacidad de proceso (criptografía, bases de datos grandes, muchas visitas a web,
etc)
RAM: Cuanta más mejor, menos de 128MB el servidor se resentirá.
Disco Duro: La instalación entra en unos 350MB, el resto se usará para ficheros (ftp y
web) y espacio para MLDonkey por ejemplo, cuanto más espacio más información podremos
manejar y cuanto más rapido sea el disco mejor rendimiento obtendremos.
Red: 2 tarjetas de red, una para conectar a Internet (nuestro proveedor – ISP) nos
sirve una de 10Mb la otra será la que de acceso a la red interna y determinará la velocidad de
esta (se recomientda una de 100Mb), si usamos varios ordenadores podremos conectar un
switch a esta última y al switch los ordenadores que sean necesarios, igualmente podremos
utilizar una tarjeta inalámbrica para montar una red wifi en casa.
El resto de componentes (como tarjeta gráfica, disquetera, CDROM, etc.) no influyen
directamente en la capacidad del servidor, se puede instalar un SAI para solventar cortes del
suministro eléctrico y evitar interrupciones del servicio del servidor y corrupción de datos.
1.3 SOFTWARE
Utilizaremos la distribución DEBIAN por ser una de las más difundidas en entornos de
servidores debido a su gran cantidad de aplicaciones pero sobretodo por su seguridad y
fiabilidad.
Todas las aplicaciones que necesitemos estarán en los repositorios de Debian, sólo en
el caso del mldonkey, y a modo de ejemplo, nos descargaremos el código fuente y lo
compilaremos nosotros mismos.
1.4 ¿QUÉ ES DEBIAN?
El Proyecto Debian es una asociación de personas que han hecho causa común para
crear un sistema operativo (SO) libre. Este sistema operativo que hemos creado se llama
Debian GNU/Linux, o simplemente Debian para acortar.
Los sistemas Debian actualmente usan el núcleo de Linux. Linux es una pieza de
software creada en un principio por Linus Torvalds y soportada por miles de programadores a
lo largo del mundo.
Una gran parte de las herramientas básicas que completan el sistema operativo, vienen
del proyecto GNU; de ahí el nombre: GNU/Linux. Estas herramientas también son libres.
Debian viene con más de 15490 paquetes (software precompilado y empaquetado en
un formato amistoso para una instalación sencilla en su máquina) — todos ellos de forma
gratuita.
4
6. VERSIONES DE DEBIAN GNU/LINUX
Antes de empezar veamos las versiones disponibles de Debian y las diferencias entre
estas:
Debian siempre tiene al menos tres versiones en mantenimiento activo: Estable,
Pruebas e Inestable (stable, testing y unstable).
ESTABLE
– La distribución estable contiene la distribución oficial más reciente de Debian.
– La versión estable actual de Debian GNU/Linux es la 3.1r1, cuyo nombre en código es
Sarge.
PRUEBAS
– La distribución de pruebas (testing) contiene paquetes que aún no han sido aceptados en
la rama estable, pero están a la espera de ello. La principal ventaja de usar esta
distribución es que tiene versiones más recientes del software, y la principal desventaja es
que no ha sido probada completamente y que no tiene soporte oficial del equipo de
seguridad de Debian (al menos no tan completo y prioritario como la rama estable).
– La distribución actual de pruebas es Etch.
INESTABLE
– La distribución inestable (unstable) es donde tiene lugar el desarrollo activo de Debian.
Generalmente, esta distribución es la que usan los desarrolladores y otros que quieren
estar a la última.
– La distribución inestable se llama Sid.
En este manual vamos a instalar la versión de Debian Sarge (estable).
CONSIDERACIONES PREINSTALACIÓN
Si nuestro ordenador ya tiene instalado un sistema operativo y no hay particiones
libres para instalar Linux, podemos hacer dos cosas para tener conviviendo los sistemas
operativos en un mismo disco duro:
1. Borrar la partición existente (los datos del OTRO sitema operatico se perderán) y crear
2 particiones (una para Linux y otra para el OTRO sistema operativo).
2.Redimensionar la partición del OTRO sistema operativo, y dejar espacio libre para
instalar Linux (los datos del OTRO sistema operativo se conservarán, hay programas
que pueden redimensionar particiones sin que se pierdan los datos como GParted
(desde una distribución “live”) u otros no libres como "Partition Magic".
En el caso específico de este curso, el ordenador donde vamos a instalar nuestra
debian contiene 3 sistemas operativos y hasta un total de 8 particiones en el disco duro. Es
muy importante elegir bien donde instalarlo porque de lo contrario borraremos algo que no
debemos.
5
7. COMO OBTENER DEBIAN GNU/LINUX
Debian se puede obtener descargando las imagenes ISO directamente desde uno de los
multiples mirrors que existen y que pueden ser consultados en en http://www.debian.org/CD/
Aquí hay que fijarnos en los tipos de CD's que descargamos:
• Descarga de TODOS los CD's (14 en la actualidad)
• Descarga de 2 DVD
• Descarga de un CD para instalar TODO, desde la red
• Descarga de un CD que te instala el sistema base y todo lo demás desde la red (*)
• También se puede obtener mediante disquetes
(*) Este es nuestro caso hemos y hemos descargado el CD número 1:
ftp://ftp.es.debian.org/debian-cd/3.1_r1/i386/iso-cd/debian-31r1-i386-binary-1.iso
6
8. 2 INSTALACIÓN
2.1 EMPEZAMOS
Teniendo particionado nuestro disco correctamente, tenemos que iniciar el equipo con
el CD de instalación de Debian.
En caso de que no se inicie el arranque automático desde el CD, podemos hacerlo
cambiando directamente los parámetros de arranque en la BIOS de la máquina.
Para acceder a la BIOS y cambiar las ordenes de arranque es necesario presionar una
combinación de teclas cuando inicia el equipo, por lo general esto se consigue presionando la
tecla "Supr" dos veces, con ESC+Control simultáneamente o con F2, F9, ... según modelo.
Cuando arranque el CD nos aparece la pantalla inicial de Debian:
Pulsamos F3 para ver las distintas formas de arranque
7
9. Entre ellas podemos elegir el tipo de kernel con el que arrancaremos y por
consiguiente el que instalaremos. Escribimos en el promt linux26 para que nos instale un
kernel de la serie 2.6 estable.
Y empieza la instalación...........................................
NOTA:
– Si sólo se presiona ENTER, se instala un kernel de la serie 2.4 (más antiguo).
– Si ponemos expert26 entrará en modo experto y aparecerá un menú para elegir lo que
queremos hacer, útil para entrar al sistema cuando ha habido algún problema.
2.2 IDIOMA
Elegimos el lenguaje a utilizar "Spanish"
8
10. Escogemos nuestro País, en este caso “España”
Seleccionamos la distribución del teclado "Español"
Posteriomente inicia la detección de hardware y carga los modulos en memoria,
necesarios para la instalación.
Al mismo tiempo trata de configurar la red, ya sea con DHCP, por PPP o por red local
(dependiendo del tipo de conexión, te mandaría a una pantalla diferente), en nuestro caso es
DHCP.
9
11. 2.3 RED
En caso de que aqui no arranque la red, se puede configurar posteriormente:
• Por DHCP: Utilizamos el Comando "dhclient"
• Por PPP: Utilizamos el Comando "pppconfig"
• Por Red Local: Utilizaremos el comando "ifconfig, netmask" (para la IP local y la
máscara de Red), el comando "route" (para el gateway o Puerta de enlace) y tendremos
que editar el archivo "/etc/host.conf" (para poner los DNS).
Ahora nos pide el nombre de nuestra máquina... en nuestro caso linuxalbacete
Posteriormente nos pide el dominio... que es el identificador que puede tener nuestra
máquina en internet, en este caso albacete.linuxhome.org (lo configuraremos más
adelante).
10
12. El sistema comienza a detectar la tabla de particiones del disco duro para ver donde es
posible instalar Debian
2.4 PARTICIONADO
Después de que el instalador ha detectado la tabla de particiones nos da varias
opciones, en este caso elegimos "Editar manualmente la tabla de particiones"
11
Imagen similar a la que nos aparecerá
13. El asistente nos muestra la tabla de particiones, aquí podemos seleccionar la partición
en la que instalaremos nuestro Linux, para instalar deberemos tener creadas principalmente 2
particiones:
– Una montada como / (raiz), en la que se instalará todo (puede tener sistema de archivos
ext2, ext3 ó Reiserfs).
– Y otra particián de SWAP, que es una partición de intercambio de datos y sirve como
auxiliar de la memoria.
Un sistema de archivos es el tipo de distribución física de la información en el disco
duro. Los sistemas de archivos más comunmente manejados en Linux son EXT2, EXT3 y
REISERFS.
En nuestro caso la partición del sistema de archivos estará en la partición #8.
MUY IMPORTANTE
Seleccionamos la partición #8 lógica 7.4GB
Cambiamos el parametro “Utilizar como” y elegimos sistema ext3 transaccional
Cambiamos “Punto de montaje” y lo ponemos en /
Seleccionamos “Se ha terminado de definir la partición”
Vemos como ahora hay un icono de una cara delante de la partición #8 que va a ser
nuestro sistema de archivos y también hay otro icono delante de la #2 que será nuestra SWAP
(ya estaba creada de antes).
12
Imagen similar a la que nos aparecerá
14. Después de tener ya creadas nuestras particiones debemos aceptar los cambios para
que se inicie el formateo.
Seleccionar “Finalizar el particionado y escribir los cambios en el disco”
Prestaremos atención a que las particiones que se van a formatear son:
partición #2 como intercambio
partición #8 como ext3
¿Desea escribir los cambios en los discos? Sí
El instalador formatea las particiones, las monta y empieza a copiar el sistema base de
nuestra Debian.
13
Imagen similar a la que nos aparecerá
15. Esperamos ...
2.5 GESTOR DE ARRANQUE
Un cargador de arranque es un pequeño gestor que guarda la tabla de particiones para
que pueda arrancar el sistema operativo, por lo regular se instala en el MBR (Master Boot
Record).
En Linux los dos gestores más conocidos son: LILO y GRUB. En este caso instalaremos
GRUB, que es el que instala por defecto Debian.
Cuando nos pregunte: ¿Instalar el cargador de arranque GRUB en la registro principal
de arranque?
Elegimos: Sí
Con esto ya hemos instalado la base del sistema.
Termina la instalación... ahora retiramos el CD y el ordenador se reinicia.
14
16. [ REINICIO ]
Al arrancar el GRUB nos deja elegir los diversos sistemas operativos que tenemos en el
ordenador, simplemente esperamos y por defecto arranca nuestra Debian.
15
17. 2.6 CONFIGURACIÓN POST-INSTALACIÓN
DEBIAN GNU/LINUX tiene la peculiaridad de configurar inmediatamente los paquetes
recién instalados, pero antes de esto, como es nuestro primer inicio en el sistema Debian, se
auto ejecuta un script "base-config" que es el encargado de configurar el sistema base de
Debian.
Pulsamos “Aceptar”
En este paso nos pide ajustar nuestro huso horario, elegimos No, puesto que en
España nuestro reloj no está fijado a GMT.
16
18. Elegimos Europe/Madrid
2.7 USUARIOS Y CONTRASEÑAS
Posteriormente nos pide la contraseña de root o superusuario... hay que tener cuidado
en como usamos esta cuenta, pues esta cuenta tiene TODOS LOS PERMISOS, para HACER
LO QUE SEA en el sistema, y eso a veces puede ser peligroso.
En nuestro curso y para que no haya problemas todos pondremos: iris06
17
19. Volverá a pedir la contraseña para verificación: iris06
Por seguridad el instalador nos pide crear una cuenta de usuario, para usar el sistema
sin riesgo de dañarlo...
Pondremos: linuxalbacete
18
20. A continuación nos pide el NOMBRE DE USUARIO o LOGIN (¡¡cuidado!! la anterior
pantalla describía a la cuenta de usuario, no era en si el LOGIN).
Pondremos: linuxalbacete
Ahora introducimos la contraseña del nuevo usuario:
En nuestro caso: asociacion
Y la confirmación: asociacion
19
21. 2.8 INSTALACIÓN DE PAQUETES
CONFIGURACIÓN de APT
APT es un sistema de gestión de paquetes de Debian, lo interesante de esta utilidad, es
que puedes descargar, desempaquetar e instalar cualquier programa que esté en los diversos
servidores Debian.
La lista de servidores a los que se conecta DEBIAN para descargar paquetes, se
encuentra en /etc/apt/sources.list, adicionalmente se pueden agregar otras fuentes de
instalación como CDs, servidores HTTP, FTP, etc.
Nos pregunta de donde queremos que se instalen los paquetes, introducimos el cd de
Debian en la unidad y elegimos cdrom.
Más adelante cambiaremos este fichero para que se descargue los programas desde
internet.
La siguiente pantalla comenta que se ha agregado un CD como fuente de instalación, si
deseamos agregar otro CD como fuente debemos insertarlo...
Elegimos No.
No seleccionamos ningún programa y damos a Aceptar (pulsamos el tabulador para
situarnos sobre el botón).
Esperamos...........
20
22. Ahora nos pide la configuración del agente de transferencia de correo. Debian trae por
defecto el EXIM4.
Elegimos “solamente entrega local; sin red”.
21
23. Posteriormente nos preguntará si queremos que el correo del root y del postmaster se
reenvie a un usuario de nuestro servidor, esto es porque como hemos indicado antes, se debe
acceder al sistema siempre como usuario 'normal' y sólo cuando sea necesario autentificarse
como root.
Ponemos: linuxalbacete
¡¡Y POR FIN HEMOS TERMINADO!!
22
24. Ya tenemos la consola pidiendonos que hagamos login.
23
25. 3 INSTALACIÓN Y CONFIGURACIÓN DE SERVICIOS
3.1 REPASO DE COMANDOS
Accedemos al sistema:
login: linuxalbacete
Password: asociacion
Y obtenemos el prompt para empezar a ejecutar comandos:
linuxalbacete@linuxalbacete:~$
linuxalbacete @ linuxalbacete :~$
usuario en máquina usuario normal
Como ya hemos dicho, siempre deberemos entrar a la máquina como un usuario
normal, y si en un determinado momento necesitamos más privilegios para hacer algo,
entonces nos identificaremos como root. Esto se consigue con el comando 'su'.
Lo primero que vamos a hacer es echarle un vistazo a nuestro disco duro.
Para saber donde estamos ejecutamos pwd que nos devuelve el directorio en el que
estamos.
$ pwd
/home/linuxalbacete
Nos vamos al raiz del disco duro.
$ cd /
Hacemos un listado de directorios.
$ ls -la
drwxr-xr-x 21 root root 4096 2005-10-04 04:01 .
drwxr-xr-x 21 root root 4096 2005-10-04 04:01 ..
drwxr-xr-x 2 root root 4096 2005-10-14 14:45 bin
drwxr-xr-x 3 root root 4096 2005-10-04 04:06 boot
lrwxrwxrwx 1 root root 11 2005-10-04 03:56 cdrom -> media/cdrom
drwxr-xr-x 11 root root 24576 2005-10-26 23:54 dev
drwxr-xr-x 67 root root 4096 2005-11-09 16:35 etc
drwxrwsr-x 5 root staff 4096 2005-10-12 14:25 home
drwxr-xr-x 2 root root 4096 2005-10-04 03:57 initrd
lrwxrwxrwx 1 root root 27 2005-10-04 04:01 initrd.img -> boot/initrd.img-2.6.8-2-386
drwxr-xr-x 8 root root 4096 2005-10-04 02:31 lib
drwxr-xr-x 2 root root 49152 2005-10-04 03:55 lost+found
drwxr-xr-x 4 root root 4096 2005-10-04 03:56 media
drwxr-xr-x 2 root root 4096 2004-12-15 23:55 mnt
drwxr-xr-x 2 root root 4096 2005-10-04 03:57 opt
dr-xr-xr-x 91 root root 0 2005-10-27 01:53 proc
drwxr-xr-x 6 root root 4096 2005-11-18 12:04 root
drwxr-xr-x 2 root root 4096 2005-10-05 22:26 sbin
drwxr-xr-x 2 root root 4096 2005-10-04 03:57 srv
drwxr-xr-x 9 root root 0 2005-10-27 01:53 sys
drwxrwxrwt 7 root root 4096 2005-11-21 19:15 tmp
drwxr-xr-x 12 root root 4096 2005-10-05 19:59 usr
drwxr-xr-x 14 root root 4096 2005-10-04 02:31 var
lrwxrwxrwx 1 root root 24 2005-10-04 04:01 vmlinuz -> boot/vmlinuz-2.6.8-2-386
24
26. Vamos a dar un repaso a grandes rasgos de algunos conceptos.
Cogemos por ejemplo: drwxr-xr-x 2 root root 4096 2005-10-14 14:45 bin
d rwx r-x r-x 2 root root 4096
2005-10-
04 04:01 bin
Es un
directorio
Propietario
permitido
lectura,
escritura y
ejecución
Grupo
permitido
lectura y
ejecución
Resto
Permitido
lectura y
ejecución
Referencias Propietario Grupo Tamaño Fecha Nombre
Veamos para que sirven algunos directorios que nos serán útilies.
– En /bin y /sbin tendremos la mayoría de los programas ejecutables.
– En /boot estarán las imagenes para que el sistema operativo arranque.
– En /dev están todos los dispositivos (devices) de nuestra máquina.
– El directorio /etc lo usaremos mucho ya que en él se encuetran los ficheros de
configuración.
– En /home están los directorios personales de los usuarios, en nuestro caso linuxalbacete.
– En /mnt estarán los dispositivos montados, como las otras particiones del disco duro.
– El /root es el home del root
– En /usr hay aplicaciones, librerias y recursos para los usuarios
– En /var hay muchas cosas, pero entre ellas, los logs del sistema y por ejemplo el directorio
/var/www donde suelen albergarse las páginas web
Veamos ahora el espacio libre en nuestro disco duro:
$ df -h
Otro comando muy útil, es 'ps' el cual nos muetra los pocesos activos de nuestra
máquina:
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1504 512 ? S Oct26 0:05 init [2]
root 2 0.0 0.0 0 0 ? SN Oct26 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? S< Oct26 0:03 [events/0]
root 4 0.0 0.0 0 0 ? S< Oct26 0:00 [khelper]
root 19 0.0 0.0 0 0 ? S< Oct26 0:04 [kblockd/0]
root 41 0.0 0.0 0 0 ? S Oct26 0:26 [pdflush]
root 44 0.0 0.0 0 0 ? S< Oct26 0:00 [aio/0]
root 43 0.0 0.0 0 0 ? S Oct26 2:38 [kswapd0]
root 186 0.0 0.0 0 0 ? S Oct26 0:00 [kseriod]
root 292 0.0 0.0 0 0 ? S Oct26 0:26 [kjournald]
root 543 0.0 0.0 0 0 ? S Oct26 2:42 [kjournald]
root 732 0.0 0.0 0 0 ? S Oct26 0:00 [khubd]
daemon 1513 0.0 0.1 1612 456 ? Ss Oct26 0:00 /sbin/portmap
root 1861 0.0 0.3 2260 840 ? Ss Oct26 0:08 /sbin/syslogd
root 1864 0.0 0.5 2448 1504 ? Ss Oct26 0:00 /sbin/klogd
bind 1871 0.0 1.4 31224 3688 ? Ss Oct26 0:00 /usr/sbin/named -u bind
root 1881 0.0 0.9 29280 2452 ? Ss Oct26 0:00 /usr/sbin/lwresd
root 1912 0.0 0.1 1504 508 ? Ss Oct26 0:00 /sbin/udhcpc -i eth0
nobody 1914 0.0 0.3 1816 796 ? Ss Oct26 0:00 /usr/local/bin/noip2
Debian- 1988 0.0 0.6 5140 1716 ? Ss Oct26 0:00 /usr/sbin/exim4 -bd -q30m
Si queremos terminar algun programa que no tenga su propio sistema de parado,
podemos usar el comando 'kill' seguido del PID que nos muestra el ps
Busquemos una linea en la que el programa sea '-bash'
25
27. $ kill xxxx (donde xxxx es el PID)
¿No ha ha pasado nada? Esto es porque algunas aplicaciones capturan la señal kill
para no ser interrumpidas, pero todo tiene arreglo, mandemos la señal -9.
$ kill -9 xxxx
¿Resultado?
Como es lógico un usuario sólo podrá parar sus aplicaciones o sobre las que tiene
privilegios.
Vamos a identificarnos como root para poder hacer más cosas
$ su
Password: iris06
#
Lo primero que haremos es cambiar los atributos del directorio /root para que sólo él,
pueda tener acceso. Utilizaremos el comando chmod seguido de 3 dígitos.
# chmod 700 /root/
¿Y por qué 700? Miramos en el listado que hemos hecho antes y nos fijamos que /root/
tiene permisos drwxr-xr-x.
La primera 'd' es porque es un directorio y el resto sabiendo que r=4, w=2 y x=1, los
permisos actuales dividios en 3 tercetos (propietario, grupo y resto) son 775
rwx = 4+2+1=7 (permisos propietario)
r-x = 4+1 =5 (permisos grupo)
r-x = 4+1 =5 (permisos otros)
Pues si sólo queremos que el root tenga permisos, se nos queda en 700:
rwx = 4+2+1 = 7
--- = 0+0+0 = 0
--- = 0+0+0 = 0
3.2 INSTALACIÓN Y USO DEL MC
Instalemos nuestro primer programa, el midnight commander o simplemente mc, el
cual es una herramienta que facilita mucho la vida a un administrador. Más adelante
explicaremos con más detelle el uso del instalador apt.
# apt-get install mc
26
28. Dejemos de ser root y nos volvemos a usuario normal
Crtl + D
Midnight Commander puede ser invocado como mc y nos mostrara su entorno para
navegar, también podemos acceder al editor directamente utilizando mcedit y el fichero a
editar.
$ mc
27
29. USO DEL MC
Se navega con las teclas cursor (las flechas) y se cambia de ventana con la tecla tabulador.
Para entrar a un directorio pulsar intro.
Para ver un fichero F3
Para editarlo F4 (una vez modificado, con F2 se guarda y con F10 se sale)
Para copiarlo de una ventana a otra F5
Para moverlo F6
Para crear un directorio F7
Para borrar un fichero/directorio F8
Para salir F10
Ejercicios:
1) crear un directorio en nuestro home llamado prueba
2) copiar dentro del directorio recien creado el fichero /etc/motd (hay que usar las 2
ventanas)
3) editar y guardar el fichero copiado añadiendo cualquier cosa
4) ver (no editar) el fichero para comprobar que los cambios han sido guardados
5) copiar el fichero a nuestro directorio home
6) borrar el directorio prueba (incluyendo su contenido)
7) echar un vistazo al directorio root
3.3 CONFIGURACIÓN DE RED
Nuestro servidor cuenta con 2 tarjetas de red y en la instalación sólo nos ha pedido
configurar una de ellas, vamos a ver el estado de los interfaces de red:
$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:02:44:72:B2:11
inet addr:161.67.17.90 Bcast:255.255.255.255 Mask:255.255.224.0
inet6 addr: fe80::202:44ff:fe72:b211/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:478578051 errors:0 dropped:0 overruns:0 frame:0
TX packets:140163996 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:331703264 (316.3 MiB) TX bytes:425122114 (405.4 MiB)
Interrupt:5 Base address:0xd800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:72953 errors:0 dropped:0 overruns:0 frame:0
TX packets:72953 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12113904 (11.5 MiB) TX bytes:12113904 (11.5 MiB)
Como se puede apreciar hay 2 interfaces, pero uno de ellos es el 'Loopback' que
siempre está presente, por lo que aun nos falta una tarjeta de red por configurar.
28
30. Ahora que ya nos manejamos con el mc, vamos a utilizarlo para cambiar el fichero de
configuración de nuestros interfaces de red, lo cual necesita de privilegios de root.
$ su
Password: iris06
# mc
Navegamos por el arbol de directorios hasta /etc/network/ y pulsamos F4 sobre el
fichero interfaces para editarlo. Obtendremos algo parecido a esto:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
Aquí vemos la configuración de nuestros 2 interfaces configurados, nosotros tenemos
que añadir uno de tipo 'ethX' ya que lo que nos queda por configurar es una tarjeta ethernet,
en la 'X' pondremos seguiremos con la numeración y pondremos un 1 y en el cuarto
parametro, en lugar de poner dhcp pondremos static ya que la IP de esta tarjeta no va a
cambiar nunca.
Así pues debemos añadir dejando una linea en blanco después de la eth0.
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
F2 para guardar
F10 para salir del editor
F10 para salir del programa
Ahora vamos a levantar el interfaz, que basicamente es decirle al sistema que lea la
configuración que hemos escrito y ponga operativa la tarjeta.
# ifup eth1
Y comprobamos que efectivamente lo ha hecho:
# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:02:44:72:B2:11
inet addr:161.67.17.90 Bcast:255.255.255.255 Mask:255.255.224.0
inet6 addr: fe80::202:44ff:fe72:b211/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:478578051 errors:0 dropped:0 overruns:0 frame:0
TX packets:140163996 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:331703264 (316.3 MiB) TX bytes:425122114 (405.4 MiB)
Interrupt:5 Base address:0xd800
29
31. eth1 Link encap:Ethernet HWaddr 00:02:44:7B:43:52
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::202:44ff:fe7b:4352/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25025148 errors:0 dropped:0 overruns:0 frame:0
TX packets:42881539 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1729328566 (1.6 GiB) TX bytes:1671898214 (1.5 GiB)
Interrupt:12 Base address:0xd400
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:72953 errors:0 dropped:0 overruns:0 frame:0
TX packets:72953 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12113904 (11.5 MiB) TX bytes:12113904 (11.5 MiB)
Para comprobar que disponemos de red vamos a actualizar nuestra Debian online
desde los repositorios oficiales (incluyendo actualizaciones de seguridad con respecto a los
disponibles en el cd) y desde este momento instalaremos todo de esta manera.
Editamos el fichero sources.list que indica a APT donde encontrar los paquetes a
instalar:
# mcedit /etc/apt/sources.list
Veremos una línea que hace referencia al CD de instalación la cual eliminaremos o
mejor comentaremos anteponiendo una # (almohadilla), después nos quedaremos con las 2
líneas que vemos en la imagen, la primera ya incluida en el fichero por defecto que es la
referencia al repositorio de actualizaciones de seguridad y la siguiente la del repositorio main
y contrib de Debian Sarge la escribiremos nosotros:
deb http://ftp.rediris.es/debian stable main contrib
Ahora ejecutamos apt-get update para que actualice las nuevas fuentes de paquetes y
seguidamente hacemos apt-get upgrade para que descargue y actualice todos los paquetes
necesarios.
30
32. 3.4 SERVIDOR DNS BIND
Instalemos ahora un servidor de DNS para nuestra red el cual será enviado más
adelante en las peticiones DHCP de los clientes. Es algo tan sencillo como:
# apt-get install bind (bind9 desde CD)
Ya está, no es necesario ninguna configuración más.
3.5 SERVICIO DHCP DHCPD
El siguiente paso que vamos a dar es hacer que nuesto servidor de IP's automaticas a
las máquinas que se conecten a nuestra eth1, esto lo haremos con un servicio de DHCP, el
cual al ser invocado por un cliente enviará un paquete con toda la información necesaria para
configurar la red.
Un servidor DHCP puede dar las ip's básicamente de 2 formas, al libre albedrio o
según quien la pida.
¿Y cómo sabe el servidor quien le pide la IP? En las peticiones se manda la dirección
física del a tarjeta de red o MAC, que es un número de serie único para cada una y son del
formato xx:xx:xx:xx:xx:xx donde las xx son valores hexadecimales.
En nuestro servidor, vamos a darlas de las 2 formas, ya que para hacer luego
enrutados de algunos protocolos con iptables nos hará falta saber a priori la IP de la máquina
cliente, en nuestro caso el ordenador que tenemos enchufado al servidor.
Obtengamos primero su MAC, distinguiremos si tenemos en el cliente linux o windows.
LINUX: ejecutamos en la consola /sbin/ifconfig la mac apracerá en una línea
parecida a esta: eth0 Link encap:Ethernet HWaddr 00:01:4A:82:52:E7
WINDOWS: Si estamos en windows ejecutamos en la consola (para conseguir la
consola ejecutar cmd) el comando winipcfg (win 98) o ipconfig /all (win XP)
31
33. Instalamos la aplicación:
# apt-get install dhcpd
Y ahora le decimos por que interfaz debe escuchar y que debe mandar en las
peticiones, en nuestro caso será la eth1, ya que eth0 esta conectada a internet.
# mcedit /etc/default/dhcp
INTERFACES="eth1"
F2
F10
Ahora pondremos toda la configuración que será enviada, editamos dhcp.conf.
# mcedit /etc/dhcpd.conf
Comentamos todas lineas, poniendo # delante.
# option domain-name "fugue.com";
# option domain-name-servers toccata.fugue.com;
# option subnet-mask 255.255.255.224;
Y añadimos todo esto:
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.10 192.168.1.20;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
option domain-name “albacete.homelinux.org”;
default-lease-time 600;
max-lease-time 7200;
}
host cliente{
hardware ethernet XX:XX:XX:XX:XX:XX; (cambiar las xx por nuestra dirección)
fixed-address 192.168.1.2;
}
F2
F10
Donde indicamos la IP de la red, la máscara de la red, el rango de IP's que vamos a dar
que irá de la 192.168.1.10 a la 192.168.1.20, la dirección de broadcast, la IP del router, la
máscara de la subred, el servidor de DNS, nuestra DNS, el tiempo mínimo que el cliente
tendrá la IP y el máximo.
En el apartado host cliente, hemos forzado que nuestra máquina cliente tenga una IP
fija pero que también es entregada por DHCP.
Y ahora para que tenga efecto la configuración, reiniciamos el servicio.
# /etc/init.d/dhcp restart
32
34. 3.6 FIREWALL Y NAT CON IPTABLES
Un comando muy útil es el wget, el cual descarga de la red el argumento dado. Para
ahorrar tiempo descarguemos unas reglas de iptables ya creadas y a partir de ellas
comentaremos como funcionan.
Vamos primero al directorio donde están los scripts de inicio
# cd /etc/init.d/
# wget http://www.linuxalbacete.org/cursos/descargas/reglas
#!/bin/bash
# Borramos las reglas existentes del NAT
iptables -F
iptables -t nat -F
# Activamos IP Forwarding para permitir a la red interna 'salir al mundo'
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Habilitos NAT con salida por la eth0 que esta conectada a internet
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Permitimos conexiones a los servicios del router: ssh, http, MLDonkey y BitTorrent
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 4661:4662 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 4665 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 4672 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 6881:6886 -m state --state NEW -j ACCEPT
# Redireccionamos las conexiones DCC y aMSN a la maquina permitida de la red local
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 5090:5095 -j DNAT --to 192.168.1.2:5090:5095
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 6891:6893 -j DNAT --to 192.168.1.2:6891:6893
# Encaminamos las conexiones DCC y aMSN para la red interna
iptables -A FORWARD -i eth0 -p tcp --dport 5090:5095 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 6891:6893 -m state --state NEW -j ACCEPT
# Aceptamos paquetes de conexiones ya establecidas
iptables -A INPUT -p tcp -m state --state RELATED -j ACCEPT
# Cerramos el 113 para q conecte rapido el IRC
iptables -A INPUT -i eth0 -p tcp --dport 1080 -m state --state NEW -j REJECT
iptables -A INPUT -i eth0 -p tcp --dport 113 -m state --state NEW -j REJECT
# Rechazamos paquetes de conexiones nuevas
iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
# Rechazamos paquetes de forwarding de conexiones no establecidas
iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP
Ahora vamos a descargar un script para que estas reglas se ejecuten al arrancar el
sistema y se paren al apagarlo.
# wget http://www.linuxalbacete.org/cursos/descargas/script_reglas
Les damos permisos de ejecución:
# chmod 755 reglas
# chmod 755 script_reglas
Y ahora vamos a añadir nuestro script al sistema con el comando update-rc.d
# update-rc.d script_reglas defaults
33
35. 3.7 SSHD
Uno de los primeros pasos que vamos a dar es hacer un poco más seguro el acceso a
nuestra máquina, para ello vamos a restringir el acceso al superusuario del sistema (root) de
forma remota, si quisieramos acceder a nuestra máquina como root desde internet por
ejemplo deberíamos acceder al sistema con un usuario normal y después mediante el
comando su acceder al root, lo cual hace necesario disponer de ambas contraseñas y por
tanto un poco más segura nuestra máquina.
Para llevar a cabo esto editamos el fichero de configuración del servidor SSH (Secure
SHell) invocando el editor mcedit:
# mcedit /etc/ssh/sshd_config
Buscamos la directiva que permite o no que el usuario root acceda al sistema y lo
cambiamos a no que es lo que queremos:
PermitRootLogin no
F2
F10
Podemos echar un vistazo al resto de opciones, y como siempre consultar la
documentación, y descubrir opciones que quizás en algun momento puedan llegar a hacernos
falta, por ejemplo la directiva Port que nos indica en que puerto del sistema se accede por
SSH, por defecto es el 22, pero quizás alguna restricción de nuestro ISP (Proveedor Internet)
nos impida usar este puerto por encontrarse filtrado.
Finalmente para que los cambios que hemos hecho surtan efecto forzamos a que el
servidor SSH se reinicie para eso utilizamos el script siguiente:
#/etc/init.d/ssh restart
Ahora podemos comprobar que nuestra máquina ya no acepta conexciones del usuario
root a traves de SSH.
34
36. 3.8 SERVICIO DE FTP CON PROFTPD
A traves de SSH podemos también transferir de forma segura ficheros, pero debido a
la naturaleza segura del protocolo este incluye criptografía en su transmisión, esto es bueno
para acceder remotamente y no poner en peligro la seguridad de nuestro sistema, pero es
fatal para poder realizar una transferencia óptima de ficheros grandes.
Para solvertar este incoveniente vamos a utilizar un servidor FTP (File Transfer
Protocol – Protocolo de transferencia de ficheros) el cual aprovecha al máximo nuestra
capacidad de red (típicamente 100 Mb) pero por contra sus transferencias son en plano, por
tanto inseguras ya que dejan nuestras contraseñas y datos abiertos a posibles intercepciones.
Esto también lo resolvemos limitando el acceso al servidor FTP desde internet
(recordar el uso de IPTABLES y sus reglas), así que sólo estará disponible el acceso a la
transferencia mediante FTP si nos encontramos dentro de nuestra red interna.
Vamos a instalar ProFTPD que es uno de servidores FTP más utilizados por su potencia
de configuración y por su seguridad:
#apt-get install proftpd
Lo configuramos para que funcione de manera independiente:
35
37. Ahora mismo la configuración por defecto es que un usuario válido puede acceder por
FTP a todo el sistema y vamos a restringirlo para que cada usuario disponga sólo de su
directorio home para accesos por FTP y transferencia de ficheros.
Para ello y de manera similar a SSH vamos a editar su fichero de configuración y
cambiar alguna directiva:
#mcedit /etc/proftpd.conf
Vemos algunas sencillas de inditificar y que quizás nos gustaría cambiar como son el
nombre de servidor (ServerName), el mensaje de bienvenida (DisplayLogin), el puerto de
acceso (Port 21) y luego muchas más opciones avanzadas que más adelante quizás
necesitemos para ajustar el servidor a nuestras necesidades.
Una que encontramos en la documentación y que permite hacer efectiva la restricción
que queriamos aplicar y que los usuarios sólo tengan acceso a su directorio home, la
escribimos en cualquier lugar dentro del fichero de configuración:
DefaultRoot ~
36
38. F2
F10
Que viene a significar más o menos “Raiz por defecto” ~ (simbolo referido al directorio
home de cada usuario)
Finalmente y como casi siempre que cambiamos una configuración de un programa es
necesario reiniciar este para que los nuevos cambiaos surtan efecto:
#/etc/init.d/proftpd restart
Ahora si accedemos a nuestro usuario de FTP comprobaremos que nuestro directorio
home ej. /home/linuxalbacete ahora se ha convertido en el / (directorio raiz) de nuestro FTP y
del cual no podemos salir.
3.9 SERVICIO DE DNS DINÁMICO CON DYNDNS
Ya que vamos a tener nuestra máquina conectada a Internet y nos gustaría poder
acceder a ella desde cualquier lugar vamos a necesitar alguna manera de conocer nuestra
dirección IP en cada momento, si esta es permanente y nunca cambia no tenemos ningún
problema pero si contamos con una conexión típica de cable módem de ONO, ADSL de
Telefónica, Jazztel o incluso conectamos por linea telefónica es más que probable que nuestra
IP cambie de vez en cuando y lo que es peor sin nosotros poder preverlo.
Una solución a este problema es la de utilizar un servicio denominado DNS Dinámico,
que consiste en una pequeña aplicación que nuestro servidor ejecuta constantemente y a
intervalos regulares comprueba nuestra IP por si cambia, y mantiene nuestro nombre de
dominio actualizado a esa IP, por tanto siempre accesible desde Internet.
Hay muchos proveedores diferentes que ofrecen este tipo de servicios de forma
gratuita y algunos otros con más opciones de pago.
Nosotros vamos a utilizar DynDNS y una de sus opciones gratuitas.
37
39. Nos dirigimos a su página web: http://www.dyndns.com
Ahora vamos a crearnos una cuenta nueva, para ello accedemos al enlace arriba a la
derecha Sign Up Now ( http://www.dyndns.com/account/create.html )
Nos leemos la política de uso y deberemos aceptar las dos clausulas.
Introducimos un nombre de usuario, nuestra dirección de correo y una contraseña y
creamos nuestra cuenta.
Recibiremos un correo electrónico con un enlace para confirmar la creación de nuestra
cuenta.
Una vez confirmada nuestra cuenta podremos acceder a ella (login) y nos dirigiremos a
la sección My Hosts y la ópcion Add Host Services.
Ahora vamos a añadir nuestra máquina, pulsamos en Add Dynamic DNS:
– Hostname: Elegimos un nombre para nuestra máquina y un dominio de la lista que
aparece.
– IP Adress: Tenemos que poner la IP real (la que accede a internet) de nuestra
máquina, normalmente este campo ya está completado porque lo habrá detectado
automáticamente, en cualquier caso da igual porque luego se actualizará
automáticamente.
– Enable Wildcard: Lo activaremos, esta opción nos permite definir dominios
virtuales para nuestro servidor.
– Mail Exchanger (optional): Esta opción es para que otro servidor nos recoja el
correo de nuestra máquina, en nuestro caso lo dejaremos en blanco porque
seremos nosotros mismos quien lo procesemos pero si marcaremos la opción de
Backup MX para que no perdamos correos.
38
40. Una vez creado nuestro host ya podemos proceder a configurar el servidor para utilizar
este servicio, en este caso vamos a utilizar ddclient:
# apt-get install ddclient
Para configurarlo utilizaremos los siguientes parámetros:
– Servicio de DNS dinámica: www.dyndns.com
– Nombres de dominio cualificados: el que eligiéramos (albacete.homelinux.org)
– Usuario: el que creamos con la cuenta (cursolinux)
– Contraseña: la que elegimos para la cuenta
– Interfaz para el servicio: la tarjeta que este conectada a internet (eth0 en nuestro caso)
– Activar ddclient cuando PPP: no (esto es para conexión por módem)
– Ejecutar ddcliente como demonio: si (para que sea automático)
– Tiempo entre comprobaciones: 10m (minutos)
39
41. 3.10 S ERVICIO MTA CON E XIM
Queremos que nuestro servidor tenga la capacidad de enviar y recibir correos
electrónicos de nuestro nombre de dominio y que además nos sirva como SMTP para enviar
correos desde cualquier cuenta y sólo desde nuestra red interna.
Hay muchos servidores de correo: el todopoderoso Sendmail y alguno más sencillo
pero también muy potente como Postfix, para nuestro ejemplo vamos utilizar Exim, que es el
servidor de correo por defecto de Debian, en esta versión en concreto Sarge, nos encontramos
con Exim en su versión 4, debido a la complejidad de su configuración ya que usa ACLs y
muchas directivas nuevas, vamos utilizar, sólo para los ejemplos del curso, las opciones más
básicas para que resulte más sencillo de entender y configurar y tiene el nivel adecuado para
este curso, asi con todo nuestro servidor de correo funcionara total y perfectamente.
Primeramente invocamos el script de configuración que en un paso anterior nos
saltamos:
#dpkg-reconfigure exim4-config
Primeramente indicamos que no queremos dividir la configuración en pequeños
ficheros, a efectos prácticos toda la configuración se quedara en
/etc/exim4/exim4.conf.template si decidimos dividirla se repartirá en unos 40 ficheros
dentro de /etc/exim4/conf.d.
En Debian nuestra configuración básica puede editarse en /etc/exim4/update-exim4.
conf.conf y /etc/mailname, después ejecutaremos update-exim4.conf para que los
cambios surtan efecto.
A continuación indicamos que se trata de un ordenador conectado directamente a
Internet y que por tanto va a enviar y recibir los correos por si mismo: opción 1 Internet site.
En la siguiente linea se indica el nombre de dominio que aparecerá detrás de la @
cuando enviemos correo desde cuentas de nuestra maquina, en este caso indicamos:
albacete.homelinux.org.
40
42. En la siguiente pantalla podemos restringir desde donde se podrá utilizar el servidor
de correo, como en nuestro caso queremos poder recibir y enviar correos desde y hacia
Internet e igualmente queremos hacer lo mismo desde los ordenadores de nuestra red local
dejaremos esta opción en blanco (utilizar cualquier interfaz de red disponible).
Ahora indicaremos nuestro dominio dinámico para el cual estamos dispuestos a
recoger correo: albacete.homelinux.org
En la siguiente pantalla podemos indicar dominios como el anterior pero que no son
locales, es decir, pertenecen a otra máquina pero nosotros lo recogeremos por ella, como no
es nuestro caso, lo dejamos en blanco.
A continuación tenemos que indicar que ordenadores tendrán permitido el uso de
nuestro servidor, en este caso vamos a permitir que cualquier ordenador conectado a nuestra
red interna lo utilice, introducimos: 192.168.1.0/24
Finalmente nos pregunta si queremos limitar el numero de consultas DNS, esto sólo es
necesario si el servidor se conecta a Internet mediante llamada telefónica, como no es nuestro
caso le decimos que no.
Con eso termina la configuración del servicio de correo y se reinicia automáticamente
y entra en funcionamiento.
Ahora vamos a probar algunas situaciones típicas para comprobar que nuestro servidor
funciona correctamente:
– Podemos probar a enviar un correo a la dirección
linuxalbacete@albacete.homelinux.org y veremos como este llega a nuestro
usuario y puede ser consultado.
– También podemos utilizar nuestra máquina como servidor SMTP, si hacemos la
conexión desde la red interna nos los permitirá y si lo hacemos desde Internet nos
dará error, así evitamos que utilicen nuestra máquina para enviar correo no
solicitado de forma masiva.
41
43. 3.11 SERVICIO WEB CON APACHE2 + PHP4
Ahora vamos a instalar Apache el servidor web más utilizado en Internet para ofrecer
páginas web, tanto a nuestra red interna como a Intenet, dejando pasar el puerto 80, también
vamos a instalarlo con soporte para ejecutar páginas PHP (un lenguaje orientado a web muy
extendido en la actualidad por su versatilidad, seguridad y potencia).
#apt-get install apache2 libapache2-mod-php4
Con esto nuestro servidor web ya está funcionando, podemos comprobarlo con
cualquier navegador cargando la dirección de nuestro servidor (ej:
http://albacete.homelinux.org o la dirección IP directamente si no resuelve correctamente).
Ahora vamos a cambiar la página principal de nuestro servidor con otra que utilice
PHP, así de paso comprobaremos que este funciona correctamente.
Lo primero de todo tenemos que quitar la web que hay actualmente, para ello
ejecutamos el siguiente comando a2dissite (Apache2 DISable SITE) y nos mostrara los sitios
(sites) que estén en funcionamiento, en nuestro caso solo uno: 000-default que es la prueba
de instalación, elegimos ese y seguidamente ejecutamos el comando /etc/init.d/apache2
reload (como se nos indica) para que Apache recargue su fichero de configuración y los
cambios surtan efecto.
42
44. Lo primero para crear una nueva web es crear su fichero de configuración, en el caso
de Apache este es muy potente y el numero de opciones es casi ilimitado, nosotros vamos a
limitarnos a lo básico para funcionar, primeramente accedemos al directorio donde se
encuentran las configuraciones /etc/apache2/sites-avaliable y veremos que sólo se encuentra
'default', vamos a utilizar esta ya creada para nuestro propósito, hacemos una copia diferente
y la llamamos como queramos:
Nos situamos en el directorio de configuraciones:
# cd /etc/apache2/sites-avaliable
# cp default servidor
Ahora procedemos a editar nuestro fichero para hacerlo funcional:
# mcedit servidor
La linea RedirectMatch ^/$ /apache2-default/ hace que cualquier petición al servidor
sea dirigida al directorio /apache2-default/ a partir del directorio raíz de la web, que por
defecto es /var/www/, como esto no es lo que queremos, esta linea la borramos o la
comentamos poniendo # al principio de la misma.
43
45. Si intentamos cargar la web ahora nos dará un error ya que lo hemos dejado vacia.
Vamos a crear una pequeña página en PHP para el ejemplo:
# cd /var/www (vamos al directorio por defecto donde se muestra las páginas)
# mcedit index.php (creamos el fichero indice que Apache busca por defecto para mostrar)
<?php
phpinfo(); (función del lenguaje PHP que muestra información de todo tipo)
?>
Por simplicidad hemos omitido el resto de etiquetas del standard HTML.
44
46. Ahora que tenemos nuestra configuración creada y un fichero que mostrar vamos a
activarla para que funcione:
#a2ensite servidor (Apache2 Enable SITE)
Y para que surta efecto recargamos la configuración de nuestro servidor Apache:
#/etc/init.d/apache2 reload
Ahora podemos comprobar como la web que muestra nuestro servidor es la nueva que
creamos, ahora, a partir de /var/www/ podremos montar la web que deseemos.
45
47. 3.12 SERVICIO DE BBDD CON MYSQL
Como queremos que nuestro servidor también disponga de su propio servidor de bases
de datos vamos a instalar uno, MySQL, de los más utilizados y potentes, también vamos a
instalar el modulo que permite al lenguaje PHP que hemos instalado en nuestro servidor web
Apache acceder a los servicios de bases de datos de MySQL.
#apt-get install mysql-server-4.1 php4-mysql
MySQL por defecto no lleva contraseña así que lo primero que haremos es ponerle
una:
#mysql -u root (conectamos como superusuario)
Ya en el prompt de mysql introducimos la contraseña que deseemos:
mysql>set password for 'root'@'localhost' = password('iris06');
Ya tenemos la contraseña cambiada y podemos salir con quit.
3.13 A PLICACIÓN DE FORO P HPBB2
Para comprobar el uso de nuestro tandem LAMP (Linux Apache MySQL PHP) en
conjunto, vamos a realizar la instalación de un foro que utiliza todos a la vez.
Hemos elegido phpBB (http://www.phpbb.com) por ser uno de los más extendidos por
su comodidad de uso.
Si no disponemos del (des)compresor Bzip2 en nuestro sistema tendremos que
instalarlo antes de continuar con el siguiente paso, para ello nos vamos a otra consola y como
root ejecutamos:
#apt-get install bzip2
46
48. Procedemos a su descarga, nos vamos al directorio donde se aloja nuestra web,
descargamos el fichero y lo extraemos:
#cd /var/www
#wget http://kent.dl.sourceforge.net/sourceforge/phpbb/phpBB-2.0.19.tar.bz2
#tar xvjf phpBB-2.0.19.tar.bz2
Podemos adecentar un poco el directorio de la web, por ejemplo podemos borrar el
directorio apache2-default y el fichero phpBB-2.0.19.tar.bz2 ya que no los vamos a utilizar,
también podemos cambiar el nombre del directorio phpBB2 a foro.
#rm -R apache2-default
#rm phpBB-2.0.19.tar.bz2
#mv phpBB2 foro
Una de las cosas que necesita phpBB para funcionar es una base de datos (lo demás ya
lo hemos instalado), así que vamos a proceder a crear una base de datos para el foro y un
usuario para que pueda acceder a ella:
#mysql -u root -p
mysql>create database phpbb; (creamos una base de datos llamada phpbb)
mysql>grant usage on *.* to linuxalbacete@localhost identified by 'asociacion';
(creamos un usuario llamado linuxalbacete con contraseña 'asociacion' y le permitimos
conectar a MySQL)
mysql>grant all on phpbb.* to linuxalbacete@localhost; (le damos permisos al usuario
linuxalbacete sobre la base de datos del foro)
Ahora ya tenemos todo listo y podemos proceder a la instalación, para ello cargamos la
página web del foro: http://albacete.homelinux.org/foro e introducimos los datos correctos en
el formulario antes de presionar 'Start Install':
– Default board language: English
– Database Type: MySQL 4.x
– Choose your installation method: Install
– Database Server Hostname / DSN: localhost
– Your Database Name: phpbb
– Database Username: linuxalbacete
– Database Password: asociacion
– Prefix for tables in database: phpbb_
– Admin Email Address: linuxalbacete@albacete.homelinux.org
– Domain Name: albacete.homelinux.org
– Server Port: 80
– Script path: /foro/
– Administrator Username: linuxalbacete
– Administrator Password: iris06
– Administrator Password [ Confirm ]: iris06
47
49. La instalación termina rápidamente y antes de presionar sobre terminar instalación,
deberemos borrar los directorios de la instalación que ya no van a hacer falta:
#cd /var/www/foro (para asegurarnos que estamos en el directorio correcto)
#rm -R install/
#rm -R contrib/
48
50. Presionamos sobre Finish Installation y seremos enviados a una web donde deberemos
introducir lo datos que pusimos anteriormente para Administrator, si nos dirigimos a la
sección Configuration de General Admin podremos cambiar los valores por defecto del foro,
en las diferentes secciones podremos cambiar el aspecto, el idioma, los foros y categorías,
usuarios y un largo etcétera, aunque es bastante intuitivo para conseguir la potencia total que
phpBB es recomendable consultar la documentación que se puede encontrar en
http://www.phpbb.com.
A partir de este momento ya tenemos un foro funcional en la dirección
http://albacete.homelinux.org/foro/
3.14 APLICACIÓN P2P MLDONKEY
MLDonkey es un cliente que nos permite conectar a varias redes P2P de forma
simultanea (y varios servidores) entre ellas la red Edonkey, Bittorrent,
Aunque existen versiones precompiladas, incluso en la rama de Debian, vamos a
realizar una compilación a partir del código fuente para así aprender la forma típica en que
un programa se instala si no está incluido en nuestra distribución como paquete.
Para aumentar la seguridad vamos a “encerrar” a MLDonkey en su propio usuario y
evitar comprometer otras partes del sistema en caso de algún fallo o error. También se puede
incluir una jaula (jail) o implementar algún tipo de restricción adicional (quota) de memoria o
espacio en disco, de esta manera también podremos acceder cómodamente por FTP a este
usuario para descargar los ficheros terminados.
#adduser mldonkey (esto crea un usuario nuevo en el sistema)
password: asociación (introducimos el que deseemos) y el resto de preguntas podemos
rellenarlas como mejor nos parezca, finalmente decimos que la información introducida es
correcta (y) y el usuario se crea.
49
51. A partir de ahora para realizar todo el proceso vamos a utilizar el usuario que
acabamos de crear, para ello salimos del terminal que estamos y accedemos como mldonkey o
directamente desde la consola de root utilizamos el comando 'su mldonkey' que nos permite
cambiar de un usuario a otro.
Ahora nos dirigimos al directorio home de mldonkey con 'cd', aseguramos que antes de
seguir con los pasos nos encontramos en el directorio correcto /home/mldonkey, esto se
puede mirar con el comando 'pwd'.
Y descargamos la última versión de MLDonkey. Ahora el desarrollo de MLDonkey se ha
unificado y podemos encontrarlo en: http://mldonkey.sourceforge.net/
Bajamos la última versión disponible de 'sourcecode' (código fuente) de la sección de
descargas:
#wget http://kent.dl.sourceforge.net/sourceforge/mldonkey/mldonkey-2.7.4.tar.bz2
Para extraer los ficheros del código fuente usamos el siguiente comando o podemos
utilizar mc:
#tar xvjf mldonkey-2.7.4.tar.bz2
Ahora accedemos al directorio que acabamos de crear con el codigo fuente:
#cd mldonkey-2.7.4
Si nos leemos la documentación sobre MLDonkey o lo intentamos compilar veremos
que aunque así, tal cual, MLDonkey funcionaría tenemos la posibilidad de facilitarle algunos
paquetes extra que añadirán más funcionalidades al mismo:
#apt-get install zlib1g-dev
# apt-get install libbz2-dev
# apt-get install libgd2-noxpm-dev
Y ahora procedemos a preparar el código fuente para ser compilado para ello usamos
el comando:
$ ./configure (añadimos ./ porque se trata de un ejecutable del directorio que nos
encontramos pero este no se encuentra en el path, requisito imprescindible para ejecutarlo)
Durante este proceso nos preguntara si queremos descargar y compilar de manera
local en el directorio de mldonkey el lenguaje de programación ocaml, que es el utilizado para
crear MLDonkey, le decimos que si (y).
Finalmente nos mostrará una pantalla resumen con las capacidades con las que es
capaz de compilar MLDonkey: soporte para las diferentes redes, compresión y gráficos para
las estadísticas.
50
52. Y finalmente lo compilamos con make (como vimos antes había más opciones de
compilación) y adicionalmente después de make podemos ejecutar make utils que compila
unas cuantas herramientas que pueden sernos útiles para utilizar MLDonkey.
Ahora ya tenemos un fichero llamado mlnet que es el núcleo de MLDonkey, antes de
ejecutarlo vamos a copiarlo al directorio home que creamos y entonces ya lo lanzamos:
$ cp mlnet .. (o cp mlnet /home/mldonkey)
$ ./mlnet & (& es para que se ejecute en segundo plano y podamos salir de la máquina y siga
ejecutandose)
Ya tenemos MLDonkey funcionando, ahora vamos a configurarlo para poder acceder a
su interfaz de configuración y control (porque en principio sólo es accesible desde la misma
máquina pero como no disponemos de entorno gráfico), usaremos el vía web integrado
aunque hay varias alternativas más: telnet y GUI.
51
53. Desde una máquina externa a nuestro servidor vamos a aprender a acceder de forma
remota, esto nos permite utilizarlo a través de Internet como si estuviéramos sentados delante
e incluso utilizar MLDonkey:
Hay muchos programas que soportan SSH nosotros vamos a utilizar PuTTy en
Windows:
– Lo ejecutamos y en Host a conectar introducimos la IP de nuestra máquina.
– Seleccionamos la opción en el árbol de la izquierda de SSH Tunnels (dentro de
Connections) e introducimos los siguientes datos:
– Source port: 4080
– Destination: 192.168.1.1:4080
– Local y Auto
– Y presionamos en Add y deberá añadirse a la lista que aparece en el cuadro de
Forwarded ports.
– Ahora presionamos en Open
– Nos solicitara login y password, podemos utilizar el usuario de mldonkey.
– PuTTy lo dejamos en segundo plano sin cerrarlo y nos vamos a un navegador y
cargamos la dirección http://127.0.0.1:4080 y ya estaremos dentro del interfaz de
MLDonkey.
Si utilizamos Linux no es necesario instalar ningún programa adicional, simplemente
desde una consola introduciremos el siguiente comando:
$ ssh -L 4080:127.0.0.1:4080 linuxalbacete@albacete.homelinux.org (-N)
Con -N impedimos que se ejecute la shell y por tanto ningún comando, de esta forma es
algo mas seguro dejarse abierto un túnel en una máquina.
52
54. Todo este proceso del túnel tendremos que hacerlo siempre que conectemos desde una
máquina en Internet, principalmente por seguridad y porque no queremos dejar nuestro
MLDonkey accesible a todo el mundo, pero dentro de nuestra red si vamos a dejar que
utilicen el interfaz, para ello ejecutamos los siguientes pasos:
– Pulsamos sobre Options y luego sobre la pestaña Ports.
– En el apartado allowed_ips (IPs permitidas) nos encontramos 127.0.0.1 (la propia
máquina y ahora vamos a añadir nuestra red interna 192.168.255.255 (también
podemos añadir sólo nuestro ordenador o incluso IPs de internet para permitirle
acceder aunque también habría que mapear el puerto 4080 en nuestro firewall)
53
55. – Para cambiar el valor hay que pulsar Intro y veremos arriba el mensaje Option
value changed y para que este cambio surta efecto pulsamos en el botón de abajo
Save y veremos options and sources saved.
Ahora ya podemos acceder a nuestro MLDonkey si nos encontramos en un ordenador
conectado a nuestra red interna sin necesidad de abrir un túnel SSH, si queremos probarlo
sólo tenemos que cerrar PuTTy y cargar en un navegador la dirección: http://127.0.0.1:4080
Ahora nuestro MLDonkey está listo para usarse, aunque es bastante sencillo es
conveniente consultar su documentación y su web oficial: http://mldonkey.sf.net (en inglés
aunque si queremos o lo necesitamos, buscando un poco en Google encontraremos foros y
manuales en Castellano).
54
56. Finalmente vamos a hacer que nuestro MLDonkey se ejecute en el sistema como un
servicio más, es decir se inicie y pare a la par que el sistema e igualmente podamos
controlarlo de una forma “standard” con su script en init.d
Lo primero es obtener el sencillo script que hemos creado:
http://www.linuxalbacete.org/cursos/descargas/mlnet
#! /bin/sh
#
# mlnet Script para controlar MLDonkey desde /etc/init.d
#
# Author: Alfonso Moratalla <alfonso.moratalla@gmail.com>.
##
Copiar mlnet (este script) a /etc/init.d
# Darle permisos de ejecucion: chmod 755 -> -rwx r-x r-x
# Añadir a rc.d con: update-rc.d mlnet defaults
#
# Version: @(#)mlnet 1.10 28-Nov-2005
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="MLDonkey"
NAME=mlnet
DAEMON=/home/mldonkey/$NAME
SCRIPTNAME=/etc/init.d/$NAME
# Si el programa ya no esta, salimos sin hacer nada.
test -x $DAEMON || exit 0
##
Funcion para lanzar MLDonkey (-b para dejarlo en segundo plano).
#d
_start() {
start-stop-daemon --start --quiet --exec $DAEMON -b
}
##
Funcion para parar MLDonkey.
#d
_stop() { start-stop-daemon --stop --quiet --exec $DAEMON
}
case "$1" in
start)
echo -n "Iniciando $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Parando $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Reiniciando $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Uso: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
55
57. 3.15 SERVIDOR DE FICHEROS CON SAMBA
Vamos a instalar Samba que es una implementación libre de los protocolos SMB/CIFS
(Common Internet File System) y es el sistema utilizado en sistemas Windows por defecto.
Nos servirá para poder compartir ficheros e impresoras sobre una red, las ventajas de
utilizar este método (y no el FTP que ya tenemos por ejemplo) es que los ficheros que
ofrecemos con este servidor y que son accedidos (montados) por el cliente se mostraran en
este último como si de ficheros locales se trataran, integrándose en el sistema de ficheros
local en un punto de montaje (directorio) u unidad (de red) y por tanto se utilizara toda esta
estructura de red de forma transparente, igualmente una impresora se comportará como si
esta estuviera conectada directamente a nuestro ordenador, cuando en realidad puede
encontrarse a decenas de metros en otra habitación por ejemplo.
Mas ventajas con respecto a otros sistemas de compartición de ficheros (como NFS) es
que Samba nos permite interoperar entre una heterogénea gama de sistemas operativos que
puedan coexistir en una red de forma nativa prácticamente sin la necesidad de instalar
clientes específicos (típicamente un servidor linux y clientes windows y linux).
Primeramente procedemos a instalar el servidor Samba:
#apt-get install samba
La primera pregunta que nos hace es acerca de nuestro nombre de dominio o grupo de
trabajo, será lo que aparezca cuando busquemos o conectemos a nuestra maquina, aquí
podemos poner lo que queramos, lo normal será algo como: linuxalbacete,
albacete.homelinux.org, casa, etc.
Seguidamente nos pregunta si queremos contraseñas cifradas, le diremos que sí, ya
que ademas de más seguro en caso contrario muchos sistemas no serían capaces de conectar
porque las contraseñas no cifradas son rechazadas por muchos sistemas operativos modernos
por motivos de seguridad.
56
58. La siguiente pregunta es acerca del servidor WINS, una especie de DNS para
máquinas Windows conectadas a una red, como no disponemos de uno, le diremos aquí que
no.
A continuación le indicamos que queremos que nuestro servidor de ficheros Samba se
ejecute como demonio independiente.
Seguidamente le decimos que cree la base de datos de contraseñas
/var/lib/samba/passdb.tdb, tanto por seguridad como para mantener la compatibilidad con
sistemas operativos Windows.
La instalación prosigue y tras algunas configuraciones adicionales nos lanza los
demonios de Samba: nmbd y smbd, el primero encargado de servir y atender las peticiones
sobre nombres y conexiones y el segundo se trata del protocolo Samba (CIFS) en si de
transmisión de datos sobre la red.
Ahora que tenemos nuestro servidor corriendo vamos a proceder a configurarlo y
añadiremos un recurso de ficheros, uno muy útil puede ser el directorio incoming de
MLDonkey lo que nos permitirá disponer en cualquier ordenador de la red de un directorio o
unidad de red que contendrá los ficheros descargados por el cliente P2P de nuestra máquina.
Para ello primeramente borraremos la configuración original por defecto para que nos
resulte más sencillo ya que se trata de un fichero enorme con innumerables opciones posibles,
cada uno y según sus necesidades podrá consultar la documentación sobre Samba y ampliar y
modificar la configuración completa a sus gusto, mejor aun podemos renombrar el fichero
original para su futuro uso y crear uno nuevo:
#mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
57
59. #mcedit /etc/samba/smb.conf creamos el fichero nuevo e introducimos la siguiente
información en el: (las lineas con ; son consideradas como comentarios y no tienen efecto):
; Fichero configuración Samba Linux Albacete
[global]
workgroup = linuxalbacete (el que introducimos durante la instalación de Samba)
encrypt passwords = yes
[mldonkey]
path = /home/mldonkey/.mldonkey/incoming/files
read only = no (yes si queremos que los ficheros no puedan borrarse o modificarse)
Para que los cambios surtan efecto, procedemos a recargar la configuración que
acabamos de crear para ello ejecutamos el siguiente comandos:
#/etc/init.d/samba reload
Ya tenemos nuestro servidor ejecutandose y sirviendo el directorio de MLDonkey,
ahora solo necesitamos un usuario para acceder a dicho recurso, vamos a utilizar el usuario
mldonkey que creamos anteriormente(si utilizamos otro debe ser uno que exista en nuestra
máquina), sólo nos queda habilitarlo dentro de la base de datos de contraseñas de Samba,
para ello ejecutamos el siguiente comando (add):
#smbpasswd -a mldonkey
Nos pedirá dos veces la nueva contraseña que estamos creando, puede ser cualquiera
aunque por comodidad vamos a introducir asociacion, seguidamente veremos como nos avisa
que el fichero de contraseñas /etc/samba/smbpasswd no existe y procede a crearlo, finalmente
nos informa de que la operación tuvo éxito y el usuario se añadió (Added user mldonkey.)
Ahora también tendremos que recargar la configuración y si no podemos conectar una
solución rápida es forzar un reinicio de Samba con restart para que lea el nuevo usuario
creado.
58
60. Ahora vamos a ver las formas de acceder: con linux podemos utilizar el cliente
smbclient o directamente con mount (necesitamos el paquete smbfs) y el comando necesario
para acceder al recurso seria el siguiente (en una sola linea):
#mount -t smbfs -o username=mldonkey,password=asociacion
//192.168.1.1/mldonkey /mnt/descargas/
-t smbfs indica que se trata de un recurso Samba
-o para introducir credenciales de acceso: usuario y contraseña que creamos
//ip o nombre de la máquina/recurso según los hayamos definido en la configuración
/mnt/descargas es el directorio local (máquina desde donde accedemos) donde se montará el
recurso y desde donde será accesible
Si queremos podemos hacer que esta conexión sea permanente, es decir, que siempre
este disponible en nuestra máquina al arrancar y evitarnos tener que introducir el comando
cada vez, y podríamos hacer un acceso directo en nuestro escritorio para que fuese aun más
sencillo su acceso, para ello vamos a editar el fichero /etc/fstab de nuestra máquina y al final
del mismo añadiremos la siguiente linea y dejaremos una en blanco después:
//192.168.1.1/mldonkey /mnt/descargas smbfs credentials=/root/.smbpasswd,
uid=usuario, gid=usuario 0 0
Los parámetros son iguales que el anterior comando excepto que las credenciales las
vamos a suministrar desde un fichero externo para más seguridad y que estará alojado en el
directorio del root, típicamente no accesible para nadie en el sistema excepto él, también
indicamos el uid y gid del usuario que accede al recurso, esto es porque si no se indica
únicamente el root podrá tener acceso al recurso, los ceros del final son parámetros del
propio fstab e indican respectivamente si el sistema de ficheros debe ser volcado a disco y si
este debe ser comprobado al arrancar en busca de errores.
El fichero /root/.smbpasswd debemos crearlo con 2 lineas:
username=mldonkey
password=asociacion
Ahora le daremos permisos exclusivos al root para evitar que pueda ser accedido por
terceras personas, incluido el usuario del sistema local que conecta, lo cual le permite
acceder a los ficheros pero sin conocer el usuario y contraseña de acceso:
#chmod 600 /root/.smbpasswd
Para conectar a recursos Samba podemos utilizar también numerosos clientes gráficos
que nos muestran la red, sus grupos de trabajo y recursos que comparten y nos solicitará el
usuario y contraseña cuando solicitemos acceder a uno de ellos.
La forma de acceder desde un sistema Windows queda en vuestras manos y buscar
información, con XP es muy sencillo y tiene diversas maneras como un asistente y un monitor
de red incluso introduciendo el recurso en una ventana del explorador
192.168.1.1mldonkey, con Windows 98 es complicado y con 95 imposible debido a las
contraseñas cifradas, para hacer persistentes las conexiones en un sistema Windows se puede
crear (conectar) a una unidad de red y decirle que la recupere en cada reinicio del sistema.
59
61. 4 APÉNDICES
4.1 APÉNDICE A – Licencia Creative Commons
(http://creativecommons.org)
Reconocimiento-NoComercial-CompartirIgual 2.5 España
CREATIVE COMMONS CORPORATION NO ES UN DESPACHO DE ABOGADOS Y NO
PROPORCIONA SERVICIOS JURÍDICOS. LA DISTRIBUCIÓN DE ESTA LICENCIA NO CREA
UNA RELACIÓN ABOGADO-CLIENTE. CREATIVE COMMONS PROPORCIONA ESTA
INFORMACIÓN TAL CUAL (ON AN "AS-IS" BASIS). CREATIVE COMMONS NO OFRECE
GARANTÍA ALGUNA RESPECTO DE LA INFORMACIÓN PROPORCIONADA, NI ASUME
RESPONSABILIDAD ALGUNA POR DAÑOS PRODUCIDOS A CONSECUENCIA DE SU USO.
Licencia
LA OBRA (SEGÚN SE DEFINE MÁS ADELANTE) SE PROPORCIONA BAJO LOS TÉRMINOS
DE ESTA LICENCIA PÚBLICA DE CREATIVE COMMONS ("CCPL" O "LICENCIA"). LA OBRA
SE ENCUENTRA PROTEGIDA POR LA LEY ESPAÑOLA DE PROPIEDAD INTELECTUAL Y/O
CUALESQUIERA OTRAS NORMAS RESULTEN DE APLICACIÓN. QUEDA PROHIBIDO
CUALQUIER USO DE LA OBRA DIFERENTE A LO AUTORIZADO BAJO ESTA LICENCIA O LO
DISPUESTO EN LAS LEYES DE PROPIEDAD INTELECTUAL.
MEDIANTE EL EJERCICIO DE CUALQUIER DERECHO SOBRE LA OBRA, USTED ACEPTA Y
CONSIENTE LAS LIMITACIONES Y OBLIGACIONES DE ESTA LICENCIA. EL LICENCIADOR
LE CEDE LOS DERECHOS CONTENIDOS EN ESTA LICENCIA, SIEMPRE QUE USTED
ACEPTE LOS PRESENTES TÉRMINOS Y CONDICIONES.
1. Definiciones
a. La "obra" es la creación literaria, artística o científica ofrecida bajo los términos de
esta licencia.
b. El "autor" es la persona o la entidad que creó la obra.
c. Se considerará "obra conjunta" aquella susceptible de ser incluida en alguna de las
siguientes categorías:
i. "Obra en colaboración", entendiendo por tal aquella que sea resultado
unitario de la colaboración de varios autores.
ii."Obra colectiva", entendiendo por tal la creada por la iniciativa y bajo la
coordinación de una persona natural o jurídica que la edite y divulgue bajo su
nombre y que esté constituida por la reunión de aportaciones de diferentes
autores cuya contribución personal se funde en una creación única y autónoma,
para la cual haya sido concebida sin que sea posible atribuir separadamente a
cualquiera de ellos un derecho sobre el conjunto de la obra realizada.
iii."Obra compuesta e independiente", entendiendo por tal la obra nueva que
incorpore una obra preexistente sin la colaboración del autor de esta última.
d. Se considerarán "obras derivadas" aquellas que se encuentren basadas en una obra o
en una obra y otras preexistentes, tales como: las traducciones y adaptaciones; las
revisiones, actualizaciones y anotaciones; los compendios, resúmenes y extractos; los
arreglos musicales y, en general, cualesquiera transformaciones de una obra literaria,
artística o científica, salvo que la obra resultante tenga el carácter de obra conjunta en
cuyo caso no será considerada como una obra derivada a los efectos de esta licencia.
Para evitar la duda, si la obra consiste en una composición musical o grabación de
60
62. sonidos, la sincronización temporal de la obra con una imagen en movimiento
("synching") será considerada como una obra derivada a los efectos de esta licencia.
e. Tendrán la consideración de "obras audiovisuales" las creaciones expresadas
mediante una serie de imágenes asociadas, con o sin sonorización incorporada, así
como las composiciones musicales, que estén destinadas esencialmente a ser
mostradas a través de aparatos de proyección o por cualquier otro medio de
comunicación pública de la imagen y del sonido, con independencia de la naturaleza de
los soportes materiales de dichas obras.
f. El "licenciador" es la persona o la entidad que ofrece la obra bajo los términos de esta
licencia y le cede los derechos de explotación de la misma conforme a lo dispuesto en
ella.
g. "Usted" es la persona o la entidad que ejercita los derechos cedidos mediante esta
licencia y que no ha violado previamente los términos de la misma con respecto a la
obra, o que ha recibido el permiso expreso del licenciador de ejercitar los derechos
cedidos mediante esta licencia a pesar de una violación anterior.
h.La "transformación" de una obra comprende su traducción, adaptación y cualquier
otra modificación en su forma de la que se derive una obra diferente. Cuando se trate
de una base de datos según se define más adelante, se considerará también
transformación la reordenación de la misma. La creación resultante de la
transformación de una obra tendrá la consideración de obra derivada.
i. Se entiende por "reproducción" la fijación de la obra en un medio que permita su
comunicación y la obtención de copias de toda o parte de ella.
j. Se entiende por "distribución" la puesta a disposición del público del original o copias
de la obra mediante su venta, alquiler, préstamo o de cualquier otra forma.
k. Se entenderá por "comunicación pública" todo acto por el cual una pluralidad de
personas pueda tener acceso a la obra sin previa distribución de ejemplares a cada una
de ellas. No se considerará pública la comunicación cuando se celebre dentro de un
ámbito estrictamente doméstico que no esté integrado o conectado a una red de
difusión de cualquier tipo. A efectos de esta licencia se considerará comunicación
pública la puesta a disposición del público de la obra por procedimientos alámbricos o
inalámbricos, incluida la puesta a disposición del público de la obra de tal forma que
cualquier persona pueda acceder a ella desde el lugar y en el momento que elija.
l. La "explotación" de la obra comprende su reproducción, distribución, comunicación
pública y transformación.
m.Tendrán la consideración de "bases de datos" las colecciones de obras ajenas, de
datos o de otros elementos independientes como las antologías y las bases de datos
propiamente dichas que por la selección o disposición de sus contenidos constituyan
creaciones intelectuales, sin perjuicio, en su caso, de los derechos que pudieran
subsistir sobre dichos contenidos.
n.Los "elementos de la licencia" son las características principales de la licencia según
la selección efectuada por el licenciador e indicadas en el título de esta licencia:
Reconocimiento de autoría (Reconocimiento), Sin uso comercial (NoComercial),
Compartir de manera igual (CompartirIgual).
2. Límites y uso legítimo de los derechos. Nada en esta licencia pretende reducir o
restringir cualesquiera límites legales de los derechos exclusivos del titular de los derechos
de propiedad intelectual de acuerdo con la Ley de Propiedad Intelectual o cualesquiera otras
leyes aplicables, ya sean derivados de usos legítimos, tales como el derecho de copia privada
o el derecho a cita, u otras limitaciones como la derivada de la primera venta de ejemplares.
3. Concesión de licencia. Conforme a los términos y a las condiciones de esta licencia, el
licenciador concede (durante toda la vigencia de los derechos de propiedad intelectual) una
licencia de ámbito mundial, sin derecho de remuneración, no exclusiva e indefinida que
incluye la cesión de los siguientes derechos:
a. Derecho de reproducción, distribución y comunicación pública sobre la obra.
b.Derecho a incorporarla en una o más obras conjuntas o bases de datos y para su
reproducción en tanto que incorporada a dichas obras conjuntas o bases de datos.
61
63. c. Derecho para efectuar cualquier transformación sobre la obra y crear y reproducir
obras derivadas.
d.Derecho de distribución y comunicación pública de copias o grabaciones de la obra,
como incorporada a obras conjuntas o bases de datos.
e. Derecho de distribución y comunicación pública de copias o grabaciones de la obra,
por medio de una obra derivada.
Los anteriores derechos se pueden ejercitar en todos los medios y formatos, tangibles o
intangibles, conocidos o por conocer. Los derechos mencionados incluyen el derecho a
efectuar las modificaciones que sean precisas técnicamente para el ejercicio de los derechos
en otros medios y formatos. Todos los derechos no cedidos expresamente por el licenciador
quedan reservados, incluyendo, a título enunciativo pero no limitativo, los establecidos en la
sección 4e.
4. Restricciones. La cesión de derechos que supone esta licencia se encuentra sujeta y
limitada a las restricciones siguientes:
a. Usted puede reproducir, distribuir o comunicar públicamente la obra solamente bajo
los términos de esta licencia y debe incluir una copia de la misma, o su Identificador
Uniforme de Recurso (URI), con cada copia o grabación de la obra que usted
reproduzca, distribuya o comunique públicamente. Usted no puede ofrecer o imponer
ningún término sobre la obra que altere o restrinja los términos de esta licencia o el
ejercicio de sus derechos por parte de los cesionarios de la misma. Usted no puede
sublicenciar la obra. Usted debe mantener intactos todos los avisos que se refieran a
esta licencia y a la ausencia de garantías. Usted no puede reproducir, distribuir o
comunicar públicamente la obra con medidas tecnológicas que controlen el acceso o
uso de la obra de una manera contraria a los términos de esta licencia. Lo anterior se
aplica a una obra en tanto que incorporada a una obra conjunta o base de datos, pero
no implica que éstas, al margen de la obra objeto de esta licencia, tengan que estar
sujetas a los términos de la misma. Si usted crea una obra conjunta o base de datos,
previa comunicación del licenciador, usted deberá quitar de la obra conjunta o base de
datos cualquier referencia crédito requerido en el apartado 4d, según lo que se le
requiera y en la medida de lo posible. Si usted crea una obra derivada, previa
comunicación del licenciador, usted deberá quitar de la obra derivada cualquier
crédito requerido en el apartado 4d, según lo que se le requiera y en la medida de lo
posible.
b.Usted puede reproducir, distribuir o comunicar públicamente una obra derivada
solamente bajo los términos de esta licencia, o de una versión posterior de esta licencia
con sus mismos elementos principales, o de una licencia iCommons de Creative
Commons que contenga los mismos elementos principales que esta licencia (ejemplo:
Reconocimiento-NoComercial-Compartir 2.5 Japón). Usted debe incluir una copia de la
esta licencia o de la mencionada anteriormente, o bien su Identificador Uniforme de
Recurso (URI), con cada copia o grabación de la obra que usted reproduzca, distribuya
o comunique públicamente. Usted no puede ofrecer o imponer ningún término respecto
de las obras derivadas o sus transformaciones que alteren o restrinjan los términos de
esta licencia o el ejercicio de sus derechos por parte de los cesionarios de la misma.
Usted debe mantener intactos todos los avisos que se refieran a esta licencia y a la
ausencia de garantías. Usted no puede reproducir, distribuir o comunicar
públicamente la obra derivada con medidas tecnológicas que controlen el acceso o uso
de la obra de una manera contraria a los términos de esta licencia. Lo anterior se
aplica a una obra derivada en tanto que incorporada a una obra conjunta o base de
datos, pero no implica que éstas, al margen de la obra objeto de esta licencia, tengan
que estar sujetas a los términos de esta licencia.
c. Usted no puede ejercitar ninguno de los derechos cedidos en la sección 3 anterior de
manera que pretenda principalmente o se encuentre dirigida hacia la obtención de un
beneficio mercantil o la remuneración monetaria privada. El intercambio de la obra por
otras obras protegidas por la propiedad intelectual mediante sistemas de compartir
archivos no se considerará como una manera que pretenda principalmente o se
encuentre dirigida hacia la obtención de un beneficio mercantil o la remuneración
monetaria privada, siempre que no haya ningún pago de cualquier remuneración
62
64. monetaria en relación con el intercambio de las obras protegidas.
d. Si usted reproduce, distribuye o comunica públicamente la obra o cualquier obra
derivada, conjunta o base datos que la incorpore, usted debe mantener intactos todos
los avisos sobre la propiedad intelectual de la obra y reconocer al autor original, de
manera razonable conforme al medio o a los medios que usted esté utilizando,
indicando el nombre (o el seudónimo, en su caso) del autor original si es facilitado, y/o
reconocer a aquellas partes (por ejemplo: institución, publicación, revista) que el autor
original y/o el licenciador designen para ser reconocidos en el aviso legal, las
condiciones de uso, o de cualquier otra manera razonable; el título de la obra si es
facilitado; de manera razonable, el Identificador Uniforme de Recurso (URI), si existe,
que el licenciador especifica para ser vinculado a la obra, a menos que tal URI no se
refiera al aviso sobre propiedad intelectual o a la información sobre la licencia de la
obra; y en el caso de una obra derivada, un aviso que identifique el uso de la obra en la
obra derivada (e.g., "traducción castellana de la obra de Autor Original," o "guión
basado en obra original de Autor Original"). Tal aviso se puede desarrollar de cualquier
manera razonable; con tal de que, sin embargo, en el caso de una obra derivada,
conjunta o base datos, aparezca como mínimo este aviso allá donde aparezcan los
avisos correspondientes a otros autores y de forma comparable a los mismos.
e. Para evitar la duda, sin perjuicio de la preceptiva autorización del licenciador, y
especialmente cuando la obra se trate de una obra audiovisual, el licenciador se
reserva el derecho exclusivo a percibir, tanto individualmente como mediante una
entidad de gestión de derechos, o varias, (por ejemplo: SGAE, Dama, VEGAP), los
derechos de explotación de la obra, así como los derivados de obras derivadas,
conjuntas o bases de datos, si dicha explotación pretende principalmente o se
encuentra dirigida hacia la obtención de un beneficio mercantil o la remuneración
monetaria privada.
f. En el caso de la inclusión de la obra en alguna base de datos o recopilación, el
propietario o el gestor de la base de datos deberá renunciar a cualquier derecho
relacionado con esta inclusión y concerniente a los usos de la obra una vez extraída de
las bases de datos, ya sea de manera individual o conjuntamente con otros materiales.
5. Exoneración de responsabilidad
A MENOS QUE SE ACUERDE MUTUAMENTE ENTRE LAS PARTES, EL LICENCIADOR
OFRECE LA OBRA TAL CUAL (ON AN "AS-IS" BASIS) Y NO CONFIERE NINGUNA
GARANTÍA DE CUALQUIER TIPO RESPECTO DE LA OBRA O DE LA PRESENCIA O
AUSENCIA DE ERRORES QUE PUEDAN O NO SER DESCUBIERTOS. ALGUNAS
JURISDICCIONES NO PERMITEN LA EXCLUSIÓN DE TALES GARANTÍAS, POR LO QUE TAL
EXCLUSIÓN PUEDE NO SER DE APLICACIÓN A USTED.
6. Limitación de responsabilidad.
SALVO QUE LO DISPONGA EXPRESA E IMPERATIVAMENTE LA LEY APLICABLE, EN
NINGÚN CASO EL LICENCIADOR SERÁ RESPONSABLE ANTE USTED POR CUALQUIER
TEORÍA LEGAL DE CUALESQUIERA DAÑOS RESULTANTES, GENERALES O ESPECIALES
(INCLUIDO EL DAÑO EMERGENTE Y EL LUCRO CESANTE), FORTUITOS O CAUSALES,
DIRECTOS O INDIRECTOS, PRODUCIDOS EN CONEXIÓN CON ESTA LICENCIA O EL USO
DE LA OBRA, INCLUSO SI EL LICENCIADOR HUBIERA SIDO INFORMADO DE LA
POSIBILIDAD DE TALES DAÑOS.
7. Finalización de la licencia
a. Esta licencia y la cesión de los derechos que contiene terminarán automáticamente en
caso de cualquier incumplimiento de los términos de la misma. Las personas o
entidades que hayan recibido obras derivadas, conjuntas o bases de datos de usted
bajo esta licencia, sin embargo, no verán sus licencias finalizadas, siempre que tales
personas o entidades se mantengan en el cumplimiento íntegro de esta licencia. Las
secciones 1, 2, 5, 6, 7 y 8 permanecerán vigentes pese a cualquier finalización de esta
licencia.
b.Conforme a las condiciones y términos anteriores, la cesión de derechos de esta
licencia es perpetua (durante toda la vigencia de los derechos de propiedad intelectual
63
65. aplicables a la obra). A pesar de lo anterior, el licenciador se reserva el derecho a
divulgar o publicar la obra en condiciones distintas a las presentes, o de retirar la obra
en cualquier momento. No obstante, ello no supondrá dar por concluida esta licencia (o
cualquier otra licencia que haya sido concedida, o sea necesario ser concedida, bajo los
términos de esta licencia), que continuará vigente y con efectos completos a no ser que
haya finalizado conforme a lo establecido anteriormente.
8. Miscelánea
a. Cada vez que usted explote de alguna forma la obra, o una obra conjunta o una base
datos que la incorpore, el licenciador original ofrece a los terceros y sucesivos
licenciatarios la cesión de derechos sobre la obra en las mismas condiciones y términos
que la licencia concedida a usted.
b.Cada vez que usted explote de alguna forma una obra derivada, el licenciador original
ofrece a los terceros y sucesivos licenciatarios la cesión de derechos sobre la obra
original en las mismas condiciones y términos que la licencia concedida a usted.
c. Si alguna disposición de esta licencia resulta inválida o inaplicable según la Ley
vigente, ello no afectará la validez o aplicabilidad del resto de los términos de esta
licencia y, sin ninguna acción adicional por cualquiera las partes de este acuerdo, tal
disposición se entenderá reformada en lo estrictamente necesario para hacer que tal
disposición sea válida y ejecutiva.
d.No se entenderá que existe renuncia respecto de algún término o disposición de esta
licencia, ni que se consiente violación alguna de la misma, a menos que tal renuncia o
consentimiento figure por escrito y lleve la firma de la parte que renuncie o consienta.
e. Esta licencia constituye el acuerdo pleno entre las partes con respecto a la obra objeto
de la licencia. No caben interpretaciones, acuerdos o términos con respecto a la obra
que no se encuentren expresamente especificados en la presente licencia. El
licenciador no estará obligado por ninguna disposición complementaria que pueda
aparecer en cualquier comunicación de usted. Esta licencia no se puede modificar sin
el mutuo acuerdo por escrito entre el licenciador y usted.
Creative Commons no es parte de esta licencia, y no ofrece ninguna garantía en relación con
la obra. Creative Commons no será responsable frente a usted o a cualquier parte, por
cualquier teoría legal de cualesquiera daños resultantes, incluyendo, pero no limitado, daños
generales o especiales (incluido el daño emergente y el lucro cesante), fortuitos o causales, en
conexión con esta licencia. A pesar de las dos (2) oraciones anteriores, si Creative Commons
se ha identificado expresamente como el licenciador, tendrá todos los derechos y obligaciones
del licenciador.
Salvo para el propósito limitado de indicar al público que la obra está licenciada bajo la CCPL,
ninguna parte utilizará la marca registrada "Creative Commons" o cualquier marca registrada
o insignia relacionada con "Creative Commons" sin su consentimiento por escrito. Cualquier
uso permitido se hará de conformidad con las pautas vigentes en cada momento sobre el uso
de la marca registrada por "Creative Commons", en tanto que sean publicadas su sitio web
(website) o sean proporcionadas a petición previa.
Puede contactar con Creative Commons en: http://creativecommons.org/.
64