Biblioteca Online : ¡La Suscripción ENI por 9,90 € el primer mes!, con el código PRIMER9. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. LINUX
  3. La red
Extrait - LINUX Dominar la administración del sistema (5ª edición)
Extractos del libro
LINUX Dominar la administración del sistema (5ª edición)
1 opinión
Volver a la página de compra del libro

La red

TCP/IP

1. Fundamentos

El origen de TCP/IP se sitúa en las investigaciones de la DARPA (Defense Advanced Research Project Agency), que empezaron en 1970 y desembocaron en ARPANET. En realidad, la DARPA financió a la universidad de Berkeley, que integró los protocolos básicos de TCP/IP dentro de su sistema UNIX BSD 4.

TCP/IP se popularizó gracias a su interfaz genérica de programación de intercambios de datos entre las máquinas de una red, las primitivas sockets, y la integración de protocolos de aplicación. El IAB (Internet Architecture Board) supervisa los protocolos de TCP/IP y a otros dos organismos:

  • La IRTF (Internet Reseach Task Force), responsable del desarrollo de los protocolos.

  • La IETF (Internet Engineering Task Force), responsable de la red Internet.

El NIC (Network Information Center) y en España el ESNIC distribuyen las direcciones red. Se describe el conjunto de los protocolos de TCP/IP en los documentos RFC (Request For Comments) (ver el RFC 793).

  • La capa inferior es IP (Internet Protocol).

  • La capa de transporte es TCP (Transmission Control Protocol) o UDP (User Datagram Protocol).

  • Las capas superiores son las capas de los protocolos de aplicación; por ejemplo:

  • NFS (Network File System): comparte los archivos a distancia.

  • DNS (Domain Name System): asociación anfitrión<->IP.

  • FTP (File Transfer Protocol): transferencia de archivos.

  • TELNET: emulación de un terminal de tipo texto...

La versión del protocolo IP más utilizada es la V4. El protocolo IPV6 deberá remplazarla con el tiempo. Compatible con IPV4, propone un sistema de direcciones en 128 bits (16 bytes) que permite extender las capacidades de la red, en particular en cuestión de tamaño y direccionamiento.

2. Direccionamiento

a. Clases

Es importante saber antes de la instalación a qué tipo de red se debe integrar el nuevo servidor, TCP/IP por supuesto, pero hay que reservarle una dirección IP, un hostname (nombre de máquina de red), conocer las diversas pasarelas, el nombre de dominio, la clase utilizada y la máscara de subred o netmask. 

Hagamos un breve repaso de las clases de IP. Se define una dirección IP en 32 bits y se representa con cuatro nombres separados por puntos: n1.n2.n3.n4. Esta dirección está formada por dos partes que definen la dirección...

Servicios de red xinetd

1. Presentación

El demonio xinetd es un "superservicio" que permite controlar el acceso a un conjunto de servicios, telnet por ejemplo. Se pueden configurar muchos servicios de red para funcionar con xinetd, como los servicios FTP, ssh, samba, rcp, HTTP, etc. Se pueden aplicar opciones de configuración específicas para cada servicio gestionado.

La llegada de systemd, que permite controlar a la vez un socket y un servicio, hace obsoleto el uso de xinetd en las distribuciones recientes. Sin embargo, xinetd sigue estando presente en todas las distribuciones. Esta parte ha sido escrita usando una antigua versión de OpenSUSE, ya que xinetd ya no está instalado por defecto.

Cuando un cliente se conecta a un servicio de red controlado por xinetd, xinetd recibe la petición y verifica primero las autorizaciones de acceso TCP (vea tcp_wrappers en el próximo capítulo); luego, las reglas definidas para este servicio (autorizaciones específicas, recursos asignados, etc.). El demonio levanta una instancia del servicio y le cede la conexión. A partir de entonces, xinetd ya no interfiere en la conexión entre el cliente y el servidor.

2. Configuración

