Administración de Redes SERVICIOS DE RED Profesor Eduardo Blanco Departamento de Computación y T. I. USB Niveles de corrida 0 - Halt the system 1 - Single-user mode 2 - Multi-user mode (without NFS) 3 - Multi-user mode 5 - Multi-user mode, graphical login 6 - Reboot the system Fuente: http://www.iodynamics.com/education/runlevel.html Linux Run level scripts Todos los scripts estan /etc/init.d Cada nivel de corrida tiene un directorio con scripts, por ejemplo /etc/rc0.d con links simbólicos a /etc/init.d Existen dos tipos de script: los K los S Los scripts reciben parámetros como: start, stop, status, restart, etc Fuente: http://www.comptechdoc.org/os/linux/howlinuxworks/li nux_hlrunscripts.html Servicios/aplicaciones de red DHCP NAT Correo electrónico Archivos compartidos WWW/HTTP Información DNS compartida Detección/corrección de problemas Manejo de demonios DHCP Dynamic Host Configuration Protocol DHCP Objetivo: simplificar la configuración de parámetros de red, adaptarse a ambientes dinámicos (portátiles, ISP) Los parámetros de configuración son “adquiridos temporalmente” Parámetros típicos: IP, máscara de red, gateways, servidores DNS Protocolo DHCP El cliente hace difusión pidiendo parámetros: si hay un servidor DHCP en la red le responde. Los parámetros son alquilados (lease) por un tiempo configurable. Cuando se alcanza la mitad de ese tiempo, el cliente debe renovar el alquiler El servidor mantiene la información de sus alquileres DHCP otorgados El IP otorgado a un cliente puede ser fijo o tomado de un rango (pool) Configuración servidor DHCP Crear /etc/dhcpd.conf (a partir de la muestra): Subredes y rango de direcciones manejados por dhcpd Duración de los alquileres (en segundos) Configuraciones para clientes (IP fijos asociados a MAC address) Netmask, ruta por defecto, dominio y servidores DNS Crear (p.e.,touch) la BD de alquileres en /var/db/dhcp.leases #dhcpd.conf. # 2 interfaces de red, una a Internet otra a red con NAT option domain-name “synack.net”; option domain-name-servers gw.synack.net, gw2.synack.net; option subnet-mask 255.255.255.0; default-lease-time 600; # si cliente no especifica valor max-lease-time 7200; # nunca sobrepasará este valor subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.51 192.168.1.60; option broadcast-address 192.168.1.255; option routers gw.synack.net;} subnet 209.180.251.0 netmask 255.255.255.0 { } # obligatorio para cada subred host gandalf { # obligatorio para direcciones fijas hardware ethernet 08:00:07:12:34:56; fixed-address gandalf.synack.net; } Cliente DHCP dhcpcd ( o pump en Red Hat) Configuración (Red Hat) /etc/sysconfig/network-scripts/ifcfg-interface En lugar de parámetros fijos (IP, gateway, netmask, etc.), sólo la variable BOOTPROTO=dhcp Arranca automáticamente cuando se levanta interfaz Ifconfig eth0 up NAT Network Address Translation NAT Objetivo: reducir la demanda por direcciones IP válidas (IP-masquerading o Network-masquerading) Una organización: utiliza direcciones inválidas (privadas) en su intranet, por ejemplo, de las redes 10.0.0.0, 172.20.0.0 o 192.168.x.0 requiere de al menos una dirección IP válida Los IPs (y puertos a veces) en datagramas son traducidos en la interfaz con Internet Tipos de NAT El tipo básico establece correspondencias entre direcciones inválidas y direcciones válidas. No puede haber más conexiones simultáneas que direcciones válidas PAT (Port address translation) o NA(P)T : traduce (dirección interna, puerto_x) a (dirección válida, puerto_y), donde puerto_y es escogido por el servidor. Permite compartir una IP válida entre muchos (hasta 64000) NAT en Linux Herramienta: iptables (antes ipchains) Permite NAT y también reglas de filtraje de paquetes (firewall) Ejemplo: > iptables ­t nat ­A POSTROUTING SNAT \ –to­source 128.138.198.1­128.138.198.10 Comentarios sobre NAT Ventajas: Economía de IP Protección contra escrutadores (scanners) externos Problemas: Aplicaciones que utilizan dirección IP. Por ejemplo, FTP, Ipsec, Servidor Web WWW/HTTP Hospedaje de páginas Web Requiere un servidor de HTTP, escuchando peticiones por puerto 80. Clientes usan navegadores (Mozilla, IE, Opera, ...) Hyper Text Transmission Protocol: protocolo de intercambio de páginas Web vía TCP, con comandos en ASCII Solicitudes identificadas por un URL (protocolo://máquina[:puerto]/dir/[archivo]) Hospedaje de páginas Web (cont.) Las páginas pueden ser estáticas o dinámicas Las dinámicas requieren generación de contenido en línea, usando servidores que acepten scripts Common Gateway Interface (CGI): mecanismo para ejecución de scripts (Ej.: Perl, Python). Los servicios en directorio cgi-bin Otros: JSP, ASP, PHP Servidor HTTP Linux: Apache Servidor más usado en Internet Código abierto, estable, bien mantenido Permite páginas dinámicas Incluido en todas las distribuciones de Linux httpd: arranca como parte de los servicios activos al iniciar la máquina (/etc/rc.d o /etc/init.d) Configuración Archivos en /etc/httpd o /etc/apache2 httpd.conf o apache2.conf: incluye parámetros como directorios por defecto, permisos, máximo número de conexiones, módulos, idioma. Apache usa módulos para seleccionar funcionalidades opcionales, tales como control de acceso, proxy, etc. Caching y Servidores Proxy Un servidor proxy (proxy server) hace de intermediario de las peticiones Web de una red hacia fuera (p.e., Internet) Permite optimizar accesos almacenando páginas recientes (caching), filtrar, etc. Guarda las páginas recientemente cargadas (cache) y las regresa si son solicitadas de nuevo, sin necesidad de traerlas de Internet Software para Linux: squid Manejo de demonios inetd, xinetd inetd/xinetd Son demonios que manejan otros demonios que ofrecen servicios de red, para optimizar recursos Escucha peticiones en sus puertos respectivos (por ejemplo, ssh en puerto 22) y activa el demonio correspondiente para atender la petición Una vez que la tarea ha sido completada, elimina el demonio creado xinetd incluye mejoras sobre inetd (archivos no compatibles /etc/xinetd.conf vs. /etc/inetd.conf!) DNS Domain Name Service Domain Name System Aplicación distribuida (cliente-servidor), desarrollada en los 80 Implementación estándar: BIND (v. 9) Un espacio de nombres jerárquicos para hosts e IP Una tabla de hosts implementada como DB distribuida Un resolver, para buscar en esa BD Un mecanismo para encontrar servicios en la red (mail, por ejemplo) Un protocolo para intercambiar info. de nombres Ejemplo registros DNS Archivo forklift IN Archivo 7 IN “forward” IN MX A 192.108.21.7 10 chimchim.xor.com “reverse” PTR forklift.xor.com Ejemplo consulta DNS root (“.”) lair ns.cs.colorado.edu edu berkeley.edu cs.berkeley.edu Resolución de vangogh.cs.berkeley.edu Componentes de BIND Demonio (servidor) llamado named que responde consultas directamente o preguntando a otros (conserva un cache) Rutinas de librería (gethostbyname) que resuelven las consultas contactando los servidores DNS Interfaces de línea de comando: nslookup, dig y host Tipos de servidores DNS Authoritative: representante oficial de una zona (dominio menos sus subdominios). Datos sobre una zona incluyen servidores de nombre de todos sus subdominios Master: servidor primario de una zona (info en disco) Esclavo: (secundario) copia de un master Stub: copia datos de servidores de nombre (no hosts) Nonauthoritative: responde del cache (puede no ser válida) Recursivo y no recursivos Eficiencia y caching Caching aumenta eficiencia de búsqueda Positivo (normal) Negativo: no existe host o dominio, servidor no responde o es inalcanzable por problemas de red Hace balance de carga: named ordena sus alternativas de servidores de nombre por RTT, y responde con el más rápido Reparte si existen varios IP al mismo nombre (ejemplo, yahoo, google, etc.) Actividades instalación de BIND Obtener nombre de dominio, escoger servidores de nombre, obtener BIND Configurar resolver (clientes) Configurar y levantar named, y configurar archivos hint en servidores Configurar, actualizar archivos de zona Configurar resolver Separar servidores que responden a peticiones externas de internas Dependiendo del tamaño de la organización, se pueden tener un maestro y varios esclavos Para las peticiones desde adentro, una jerarquía de caches y un gran forwarder (guarda en cache resultados) en la interfaz con Internet ahorran ancho de banda Configuración de servidores BIND Archivos de configuración: named.conf, archivo de hints (apuntadores a raíz “.”), y para masters, el archivo de zona /etc/named.conf especifica el rol del servidor (master, esclavo o stub) en relación a cada zona Cómo permite copiar registros de recursos locales Opciones globales Definición de zona Ejemplo: zone “nombre de dominio” { type master; file “path”; # archivo información local } options { directory “/var/named/”; pid-file “/var/named/named.pid”;}; zone “synack.net” { type master; file “synack.forw”; // archivo con info local (master) allow-transfer { 198.11.19.15;}; }; // puede obtener copia zone “1.168.192.in-addr.arpa” { type master; file “named.rev”; }; // reverso, para direcciones privadas zone “.” { type “hint”; // apuntadores a servidores de dominio raiz file “cache.db”; }; zone “teich.net” { type “slave”; file “teich.net.sec”; // guarda localmente copia del master masters { 216.103.220.218; } ; }; Base de Datos de DNS Archivos de texto con dos tipos de entradas; registros de recursos y comandos Registro de recursos: [name] [ttl] [class] type data name es un host o un dominio ttl es el tiempo máximo aceptado en cache class es IN (Internet) o CH (ChaosNet) o HS (Hesiod) Tipos de registro DNS Zone: SOA (Start of Authority) y NS (Name Server) Basic: A (nombre a IP), PTR (IP a nombre), MX (Mail exchanger), etc. Security: keys, etc. Optional: CNAME (Canonical name, para aliases), etc. SOA Marca el principio de una zona o grupo de recursos localizados en el mismo lugar del espacio de nombres DNS Ej: (@ es zona actual cs.colorado.edu, de named.conf ) @ IN SOA ns.cs.colorado.edu. master.cs.col.edu (serial ; refresh; retry;...) Designa name server, email del responsable, número de serial (incrementado en cada actualización), etc. Registros NS Siguen después del SOA Designan servidores de nombres para zonas: zone [ttl] IN NS nombre Ej: cs.colorado.edu IN NS ns.cs.colorado.edu cs.colorado.edu IN NS anchor.cs.colorado.edu El zone puede obviarse porque está en el SOA Registros NS (cont.) Registros A: asocian nombre a IP anchor IN A 128.138.243.100 Registros PTR: asocian IP a nombre (reversa) Registros MX: asocia una o más máquinas como encargadas del correo de un dominio name [ttl] IN MX preference host piper IN MX 10 piper IN MX 20 mailhub # si piper no responde Utilidad registros MX Cuando hay una máquina encargada del correo Cuando el destinatario esta caído Cuando el destinatario no puede ser alcanzado a través de Internet Cuando el destinatario no habla SMTP Cuando el administrador así lo decide! Registros CNAME Asocian otros nombres (alias) a una máquina alias [ttl] IN CNAME nombre Ej: ftp IN CNAME anchor kb IN CNAME kibblebits Receta para agregar rápidamente una nueva máquina • • • • Escoger nombre e IP (resp. reglas locales) Identificar máquina similar en subred (modelo) Conectarse al servidor de nombres maestro Buscar en /etc/named.conf: – Desde options, la línea con directory, para ubicar archivo de zona – Desde zone, encontrar nombre de archivos forward y reverse de la zona de la nueva máquina Receta (cont.) • Editar archivo forward. Ubicar registro de máquina modelo, duplicarlo y cambiarlo con el nombre e IP de la nueva máquina. P.e. modelo IN A 128.138.243.100 IN MX 10 mail­serv • Idem para archivo reverse • Correr rndc reload • Verificar con dig, ping, etc.