32
1 SERVICIOS EN RED

servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

  • Upload
    hathuy

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

1

SERVICIOS EN RED

Page 2: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

2

Page 3: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

3

Índice

Introducción  ..........................................................................................................................  4  Servicios Linux  .....................................................................................................................  5  

Servidor DHCP  ................................................................................................................................  5  Servidor DNS  ................................................................................................................................  10  NFS  ...................................................................................................................................................  16  TELNET  ...........................................................................................................................................  20  Servidor OpenSSH  .....................................................................................................................  21  VNC  ..................................................................................................................................................  27  POSTFIX  .........................................................................................................................................  30  

Page 4: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

4

Introducción

Nota: esta manual esta realizado basándose en la versión de Ubuntu 11.0.

Page 5: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

5

Servicios Linux

Servidor DHCP

En nuestra red la configuración y modificación de las direcciones IP de los equipos de las

distintas dependencias son un verdadero quebradero de cabeza, pues obliga al administrador

de la red a desplazarse hasta el lugar donde se encuentra ubicado el equipo en cuestión para

proceder a su configuración IP, sin la garantía de que no se pueda cometer un error al

especificar dicha configuración. En muchos casos es el alumnado quién realiza cambios con

afán investigador en dicho direccionamiento, en otros casos son las circunstancias o los

movimientos de las ubicaciones físicas de los equipos los que obligan a realizar modificaciones

en la dirección IP o puerta de enlace.

Estos cambios crean conflictos a medida que la red crece, de modo que parece lógico instalar

un sistema más cómodo de direccionamiento, según el cual cada máquina que inicie sesión en

nuestro centro reciba dinámicamente del servidor una dirección IP, una máscara, una puerta de

enlace y un servidor DNS que le permitan la salida a Internet así como el acceso a todos los

servicios de nuestra Intranet, de forma que cuando sea preciso realizar cualquier cambio en la

configuración IP de dichos equipos, sea realizado desde el servidor sin necesidad de

desplazarse físicamente hasta la dependencia correspondiente.

Definición de Servidor DHCP

El protocolo de configuración dinámica de host (DHCP, Dynamic Host Configuration Protocol)

es un estándar TCP/IP diseñado para simplificar la administración de la configuración IP de los

equipos de nuestra red.

Si disponemos de un servidor DHCP, la configuración IP de los PCs puede hacerse de forma

automática sin necesidad de hacerlo manualmente.

Un servidor DHCP es un servidor que recibe peticiones de clientes solicitando una

configuración de red IP. El servidor responderá a dichas peticiones proporcionando los

parámetros que permitan a los clientes autoconfigurarse. Para que un PC solicite la

configuración a un servidor, en la configuración de red de los PCs hay que seleccionar la

opción 'Obtener dirección IP automáticamente' DHCP.

El servidor proporcionará al cliente al menos los siguientes parámetros:

• Dirección IP

• Máscara de subred

Opcionalmente, el servidor DHCP podrá proporcionar otros parámetros de configuración tales

como:

Page 6: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

6

• Puerta de enlace

• Servidores DNS

• Muchos otros parámetros más

El servidor DHCP proporciona una configuración de red TCP/IP segura y evita conflictos de

direcciones repetidas. Utiliza un modelo cliente-servidor en el que el servidor DHCP mantiene

una administración centralizada de las direcciones IP utilizadas en la red. Los clientes podrán

solicitar al servidor una dirección IP y así poder integrarse en la red.

El servidor solo asigna direcciones dentro de un rango prefijado. Si por error hemos

configurado manualmente una IP estática perteneciente al rango gestionado por nuestro

servidor DHCP, podría ocurrir que dicha dirección sea asignada dinámicamente a otro PC,

provocándose un conflicto de IP. En ese caso el cliente solicitará y comprobará, otra dirección

IP, hasta que obtenga una dirección IP que no esté asignada actualmente a ningún otro equipo

de nuestra red.

La primera vez que seleccionamos en un PC que su configuración IP se determine por DHCP,

éste pasará a convertirse en un cliente DHCP e intentará localizar un servidor DHCP para

obtener una configuración desde el mismo. Si no encuentra ningún servidor DHCP, el cliente

no podrá disponer de dirección IP y por lo tanto no podrá comunicarse con la red. Si el cliente

encuentra un servidor DHCP, éste le proporcionará, para un periodo predeterminado, una

configuración IP que le permitirá comunicarse con la red. Cuando haya transcurrido el 50% del

periodo, el cliente solicitará una renovación del mismo.

Cuando arrancamos de nuevo un PC cuya configuración IP se determina por DHCP, pueden

darse dos situaciones:

• Si la concesión de alquiler de licencia ha caducado, el cliente solicitará una nueva licencia al

servidor DHCP (la asignación del servidor podría o no, coincidir con la anterior).

• Si la concesión de alquiler no ha caducado en el momento del inicio, el cliente intentará

renovar su concesión en el servidor DHCP, es decir, que le sea asignada la misma

dirección IP.

Antes de comenzar con los procesos de instalación y configuración de nuestro servidor DHCP,

vamos a definir algunos términos que utilizaremos a lo largo de dicho proceso.

Page 7: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

7

Ámbito servidor DHCP: Un ámbito es un agrupamiento administrativo de equipos o clientes

de una subred que utilizan el servicio DHCP.

Rango servidor DHCP: Un rango de DHCP está definido por un grupo de direcciones IP en

una subred determinada, como por ejemplo de 192.168.0.1 a 192.168.0.254, que el servidor