Los archivos de configuración son:

  • /etc/xinetd.conf: configuración global

  • /etc/xinetd.d/*: directorio que contiene los archivos específicos para los servicios. Existe un archivo por servicio, con el mismo nombre que el especificado en /etc/services.

$ ls -l /etc/xinetd.d 
total 92 
-rw-r--r-- 1 root root  313 sep 22  2007 chargen 
-rw-r--r-- 1 root root  333 sep 22  2007 chargen-udp 
-rw-r--r-- 1 root root  256 mar 20 22:11 cups-lpd 
-rw-r--r-- 1 root root  409 nov  4  2005 cvs 
-rw-r--r-- 1 root root  313 sep 22  2007 daytime 
-rw-r--r-- 1 root root  333 sep 22  2007 daytime-udp 
-rw-r--r-- 1 root root  313 sep 22  2007 discard 
-rw-r--r-- 1 root root  332 sep 22  2007 discard-udp 
-rw-r--r-- 1 root root  305 sep 22  2007 echo 
-rw-r--r-- 1 root root  324 sep 22  2007 echo-udp 
-rw-r--r-- 1 root root  492 sep 22  2007 netstat ...

OpenSSH

1. Presentación

OpenSSH es un protocolo de shell con prestaciones de seguridad, un mecanismo que permite la autenticación segura, la ejecución remota y la conexión a distancia. Permite también el transporte seguro del protocolo X Window. En realidad, es capaz encapsular protocolos no seguros redireccionando los puertos.

Los paquetes que se deben utilizar para un servidor son openssh, openssl y openssh-clients. Para X se añaden los paquetes openssh-askpass* (puede haber varios en función del entorno de escritorio). La lista de los paquetes que hay que instalar depende de cada distribución.

El uso más común sigue siendo el acceso remoto seguro a una máquina mediante el cliente ssh.

2. Configuración

La configuración es /etc/ssh/sshd_config. Si es preciso, se pueden modificar algunas opciones:

  • Port: el número de puerto por defecto es 22;

  • Protocol: fijado en 2,1, autoriza SSH1 y SSH2. Se preferirá SSH2 y así se dejará el valor 2;

  • ListenAddress: por defecto ssh escucha en todos los IP del servidor. Se puede autorizar únicamente la escucha en una interfaz dada;

  • PermitRootLogin: ssh autoriza las conexiones de root. Se puede poner el valor a "no". En este caso, habrá que conectarse como simple usuario y pasar por su o sudo

  • Banner: ruta de un archivo cuyo contenido se mostrará a los usuarios durante la conexión.

ssh es un servicio System V que puede iniciarse con service o directamente por /etc/init.d/sshd, o una unidad systemd.

# service sshd start 

3. Utilización

El comando ssh permite establecer una conexión.

$ ssh -l login host 
$ ssh login@host 

La opción -X permite activar la redirección (forwarding) del protocolo X Window.

$ ssh -X login@host 

4. Claves y conexión automática

Es posible establecer una conexión automática hacia otra máquina sin introducir una contraseña. Para ello, es necesario generar un par de claves, privada y pública, desde la cuenta de usuario del cliente (la máquina que se va a conectar). No se debe introducir ninguna frase de contraseña, en el caso de que la clave privada haya sido protegida con una contraseña, para no tener que teclearla, esta tendrá que haber sido guardada en la colección de claves de sesión o a través de ssh-agent....

Configurar un servidor DHCP

1. Presentación

El servicio DHCP (Dynamic Host Configuration Protocol), protocolo de configuración dinámico de los anfitriones, permite a los anfitriones de una red pedir y recibir información de configuración (dirección, encaminamiento, DNS, etc.). Suele haber un solo servidor DHCP por segmento de red incluso si hay varios posibles. Si el servidor está en otro segmento, se puede utilizar un agente de retransmisión DHCP.

Dicho de otro modo, un cliente DHCP busca sólo un servidor DHCP, que le comunicará su dirección IP. Se asigna la dirección IP de manera dinámica a partir de rangos de direcciones predefinidas, o de manera estática en función de la dirección MAC del peticionario. La información es válida durante un período de tiempo dado (un contrato) que se puede renovar y configurar.

DHCP es un programa basado en BOOTP (Bootstrap Protocol). Cuando el cliente busca contactar un servidor, BOOTP le facilita la información de direccionamiento. DHCP gestiona las renovaciones. BOOTP se basa en el protocolo de transporte UDP.

Un cliente del servicio no tiene información de red disponible en el momento del inicio. Debe encontrar sólo un servidor DHCP. Para ello, BOOTP efectúa un broadcast mediante la IP 255.255.255.255 con una trama que contiene sus datos (como su dirección MAC)...

Servidor DNS

1. Presentación

El sistema de Nombres de Dominios DNS (Domain Name System) transforma los nombres de anfitrión en direcciones IP: es la resolución de nombre y transforma las direcciones IP en nombres de anfitrión: es la resolución inversa. Permite agrupar las máquinas por dominios de nombre. Facilita información de encaminamiento y correo electrónico.

El DNS permite referirse a sistemas basados en IP (los anfitriones) empleando nombres amenos (los nombres de dominios). El interés de un DNS es obvio. Los nombres de dominio son más fáciles de recordar y, si su dirección IP cambia, el usuario no se da cuenta. Por lo tanto, se entiende que el DNS es un servicio fundamental para Internet.

Los nombres de dominio van separados por puntos. Como cada elemento se puede componer de 63 caracteres, sólo puede haber un máximo de 127 elementos y el nombre completo no debe superar los 255 caracteres. El nombre completo no abreviado se llama FQDN (Fully Qualified Domain Name). En un FQDN, el elemento más a la derecha se llama TLD (Top Level Domain), el más a la izquierda representa al anfitrión y, por tanto, la dirección IP.

El DNS contiene una configuración especial para los enrutadores de correo electrónico (definiciones MX) que permiten una resolución inversa, un factor de prioridad y tolerancia a errores.

images/cet07-02.png

Representación de un árbol DNS

Una zona es una parte de un dominio gestionado por un servidor particular. Una zona puede gestionar uno o varios subdominios y se puede repartir un subdominio en varias zonas. Una zona representa una unidad de administración, de la cual puede ser responsable una persona.

2. Inicio

El servicio se llama named.

# service named start 

o:

# /etc/init.d/named start 

3. Configuración de Bind

Bind (Berkeley Internet Name Daemon) es el servidor de nombres más utilizado en Internet. Bind 9 soporta el IPv6, los nombres de dominio unicode, el multithread y muchas mejoras de seguridad.

a. Configuración general

La configuración global de Bind se encuentra en el archivo /etc/named.conf. La configuración detallada de las zonas se coloca en /var/lib/named. /etc/named.conf se compone de dos partes. La primera corresponde a la configuración global de las opciones de Bind. La segunda es la declaración...

Correo electrónico

1. Fundamentos

  • Cuando un cliente (un usuario) manda un mensaje, utiliza un MUA (Mail User Agent), por ejemplo Outlook Express, Thunderbird, Evolution, Kmail, Mutt, etc.

  • El MUA envía el mensaje al MTA (Mail Transport Agent). El MTA estudia la dirección electrónica para aislar al usuario y dominio de destino. Luego verifica la información DNS de tipo MX (Mail eXchanger) para el dominio elegido, para saber a qué servidor transmitir el correo. Si ningún MTA está disponible, se coloca el mensaje en fila de espera y se reenvía más tarde (el plazo depende de la configuración del MTA).

  • El MX puede ser o bien otro MTA, que tendrá el papel de enrutador (en caso de una redirección hacia un subdominio, por ejemplo) o bien un MDA (Mail Delivery Agent). El MDA coloca el mensaje en un archivo temporal, puede filtrarlo, etc.

  • En este nivel, el destinatario recibe el mensaje: o lo recupera al leer directamente el archivo temporal (caso del comando mail, por ejemplo), o pasa por un protocolo de tipo POP o IMAP.

  • El protocolo de transporte de mensajes es el SMTP (Simple Mail Transfer Protocol) en el puerto 25.

  • Los protocolos de recepción de mensajes son o POP (Post Office Protocol) en el puerto 110 (POP3), o IMAP (Internet Message Access Protocol).

Dos suites de correo electrónico comparten la parte esencial del mercado en Unix: sendmail y postfix.

La serie libre sendmail es la más conocida y más utilizada. Eric Allman creó Sendmail en 1981, que fue integrado en BSD 4.2 en 1983. En 2000 se estimaba que lo usaban a más...

Servicio HTTP Apache

1. Presentación

Apache 2 es el servidor HTTP más utilizado actualmente en los servidores Web. Su configuración y su flexibilidad hacen que sea un servidor ineludible.

Cuando un servidor Apache recibe peticiones, puede distribuirlas a procesos hijos. La configuración permite iniciar procesos de manera anticipada y adaptar de manera dinámica este número según la carga.

Apache es modulable. Cada módulo permite añadir funcionalidades al servidor. El módulo más famoso es probablemente el que gestiona el lenguaje PHP, "mod_php". Cada módulo se añade mediante los archivos de configuración y no hace falta iniciar de nuevo el servidor Apache: sólo se le da la orden de volver a leer su configuración.

Apache puede gestionar varios sitios web a la vez, cada uno con su nombre, mediante los anfitriones virtuales.

2. Parada/Reinicio

El nombre del servicio depende de la distribución. A menudo se denomina apache o httpd. Según la distribución, inicie el servicio mediante el comando service o directamente por su nombre, /etc/init.d/apache.

  • /etc/init.d/httpd start: inicia;

  • /etc/init.d/httpd stop: detiene;

  • /etc/init.d/httpd restart: reinicia;

  • /etc/init.d/httpd reload: pide a Apache que vuelva a leer su configuración sin reiniciarse.

Con systemd, el servicio se ejecuta de la misma manera:

  • systemctl start httpd

  • systemctl reload httpd

  • systemctl restart httpd

  • systemctl stop httpd

Apache va acompañado de la herramienta apachectl, que retoma los parámetros (lista no exaustiva) start, stop, status, reload, y sobre todo configtest, que valida o no el contenido del archivo de configuración de Apache.

3. Configuración

Se almacena la configuración principal en /etc/httpd/conf/httpd.conf: controla los parámetros generales del servidor web, los anfitriones virtuales y los accesos. La configuración de los diferentes módulos está ubicada en /etc/httpd/conf.d. Los módulos están presentes en /etc/httpd/modules/. Por defecto la raíz del servidor, donde se colocan las páginas del sitio, está en /var/www o /srv/www. Esta posición depende de la directiva DocumentRoot...

Archivos compartidos

1. NFS

a. Inicio

El sistema de archivos compartidos NFS (Network File System) o sistema de archivos de red permite compartir todo o parte de un sistema de archivos destinados a clientes NFS, a menudo otros Unix. En su versión básica, es un sistema simple y eficaz. Vamos a estudiar la versión 2, pero los ejemplos funcionan también en versión 3 (observe sin embargo, que el protocolo de transporte por defecto que pasa a TCP en lugar de UDP para algunas distribuciones).

NFS se basa en el portmapper (portmap), el soporte NFS del núcleo y los servicios rpc.nfsd y rpc.mountd.

En las distribuciones no equipadas con systemd, para iniciar el servicio NFS, se debe ejecutar portmap y NFS (verificar el estado antes).

# service portmap status # /etc/init.d/portmap status o rpcinfo -p 
# service nfs status 
# service portmap start 
# service nfs start 
# service nfslock start 

En algunas distribuciones, portmap se cambia por rpcbind. Hay que iniciar este servicio en lugar de portmap.

En las distribuciones con systemd, primero hay que instalar:

  • En Ubuntu y openSUSE, el paquete nfs-kernel-server

  • En Fedora, Red Hat y CentOS, el paquete nfs-utils

Los servicios se llamarán:

  • En Ubuntu, Fedora, CentOS y Red Hat: rpcbind y nfs-server

  • En openSUSE: rpcbind y nfsserver

Después podrá usar los comandos clásicos systemctl.

Para saber si el servicio está disponible en un anfitrión remoto:

# rpcinfo -p host 
root@ubuntu:/etc# rpcinfo -p  
   program vers proto   port  service  
    100000    4   tcp    111  portmapper  
...  
    100005    1   tcp  33003  mountd  
...  
    100003    3   tcp   2049  nfs  
...  
    100021    1   tcp  40811  nlockmgr  
... 

b. Caso de NFS4

NFSv4 o NFS4, ou por último 4.1, no utiliza ya las RPC y portmapper....

Recursos compartidos Windows con Samba

1. Presentación

Samba es un conjunto de servidores que implementan los protocolos SMB/CIFS y NetBIOS/WINS para Unix. Su utilización más famosa es la de compartir recursos entre Windows y Unix, pero funciona perfectamente entre dos Unix. Un recurso compartido se llama también servicio. Samba se compone de dos servicios:

  • smbd: servidor SMB/CIFS.

  • Autenticación y autorización.

  • Archivos e impresoras compartidos.

  • nmbd: servidor de nombres NetBIOS.

  • Recorrido de los recursos.

  • Servidor WINS.

Un tercer servicio, winbindd, permite utilizar las cuentas de usuario de un dominio Microsoft. Las últimas versiones de Samba (3 y siguientes) permiten conectarse también a Active Directory.

Las funciones principales de Samba son:

  • Autenticación de los usuarios.

  • Archivos e impresoras compartidos.

  • Recorrido de los recursos compartidos de la red.

  • Resolución de nombres (independiente de DNS) Nombre Netbios en dirección IP o viceversa.

Necesitará el paquete samba, cualquiera que sea la distribución.

Los nombres de los servicios son los siguientes:

  • En Ubuntu, nmbd y smbd

  • En openSUSE, SLES, Red Hat, CentOS y Fedora, nmb y smb

2. Configuración

La configuración de Samba se encuentra en /etc/samba/smb.conf. Puede comprobar su sintaxis con la herramienta testparm.

El archivo smb.conf retoma la sintaxis de los archivos de configuración de Windows de tipo ini con secciones delimitadas por corchetes [ ].

Por defecto hay tres secciones:

  • [global]: ajustes genéricos y globales del servidor, nombre, comentarios, método de autenticación, ajustes por defecto, etc.

  • [homes]: compartición de los directorios personales de los usuarios.

  • [printers]: compartición de las impresoras.

Los parámetros tienen la forma:

nombre = valor 

Los comentarios comienzan por un punto y coma ; o una almohadilla #.

[global] 
workgroup...