curso servidor

66
MANUAL DE INSTALACIÓN DE UN SERVIDOR CASERO BASADO EN DEBIAN ASOCIACIÓN LINUX ALBACETE www.linuxalbacete.org

Upload: carlita-camila

Post on 18-Jul-2015

90 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Curso servidor

MANUAL DE INSTALACIÓN DE

UN SERVIDOR CASERO BASADO EN DEBIAN

ASOCIACIÓN LINUX ALBACETE

www.linuxalbacete.org

Page 2: Curso servidor

Alejandro Navarro López ( [email protected] )Alfonso Moratalla Moreno ( [email protected] )

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.5Spain de Creative Commons. Para ver una copia de esta licencia consulte elapéndice A, visite http://creativecommons.org/licenses/by-nc-sa/2.5/es/ oenvie una carta a Creative Commons, 559 Nathan Abbott Way, Stanford,California 94305, USA.

1

Page 3: Curso servidor

ÍNDICE1. 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

Page 4: Curso servidor

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

Page 5: Curso servidor

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

Page 6: Curso servidor

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

Page 7: Curso servidor

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

Page 8: Curso servidor

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

Page 9: Curso servidor

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

Page 10: Curso servidor

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

Page 11: Curso servidor

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

Page 12: Curso servidor

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á

Page 13: Curso servidor

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á

Page 14: Curso servidor

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á

Page 15: Curso servidor

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

Page 16: Curso servidor

[ 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

Page 17: Curso servidor

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

Page 18: Curso servidor

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

Page 19: Curso servidor

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

Page 20: Curso servidor

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

Page 21: Curso servidor

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

Page 22: Curso servidor

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

Page 23: Curso servidor

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

Page 24: Curso servidor

Ya tenemos la consola pidiendonos que hagamos login.

23

Page 25: Curso servidor

3 INSTALACIÓN Y CONFIGURACIÓN DE SERVICIOS

3.1 REPASO DE COMANDOS

Accedemos al sistema:

login: linuxalbacetePassword: 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 bindrwxr-xr-x 3 root root 4096 2005-10-04 04:06 bootlrwxrwxrwx 1 root root 11 2005-10-04 03:56 cdrom -> media/cdromdrwxr-xr-x 11 root root 24576 2005-10-26 23:54 devdrwxr-xr-x 67 root root 4096 2005-11-09 16:35 etcdrwxrwsr-x 5 root staff 4096 2005-10-12 14:25 homedrwxr-xr-x 2 root root 4096 2005-10-04 03:57 initrdlrwxrwxrwx 1 root root 27 2005-10-04 04:01 initrd.img -> boot/initrd.img-2.6.8-2-386drwxr-xr-x 8 root root 4096 2005-10-04 02:31 libdrwxr-xr-x 2 root root 49152 2005-10-04 03:55 lost+founddrwxr-xr-x 4 root root 4096 2005-10-04 03:56 mediadrwxr-xr-x 2 root root 4096 2004-12-15 23:55 mntdrwxr-xr-x 2 root root 4096 2005-10-04 03:57 optdr-xr-xr-x 91 root root 0 2005-10-27 01:53 procdrwxr-xr-x 6 root root 4096 2005-11-18 12:04 rootdrwxr-xr-x 2 root root 4096 2005-10-05 22:26 sbindrwxr-xr-x 2 root root 4096 2005-10-04 03:57 srvdrwxr-xr-x 9 root root 0 2005-10-27 01:53 sysdrwxrwxrwt 7 root root 4096 2005-11-21 19:15 tmpdrwxr-xr-x 12 root root 4096 2005-10-05 19:59 usrdrwxr-xr-x 14 root root 4096 2005-10-04 02:31 varlrwxrwxrwx 1 root root 24 2005-10-04 04:01 vmlinuz -> boot/vmlinuz-2.6.8-2-386

24

Page 26: Curso servidor

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 40962005-10-04 04:01 bin

Es un directorio

Propietariopermitido lectura,

escritura y ejecución

Grupopermitido 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 COMMANDroot 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/portmaproot 1861 0.0 0.3 2260 840 ? Ss Oct26 0:08 /sbin/syslogdroot 1864 0.0 0.5 2448 1504 ? Ss Oct26 0:00 /sbin/klogdbind 1871 0.0 1.4 31224 3688 ? Ss Oct26 0:00 /usr/sbin/named -u bindroot 1881 0.0 0.9 29280 2452 ? Ss Oct26 0:00 /usr/sbin/lwresdroot 1912 0.0 0.1 1504 508 ? Ss Oct26 0:00 /sbin/udhcpc -i eth0nobody 1914 0.0 0.3 1816 796 ? Ss Oct26 0:00 /usr/local/bin/noip2Debian- 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

Page 27: Curso servidor

$ 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

$ suPassword: 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

Page 28: Curso servidor

Dejemos de ser root y nos volvemos a usuario normalCrtl + 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

Page 29: Curso servidor

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 prueba2) 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 cosa4) ver (no editar) el fichero para comprobar que los cambios han sido guardados5) copiar el fichero a nuestro directorio home6) 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

Page 30: Curso servidor

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.

$ suPassword: 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 interfaceauto loiface lo inet loopback

# The primary network interfaceauto eth0iface 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 eth1iface 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 guardarF10 para salir del editorF10 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/ifconfigeth0 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