DHCP puede conceder a los clientes.

Concesión o alquiler de direcciones: es un período de tiempo que los servidores DHCP

especifican, durante el cual un equipo cliente puede utilizar una dirección IP asignada.

Reserva de direcciones IP: Consiste en reservar algunas direcciones IP para asignárselas

siempre a los mismos PCs clientes de forma que cada uno siempre reciba la misma dirección

IP. Se suele utilizar para asignar a servidores o PCs concretos la misma dirección siempre. Es

similar a configurar una dirección IP estática pero de forma automática desde el servidor DHCP.

En el servidor se asocian direcciones MAC a direcciones IP. Es una opción muy interesante

para asignar a ciertos PCs (servidores, impresoras de red, PCs especiales...) siempre la misma

IP.

Page 8: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

8

Instalación del servidor DHCP

Para instalar los archivos necesarios de nuestro servidor DHCP podemos utilizar apt-get desde

una consola de root:

1. Asignar una dirección IP a nuestro servidor DHCP.

Para esto abrimos el archivo de configuración de red que se encuentra en

/etc/network/interfaces y colocamos lo siguiente dentro del archivo:

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 192.168.1.5

gateway 192.168.1.1

netmask 255.255.255.0

network 192.168.1.0 broadcast 192.168.1.255

Esto suponiendo que su interfaz de red es la eth0.

Nota: Es recomendable hacer previamente copias de los archivos que se van a tocar mediante

el comando cp.

2. Instalación del servidor DHCP

# sudo –s apt-get install dhcp3-server

De esta forma instalaríamos los programas necesarios para disponer de nuestro propio

servidor DHCP. Al final de la instalación aparecerán mensajes de error, no hay que

preocuparse ya que estos son porque aun falta por finalizar la configuración del servidor DHCP.

3. Seleccionar la interfaz de red en la cual va a funcionar el servidor DHCP.

Aunque tengamos una sola tarjeta de red, se recomienda realizar esta configuración como

paso obligatorio para configurar el servidor DHCP. Ahora pasaremos a editar el fichero de

configuración que se encuentra en /etc/dhcp/dhcpd.conf y añadimos la siguiente configuración

básica para permitir que funcione mínimamente.

default-lease-time 600;

max-lease-time 7200;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.100 192.168.1.200;

}

Page 9: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

9

A continuación se detallan algunos parámetros configurables:

• default-lease-time 600: es el tiempo de préstamo o alquiler por defecto de la dirección

IP y está medido en segundos.

• max-lease-time 7200: es el tiempo máximo que debe durar una dirección IP antes que

caduque y el cliente deba pedir otra vez una dirección.

• option subnet-mask 255.255.255.0: Es la máscara de red que definimos arriba.

• option broadcast-address 192.168.1.255: Es la dirección de broadcast de nuestra

red.

• option routers 192.168.1.1: Es la dirección IP de nuestro gateway (también llamado

pasarela de datos o puerta de enlace).

• option domain-name-servers 208.67.222.222,208.67.220.220: Es la dirección IP de

nuestros servidores DNS.

• option domain-name "ejemplo.local": Es el nombre de dominio de nuestra red, este

parámetro es opcional.

• subnet 192.168.1.0 netmask 255.255.255.0 : Aquí definimos nuestra red que

queremos asignarle el rango de direcciones IP.

• range 192.168.1.100 192.168.1.200: Es el rango de direcciones de la .100 a la .200.

Nota: también se pueden hacer reservas de direcciones IP en función de la dirección MAC,

esto ya se deja como ejercicio a realizar.

4. Iniciar o reiniciar servicio

Ahora iniciaremos el servicio DHCP, para que comience todo a estar en funcionamiento.

# sudo –s /etc/init.d/isc-dhcp-server start //inicia el servidor

# sudo –s /etc/init.d/isc-dhcp-server restart //reinicia el servidor

# sudo –s /etc/init.d/isc-dhcp-server stop //para el servidor

5. Arranque cliente

Se recomienda que antes de arrancar el cliente se compruebe que no haya otro servidor DHCP

en funcionamiento tales como routers, etc …

Una vez arrancado el cliente debería coger una IP asignada por el servidor.

Nota: en pruebas en Virtual Box las maquinas deben estar configuradas como bridged y el

router apagado.

Page 10: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

10

Servidor DNS

El número de ordenadores en las redes es cada vez mayor. Aunque hayamos elegido un

direccionamiento IP que relacione la asignación de direcciones con la ubicación física de los

PCs, sería mucho más cómodo poder referirse a todos los PCs del centro utilizando nombres

en lugar de direcciones IPs. Un servidor DNS en la red local, nos permitirá crear una asociación

directa Nombre de PC <-> Dirección IP en nuestra red, que nos facilitará la identificación de

nuestros equipos.

Trabajar con direcciones IP es incómodo para las personas, ya que requeriría conocer en todo

momento las direcciones IP de los equipos a los que queremos conectarnos. En su lugar

utilizamos nombres que son más fáciles de recordar y utilizar.

Cada equipo y cada servidor conectado a Internet, dispone de una dirección IP y de un nombre

perteneciente a un dominio. Internamente, la comunicación entre los PCs se realiza utilizando

direcciones IP por eso es necesario algún sistema que permita, a partir de los nombres de los

PCs, averiguar las direcciones IPs de los mismos.

Un servidor DNS es un servidor que permite averiguar la IP de un PC a partir de su nombre.

Para ello, el servidor DNS dispone de una base de datos en la cual se almacenan todas las

