¡Esta es una revisión vieja del documento!
Recordar conocimientos adquiridos en la parte Básica del curso, para facilitar el aprendizaje en la parte Avanzada, así como responder preguntas que puedan haber surgido con la práctica.
Incorporar los conocimientos necesarios para poder entender cómo funcionan y cómo se instalan redes bajo estos protocolos
El Protocolo de Control de Transmisión (TCP, Transmission Control Protocol) es uno de los principales componentes del protocolo de Internet (IP, Internet Protocol). El conjunto es a menudo llamado TCP/IP. TCP provee un método de envío de flujo de octetos confiable, ordenado y con comprobación de errores entre programas ejecutándose sobre computadoras conectadas a una red, sea local o pública. Reside en la capa de transporte del modelo OSI.
El Protocolo de Internet (IP, Internet Protocol) es el principal componente del conjunto de protocolos para envío de datagramas a través de redes interconectadas. Su función de ruteo permite internetworking y esencialmente establece Internet.
La versión que actualmente se utiliza en más del 96% de Internet es la 4, que ofrece direcciones de 32 bit. Data del año 1981. Para resolver el tema del agotamiento de las direcciones, entre otros, una nueva especificación fue desarrollada por la IETF. Fue llamada versión 6, y data del año 1998. Entre otras características, ofrece direcciones de 128 bit.
Ejemplo de dirección IPv4 (4 grupos de 8 bit cada uno): 192.0.2.235
Ejemplo de dirección IPv6 (8 grupos de 16 bit cada uno): 2001:0db8:0000:0000:0000:ff00:0042:8329
Hay varios tipos de redes, siendo la más común hoy en día la topología en estrella. Las capas del modelo OSI son las siguientes:
Clase | Rango | N° de Redes | N° de Host Por Red | Máscara de red | Broadcast ID |
A | 0.0.0.0 - 127.255.255.255 | 128 | 16 777 214 | 255.0.0.0 | x.255.255.255 |
B | 128.0.0.0 - 191.255.255.255 | 16 384 | 65 534 | 255.255.0.0 | x.x.255.255 |
C | 192.0.0.0 - 223.255.255.255 | 2 097 152 | 254 | 255.255.255.0 | x.x.x.255 |
D | 224.0.0.0 - 239.255.255.255 | histórico | |||
E | 240.0.0.0 - 255.255.255.255 | histórico |
Si bien a bajo nivel la conexión entre equipos se realiza utilizando direcciones IP, para simplificar el trabajo humano y no tener que recordar los números de direcciones, se utilizan nombres de host y un sistema de resolución de nombres en su correspondiente dirección IP: Domain Name Service (DNS).
Si los equipos son pocos, se puede utilizar también el archivo /etc/hosts.
La configuración de red en CentOS se encuentra en el archivo /etc/sysconfig/network y en el directorio /etc/sysconfig/network-scripts/ dentro de varios archivos y scripts de configuración.
Los archivos más importantes allí dentro son ifcfg-lo y ifcfg-eth0. A continuación, un ejemplo de configuración de ifcfg-eth0 para utilizar una IP fija:
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes NETMASK=255.255.255.0 IPADDR=172.16.23.1 USERCTL=no
Sin embargo, si se desea utilizar DHCP:
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
Además, se debe indicar qué servidores DNSs el equipo deberá consultar. Eso se logra con el archivo /etc/resolv.conf colocando dentro algo como:
domain dominio search dominio nameserver 172.16.13.1
Al ser instalado CentOS, por defecto trae algunas reglas de firewall que cierran el acceso a puertos que pudiesen estar abiertos.
A los efectos de este curso, el firewall no es necesario. Para desactivarlo, se debe limpiar primero las reglas de Netfilter y luego desactivar el script que configura las reglas al inicio del sistema operativo, tanto para IPv4 como IPv6:
iptables -F chkconfig iptables off ; chkconfig ip6tables off
Entender la utilidad de tener un DNS configurado en el servidor, así como aprender la configuración y empleo del DNS BIND9.
El Domain Name System (o Service, o Server) se encarga de devolver la dirección IP que corresponde a un nombre de host (resolución forward); también hace lo inverso, devolver el nombre de host que está configurado para una IP (resolución reverse). Como tal es un servicio básico e imprescindible en una intranet ya que, por un lado facilita el trabajo al evitar tener que recordar las direcciones IP que corresponden a los equipos, y por otra parte permite aprovechar servicios como HTTP, que hacen uso intensivo de los nombres de host.
Algunos conceptos:
Uno de los servidores de DNS más utilizados es Bind9, desarrollado por Internet Systems Consortium (ISC). Se caracteriza por ser rápido, eficiente y seguro.
Para instalarlo en CentOS:
yum install bind
El proceso se llama named y escucha en los puertos TCP y UDP 53.
La configuración se encuentra en los siguientes archivos y directorios:
Se debe tener en cuenta que la configuración de Bind es sumamente estricta, y un espacio o un punto de más o de menos provoca que el servicio no funcione.
En /etc/named.conf agregar o modificar donde corresponda:
listen-on port 53 { 127.0.0.1; 192.168.1.1;}; allow-query { localhost; 192.168.1.0/24; };
Y al final de este archivo, pero antes de los includes, agregar la configuración para las zonas:
zone"dominio.local" IN { type master; file "forward.dominio"; allow-update { none; }; }; zone"1.168.192.in-addr.arpa" IN { type master; file "reverse.dominio"; allow-update { none; }; };
Luego crear ambos archivos en /var/named con lo siguiente:
forward.dominio
$TTL 86400 @ IN SOA dns.dominio.local. root.dominio.local. ( 2014060901 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) @ IN NS dns.dominio.local. @ IN A 192.168.1.1 dns IN A 192.168.1.1
reverse.dominio
$TTL 86400 @ IN SOA dns.dominio.local. root.dominio.local. ( 2011071001 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) @ IN NS dns.dominio.local. @ IN PTR dominio.local. dns IN A 192.168.1.1 1 IN PTR dns.dominio.local.
Dig es un utilitario para trabajar con DNS, solicitando resolución de hosts, direcciones IP, MX, etc.
Por ejemplo, para solicitar la IP de un host:
dig google.com
En cambio, para solicitar el host de una dirección IP:
dig -x 206.190.36.45
Incorporar los conocimientos que permitan configurar, poner en marcha, agregar funcionalidad y mantener un servidor Apache
Apache HTTP Server es uno de los servidores de dicho protocolo más utilizados en el mundo. Es extremadamente confiable, extensible, versátil y poderoso.
Para instalarlo en CentOS:
yum install httpd
En CentOS, la configuración de Apache se encuentra en los siguientes archivos y directorios:
Los archivos del sitio web, llamado document root están en /var/www/html
Los módulos de Apache, se encuentran en usr/lib64/httpd/modules
Por defecto, Apache al iniciar escucha sólo en localhost. Por lo tanto, debe buscarse dentro de httpd.conf la línea:
Listen 80
Y reemplazarla por:
Listen 0.0.0.0:80
Para crear un nuevo host virtual, basta con agregar en httpd.conf algo como lo siguiente, para cada nuevo host virtual que se desee:
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@sitio1.com DocumentRoot /var/www/sitio1.com/public_html ServerName www.sitio1.com ServerAlias sitio1.com ErrorLog /var/www/sitio1.com/error.log CustomLog /var/www/sitio1.com/requests.log </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@sitio2.com DocumentRoot /var/www/sitio2.com/public_html ServerName www.sitio2.com ServerAlias sitio2.com ErrorLog /var/www/sitio2.com/error.log CustomLog /var/www/sitio2.com/requests.log </VirtualHost>
Comprender la utilidad de tener un servidor de automatización de configuraciones de red, así como incorporar los conocimientos para configurarlo y ponerlo en marcha, haciendo que interactúe con otros servicios instalados.
DHCP ahorra mucho trabajo en la configuración de las estaciones de trabajo, ya que permite administrar la configuración de la red desde el servidor. Esta configuración actualiza el DNS (que debe estar configurado al efecto) con los datos de la estación de trabajo que solicitó una lease; asimismo, configura el navegador de la estación de trabajo con la información para el proxy:
ddns-updates on; ignore client-updates; update-static-leases on; ddns-update-style interim; option domain-name "dominio"; option domain-name-servers dns1.dominio dns2.dominio; option subnet-mask 255.255.255.0; option broadcast-address 192.168.10.255; option ntp-servers time.dominio; # Hora de Argentina GMT-3 option time-offset -10800; option routers gateway.dominio; option netbios-name-servers samba.dominio; # Para que esto funcione en Mozilla # tiene que haber un host "wpad.dominio" # y se debe hacer un hardlink de proxy.pac a wpad.dat option wpad code 252 = text; option wpad "http://wpad.dominio/proxy.pac\n"; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; # Configuración de una estación de trabajo # con IP fija host esta02 { hardware ethernet 00:d0:59:c6:b5:af; fixed-address esta02; } # Para que DHCP conozca qué zonas debe # actualizar # Esto es MUY IMPORTANTE dado que de otra manera # NO se actualizan las zonas en Bind # Recordar que en la configuración de Bind, dichas zonas deben # estar en /var/lib/bind/ para que puedan ser actualizadas por DHCP # porque si no AppArmor impide el acceso a las mismas. Se puede hacer # un hardlink de las mismas a /var/lib/bind/ zone dominio. { primary 127.0.0.1; } zone 10.168.192.in-addr.arpa. { primary 127.0.0.1; } # Configuración de un rango de IP's para # asignación dinámica a las estaciones # que las soliciten subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.40; } # Más ejemplos de lo que se puede hacer: # No service will be given on this subnet, but declaring it helps the # DHCP server to understand the network topology. #subnet 10.152.187.0 netmask 255.255.255.0 { #} # This is a very basic subnet declaration. #subnet 10.254.239.0 netmask 255.255.255.224 { # range 10.254.239.10 10.254.239.20; # option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; #} # This declaration allows BOOTP clients to get dynamic addresses, # which we don't really recommend. #subnet 10.254.239.32 netmask 255.255.255.224 { # range dynamic-bootp 10.254.239.40 10.254.239.60; # option broadcast-address 10.254.239.31; # option routers rtr-239-32-1.example.org; #} # A slightly different configuration for an internal subnet. #subnet 10.5.5.0 netmask 255.255.255.224 { # range 10.5.5.26 10.5.5.30; # option domain-name-servers ns1.internal.example.org; # option domain-name "internal.example.org"; # option routers 10.5.5.1; # option broadcast-address 10.5.5.31; # default-lease-time 600; # max-lease-time 7200; #} # Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration. #host passacaglia { # hardware ethernet 0:0:c0:5d:bd:95; # filename "vmunix.passacaglia"; # server-name "toccata.fugue.com"; #} # Fixed IP addresses can also be specified for hosts. These addresses # should not also be listed as being available for dynamic assignment. # Hosts for which fixed IP addresses have been specified can boot using # BOOTP or DHCP. Hosts for which no fixed address is specified can only # be booted with DHCP, unless there is an address range on the subnet # to which a BOOTP client is connected which has the dynamic-bootp flag # set. #host fantasia { # hardware ethernet 08:00:07:26:c0:a5; # fixed-address fantasia.fugue.com; #} # You can declare a class of clients and then do address allocation # based on that. The example below shows a case where all clients # in a certain class get addresses on the 10.17.224/24 subnet, and all # other clients get addresses on the 10.0.29/24 subnet. #class "foo" { # match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; #} #shared-network 224-29 { # subnet 10.17.224.0 netmask 255.255.255.0 { # option routers rtr-224.example.org; # } # subnet 10.0.29.0 netmask 255.255.255.0 { # option routers rtr-29.example.org; # } # pool { # allow members of "foo"; # range 10.17.224.10 10.17.224.250; # } # pool { # deny members of "foo"; # range 10.0.29.10 10.0.29.230; # } #}
Nota: esta configuración crea un DDNS (Dynamic DNS). Para que el DHCP pueda actualizar el DNS, el directorio de configuración del DNS debe tener el mismo usuario con el que se ejecuta su proceso. Por ejemplo, en Debian, el usuario es “bind”, entonces ejecutar “chown -R bind: /etc/bind”.
Para que la configuración automática de proxy funcione en las estaciones de trabajo, se debe realizar lo siguiente:
En Bind, hay que asegurarse que las líneas
allow-update { none; };
Sean modificadas por
allow-update { localhost; };