Page 31: Curso servidor

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

Page 32: Curso servidor

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

Page 33: Curso servidor

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/dhcpINTERFACES="eth1"

F2F10

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;}

F2F10

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

Page 34: Curso servidor

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 NATiptables -Fiptables -t nat -F

# Activamos IP Forwarding para permitir a la red interna 'salir al mundo'echo 1 > /proc/sys/net/ipv4/ip_forwardecho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Habilitos NAT con salida por la eth0 que esta conectada a internetiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Permitimos conexiones a los servicios del router: ssh, http, MLDonkey y BitTorrentiptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -j ACCEPTiptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW -j ACCEPTiptables -A INPUT -i eth0 -p tcp --dport 4661:4662 -m state --state NEW -j ACCEPTiptables -A INPUT -i eth0 -p udp --dport 4665 -m state --state NEW -j ACCEPTiptables -A INPUT -i eth0 -p udp --dport 4672 -m state --state NEW -j ACCEPTiptables -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 localiptables -A PREROUTING -t nat -p tcp -i eth0 --dport 5090:5095 -j DNAT --to 192.168.1.2:5090:5095iptables -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 internaiptables -A FORWARD -i eth0 -p tcp --dport 5090:5095 -m state --state NEW -j ACCEPTiptables -A FORWARD -i eth0 -p tcp --dport 6891:6893 -m state --state NEW -j ACCEPT

# Aceptamos paquetes de conexiones ya establecidasiptables -A INPUT -p tcp -m state --state RELATED -j ACCEPT

# Cerramos el 113 para q conecte rapido el IRCiptables -A INPUT -i eth0 -p tcp --dport 1080 -m state --state NEW -j REJECTiptables -A INPUT -i eth0 -p tcp --dport 113 -m state --state NEW -j REJECT

# Rechazamos paquetes de conexiones nuevasiptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP

# Rechazamos paquetes de forwarding de conexiones no establecidasiptables -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

Page 35: Curso servidor

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

F2F10

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

Page 36: Curso servidor

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

Page 37: Curso servidor

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

Page 38: Curso servidor

F2F10

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

Page 39: Curso servidor

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

Page 40: Curso servidor

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

Page 41: Curso servidor

3.10 SERVICIO MTA CON EXIM

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

Page 42: Curso servidor

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 [email protected] 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

Page 43: Curso servidor

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

Page 44: Curso servidor

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

Page 45: Curso servidor

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)

<?phpphpinfo(); (función del lenguaje PHP que muestra información de todo tipo)

?>

Por simplicidad hemos omitido el resto de etiquetas del standard HTML.

44

Page 46: Curso servidor

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

Page 47: Curso servidor

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 APLICACIÓN DE FORO PHPBB2

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

Page 48: Curso servidor

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: [email protected]– Domain Name: albacete.homelinux.org– Server Port: 80– Script path: /foro/– Administrator Username: linuxalbacete– Administrator Password: iris06– Administrator Password [ Confirm ]: iris06

47

Page 49: Curso servidor

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

Page 50: Curso servidor

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

Page 51: Curso servidor

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

Page 52: Curso servidor

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

Page 53: Curso servidor

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 [email protected] (-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

Page 54: Curso servidor

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

Page 55: Curso servidor

– 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

Page 56: Curso servidor

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 <[email protected]>.## 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/binDESC="MLDonkey"NAME=mlnetDAEMON=/home/mldonkey/$NAMESCRIPTNAME=/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_startecho ".";;

stop)echo -n "Parando $DESC: $NAME"d_stopecho ".";;

restart|force-reload)echo -n "Reiniciando $DESC: $NAME"d_stopsleep 1d_startecho ".";;

*)echo "Uso: $SCRIPTNAME {start|stop|restart|force-reload}" >&2exit 1;;

esac

exit 0

55

Page 57: Curso servidor

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

Page 58: Curso servidor

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

Page 59: Curso servidor

#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/filesread 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

Page 60: Curso servidor

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=mldonkeypassword=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.1\mldonkey, 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

Page 61: Curso servidor

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

Page 62: Curso servidor

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

Page 63: Curso servidor

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

Page 64: Curso servidor

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

Page 65: Curso servidor

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

Page 66: Curso servidor

4.2 APÉNDICE B – Bibliografía y recursos

3.7 – OpenSSH (sshd)3.7.1 http://www.openssh.com

3.8 – ProFTPD3.8.1 http://www.proftpd.org

3.9 – DynDNS3.9.1 http://www.dyndns.org3.9.2 http://ddclient.sourceforge.net/

3.10 – MTA (correo electrónico)3.10.1 http://www.exim.org/3.10.2 http://www.postfix.org/3.10.3 http://www.sendmail.org

3.11 – Web (apache + PHP)3.11.1 http://www.apache.org3.11.2 http://www.php.net

3.12 – MySQL (bases de datos)3.12.1 http://www.mysql.com3.12.2 http://www.mysql-hispano.org

3.13 – phpBB (foro)3.13.1 http://www.phpbb.com

3.14 – MLDonkey (P2P)3.14.1 http://mldonkey.sourceforge.net3.14.2 http://www.chiark.greenend.org.uk/~sgtatham/putty/ (PuTTY)

3.15 – Samba (servidor ficheros e impresoras)3.15.1 http://www.samba.org

65