direcciones IP y todos los nombres de los PCs pertenecientes a su dominio.

No existe una base de datos única donde se almacenan todas las IPs existentes en el mundo,

sino que cada servidor almacena las IPs correspondientes a su dominio. Los servidores DNS

están dispuestos jerárquicamente de forma que cuando nuestro servidor más inmediato no

puede atender nuestra petición, éste la traslada al DNS superior.

En el proceso de resolución de un nombre, hay que tener en cuenta que los servidores DNS

funcionan frecuentemente como clientes DNS, consultando a otros servidores para resolver

completamente un nombre consultado.

Otro ejemplo donde el servidor DNS tomará protagonismo será cuando deseemos acceder a

un servidor web instalado en nuestro servidor; si hemos denominado al sitio web como "www",

podremos introducir en el DNS una entrada que identifique "www" como 192.168.0.220

(dirección IP de nuestro servidor web), de modo que cuando introduzcamos la URL

"www.midominio.com" accederemos a nuestro servidor web. Lo mismo sería aplicable al

servidor ftp o cualquier otro servicio.

Antes de comenzar con los procesos de instalación y configuración de nuestro DNS, vamos a

definir algunos términos que utilizaremos a lo largo de dicho proceso.

Zona de Búsqueda Directa: Las resoluciones de esta zona devuelven la dirección IP

correspondiente al recurso solicitado. Realiza las resoluciones que esperan como respuesta la

dirección IP de un determinado recurso.

Page 11: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

11

Zona de Búsqueda Inversa: Las resoluciones de esta zona buscan un nombre de equipo en

función de su dirección IP; una búsqueda inversa tiene forma de pregunta, del estilo "¿Cuál es

el nombre DNS del equipo que utiliza la dirección IP 192.168.0.20?".

Reenviador DNS: Servidor DNS designado por otros servidores DNS internos para su uso en

consultas para resolver nombres de dominio DNS externos o fuera del dominio local.

Linux dispone de varios paquetes que software que permiten poner en marcha un servidor DNS.

En este capítulo hablaremos de dos de ellos: el paquete dnsmasq que es un sencillo servidor

DNS ideal para redes pequeñas como las que podemos encontrar en los centros educativos y

el paquete bind que es un completo servidor DNS utilizado por muchos servidores DNS en

Internet.

Page 12: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

12

Instalación y configuración del servidor DNS Bind

Si con las posibilidades que nos ofrece dnsmasq no son suficientes para nuestra red y

necesitamos un servidor DNS más completo, podemos utilizar el paquete bind9. Para

instalarle, podemos hacerlo con apt-get desde una consola de root:

// Instalación del servidor DNS bind

# sudo –s apt-get install bind9

Accedemos a la ruta en la que se habrá instalado bind9:

# cd /etc/bind

Antes de empezar, vamos a aclarar algunos conceptos:

• Mi dominio se va a llamar "misitio.com"

• El primer host que voy a crear se llama "www.misitio.com"

• El archivo de configuración de mi servidor dns se va a llamar "db.misitio" que es el que

va a contener las referencias a nombres de dominios y nombres de máquina.

• La ip de la máquina www.misitio.com que tiene como dominio misitio.com es

"192.168.1.45”.

Editamos el archivo 'named.conf.local' y añadimos el texto que viene a continuación. Más arriba

hice referencia a qué es cada cosa dentro de éste archivo.

en este ejemplo, va quedar de éste modo:

zone "misitio.com" {

type master;

file "/etc/bind/db.misitio";

};

Teniendo como referencia el archivo db.local vamos a crear nuestro propio archivo de

configuración de dns:

# cp db.local db.misitio

Editamos el archivo que acabamos de crear: 'db.misitio’ y substituimos todas las palabras

"localhost" por la IP del dominio que queramos crear. En este ejemplo quedará de este modo:

Tengamos mucho cuidado con los puntos detrás de cada nombre de domino. Aunque parezca

absurdo, el dominio acabará con un punto en la configuración.

Page 13: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

13

NS nos identifica el NAME SERVER o nombre del servidor.

@ IN A 192.168.1.45 dice que el dominio misitio.com llevará la dirección ip 192.168.1.45

@ IN MX 0 misitio.com. crea una cuenta de correo para misitio.com. Tengamos en cuenta que

es un cero y nos indica la prioridad.

www IN A 192.168.1.45 dice que la máquina www.misitio.com llevará la dirección ip

192.168.1.45

Una vez que hayamos configurado bind, lo reiniciamos:

# sudo –s /etc/init.d/bind9 restart

Para probar el servidor dns, modificamos el archivo /etc/resolv.conf y únicamente dejamos la

línea:

nameserver 127.0.0.1

Comprobamos el correcto funcionamiento de nuestro servidor mediante el comando host.

# host misitio.com

;

;BIND data file for local loopback interface

;

$TTL 604800

