Administraci´on UNIX: Redes en UNIX II
Transcripción
Administraci´on UNIX: Redes en UNIX II
Administración UNIX: Redes en UNIX II Juan Hernando Vieites [email protected] Octubre 2014 [email protected] Administración UNIX: Redes en UNIX II 1/1 Resumen 1 Configuración de redes y conexiones. 2 Acceso remoto. Compartición de recursos. 3 • Sistemas de ficheros remotos. • Autenticación. 4 Otros servicios. 5 Seguridad en máquinas conectadas en red. [email protected] Administración UNIX: Redes en UNIX II 2/1 Conexiones remotas Herramientas históricas • telnet • rlogin (y rsh). Presentan problemas de seguridad inherentes. Secure Shell (ssh) • ssh es el protocolo más habitual para hacer login remoto. • La implementación libra más usada es OpenSSH. • Esta implementación proporciona: • Un demonio servidor para aceptar conexiones entrantes (sshd) y un cliente (ssh). • Autenticación por medio de pares de clave pública/privada • Distintos métodos de cifrado del canal seguro. • Redirección de puertos (incluyendo servidor gráfico). • Otras utilidades: ssh-agent, ssh-add, ... [email protected] Administración UNIX: Redes en UNIX II 3/1 SSH sin contraseña (password-less) Creación del par de claves pública-privada • Se genera un par de claves con ssh-keygen. • Por defecto las claves son RSA y se almacenan como /.ssh/id rsa y /.ssh/id rsa.pub. • La clave púlica de debe copiar al fichero /.ssh/authorized keys de la máquina remota. Claves privadas protegidas con contraseña • Para evitar tener que introducir repetidamente la contraseña de una clave privada cifrada se usa ssh-agent. • Se ejecuta ssh-agent y se ejecuta su salida en el shell: eval ‘ssh-agent‘. • El mandato ssh-add descifra las claves privadas y se las pasa al agente para que las almacene en memoria. [email protected] Administración UNIX: Redes en UNIX II 4/1 Conexiones gráficas remotas Servidores X en remoto • Existen diversas herramientas para facilitar login gráfico a una máquina remota • XDMCP es un protocolo que permite la encapsulación del protocolo de X windows a través de red y tener un login remoto de aspecto local. • VNC es otro protocolo que permite enviar eventos de interfaz de una máquina a otra. Tiene servidor y clientes especı́ficos (RealVNC, TurboVNC, Remmina). • También es posible redirigir las peticiones de X a través de una conexión de ssh con ssh -X (X forwarding). • Otras alternativas son NX de NoMachine, XPra, ... [email protected] Administración UNIX: Redes en UNIX II 5/1 Servicio de Remote Procedure Call Remote Procedure Calls (RPCs) • Sistema de comunicación interproceso por red desarrollado por Sun Microsystems. • Un servidor llamado portmapper arranca en el puerto 111. • Los procesos locales registran programas con un ID único. • Los clientes consultan al portmapper para invocar funciones de un programa. Servicios comunes Dos servicios tı́picos basadas en RPC son: • NFS (Network File System) • NIS (Network Information Service) [email protected] Administración UNIX: Redes en UNIX II 6/1 Sistemas de ficheros en red, NFS Conceptos básicos • Network File System (NFS) es un protocolo de sistemas de ficheros distribuidos. • Arquitectura cliente servidor. • Implementado sobre RPC y basado en XDR (eXternal Data Representation) • Es una de las formas más habituales de exportar y montar sistemas de ficheros remotos en sistemas UNIX. [email protected] Administración UNIX: Redes en UNIX II 7/1 NFS, versiones NFS v2 • Primera versión abierta del protocolo e implementación • Servidor sin estado • Obsoleto NFS v3 • Mejora de rendimiento frente a v2 • Trasporte por TCP y UCP • Cerrojos proporcionados por demonios separados (lockd y statd) [email protected] Administración UNIX: Redes en UNIX II 8/1 NFS, versiones NFS v4, versión más actual • Servidor con estado. • Integridad, privacidad y autenticación integradas (RPCSEC GSS) • Los cerrojos forman parte integral del protocolo. • ACLs • Soporte para internacionalización • Mejor rendimiento (composición de operaciones, cache de cliente). • Soporte y cooperación con firewalls y NATs • Soporte para replicación y migración • Sólo TCP [email protected] Administración UNIX: Redes en UNIX II 9/1 Sistemas de ficheros en red, NFS Arquitectura y configuración • Servidor: • Exporta un directorio de su árbol de directorios (v2/v3) o una selección del árbol raı́z (v4). • Asigna permisos de acceso a hosts conocidos. • Normalmente se configura en (/etc/exports) /home nombre cliente(rw,sync,no root squash) ... • Un demonio atiende las peticiones de las clientes. • Cliente: • El sistema de ficheros se indica como servidor:directorio en vez de un nombre de dispositivo. • Montaje manual: # mount -t nfs laurel:/home /home • Montaje automático editando /etc/fstab: laurel:/home /home nfs defaults,auto 0 0 [email protected] Administración UNIX: Redes en UNIX II 10/1 Sistemas de ficheros en red, NFS Cuestiones de seguridad • Los tipos de seguridad son: • AUTH NONE • AUTH SYS, basada en UIDs y GID, (el root de cualquier cliente permitido puede hacerse pasar como cualquier usuario remoto). • RPCSEC GSS (opcional en v3, obligatorio en v4) (necesita Kerberos, LIPKEY o SPKM-3) • Para establecer la identidad de un cliente v2/v3 usan UID y GID, v4 confı́a en un demonio que recibe cadenas user@domain y las transforma a IDs en el otro extremo. • Existe un usuario nobody y el root tiene tratamiento especial. • v2 y v3 no deben ser de visibilidad pública. [email protected] Administración UNIX: Redes en UNIX II 11/1 Autenticación remota Autenticación con NIS • Sistema común para sistemas conectados en red. • Permite centralizar la gestión usuarios. • Basado en arquitectura cliente/servidor. • Mantiene bases de datos compartidas por varias máquinas. • Usuarios y contraseñas (/etc/passwd, /etc/shadow). • Grupos (/etc/group). NIS+ NIS+ es una revisión del sistema anterior que añade: • Mayor seguridad (certificados y cifrado). • Organización jerárquica y replicada de servidores. • Pero una configuración más compleja. [email protected] Administración UNIX: Redes en UNIX II 15/1 Autenticación remota Configuración de servidor NIS • Un servidor define un domino de autenticación (/etc/defaultdomain). • Gestiona y almacena las bases de datos de usuarios y las publica a los clientes (/etc/ypserv.securenets). • El servicio funciona por medio de un demonio (ypserv). • Puede haber servidores maestros y esclavos (configurable en /etc/default/nis). Configuración de cliente NIS • Un cliente se conecta a un domino NIS con ypbind para poder consultar la base de datos. • La autenticación de la contraseña se resuelve localmente. • La configuración está en /etc/yp.conf y /etc/nsswitch. [email protected] Administración UNIX: Redes en UNIX II 16/1 Autenticación remota Autenticación con LDAP • LDAP es un protocolo de acceso a directorios de información (Lightweight Directory Access Protocol) • La información que puede almacenar un directorio de LDAP es genérica y se organiza jerárquicamente. • Cada objecto de la base de datos tiene un DN (Distinguished Name) que lo identifica y una serie de clases a las que pertenece. • El servidor de LDAP por defecto abre el puerto 389. • OpenLDAP es una implementación de la versión LDAPv3 que funciona en casi todos los UNIX actuales. • • • • slapd, demonio servidor de LDAP slurpd, demonio de replicación y actualización. Bibliotecas de soporte. Herramientas, utilidades y clientes. [email protected] Administración UNIX: Redes en UNIX II 17/1 Super-servidores inetd e xinetd • Super-servidores históricos. • Proceso único que abre varios puertos de escucha y despacha peticiones a esos puertos arrancando el servidor que atiende el servicio. • El demonio inetd se configura en dos ficheros: • Programas de servicio: /etc/inetd.conf #servicio socket proto flags usr serv telnet stream tcp nowait root in.telnetd time dgram udp wait root internal • Puertos estándar de servicio,/etc/services: #nombre puerto/protocolo alias telnet 23/tcp time 37/udp timeserver • xinetd es una versión mejorada con más opciones. [email protected] Administración UNIX: Redes en UNIX II 18/1 Otros servicios habituales Servidores de ficheros Demonios de envı́o correo (SMTP) • FTP • Sendmail • TFTP • Postfix Servidores web • Apache (apached) Servidores de correo (IMAP, POP) • Courier • Lighttpd • Cyrus [email protected] Administración UNIX: Redes en UNIX II 19/1 Conectividad con Windows Samba (http://www.samba.org) • El protocolo SMB (Server Message Block) es utilizado por los sistemas Windows para compartir discos e impresoras. • La implementación UNIX del protocolo se denomina Samba. • Samba permite a una máquina UNIX acceder a recursos compartidos de una red Windows. • Cuentas de usuarios. • Carpetas compartidas. • Impresoras. [email protected] Administración UNIX: Redes en UNIX II 20/1 Seguridad Aspectos a considerar • Seguridad interior. • Seguridad exterior. • Detección de intrusiones. Tipos de ataques según el objetivo. • Acceso no privilegiado. • Acceso privilegiado. • Denegación de servicio. • Corrupción de la integridad de datos. • Revelación de datos confidenciales. • Ejecución de código dañino. • Inspección y análisis de la red. [email protected] Administración UNIX: Redes en UNIX II 21/1 Seguridad interior • Atención a los programas con permisos de ejecución privilegiada. Bit s • Ese bit otorga temporalmente al usuario que ejecuta el programa la identidad del propietario del fichero (ej. passwd). • Si el programa no se usa: eliminarlo. • Si se usa: mantenerlo actualizado. • Restringir su uso. • Muchos ataques se basan en explotar algún fallo en este tipo de programas. • Cuando se consigue hacer fallar, se pueden llevar a cabo ataques por denegación de servicio o acceso como el usuario propietario del programa. [email protected] Administración UNIX: Redes en UNIX II 22/1 Seguridad exterior El ordenador menos vulnerable es el que no está conectado a ninguna red. Por ello hay que intentar: • Aislar equipos con información sensible. • Minimizar los puntos de ataque. • Tomar medidas de detección de intrusiones activas. • Verificar la integridad del sistema. • Tener cuidado con qué se ejecuta como superusuario. • Gestionar las cuentas de usuario activas/inactivas. [email protected] Administración UNIX: Redes en UNIX II 23/1 Gestión de los servicios de red • Si un servicio no se usa: eliminarlo. • Se se usa: tenerlo actualizado. • Además conviene saber quién usa cada servicio para distinguir tráfico normal de tráfico anómalo. • Servicios mal configurados o desactualizados facilitan el ataque al sistema. • Una vez dentro es más fácil borrar las huellas. [email protected] Administración UNIX: Redes en UNIX II 24/1 Conexiones al sistema • Ficheros de acceso (/var/log/wtmp), /var/log/btmp. Formato binario. • Se consultan con last • En todo momento se puede obtener un listado de las conexiones activas de cualquier protocolo. Para TCP/IP se usa el mandato netstat -ta: Proto Recib Enviad Dirección local tcp 0 0 *:www tcp 0 0 *:ssh tcp 0 0 bb4:ipp tcp 0 0 bb4.cesvi:45964 [email protected] Dirección remota *:* *:* *:* laurel.dat:imap2 Estado ESCUCHAR ESCUCHAR ESCUCHAR ESTABLECIDO Administración UNIX: Redes en UNIX II 25/1 Filtrado de conexiones TCP wrappers • Se trata de un sistema de seguridad basado en el filtrado de conexiones que usan tcpwrappers (libwrap.so). • Se basa en dos ficheros de configuración: • /etc/hosts.allow (toma precedencia) • /etc/hosts.deny # hosts.allow ALL: 138.100.: allow sshd: ALL: deny # hosts.deny http: ALL EXCEPT LOCAL # DenyHosts: Wed May 11 11:28:43 2011 | ALL: 200.54.194.196 ALL: 200.54.194.196 • denyhosts es una herramienta que analiza los intentos de login y genera reglas para hosts.deny automáticamente. [email protected] Administración UNIX: Redes en UNIX II 26/1 Cortafuegos • La mejor opción de seguridad externa son los cortafuegos o firewalls. • Filtran conexiones pero a un nivel inferior en la pila de protocolos que TCP wrappers. • Se pueden configurar con iptables y reglas en la tabla de filtrado que aceptan y rechazan paquetes según origen y destino. • Para facilitar la escritura de reglas existen herramientas que se apoyan en iptables. [email protected] Administración UNIX: Redes en UNIX II 27/1 Comprobación de integridad del sistema Rootkits • Antes de salir de un sistema hay borrar las huellas de la intrusión (borrar logs, historiales, ...). • Pero los troyanos sólo pueden pasar desapercibidos si se ocultan a sı́ mismos. Verificaciones de integridad • Existen aplicaciones que comprueban periódicamente la integridad del sistema: • rkhunter: verifica la integridad de los ficheros de sistema. • unhide: detecta procesos ocultos. • Cuanto menos habitual sea la comprobación más difı́cil le resultará al intruso detectarla e inhabilitarla. [email protected] Administración UNIX: Redes en UNIX II 28/1 Autenticación de máquinas Suplantación de identidad, IP spoofing • Muchos ataques se basan en suplantar la identidad de máquinas en las que se confı́a (man-in-the-middle). • La única solución es implantar autenticación entre máquinas. ssh fingerprints • Es un modo de autenticación rudimentario para conexiones ssh. • Se trata de un resumen de la clave pública. [email protected] Administración UNIX: Redes en UNIX II 29/1 Autenticación de máquinas IPsec • Encriptación y autenticación a nivel IP • IPsec-Tools (linux), KAME (FreeBSD, OpenBSD). • Bastante utilizado en la implementación a nivel de router de VPNs corporativas. Kerberos • Protocolo de autenticación en redes no confiables desarrollado en el MIT. • Centraliza la autenticación en un servidor (KDC, Key Distribution Center). • El sistema de concesión de permisos se basa en testigos autenticados. [email protected] Administración UNIX: Redes en UNIX II 30/1 Resumen configuración NIS (sin replicación) Administración de sistemas informáticos Fernando Pérez Costoya – Noviembre de 2015 Información y ops. requeridas ● Dominio NIS al que se asocia la máquina ● Rol: cliente, servidor maestro o esclavo ● Servidor maestro ● A qué máquinas se les da acceso ● Volcado información configuración (/etc) a repositorio – ● Actualización repositorio después cambio conf (p.e. adduser) Cliente ● Localización de servidores ● Para qué información de configuración se usa NIS Noviembre de 2015 Fernando Pérez Costoya 2 Configuración maestro ● Dominio NIS: /etc/defaultdomain ● Rol: en /etc/default/nis → NISSERVER=master ● A qué máquinas se da acceso: /etc/ypserv.securenets ● Más info de configuración en /etc/ypserv.conf ● Volcar configuración a repositorio: /usr/lib/yp/ypinit -m ● Arrancar servicio (se iniciará, entre otros, ypserv) ● Actualizar repositorio si cambia conf: make -C /var/yp Noviembre de 2015 Fernando Pérez Costoya 3 Configuración cliente ● Dominio NIS: /etc/defaultdomain ● Rol: en /etc/default/nis → NISCLIENT=true ● Localización de servidores: /etc/yp.conf ● ● domain nombre_dominio server nombre_servidor Para qué info. se usa NIS: /etc/nsswitch.conf passwd: compat nis …......... ● Arrancar servicio (se iniciará ypbind) Noviembre de 2015 Fernando Pérez Costoya 4