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

Documentos relacionados