@ IN SOA misitio.com. (

2 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS misitio.com.

@ IN A 192.168.1.45

@ IN MX 0 misitio.com.

www IN A 192.168.1.45

mail IN A 192.168.1.45

dns IN A 192.168.1.45

Page 14: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

14

Una vez configurado el dominio de búsqueda directo, hay que configurar el inverso.

Para ello, debemos añadir las siguientes líneas al archivo "/etc/bind/named.conf.local":

zone "192.in-addr.arpa" {

type master;

file "/etc/bind/db.192";

};

donde 192 hace referencia al principio de nuestra dirección ip y "/etc/bind/db.192" al archivo de

configuración de resolución inversa.

Como hemos hecho referencia al archivo, obviamente habrá que crearlo.

# cp db.127 db.192

Una vez creado, lo modificamos, sustituyendo todas las palabras "localhost" por nuestro

dominio.

Tengamos en cuenta que en la parte más baja, habrá que escribir la dirección ip de nuestra

máquina, pero al revés y omitiendo "192". Por ejemplo, si la ip de nuestra máquina es

192.168.1.45 habrá que escribir: 45.1.168

En éste ejemplo quedaría de éste modo:

;

; BIND reverse data file for local loopback interface

;

$TTL 604800 @ IN SOA misitio.com. root.misitio.com. (

2 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS misitio.com.

45.1.168 IN PTR www.misitio.com.

45.1.168 IN PTR dns.misitio.com.

45.1.168 IN PTR mail.misitio.com.

Page 15: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

15

Al igual que en la búsqueda directa, reiniciamos el servidor y probamos la búsqueda:

# /etc/init.d/bind9 restart

# host 192.168.1.45

y nos contesta:

45.1.168.192.in-addr.arpa domain name pointer www.misitio.com

45.1.168.192.in-addr.arpa domain name pointer dns.misitio.com

45.1.168.192.in-addr.arpa domain name pointer mail.misitio.com

Page 16: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

16

NFS

NFS es el sistema que utiliza Linux para compartir carpetas en una red. Mediante NFS, un

servidor puede compartir sus carpetas en la red. Desde los PCs de los usuarios se puede

acceder a dichas carpetas compartidas y el resultado es el mismo que si estuvieran en su

propio disco duro. NFS son las siglas en inglés de Network File System que podríamos traducir

como Sistema de Archivos en Red.

Básicamente NFS permite, a PCs que utilizan Linux, compartir y conectarse a carpetas

compartidas entre sí. Es el sistema nativo que utiliza Linux para compartir y acceder a carpetas

compartidas en la red.

Existen otras alternativas para compartir carpetas en una red como samba, ssh o ftp, pero el

sistema recomendado para compartir carpetas entre sistemas Linux es NFS.

Instalación de NFS

Para poder disfrutar del servicio de compartir carpetas en la red mediante NFS, en el PC

servidor es necesario instalar el paquete del servidor NFS. Lo normal es que todos los PCs

dispongan del paquetes servidor de NFS ya que en cualquier momento puede existir la

necesidad de tener que compartir una carpeta desde cualquier PC, aunque lo habitual es que

el único que comparta sea el servidor. Que un PC de un usuario tenga instalado el paquete del

servidor NFS, no significa que automáticamente esté compartiendo su sistema de archivos en

la red. Para ello es necesario configurar y arrancar el servicio. Si deseamos instalar la última

versión disponible, podemos hacerlo con apt-get desde una consola de root:

// Instalación de NFS

# apt-get install nfs-common nfs-kernel-server

Configuración del servidor NFS

Antes de arrancar el servicio NFS, es necesario indicar qué carpetas deseamos compartir y si

queremos que los usuarios accedan con permisos de solo lectura o de lectura y escritura.

También existe la posibilidad de establecer desde qué PCs es posible conectarse. Estas

opciones se configuran en el archivo /etc/exports

En cada línea del archivo de configuración del servidor NFS /etc/exports, se puede especificar:

• La carpeta que se quiere compartir

• El modo en que se comparte (solo lectura 'ro' o lectura y escritura 'rw' )

• Desde qué PC o PCs se permite el acceso (nombre o IP del PC o rango de IPs)

Page 17: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

17

A continuación mostramos un sencillo archivo /etc/exports para configurar algunas carpetas

compartidas

// Ejemplo de archivo /etc/exports de configuración del servidor NFS:

# Compartir la carpeta home del servidor

# en modo lectura y escritura y accesible desde la red 192.168.0.0/24

/home 192.168.0.0/255.255.255.0(rw)

# Compartir carpeta tmp a todos como 'solo-lectura'

/tmp *(ro)

# Compartir carpeta /var/log a un PC como 'solo-lectura'

/var/log 192.168.0.211(ro)

Nota: Los permisos de compartición por NFS no excluyen a los permisos del sistema Unix sino

que prevalecen los más restrictivos. Si una carpeta está compartida con permiso NFS de

lectura y escritura pero en los permisos del sistema solo disponemos de permiso de lectura, no

podremos escribir. Si una carpeta está compartida con permisos NFS de lectura y disponemos

de permisos de lectura y escritura en el sistema, tampoco podremos escribir. Para poder

escribir necesitaremos disponer permiso de lectura y escritura tanto en los permisos del

sistema como en los permisos de compartición NFS. De igual forma, si compartimos la carpeta

/home con permisos de lectura y escritura pero el usuario pepe solo tiene acceso a la carpeta

/home/pepe, no podrá acceder a ninguna otra carpeta dentro de /home ya que los permisos del

sistema se lo impedirán.

Cuando se comparte por NFS, se recomienda restringir al máximo los permisos. Si los usuarios

no tienen la necesidad de escribir, debemos compartir con permiso de 'solo lectura'. Si los

usuarios solo se conectan desde nuestra red 192.168.0.0/24, debemos permitir el acceso solo

desde dicha red.

En nuestro caso incluiríamos la siguiente línea:

#incluimos la carpeta /compartida para la red 192.168.1.0

/compartida 192.168.1.0/255.255.255.0(rw)

Page 18: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

18

Arranque y parada de NFS

Arranque y parada manual

Para que el servidor NFS funcione, es necesario que esté arrancado el servicio portmap, por lo

tanto, la primera acción será iniciar portmap por si no estuviera arrancado:

// Iniciar portmap

Versiones anteriores de Ubuntu

# /etc/init.d/portmap start

Versión Ubuntu 11

# sudo –s start portmap

Para poner en marcha el servicio NFS, o cada vez que modifiquemos el archivo /etc/exports,

debemos reiniciar el servidor NFS, mediante el comando:

// Reinicio del servidor NFS

# sudo –s /etc/init.d/nfs-kernel-server restart

Si deseamos detener el servidor NFS, debemos ejecutar:

// Parada del servidor NFS

# sudo –s /etc/init.d/nfs-kernel-server stop

// Arranque del servidor NFS

# sudo –s /etc/init.d/nfs-kernel-server start

Page 19: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

19

Acceso a carpetas compartidas por NFS

Para poder acceder desde un PC a una carpeta compartida por NFS en un servidor, lo primero

que tenemos que hacer es instalar los paquetes portmap y nfs-common que nos permitirán

acceder como clientes:

// Instalar portmap y nfs-common y reiniciar portmap

# sudo –s apt-get install portmap nfs-common

Ahora ya estaremos en condiciones de montar la carpeta compartida en nuestro sistema de

archivos. De ésta manera, el acceso a la carpeta compartida es exactamente igual que el

acceso a cualquier otra carpeta de nuestro disco duro.

Ejemplo, supongamos que un servidor comparte por NFS una carpeta llamada /compartida. En

el PC cliente podemos crear una carpeta llamada /comp-serv y montar sobre ella la carpeta

compartida en el servidor. Para ello, primero la carpeta donde vayamos a montar la carpeta del

servidor deberá existir, una vez realizada esta comprobación en el cliente ejecutaríamos el

siguiente comando:

// Montar carpeta compartida por NFS

# sudo –s mount -t nfs ip-del-servidor:/compartida /comp-serv

A partir de éste momento, podemos comprobar que nuestra carpeta /comp-serv contiene la

información de la carpeta /compartida del servidor. Si disponemos de permisos de lectura y

escritura, podemos incluso crear o modificar los archivos dentro de nuestra carpeta /comp-serv

y los cambios se estarán guardando realmente en la carpeta /compartida del servidor.

Si deseamos que nuestro PC monte siempre de forma automática una carpeta compartida por

NFS cuando iniciemos nuestro Linux, existe la posibilidad de añadir en el archivo /etc/fstab una

línea como por ejemplo:

# Montaje automático al iniciar el PC

#Añadir en /etc/fstab

192.168.1.50:/compartida /comp-serv nfs

De ésta manera, cuando arranquemos nuestro PC, la carpeta /compartida del servidor quedará

automáticamente montada sobre nuestra carpeta /comp-serv y no tendremos que ejecutar el

comando mount para nada.

Page 20: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

20

TELNET (Tele Network - Tele Red). Es el nombre de un protocolo de red que permite conectarse a un

host o servidor en donde el ordenador cliente hace de terminal virtual del ordenador servidor.

En otras palabras, Telnet es un protocolo que permite acceder mediante una red a otra

máquina y manejarla, siempre en modo terminal (no hay gráficos). Se dejó de usar casi por

completo por tener problemas de seguridad (no encriptaba la información) y comenzó a

popularizarse el SSH. Telnet permite acceder a una máquina remota como si se estuviese

accediendo físicamente a ella. El puerto que se utiliza generalmente es el 23.

Instalación de TELNET

Para poder disfrutar del servicio de acceso a otras maquinas vía telnet es necesario instalar el

paquete del servidor Telnet. Si deseamos instalar la última versión disponible, podemos

hacerlo con apt-get desde una consola de root:

// Instalación del servicio Telnet

# sudo –s apt-get install telnetd

Una vez instalado reiniciaremos el servicio con el comando:

#sudo –s /etc/init.d/openbsd-inetd start

Ahora que ya esta instalado el servicio telnet ya podremos acceder a esta maquina vía telnet

desde una maquina cliente mediante una de las siguientes maneras:

#telnet 192.168.1.50

#telnet ubentu.mydomain.com

#telnet pc

Una vez se conecte entonces nos pedirá el login y el usuario de la maquina a la cual nos

queremos conectar, y si el acceso es satisfactorio entonces nos dará acceso a la maquina con

los mismos permisos que el usuario con el que nos hemos logueado.

Para finalizar la conexión teclearemos el siguiente comando:

#exit

Page 21: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

21

Servidor OpenSSH

Esta sección es una introducción a una poderosa colección de herramientas de control remoto

y de transferencia de datos entre equipos conectados en red, denominada OpenSSH.

OpenSSH es una versión libre del protocolo Secure Shell (SSH) que es una familia de

herramientas para control remoto o transferencia de archivos entre equipos. La herramienta

utilizada tradicionalmente para realizar esta función era el telnet. OpenSSH proporciona un

demonio y unos clientes para facilitar un control remoto seguro y encriptado, así como

operaciones de transferencia de archivos, reemplazando de forma efectiva las herramientas

heredadas.

El componente servidor de OpenSSH, sshd, escucha continuamente a la espera de conexiones

de clientes desde cualquiera de las herramientas cliente. Cuando aparece una petición de

conexión, sshd establece la conexión correcta dependiendo del tipo de herramienta cliente que

está conectándose.

Page 22: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

22

Instalación

La instalación de cliente y servidor OpenSSH es simple. Para instalar las aplicaciones cliente

de OpenSSH en tu sistema Ubuntu, usa el siguiente comando en la terminal:

#sudo –s apt-get install openssh-client

Para instalar la aplicación servidor de OpenSSH, y los archivos de soporte relacionados, usa

en una línea de comandos la siguiente instrucción:

#sudo –s apt-get install openssh-server

Configuración

Puedes configurar el comportamiento predeterminado del servidor OpenSSH, sshd, editando el

archivo /etc/ssh/sshd_config. Para más información sobre las directivas de configuración

usadas en este archivo, puedes ver la página del manual apropiada con la siguiente orden,

introducida en una terminal:

#man sshd_config

Antes de cambiar el archivo de configuración, debes hacer una copia del archivo original y

protegerlo contra escritura; así tendrás la configuración original como referencia y podrás volver

a usarla si es necesario.

Copia el archivo /etc/ssh/sshd_config y protégelo contra escritura con los siguientes comandos,

tecleados en la línea de comandos de una terminal:

#sudo –s cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

#sudo –s chmod a-w /etc/ssh/sshd_config.original

Lo siguiente son ejemplos de directivas de configuración que se pueden cambiar:

• Para hacer que OpenSSH escuche por el puerto TCP 2222 en lugar del puerto TCP 22 por

defecto, cambia la directiva Port como sigue:

Port 2222

• Para hacer que sshd permita credenciales de inicio de sesión basados en clave pública,

simplemente añade o modifica la línea:

PubkeyAuthentication yes

en el archivo /etc/ssh/sshd_config, si está presente, asegúrate que la línea no está comentada.

▪ Para hacer que el servidor OpenSSH muestre el contenido del archivo /etc/issue.net como

banner antes del login, simplemente añade o modifica la línea:

Banner /etc/issue.net en el archivo /etc/ssh/sshd_config.

Page 23: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

23

Después de hacer los cambios en el archivo /etc/ssh/sshd_config, guarda este, y reinicia el

servidor sshd para que los cambios tengan efecto usando la siguiente orden en una terminal:

Versiones anteriores de Ubuntu 11

#sudo /etc/init.d/ssh restart

Versión Ubuntu 11

#sudo –s stop ssh

#sudo –s start ssh

Existen muchas otras directivas de configuración disponibles para sshd que cambian el

comportamiento de la aplicación servidor para ajustarlo a sus necesidades. No obstante, si tu

único método de acceso a un servidor es ssh, y cometes un error al configurar sshd por medio

del archivo /etc/ssh/sshd_config, puedes conseguir que el servidor se cierre durante el reinicio

del mismo, o que el servidor sshd no quiera iniciarse debido a una directiva de configuración

incorrecta, por lo que debes ser extremadamente cuidadoso cuando edites este fichero desde

un servidor remoto.

Ejemplos de conexión a la máquina que ofrece el servicio:

#ssh 192.168.1.40

#ssh pc

//siendo jorge uno de los usuarios de la maquina que ofrece el servicio

#ssh [email protected]

#ssh jorge@pc5�

Page 24: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

24

Permitiendo y denegando hosts

Para permitir y denegar los accesos, editaremos los archivos /etc/hosts.deny y

/etc/hosts.allow. En el primero de ellos denegaremos todos los hosts y en el segundo

permitiremos algunos, de forma que quedará todo denegado excepto lo que permitamos en

hosts.allow.

Es imprescindible que comprendamos que los archivos hosts no se aplican solo al servidor ssh,

sino a toda la máquina, por lo que hay que tener especial cuidado a la hora de permitir o

denegar los accesos. Ésta práctica puede no ser adecuada en servidores web y tener en

cuenta qué servicios permitir y denegar.

De ésta forma, si tenemos un servidor conectado a dos redes (una red interna y una red

pública) podríamos denegar el acceso desde la red pública.

sudo gedit /etc/hosts.deny

Y añadimos la línea:

ALL: ALL

Ahora editamos el archivo hosts.allow:

sudo gedit /etc/hosts.allow

Y añadimos los hosts que queramos:

sshd: 192.168.0.10 # Permitir una dirección.

sshd: 192.168.0.* # Permitir todo el rango de la IP 192.168.0.1 a 192.168.0.255.

Ahora definiremos en qué dirección queremos que escuche el servidor ssh, de forma que en

caso de tener varias interfaces de red (una pública y otra privada) sólo se acceda por una de

ellas:

Editar el archivo /etc/ssh/sshd_config:

sudo gedit /etc/ssh/sshd_config

Cambiar la directiva ListenAddress a (por ejemplo) la dirección privada del servidor:

ListenAddress 192.168.0.1

Agregar usuarios para conectarse dentro del rango de IP en la red interna configurar

AllowUsers [email protected].* # corresponde al rango 192.168.0.1 al 192.168.0.255

AllowUsers [email protected] [email protected] [email protected] # definir

una dirección de IP por usuario

Agregar usuarios para conectarse desde cualquier parte del mundo

AllowUsers usuario usuario2 usuario3

Page 25: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

25

Recomendación: para evitar ataques de hackers y hacerles más difícil que se conecten se

debe desactivar la opción para que se conecte el usuario "root", cambiando a no en la siguiente

línea

# Authentication:

LoginGraceTime 120

PermitRootLogin no

StrictModes yes

Cambiando a un puerto no estándar

Para aumentar la seguridad, una de las prácticas habituales es cambiar el puerto estándar (22)

a uno no estándar (por ejemplo 5039).

Editamos el archivo /etc/ssh/sshd_config:

sudo gedit /etc/ssh/sshd_config

Cambiamos la directiva Port de 22 a (por ejemplo) 5039:

Port 5039

Incrementando la seguridad

Con los pasos anteriores tendremos un servidor ya bastante seguro, pero todo se puede

mejorar. Ahora vamos a definir otros aspectos de seguridad.

Cambiar el número de intentos fallidos de autentificación

Cambiar el número de intentos fallidos de autentificación es una buena estrategia, sobre todo si

nuestro servidor está escuchando en una red pública. De ésta forma podemos evitar que un

posible atacante intente repetidamente averiguar una contraseña.

Editamos el archivo /etc/ssh/sshd_config:

sudo gedit /etc/ssh/sshd_config

Cambiamos la directiva (si no está la añadimos) MaxAuthTries:

MaxAuthTries 2

Si fallas la contraseña dos veces, te desconecta.

Cambiar el número de conexiones concurrentes no autentificadas

Ésta es una buena estrategia también, para evitar intentos de conexión. La directiva

MaxStartUps controla el número de conexiones no autenticadas en el servidor, de ésta forma,

evitamos que posibles atacantes intentasen conectarse demasiadas veces.

Page 26: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

26

Editamos el archivo /etc/ssh/sshd_config

sudo gedit /etc/ssh/sshd_config

Cambiamos o añadimos la directiva MaxStartUps:

MaxStartUps 3

De ésta forma tendríamos un servidor ssh mas seguro.

Page 27: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

27

VNC

VNC es un servicio que crea servidores gráficos sobre pantallas o displays virtuales y permite

establecer conexiones remotas desde otros PCs de la red al servidor, de forma gráfica de

manera similar a si fuera un servidor de terminales.

Para que pueda funcionar es necesario instalar y ejecutar el servidor VNC. Este servidor

atenderá las peticiones de los clientes. El terminal deberá disponer del cliente de VNC llamado

vncviewer del que hay versiones para todos los sistemas operativos incluidos MS-DOS, Linux

y Microsoft Windows.

Cuando ejecutamos el servidor de VNC, se crea un nuevo escritorio al cual se puede acceder

de forma remota con el cliente de VNC. Se pueden ejecutar tantos servidores VNC como

permita la memoria del sistema, pudiendo varios usuarios acceder de forma simultánea, cada

uno a su escritorio independiente, al contrario que la versión del servidor VNC para Windows

que sólo permite acceder al escritorio principal. Podemos forzar la introducción de una

contraseña para permitir el acceso vía VNC al servidor.

En la estación de trabajo donde se ejecute el visor de VNC, éste aparece como una ventana en

el entorno de escritorio local, presentando la interfaz de usuario; todas las funciones del S.O.,

así como las aplicaciones, se ejecutan en el servidor.

Page 28: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

28

Instalación del servidor VNC

Para disponer de servidor VNC, instalaremos el paquete tightvncserver.

// Instalación de vncserver

# sudo –s apt-get install tightvncserver

Puesta en marcha del servidor VNC

Para que se pueda acceder al servidor de forma remota mediante un cliente VNC, primero es

necesario que en el servidor se esté ejecutando tightvncserver.

Al ejecutar tightvncserver, se crea un servidor gráfico en un display virtual al que se puede

acceder remotamente desde otros PCs de la red que dispongan del cliente VNC.

La primera vez que ejecutemos tightvncserver en el servidor, nos pedirá que proporcionemos

una contraseña que será la contraseña que deberán utilizar los clientes para conectarse. Ésta

contraseña se puede cambiar en cualquier momento ejecutando el comando 'vncpasswd' en el

servidor.

Vamos a crear un servidor gráfico, para ello podríamos ejecutar por ejemplo:

// Creación de un servidor grafico

# tightvncserver :1 -geometry 800x600 -depth 24

Con el comando anterior estaríamos creando un nuevo servidor gráfico en un display virtual

cuyo número de display será el :1, su tamaño será de 800 x 600 píxeles y una profundidad de

color de 24 bits/pixel (true color).

Si hemos lanzado el comando tightvncserver con el usuario root, cuando alguien se conecte de

forma remota, accederá como root. Si hubiéramos lanzado el comando con el usuario pepe

(por ejemplo), cuando alguien se conecte de forma remota, lo hará como usuario pepe.

Destrucción de un servidor gráfico VNC

Cada vez que ejecutamos el comando tightvncserver, se crea un nuevo escritorio que puede

ser accedido remotamente. Dichos escritorios consumen una cantidad considerable de

memoria en el servidor, por lo que solo debemos crear los que necesitemos. Si hemos creado

más de los necesarios, podemos destruirlos mediante el comando tightvncserver indicando el

número del servidor a destruir, precedido por dos puntos:

// Destrucción de un servidor gráfico VNC

# tightvncserver -kill :1

Page 29: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

29

Conexión con cliente vnc

Para conectar al servidor VNC necesitamos un cliente VNC, como por ejemplo vncviewer.

Podemos instalarlo directamente con apt-get ejecutando:

// Instalación del cliente VNC

# sudo –s apt-get install xtightvncviewer

Una vez instalado el cliente, tan solo debemos ejecutarle y proporcionarle la IP del servidor,

seguido de dos puntos ':' y seguido del número de display, ejemplo 192.168.1.239:1 si la

dirección IP del servidor fuera la 192.168.1.239 y el número de display fuera 1. Acto seguido

nos pedirá la contraseña de acceso que pusimos al instalar el servidor. Dicha contraseña se

puede especificar ejecutando el comando 'vncpasswd' en el servidor.

Page 30: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

30

POSTFIX

Para tener más completo nuestro servidor, es interesante tener en cuenta la instalación de un

servidor de correo electrónico.

Como requisitos previos ya deberíamos tener instalados en la maquina tanto un servidor DNS

(Bind), como un servidor Web (apache), para a continuación instalar un servidor de correo

electrónico.

# sudo apt-get install postfix

La instalación nos pedirá que configuremos, o mejor dicho, que seleccionemos las opciones

que más se adaptan a nuestras necesidades.

1. Presionamos la tecla Intro, puesto que tan solo nos muestra información sobre la

primera opción

2. Ahora dejamos la que viene por defecto “Sitio de Internet” y presionamos Intro

3. En este paso indicamos el nombre del dominio, en nuestro caso misitio.com puesto

que se trata de nuestro servidor local de desarrollo

4. Ya lo tenemos instalado, pero faltan unos detalles en cuanto a la configuración se

refieren y tenemos que abrir:

# sudo gedit /etc/postfix/main.cf

Y al final del fichero añadimos:

inet_protocols = ipv4

home_mailbox = Maildir/

Sirve para indicar que se utilizará el protocolo de red IPv4 y cual será el directorio donde se

almacenarán los correos electrónicos. Tenemos que observar con detenimiento el fichero y

buscar la siguiente línea mydestination que ha de ser igual a nuestro nombre de servidor, asi

como en cada usuario incluir el directorio Maildir. Como ya sabéis en nuestro caso es

misitio.com Si todo está Ok podemos pasar al reseteo del servidor de correo:

# sudo /etc/init.d/postfix restart

Ahora necesitamos instalar un par de servicios que nos permitirán tener bien configurado

nuestro servidor de correo de forma correcta. Hemos de instalar Courier PoP y Courier IMAP

# sudo apt-get install courier-pop

Page 31: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

31

Al instalarlo nos realizará una pregunta, por defecto viene señalado el no pero podemos

fácilmente seleccionar el sí, de hecho, si seleccionamos el sí, tan solo existirá un fichero de

configuración para el servicio y podremos gestionarlo fácilmente.

Ahora instalamos Courier IMAP

# sudo apt-get install courier-imap

Nos falta la interfaz gráfica para poder utilizar nuestras cuentas de correo, se ha optado por

instalar SquirrelMail, que es una aplicación webmail basada en php que nos permitirá gestionar

nuestro correo electrónico.

# sudo apt-get install squirrelmail

Ahora necesitamos configurarlo:

# squirrelmail-configure

Al teclear esta instrucción en la consola nos aparecerá la aplicación de gestión del

aplicativo. Seguimos los pasos:

1. Seleccionamos la Opción D (teclear D y pulsar Intro): Set pre-defined settings for

specific imap servers

2. Después tecleamos courier y pulsamos intro

3. Pulsamos una tecla para continuar

4. Ahora seleccionamos la opción 2 y pulsamos intro

5. Ahora seleccionamos la opción 1 y pulsamos intro

6. A continuación tecleamos el nombre de nuestro dominio desarrollo.com y pulsamos

intro

7. Para finalizar pulsamos la tecla Q para salir y guardamos los cambios

Para poder acceder al SquirrelMail desde la web, tenemos que crear un enlace simbólico.

# cd /var/www

# sudo ln -s /usr/share/squirrelmail webmail

Ahora ya podemos visitar nuestro webmail en nuestro servidor de desarrollo. Si lo has hecho

todo bien http://localhost/webmail o http://www.misitio.com/webmail debería de funcionarte

correctamente.

Antes de logearse con un usuario para poder comenzar a utilizar el servicio de correo

electrónico, se deberán realizar los siguientes pasos:

Page 32: servicios en red copy - · PDF fileNota: esta manual esta realizado basándose en la versión de Ubuntu 11.0. 5 Servicios Linux ... distintas dependencias son un verdadero quebradero

32

1. Si el usuario ya existe en la maquina habrá que crear una carpeta con el nombre de

Maildir en su carpeta $HOME y DARLE LOS PERMISOS NECESARIOS, si la carpeta

la crea root no podrá acceder a ella y nos dará un error.

2. Si el usuario no existe se crea uno y se crea la carpeta.

Antes de comenzar a utilizar squirrelmail, tendremos que enviar un mensaje a la bandeja de

entrada, esto lo realizaremos desde consola, aunque previamente deberemos instalar el

servicio mailx para poder realizarlo:

#sudo –s apt-get install mailx

Con esta orden nos aparecerán 3 posibles paquetes a instalar, en nuestro caso hemos optado

por instalar el siguiente:

#sudo –s apt-get install heirloom-mailx

Una vez instalado procederemos a enviar un correo de la siguiente manera

#mail “hola” [email protected]

Donde “hola” es un campo opcional y forma parte del asunto del mensaje de correo, a

continuación indicamos el destinatario y entonces ya podremos de manera textual introducir el

mensaje, en el momento que introduzcamos un punto “.”, aparecerá un mensaje EOT (End Of

Text), el cual indica que ya se ha enviado el mensaje de correo.

Una vez llegados a este punto, ya podremos loguearnos en squirrelmail y acceder sin

problemas a la interfaz grafica.

Con esto ya tendremos montado un servidor de correo a nivel interno a la red de área local, no

accesible desde el exterior, solo como intranet local.