Sei sulla pagina 1di 32

SERVICIOS EN

RED

1
2
Índice

Introducción  ..........................................................................................................................  4  
Servicios Linux  .....................................................................................................................  5  
Servidor DHCP  ................................................................................................................................  5  
Servidor DNS  ................................................................................................................................  10  
NFS  ...................................................................................................................................................  16  
TELNET  ...........................................................................................................................................  20  
Servidor OpenSSH  .....................................................................................................................  21  
VNC  ..................................................................................................................................................  27  
POSTFIX  .........................................................................................................................................  30  

3
Introducción

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

4
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:

5
• 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.

6
Á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.

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

8
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.

9
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.

10
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.

11
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.

12
;

;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

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

13
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.

14
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

15
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)

16
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)

17
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

18
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.

19
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

20
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.

21
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.

22
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 jorge@192.168.1.40

#ssh jorge@pc5

23
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 usuario@192.168.0.* # corresponde al rango 192.168.0.1 al 192.168.0.255

AllowUsers usuario@192.168.0.11 usuario2@192.168.0.12 usuario3@192.168.0.7 # definir


una dirección de IP por usuario

Agregar usuarios para conectarse desde cualquier parte del mundo

AllowUsers usuario usuario2 usuario3

24
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.

25
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.

26
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.

27
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

28
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.

29
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

30
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:

31
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” prueba@misitio.com

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.

32

Potrebbero piacerti anche