Está en la página 1de 73

Índice 

de contenido
UNIDAD 1 RENDIMIENTO Y SEGURIDAD DEL SISTEMA..............................................................5
Los recursos del sistema como servicios...............................................................................................6
La seguridad como principio.................................................................................................................6
La seguridad en la practica....................................................................................................................6
Política de seguridad : Las personas, Los sistemas...............................................................................7
Estrategias de respuesta.........................................................................................................................7
Fallos y brechas de seguridad................................................................................................................7
Método de análisis de fallos..................................................................................................................8
Analizar fallos: hipótesis, recopilar información...................................................................................8
Los beneficios de monitoreo de los sistemas.........................................................................................8
Herramientas para monitoreo de la red..................................................................................................8
La red, visión local, visión remota.........................................................................................................9
Analizar los sistemas de ficheros...........................................................................................................9
Permisos problemáticos.........................................................................................................................9
Monitoreo de procesos.........................................................................................................................10
Herramientas para el monitoreo de procesos.......................................................................................10
Generar informes de la actividad del sistema......................................................................................10
Administrar procesos de usuarios........................................................................................................11
Ficheros de log del sistema..................................................................................................................11
Configurar syslogd y klog...................................................................................................................11
Analizar ficheros de log.......................................................................................................................11
UNIDAD 2 ADMINISTRACIÓN DE CUENTAS DE USUARIOS......................................................12
Cuentas de usuarios, información de cuentas......................................................................................13
Cambio de servicio de nombre (NSS), getent.....................................................................................13
Pluggable Authentication Modules (PAM), funcionamiento de PAM................................................14
Ficheros /etc/pam.d/: comprobaciones y valores de control................................................................14
El fichero system­auth.........................................................................................................................15
pam_unix.so.........................................................................................................................................15
Autentificación a través de la red........................................................................................................16
Módulos auth.......................................................................................................................................16
Seguridad de las contraseñas, políticas de gestión de contraseñas......................................................16
Módulos sesión, Utilidades de autentificación....................................................................................17
UNIDAD 3 CONTROLAR EL ACCESO  A LOS SERVICIOS DEL SISTEMA.................................18
Recursos del sistema gestionados por init...........................................................................................19
Administrar los scripts de inicio de los servicios................................................................................19

Servicios y Seguridad en Linux LP201 Ver.1. 1-1


Lo ficheros del directorio /etc/sysconfig.............................................................................................19
Servicios gestionados por xinetd.........................................................................................................20
Controles de acceso por defecto de xinetd...........................................................................................20
Configurar servicios xinetd..................................................................................................................20
Controlar el acceso con xinetd, o con patrones de nombres de máquinas...........................................21
Controles de acceso de aplicaciones y servicios..................................................................................21
Configurar tcp_wrappers, xinetd y tcp_wrappers................................................................................21
Especificación del demonio, especificación del cliente.......................................................................22
Definir macros, opciones extra............................................................................................................23
SELinux, contextos de seguridad de SELinux....................................................................................23
La política targeted de SELinux..........................................................................................................24
Administrar SELinux, semanage.........................................................................................................24
Tipos de ficheros de SELinux..............................................................................................................24
UNIDAD 4 CONTROLAR EL ACCESO A TRAVÉS DE LA RED.....................................................25
Enrutamiento........................................................................................................................................26
¿Por qué Ipv6?, Ipv6 en Gnu/Linux....................................................................................................26
tcp_wrappers y IPv6............................................................................................................................27
Introducción a netfilter, tablas y cadenas en netfilter..........................................................................28
Flujo de paquetes en netfilter...............................................................................................................28
Encaje de reglas, acciones de reglas....................................................................................................29
Operaciones básicas con cadenas........................................................................................................29
Operaciones adicionales con cadenas..................................................................................................30
Reglas: consideraciones generales.......................................................................................................30
Control de conexiones.........................................................................................................................31
Traducción de direcciones de red (NAT), ejemplos de DNAT, de SNAT..........................................31
Persistencia de reglas...........................................................................................................................32
Ejemplo de /etc/sysconfig/iptables......................................................................................................32
Ipv6 e ip6tables....................................................................................................................................33
UNIDAD 5 ASEGURANDO LOS DATOS............................................................................................34
Lo necesario para cifrar.......................................................................................................................35
Paso a paso Cifrado.............................................................................................................................35
Generador de Números Aleratorios.....................................................................................................35
Los valores hash “una vía”..................................................................................................................36
Cifrado Simétrico.................................................................................................................................36
Cifrado Asimétrico..............................................................................................................................37
Infraestructuras de Llaves Publicas.....................................................................................................37
Certificados Digitales..........................................................................................................................38

Servicios y Seguridad en Linux LP201 Ver.1. 1-2


Generando certificados digitales..........................................................................................................38
OpenSSH, Autentificación..................................................................................................................38
El servidor OpenSSH, configuración..................................................................................................39
Perfil del servicio SSH.........................................................................................................................39
El cliente OpenSSH, Forwarding de puertos.......................................................................................40
Administrando Llaves..........................................................................................................................40
Aplicaciones: RPM..............................................................................................................................40
UNIDAD 6 ORGANIZACIÓN DE LOS SISTEMAS DE RED.............................................................41
Resolución de nombres de maquina....................................................................................................42
Analizar consultas DNS con dig, otras observaciones........................................................................43
Consultas directas, inversas.................................................................................................................43
Consultas de servidores de correo.......................................................................................................44
Consultas SOA, datos SOA.................................................................................................................44
Autoridad.............................................................................................................................................45
Transferencia de dominios...................................................................................................................45
Explorar DNS con host........................................................................................................................45
Introducción al servidor DNS..............................................................................................................46
Perfil de control de acceso: BIND.......................................................................................................47
Configuración básica de named...........................................................................................................47
Configurar la resolución local.............................................................................................................47
El paquete bind­chroot.........................................................................................................................48
El paquete caching­nameserver...........................................................................................................48
Listas de patrones................................................................................................................................48
Listas de control de acceso (ACL), ACLs predefinidas......................................................................49
Direcciones e interfaces.......................................................................................................................49
Permitir consultas................................................................................................................................50
Permitir recursión................................................................................................................................50
Permitir transferencias.........................................................................................................................50
Modificar el comportamiento de BIND...............................................................................................50
Declarar zonas slave............................................................................................................................51
Declarar zonas master, delegar subdominios.......................................................................................52
Crear ficheros de zonas, concejos sobre ficheros de zonas.................................................................52
Probar BIND, utilidades de comprobación de sintaxis de BIND........................................................53
Demonio de control remoto(rndc).......................................................................................................53
Delegación de subdominios.................................................................................................................53
Introducción a DHCP, configurar un servidor DHCP IPv4.................................................................54
UNIDAD 7 SERVICIOS PARA COMPARTIR ARCHIVOS................................................................55

Servicios y Seguridad en Linux LP201 Ver.1. 1-3


Protocolo de transferencia de archivos (FTP)......................................................................................56
Network File Service (NFS)................................................................................................................56
Opciones de puertos para el Firewall...................................................................................................57
Servidor NFS, utilidades NFS, cliente NFS........................................................................................57
Servicios Samba, configurar Samba, el fichero smb.conf...................................................................58
Configurar ficheros y directorios compartidos....................................................................................59
Imprimir con el servidor Samba..........................................................................................................59
Métodos de autentificación, Contraseñas............................................................................................59
Utilidades de comprobación de sintaxis de Samba..............................................................................59
Herramientas del cliente de Samba: smbclient, nmblookup, mounts..................................................60
Montar sistemas de ficheros Samba con /etc/fstab..............................................................................60
UNIDAD 8 SERVICIOS WEB................................................................................................................61
Introducción a Apache, Configurar el servidor Apache......................................................................62
Hosts virtuales.....................................................................................................................................63
Configurar el control de acceso de Apache.........................................................................................64
Herramientas de comprobación de sintaxis de Apache.......................................................................64
Usar ficheros .htaccess.........................................................................................................................64
Módulos importantes de Apache.........................................................................................................65
Cifrado de comunicaciones con Apache..............................................................................................65
Proxy caché con Squid.........................................................................................................................65
Parámetros útiles del fichero /etc/squid/squid.conf.............................................................................65
UNIDAD 9 SERVICIOS DE CORREO   ELECTRÓNICO...................................................................66
Fundamentos del correo electrónico....................................................................................................67
Simple Mail Transport Protocol (SMTP)............................................................................................67
Cortafuegos y SMTP...........................................................................................................................67
Mail Transport Agents (MTA)............................................................................................................68
Utilizar alternatives para seleccionar MTA.........................................................................................68
Introducción a la configuración de Postfix..........................................................................................68
Configuración de correo entrante/saliente de postfix..........................................................................69
Alias para correo entrante en Postfix...................................................................................................70
Reescritura de direcciones para correo saliente en Postfix..................................................................70
Restricciones SMTP en Postfix, funcionamiento de Postfix...............................................................70
Procmail, un Mail Delivery Agent (MDA)..........................................................................................71
Control de acceso en Procmail, configuración de Procmail................................................................71
Protocolos de recuperación de correo..................................................................................................72
Configuración de Dovecot...................................................................................................................72
Comprobar el funcionamiento del protocolo POP y/o IMAP.............................................................73

Servicios y Seguridad en Linux LP201 Ver.1. 1-4


UNIDAD 1 RENDIMIENTO Y SEGURIDAD
DEL SISTEMA

Servicios y Seguridad en Linux LP201 Ver.1. 1-5


Los recursos del sistema como servicios
● La infraestructura informática está compuesta por roles
Sistemas que sirven
Sistemas que solicitan
● La infraestructura del sistema se compone de roles
Procesos que sirven
Procesos que solicitan
● La infraestructura de procesamiento se compone de roles
Cuentas que sirven
Cuentas que solicitan
● Los recursos del sistema, y su uso, debe ser contabilizada como política de seguridad del
sistema

La seguridad como principio


● Áreas de Seguridad
Física
Local
Remota
Personal

La seguridad en la practica
● Por diseño, el sistema sirve recursos disponibles
● Por política, el sistema conserva los recursos disponibles
● El servidor/Host solo sirve lo que debe, y solo a quienes debe
"¿Es necesario o conocer del host esto?"
"¿Que necesitamos o conocemos del este acceso?"
"¿Esto coincide con los registros de comportamiento anteriores del sistema?"
"¿He aplicado todas las actualizaciones de seguridad pertinentes?"
● Monitoreo de recursos del sistema en busca de vulnerabilidades y bajo rendimiento

Servicios y Seguridad en Linux LP201 Ver.1. 1-6


Política de seguridad : Las personas, Los sistemas
Las personas
● Gestión de las actividades humanas: incluye políticas de mantenimiento de seguridad
● ¿Quien esta a cargo de que?
● ¿Quien toma la decisión final sobre falsas alarmas?
● ¿Cuando se notifica la aplicación de la ley?
Los sistemas
● Gestión de las actividades del sistema
● Sistema regular de monitoreo
Entrar a un servidor externo en caso de compromiso
Monitor de registro con logwatch
Monitor de uso de ancho de banda de entrante y saliente
● Copias de seguridad regulares de datos del sistema

Estrategias de respuesta
● Asumir la sospecha que el sistema es poco fiable
No ejecutar programas desde el sistema bajo sospecha
Arranque desde medios confiables para verificar intrusiones
Analice los registros del logger remoto y los registros "locales"
Verificar la integridad de los archivos contra un respaldo de la base de datos rpm en
modo solo lectura
● Hacer una imagen de la maquina además, para posterior análisis/recolección-de-evidencia
● Limpie la maquina, reinstalar y restaurar una copia de seguridad

Fallos y brechas de seguridad


● Ambos afectan el rendimiento del sistema
● El rendimiento del sistema es la preocupación de seguridad
Una avería del sistema produce una falla de la infraestructura
Una falla de infraestructura produce oportunidades para acceso alternativos a recursos
Una oportunidad de accesos alternativos a recursos produce inexplicables accesos
Un inexplicable acceso a recursos es una incumplimiento de las políticas de seguridad

Servicios y Seguridad en Linux LP201 Ver.1. 1-7


Método de análisis de fallos
● Caracterizar el problema
● Reproducir el problema
● Buscar más información

Analizar fallos: hipótesis, recopilar información


Hipótesis
● Formular una serie de hipótesis
● Seleccionar una hipótesis para verificar
● Verificar la hipótesis
● Tener en cuenta los resultados, entonces reformular o probar una nueva hipótesis, si es
necesario
● Si la hipótesis más fácil no dan resultado positivo, volver a caracterizar el problema
Recopilación de información
● comando strace
● tail -f logfile
● *.debug en syslog
● opción --debug en la aplicación

Los beneficios de monitoreo de los sistemas


● Rendimiento del sistema y seguridad se puede mantener con seguimiento regular del
sistema
● Seguimiento del sistema incluye:
Monitoreo y análisis de la red, vigilancia del sistema de archivos, vigilancia de
procesos, análisis de los archivos de registros

Herramientas para monitoreo de la red


● Interfaces de red (ip) Mostrar que interfaces están disponibles en un sistema
● Escaneo de puertos (nmap ) Mostrar que servicios están disponibles en un sistema
● Sniffers de paquetes (tcpdump , wireshark) Guarda y analiza todo el tráfico de red visible
por el "sniffing" del sistema

Servicios y Seguridad en Linux LP201 Ver.1. 1-8


La red, visión local, visión remota
Red, una visión Local
● La utilidad ip
Llamados por los scripts de inicialización
Mayor capacidad que ifconfig
● Utilizar netstat -ntaupe para una lista de:
Servidores de red activos
Conexiones establecidas
Red, una visión remota
● nmap reporta servicios activos en los puertos abiertos para los intentos de conexión remota
Avanzadas opciones de análisis disponibles
Ofrece detección de sistema operativo remoto
Analiza sub-redes pequeñas o grandes
● No utilice sin el permiso por escrito del administrador del sistema escaneado!
● Interfaz Gráfica disponible (nmapfe )

Analizar los sistemas de ficheros


● Un regular monitoreo del sistema de archivos puede prevenir:
Agotar los recursos del sistema
Infracciones a la seguridad debido a pobres controles de acceso
● Monitoreo del sistema de archivos debería incluir:
Seguimiento de la integridad de los datos
Investigación de archivos sospechoso
● Utilidades: df, du

Permisos problemáticos
● Archivos sin propietarios conocidos pueden indicar acceso no autorizado:
Ubica archivos y directorios con ninguna entrada de usuario o grupo en archivo /etc/passwd:
find / \( -nouser -o -nogroup \)

Servicios y Seguridad en Linux LP201 Ver.1. 1-9


● Archivos/Directorios con "otros" con permisos de escritura (o+w) puede indicar un problema
Ubicar archivos con “otros” se puedan escribir:
find / -type f -perm -002
Ubicar directorios con “otros” se puedan escribir:
find / -type d -perm -2

Monitoreo de procesos
● Monitor de procesos para determinar:
Una disminución del rendimiento o si se ejecutan procesos sospechosos
● Utilidades de seguimiento
top
gnome-system-monitor
sar

Herramientas para el monitoreo de procesos


● top
Ver la actividad del procesador en tiempo real
De forma interactiva matar o renice procesos
Ver estadísticas actualizadas del sistema en el tiempo, en unidades o totales
● Herramientas gráficas de seguimiento del sistema:
gnome-system-monitor: Procesos de GNOME, CPU, y monitoreo de memoria
kpm: versión KDE de top

Generar informes de la actividad del sistema


● Informes frecuentes, a través del tiempo
cron genera sa1 y sa2
sar lee y genera registros “amigables al humano”
● Comúnmente usados para ajuste de rendimiento
Estadísticas más precisas
Método de recolección en “bases de datos” binaria

Servicios y Seguridad en Linux LP201 Ver.1. 1-10


Intervalos regulares
Evidencia de un patrón establece una actividad "normal"

Administrar procesos de usuarios


● Utilizar PAM para establecer controles en limites recursos de cuentas:
pam_access.so puede ser usado para limitar acceso por la cuenta y ubicación
pam_time.so puede ser usado para limitar el acceso por día y hora
pam_limits.so puede ser usado para limitar disponibilidad de recursos para procesos

Ficheros de log del sistema


● ¿Por qué vigilar los archivos de registro?
● ¿Que registros controlar?
● Registro de servicios:
Muchos demonios envían mensajes a syslogd
Los mensajes del núcleo son manejados por klogd

Configurar syslogd y klog


● syslogd y klogd son configurados en /etc/syslog.conf
● Sintaxis: facilidad.prioridad lugar_de_registro
● Ejemplo: mail.info /dev/tty8

Analizar ficheros de log


● En caso de llevarse a cabo de forma regular
● Podemos instalar Logwatch para ejecutar a cada hora crond y reportar posibles problemas
● En la búsqueda de anomalías, Logwatch utiliza listas negativas
Descarta todo lo normal
Analiza el resto

Servicios y Seguridad en Linux LP201 Ver.1. 1-11


UNIDAD 2 ADMINISTRACIÓN DE
CUENTAS DE USUARIOS

Servicios y Seguridad en Linux LP201 Ver.1. 1-12


Cuentas de usuarios, información de cuentas
● Dos tipos de información siempre debe ser proveída para cada cuenta de usuario
Información de cuenta: número UID, shell por defecto, directorio de trabajo, grupo a los
que pertenece, y así sucesivamente
Autentificación: un manera de decir que la contraseña proveída en inicio de sesión
para una cuenta es correcta
Información de cuenta (Servicio de nombre)
● Servicio de nombre accede hasta librerías de funciones que mapea nombres a información
● Originalmente, servicio de nombre solo se proveía por el archivo local como /etc/passwd
● Agregar soporte para nuevos servicio de nombre (tal como NIS) requiere re-escritura de libc

Cambio de servicio de nombre (NSS), getent


Cambiar servicio de nombre (NSS)
● NSS permite nuevos servicios de nombre para ser agregados sin reescribir libc
Utilizar archivos /lib/libnss_service.so
● /etc/nsswitch.conf controla que los servicios de nombre para verificar en que orden
passwd: files nis ldap
getent
● getent basededatos
Lista todos los objetos almacenados en la base de datos especificada
getent services
● getent basedatos nombre
Busca información almacenada en base de datos especifica para un particular nombre
getent passwd smith
Autentificación
● Aplicaciones tradicionalmente autentificadas con contraseñas por el uso de funciones libc
Hashes de contraseñas siempre al iniciar sesión
Comparar con hashed de contraseña en NSS
Si los valores hashes coinciden, autentificación pasa
● Aplicaciones tuvo que ser reescrito para cambiar como se autentifican los usuarios

Servicios y Seguridad en Linux LP201 Ver.1. 1-13


Pluggable Authentication Modules (PAM), funcionamiento de PAM
Pluggable Authentication Modules (PAM)
● Módulos de autentificación conmutable
● Aplicación llama funciones libpam para autentificar y autorizar usuarios
● libpam maneja verificaciones basado en el archivo de configuración de aplicaciones PAM
Puede incluir verificaciones NSS a través de libc
● Compartido, dinámicamente código configurable
● Documentación: /usr/share/doc/pam-<version>/
Operación PAM
● Módulos PAM /lib/security/
Cada modulo realiza una prueba acierto o error
Archivos en /etc/security/ pueden afectar como algunos módulos realizan sus pruebas
● Configuración PAM /etc/pam.d/
Archivos del servicio determina como y cuando los módulos son usados por
determinados programas

Ficheros /etc/pam.d/: comprobaciones y valores de control


Archivos /etc/pam.d/: Pruebas
● Pruebas son organizadas en cuatro grupos:
auth autentifica que el usuario es el usuario
account autoriza la cuenta pueda ser usada
password controla cambios de contraseñas
session abiertas, cerradas, y registros de sesión
● Cada grupo es llamado cuando es necesario y provee un resultado separado de el servicio
Archivos /etc/pam.d/: Valores de Control
● Valores de control determina como cada prueba afecta el resultado global del grupo
required debe pasar, mantener pruebas incluso si falla
requisite según sea necesario, salvo detener las pruebas en falla
sufficient si pasa hasta aquí, devuelve éxito; si falla, ignora prueba y mantiene revisión
optional si la prueba pasa o no es irrelevante
include devuelve valor global de control de pruebas configurada en archivo llamado

Servicios y Seguridad en Linux LP201 Ver.1. 1-14


Ejemplo: Archivo /etc/pam.d/login
auth required pam_securetty.so
auth include system_auth
account required pam_nologin.so
account include system_auth
password include system_auth
session required pam_selinux.so close
session optional pam_keyinit.so force revoke
session include system_auth
session required pam_loginuid.so
session optional pam_console.so
session required pam_selinux.so open

El fichero system-auth
● system-auth es ampliamente usado
Llamado por la bandera de control include, no un modulo(ej: pam_stack.so)
Contiene pruebas de autentificación estándar
Compartida por muchas aplicaciones en el sistema
Permite una fácil, consistente administración del sistema estándar de autentificación

pam_unix.so
● Modulo para autentificación basada en NSS
auth obtener hashed de contraseña NSS y compara con hash de contraseña entrada
account verifica por espiración de contraseña
password maneja cambios de contraseña en archivos locales o NIS
session registra inicio y termino de sesión en archivos de registros

Servicios y Seguridad en Linux LP201 Ver.1. 1-15


Autentificación a través de la red
● Gestión central de contraseñas
pam_krb5.so(tickets Kerberos V)
pam_ldap.so(binds LDAP)
pam_smb_auth.so (antiguo autentificación SMB)
pam_winbind.so (SMB a través de winbindd)
● Algunos servicios utilizan NSS/pam_unix.so
NIS, Hesiod, algunas configuraciones de LDAP
Módulos auth
● pam_securetty.so falla si logging in como root en terminal que no esta en /etc/securetty
● pam_nologin.so falla si el usuario no es root y el archivo /etc/nologin existe
● pam_listfile.so verifica características de la autentificación de una lista en un archivo
Una lista de cuentas puede ser permitido o denegado

Seguridad de las contraseñas, políticas de gestión de contraseñas


Seguridad de contraeñas
● pam_unix.so hashes MD5 de contraseñas
Hace hashes de contraseñas duras de crack
● pam_unix.so contraseñas shadow
Hace hashes de contraseñas visible solo para root
Hace disponible caducidad de contraseña
● Otros módulos pueden soportar mecanismos de envejecimiento de contraseñas
Política de contraseña
● Historial de contraseña
pam_unix.so con argumento remember=N
● Fuerza de contraseña
pam_cracklib.so
pam_passwdqc.so
● Monitoreo de fallas de ingreso
pam_tally.so

Servicios y Seguridad en Linux LP201 Ver.1. 1-16


Módulos sesión, Utilidades de autentificación

Módulos de sesión
● pam_limits.so Cumplir limites de recursos
Utilizar /etc/security/limits.conf
● pam_console.so Define permisos en dispositivos locales para consola de usuarios
Puede ser usado como un modulo de autentificación también
● pam_selinux.so Ayuda a definir contexto SELinux
● pam_mkhomedir.so crea un directorio “home” si este no existe
Utilitarios y Autentificación
● Herramientas de administración local necesita autentificación
su, reboot, system-config-*, etc.
● pam_rootok.so pasa si se ejecuta como root
● pam_timestamp.so para un comportamiento como sudo
● pam_xauth.so reenvía cookies de autentificación
Análisis y resolución de problemas con PAM
● Verificar el sistema de registros en:
/var/log/messages /var/log/secure
● Errores de PAM pueden bloquear al usuario root
Mantenga una shell root abierta cuando pruebe PAM, modo mono usuario pasa por alto PAM
Iniciar el sistema usando un disco de rescate

Servicios y Seguridad en Linux LP201 Ver.1. 1-17


UNIDAD 3 CONTROLAR EL ACCESO
A LOS SERVICIOS DEL SISTEMA

Servicios y Seguridad en Linux LP201 Ver.1. 1-18


Recursos del sistema gestionados por init
● Escuchando servicios por conexiones de protocolo serial
Una consola serial
Una módem
● Configurado en /etc/inittab
● Llamar el comando rc para ejecutar scripts de inicialización
● Llamar un script para iniciar el administrador gráfico X11
● Proporciona capacidad de engendrar
co:23:respawn:/sbin/agetty -f /etc/issue.serial 19200 ttyS1

Administrar los scripts de inicio de los servicios


● Comúnmente conocido como "System V" o "SysV"
Muchos scripts organizado por la semántica del sistema de archivos del directorio
Los recursos de los servicios también son habilitados o des-habilitados
● Varios archivos de configuración se utilizan a menudo
● La mayoría de los servicios inician uno o mas procesos
● Los comandos son "envueltos" por scripts
● Los servicios son gestionados por estos scripts, encontrados en /etc/init.d/
● Ejemplos:
/etc/init.d/network status
service network status

Lo ficheros del directorio /etc/sysconfig


● Algunos servicios están configurados en ellos como corren
named
sendmail
dhcpd
samba
init
syslog

Servicios y Seguridad en Linux LP201 Ver.1. 1-19


Servicios gestionados por xinetd
● Servicios Transitorios son gestionados por el servicio xinetd
● Solicitudes entrantes son negociado por xinetd
● Archivos de configuración son: /etc/xinetd.conf, /etc/xinetd.d/service
● Vinculados con libwrap.so
● Servicios controlados con chkconfig:
chkconfig tftp on

Controles de acceso por defecto de xinetd


● Archivo de configuración principal
# /etc/xinetd.conf
defaults
{
instances=60
log_type=SYSLOG authpriv
log_on_success=HOST PID
log_on_failure=HOST
cps= 25 30
}
includedir /etc/xinetd.d

Configurar servicios xinetd


● Configuración específica de servicio
/etc/xinetd.d/service
# default: off
service tftp
{
disable= yes
socket_type=dgram
protocol=udp
wait=yes

Servicios y Seguridad en Linux LP201 Ver.1. 1-20


user=root
server=/usr/sbin/in.tftpd
server_args=-c -s /tftpboot
per_source=11
cps=100 2
flags=IPv4
}

Controlar el acceso con xinetd, o con patrones de nombres de máquinas


● Sintaxis
Permito con only_from = host_pattern
Deniego con no_access = host_pattern
La especificación más exacta es autoritario
Ejemplo
only_from = 192.168.0.0/24
no_access = 192.168.0.1

Controles de acceso de aplicaciones y servicios


● Configuración de servicio especifico
Idéntico a Demonios httpd, smbd, squid, etc. proporciona mecanismos de seguridad
de servicio especifico
● Configuración general
Todos los programas vinculados con libwrap.so utilizan archivos comunes de
configuración
Porque xinetd es vinculado con libwrap.so , sus servicios son llevados a cabo
Verificar por maquina local y/o remota nombre de usuario

Configurar tcp_wrappers, xinetd y tcp_wrappers


● Tres etapas de verificación de acceso
¿Es el acceso explícitamente permitido?
De lo contrario, es el acceso denegado explícitamente?
De lo contrario, por defecto, el acceso es permitido!

Servicios y Seguridad en Linux LP201 Ver.1. 1-21


● La configuración se almacena en dos archivos:
Permitir en /etc/hosts.allow
Denegar en /etc/hosts.deny
● Sintaxis básica:
daemon_list: client_list [:opciones]
Un ejemplo de tcp_wrappers
# /etc/hosts.allow
vsftpd : 192.168.0.
in.telnetd, sshd : .example.com 192.168.2.5
# /etc/hosts.deny
ALL : ALL
● xinetd proporciona su propio conjunto de funciones de control de acceso
Basado en maquina o basado en tiempo
● tcp_wrappers todavía se utiliza
xinetd es compilado con soporte libwrap
Si libwrap.so permite conexión, entonces xinetd evalúa la configuración de seguridad

Especificación del demonio, especificación del cliente


Especificación del Demonio
● Nombre del demonio:
Aplicaciones pasan el nombre de su ejecutable
Múltiples servicios pueden ser especificados
Utilizar comodín ALL para coincidir con todos los demonios
Existen limitaciones para ciertos demonios
● Sintaxis avanzada: demonio@maquina: client_list ...
Especificación del cliente
● Especificación de la maquina
Por dirección IP (192.168.0.1,10.0.0.)
Por nombre (www.redhat.com, .example.com)
Por mascara de red (192.168.0.0/255.255.255.0)
Por nombre de red

Servicios y Seguridad en Linux LP201 Ver.1. 1-22


Definir macros, opciones extra
● macros para nombre de maquina
LOCAL, KNOWN, UNKNOWN, PARANOID
● macro para maquina y servicio
ALL
● EXCEPT
Puede ser usado por un cliente y una lista de servicio
Puede ser anidada
● Sintaxis:
daemon_list: client_list [:opt1 :opt2...]
● spawn Puede ser usado para iniciar programas adicionales
Expansiones especiales están disponibles (%c, %s)
● Ejemplo:
in.telnetd: ALL : spawn echo "login attempt from %c to %s" | mail -s warning root
● DENY Puede ser usado como una opción en hosts.allow
● Ejemplo:
ALL: ALL: DENY
SELinux, contextos de seguridad de SELinux
● Control de acceso obligatorio (MAC)-vs-Control de Acceso Discrecional (DAC)
● Un conjunto de reglas llamado políticas determina el grado de severidad el control
● Los procesos son ya sea restringidos o no restringidos
● La política define a que procesos de recursos restringidos se les permite el acceso
● Cualquier acción que no es explícitamente permitida es, por defecto, denegado
● Todos los archivos y procesos tienen un contexto de seguridad
● El contexto tiene varios elementos, dependiendo de las necesidades de seguridad
user:role:type:sensitivity:category
user_u:object_r:tmp_t:s0:c0
Not all systems will display s0:c0
● ls -Z
● ps -Z
Por lo general, vinculado con otras opciones, tal como -e

Servicios y Seguridad en Linux LP201 Ver.1. 1-23


La política targeted de SELinux
● La política targeted es cargado en tiempo de instalación
● La mayoría de los procesos locales no son restringidos
● Principalmente utiliza el elemento tipo enforcement
● El contexto de seguridad puede ser cambiado con chcon
chcon -t tmp_t /etc/hosts
● Mas seguro utilizar restorecon
restorecon /etc/hosts
Administrar SELinux, semanage
Administración
● Modos: Estricto, Permisivo, Deshabilitado
Cambiar enforcement esta permitido en la política Targeted
getenforce
setenforce 0 | 1
Desactivar en GRUB con selinux=0
● system-config-selinux
Cambia el modo, y la política de controles targeted, cambio de modo requiere reiniciar
● /etc/sysconfig/selinux
● setroubleshootd Aconseja en como evitar errores, ¡no garantiza seguridad!
SELinux: semanage
● Algunas características son controladas por semanage
● Vuelve a compilar pequeñas porciones de la política
● semanage función -l
● La más útil en entornos de alta seguridad
Tipos de ficheros de SELinux
● Un tipo de servicio gestionado es llamado dominio
● Permitir reglas en la política define que tipo de archivos en un dominio puede acceder
● La política es almacenada en un formato binario, ocultando las reglas de una mirada casual
● Tipos pueden ser vistos con semanage
semanage fcontext -l
● public_content_t

Servicios y Seguridad en Linux LP201 Ver.1. 1-24


UNIDAD 4 CONTROLAR EL ACCESO
A TRAVÉS DE LA RED

Servicios y Seguridad en Linux LP201 Ver.1. 1-25


Enrutamiento
● Enrutadores transportan paquetes entre diferentes redes
● Cada maquina necesita una pasarela por defecto para llegar a maquinas fuera de su red
● Rutas adicionales pueden ser definidas usando el comando route

¿Por qué Ipv6?, Ipv6 en Gnu/Linux


● Ampliar direcciones
Direccionamiento de 128-bit
Jerarquía de dirección extendida
● Formato de cabecera flexible
Base encabezado - 40 octetos
Cabecera siguiente campo, soporta encabezados opcionales para actuales y futuras
extensiones
● Mas soporte para auto-configuración
Direccionamiento enlace-local
Demonio de aviso Router
Configuración dinámica de maquina protocolo versión 6
Implementando IPv6
● Modulo ipv6 del núcleo permite auto configuración
● Configuración adicional implementado por el script de inicialización /etc/rc.d/init.d/network
NETWORKING_IPV6=yes en /etc/sysconfig/network
IPV6INIT=yes en /etc/sysconfig/network-scripts/ifcfg-ethX
IPv6: Configuración dinámica de Interface
● Hay dos vías para configurar dinámicamente configurar direcciones Ipv6:
Demonio de aviso (Router Advertisement Daemon)
Se ejecuta en (Linux) puerta de enlace predeterminada - radvd
Sólo especifica prefijo y puerta de enlace predeterminada
Se habilita con IPV6_AUTOCONF=yes
ID de interface automáticamente generada en base a la dirección MAC del sistema
DHCP versión 6

Servicios y Seguridad en Linux LP201 Ver.1. 1-26


dhcp6s soporta más opciones de configuración
Se habilita con DHCPV6C=yes
IPv6: Configuración estatica de la Interface
● /etc/sysconfig/network-scripts/ifcfg-ethX
IPV6ADDR=<ipv6_address>[/prefix_length]
Alias de dispositivo innecesarios ...
IPV6ADDR_SECONDARIES=<ipv6_address>[/prefix_length] […]
IPv6: Configuración de rutas
● Pasarela por defecto
Dinámicamente a partir de radvd o dhcpv6s
Manualmente especificados en /etc/sysconfig/network
IPV6_DEFAULTGW=<IPv6_address[%interface]>
IPV6_DEFAULTDEV=<interface> - solo valida en interfaces punto-a-punto
● Rutas estática
Definido por interface en /etc/sysconfig/network-scripts/route6-ethX
Utilizar sintaxis ip -6 route add
<ipv6_network/prefix> via <ipv6_routeraddress>

tcp_wrappers y IPv6
● tcp_wrappers es (consiente) IPv6
Cuando IPv6 se aplica completamente al dominio, asegúrese de incluir reglas tcp_wrappers
para direcciones Ipv6
● Ejemplo: preservando la conectividad de maquina local, agregar a /etc/hosts.allow
ALL: [::1]
Nuevas y modificadas utilidades
● ping6
● traceroute6
● tracepath6
● ip -6
● host -t AAAA hostname6.domain6

Servicios y Seguridad en Linux LP201 Ver.1. 1-27


Introducción a netfilter, tablas y cadenas en netfilter
● Filtrando en el núcleo: no es demonio
● Afirma políticas en capas 2, 3 y 4 de el modelo de referencia OSI
● Solo inspecciona cabeceras de paquetes
● Consiste en módulos de netfilter en el núcleo, y el software iptables el espacio de usuario

Tablas de Netfilter y Cadenas


Tabla
Puntos de Filtros
filter nat mangle
INPUT X X
FORWARD X X
OUTPUT X X X
PREROUTING X X
POSTROUTING X X

Flujo de paquetes en netfilter

Servicios y Seguridad en Linux LP201 Ver.1. 1-28


Encaje de reglas, acciones de reglas
● Reglas en lista ordenada
● Los paquetes verificados con cada regla sucesivamente
● En la primera coincidencia, el objetivo es evaluado:
Usualmente sale de la cadena
● La regla puede especificar varios criterios para coincidir
● Cada criterio en una especificación debe para la regla de coincidir (AND lógico)
● Política de la cadena se aplica si no hay coincidencia
Regla Targets
● Incorporado en los objetivos: DROP, ACCEPT
● Extensión de objetivos: LOG, REJECT, cadena personalizada
REJECT envía un aviso devuelta al remitente
LOG conecta al sistema de registro, facilidad kern
LOG coincidencia no sale de la cadena
● Objetivo es opcional, pero no mas que uno por regla y por defecto en la política de la
cadena si esta ausente
Ejemplo simple
● Una regla de INPUT para la tabla filter:

Operaciones básicas con cadenas


● Lista reglas en una cadena o tabla (-L o -vL)
● Agrega una regla a una cadena (-A)
● Inserta una regla a una cadena (-I)
- I CADENA (inserta como la primera regla)
- I CADENA 3 (inserta como la regla 3)

Servicios y Seguridad en Linux LP201 Ver.1. 1-29


● Borrar un regla individual (-D)
- D CADENA 3 (Borra la regla 3 de la cadena)
- D CADENA REGLA (Borra la regla explicitamente)
Operaciones adicionales con cadenas
● Asignar una política a la cadena (-P CADENA OBJETIVO)
ACCEPT (por defecto, incorpora un objetivo)
DROP (Incorpora un objetivo)
REJECT (no permite, una extensión en objetivo)
● Limpia todas las reglas de una cadena (-F)
No descarga la política
● Deja en cero contadores de byte y paquete (-Z [CADENA])
Útil para la cadena de vigilancia de estadísticas
● Administrar cadenas personalizadas (-N, -X)
-N Tu_nombre-de-cadena (agrega cadena)
-X Tu_nombre-de-cadena (borra cadena)
Reglas: consideraciones generales
● Sobre todo cerrado es apropiado
iptables -P INPUT DROP o
iptables -A INPUT -j DROP
iptables -A INPUT -j REJECT
● Los criterios se aplican también a la interface loopback
Las reglas del ejemplo de arriba tiene como efecto colateral de bloquear localhost!
● Reglas, como rutas, son leídas en memoria y se debe guardar en un archivo para
persistencia a través de los reinicios
● Las coincidencias pueden ser hechas por:
Dirección IP, o nombre de maquina
Advertencia: Nombres de maquina se resuelve en el momento de insertar regla
Numero de puerto, o nombre de servicio
Argumentos pueden ser negados con '!'
● Incluyendo rango de puertos que se indique Inclusive '0:1023'
● Las máscaras pueden utilizar notación VLSN o CIDR

Servicios y Seguridad en Linux LP201 Ver.1. 1-30


Control de conexiones
● Provee inspección de paquetes "state"
Un paquete puede ser verificado en un contexto especifico
● Simplifica el diseño de reglas
Sin seguimiento de conexiones, reglas son usualmente en pares (entrante y saliente)
● Implementado en coincidencia de extensión "state"
Estados reconocidos: NEW, ESTABLISHED, RELATED, INVALID
● Requiere mas memoria
● Módulos de seguimiento de conexión
ip_conntrack_ftp
ip_conntrack_tftp
ip_nat_ftp
ip_nat_tftp (y otros)
● /etc/sysconfig/iptables-config
● Una regla que permita las conexiones establecidas:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
● Muchas reglas, una para cada servicio permitido:
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
● Por último, una regla para bloquear todos los demás entrantes:
iptables -A INPUT -m state --state NEW -j DROP

Traducción de direcciones de red (NAT), ejemplos de DNAT, de SNAT


● Traduce una dirección IP en otra (entrante y/o saliente)
● Permite "ocultar" direcciones IP internas detrás de una sola dirección IP pública
● Reglas establecidas dentro de la tabla NAT
● Tipos de Traducción de direcciones de Red:
Destination NAT (DNAT) - Ubicado en la cadena PREROUTING donde el filtrado
utiliza traducción de dirección
Source NAT (SNAT, MASQUERADE) – Ubicado en la cadena POSTROUTING donde
el filtrado nunca usa traducción de dirección

Servicios y Seguridad en Linux LP201 Ver.1. 1-31


Ejemplos DNAT
● ENTRANTE
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.0.20
● SALIENTE (con redirección de puerto)
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-dest 192.168.0.200:3128

Ejemplos SNAT
● MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
● SNAT
iptables -t nat -A POSTROUTING -j SNAT --to-source 1.2.3.45

Persistencia de reglas
● iptables no es un demonio, pero lee reglas en la memoria y sale
● Las reglas no son persistentes a través del reinicio
El servicio iptables almacenara las reglas si se ordena en /etc/sysconfig/iptables
(¡Asegúrese de que este archivo tiene el contexto SELinux correcto!)
Gestión System V puede ser utilizado, y es ejecutado antes que la red es configurada

Ejemplo de /etc/sysconfig/iptables
*filter
:INPUT DROP [573:46163]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [641:68532]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp –dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 25 -s 123.123.123.1 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 53 -j ACCEPT
-A INPUT -p udp -m udp –dport 53 -j ACCEPT

Servicios y Seguridad en Linux LP201 Ver.1. 1-32


-A INPUT -p udp -m udp –dport 123 -s 123.123.123.1 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp –dport 113 -j REJECT --reject-with \tcp-reset
COMMIT

Ipv6 e ip6tables
● filtrado de paquetes para tráfico IPv6
● Proveído por el paquete iptables-ipv6
● Reglas se almacena en /etc/sysconfig/ip6tables
● No soporta todavía:
Objetivo REJECT
Tabla nat
Seguimiento de conexión con modulo state

Servicios y Seguridad en Linux LP201 Ver.1. 1-33


UNIDAD 5 ASEGURANDO LOS
DATOS

Servicios y Seguridad en Linux LP201 Ver.1. 1-34


Lo necesario para cifrar
● Susceptibilidad de tráfico sin cifrar
Sniffing de password/datos
Manipulación de datos
Manipulación de autentificación
Equivalente a envío en tarjetas postales
● Tradicionales protocolos inseguros
telnet, FTP, POP3, etc. : claves inseguras
sendmail, NFS, NIS, etc.: información insegura
rsh, rcp, etc.: autentificación insegura

Paso a paso Cifrado


● Generador de números aleatorios
● Los valores hash una vía
● Algoritmos simétricos
● Algoritmos asimétricos (Llave publica)
● Infraestructuras de llave publica
● Certificados digitales
● Implementación en:
openssl, gpg

Generador de Números Aleratorios


● Números pseudo-aleatorios y fuentes de entropía
Eventos del teclado y ratón
Interrupciones de dispositivo de bloque
● El núcleo provee fuente
/dev/random:
Mejor fuente
Bloques cuando entropía agotado

Servicios y Seguridad en Linux LP201 Ver.1. 1-35


/dev/urandom:
Saca de entropía hasta el vaciarse
Vuelve a los generadores pseudo-aleatorios
● openssl rand [ -base64 ] num

Los valores hash “una vía”


● Arbitrariamente datos reducidos a pequeña "huella digital"
Arbitraria longitud de entrada
Fija longitud de salida
Si los datos cambian, “huellas digitales” cambian ("libre de colisiones")
Datos no pueden ser regeneradas a partir de “huellas digitales” ("una vía")
● Algoritmos comunes
md2, md5, mdc2, rmd160, sha, sha1
● Utilidades comunes
sha1sum [ --check ] file
md5sum [ --check ] file
openssl, gpg
rpm -V

Cifrado Simétrico
● Sobre la base de una sola clave
Utilizado al mismo tiempo para cifrar y descifrar
● Algoritmos comunes
DES, 3DES, Blowfish, RC2, RC4, RC5, IDEA, CAST5
● Utilidades comunes
passwd (DES modificada)
gpg (3DES, CAST5, Blowfish)
openssl

Servicios y Seguridad en Linux LP201 Ver.1. 1-36


Cifrado Asimétrico
● Sobre la base de par de claves pública/privada
Con una clave cifra, la otra descifra
● Protocolo I: Cifrado sin clave de sincronización
Receptor
Genera par de claves pública/privada: P y S
Publicar la clave publica P, guardar la clave privada S
Remitente
Cifra el mensaje M con la clave pública receptor
Enviar P(M) para el receptor
Receptor
Descifra con la clave secreta para recuperar: M = S(P (M))
● Protocolo II: Firmas digitales
Remitente
Genera par de clave publica/privada: P y S
Publica clave publica P, guarda clave privada S
Cifra mensaje M con clave privada S
Envía a receptor S(M)
Receptor
Descifra con clave publica del remitente para recuperar M= P(S(M))
● Combina firma y cifrado
● Firmas separadas
Infraestructuras de Llaves Publicas
● Cifrado asimétrico depende de la integridad de clave pública
● Dos enfoques desalentar falsas llaves publicas:
Publicando claves de huella digital
Infraestructura de clave publica(PKI)
Distribuir en Web de confianza
Jerarquía de autoridades de certificación
Certificados digitales

Servicios y Seguridad en Linux LP201 Ver.1. 1-37


Certificados Digitales
● Autoridades de certificación
● Certificado digital
Propietario: Identidad y clave publica
Emisor: Firma Independiente e Identidad
Periodo de Validez
● Tipos
Certificados de Autoridad de certificados
Certificados de servidor
● Certificados auto-firmados

Generando certificados digitales


● Formato X.509 de certificado
● Genera un par de claves publica/privada y define identidad
● Dos Opciones:
Utilizar una Autoridad de Certificado
Generar una solicitud de firma (csr)
Enviar csr a CA
Recibir firmado desde CA
Auto-firmar un certificado
Firma con tu propia llave publica

OpenSSH, Autentificación
● OpenSSH reemplaza comúnmente, aplicaciones de comunicación inseguras de red
● Proporciona usuario y de autentificación basada en token
● Capaz de hacer un túnel por protocolos inseguros a través de redireccionamiento de puertos
● Configuración por defecto del sistema (cliente y servidor) reside en /etc/ssh/

Servicios y Seguridad en Linux LP201 Ver.1. 1-38


● El demonio sshd pueden utilizar varios diferentes métodos autentificación
password (envía de forma segura)
Llaves RSA y DSA
Kerberos
s/Llave y IDSeguro
Autentificando maquina usando sistema de par de llaves

El servidor OpenSSH, configuración


● Provee mayor seguridad de datos entre los sistemas en red
Llave de cifrado privada/publica
Compatible con anteriores versiones comerciales de uso restringido de SSH
● Implementa seguridad basada en equipo mediante
libwrap.so
● Archivo de configuración SSHD
/etc/ssh/sshd_config
● Opciones para considerar
Protocol
ListenAddress
PermitRootLogin
Banner

Perfil del servicio SSH


● Tipo: Servicio administrado - System V
● Paquetes: openssh, openssh-clients, openssh-server
● Demonio: /usr/sbin/sshd
● Script: /etc/init.d/sshd
● Puerto: 22
● Configuración: /etc/ssh/*, $HOME/.ssh/
● Relacionados: openssl, openssh-askpass, openssh-askpass-gnome, tcp_wrappers

Servicios y Seguridad en Linux LP201 Ver.1. 1-39


El cliente OpenSSH, Forwarding de puertos
● Sesiones de shell segura
ssh nombremaquina
ssh usuario@nombremaquina
ssh nombremaquina comando-remoto
● Copia remota segura de archivos y directorios
scp file usuario@maquina:directorio-remoto
scp -r usuario@maquina:directorio-remoto directorio-local
● FTP seguro proveído por sshd
sftp maquina
sftp -C usurio@maquina

Administrando Llaves
● ssh-add -- collects key palabra_de_paso
● ssh-agent -- manages key palabra_de_paso

Aplicaciones: RPM
● Dos implementaciones de integridad de archivo
● Archivos Instalados
hash One-way MD5
rpm --verify nombre_paquete (o -V)
● Archivos de paquetes distribuidos
Firma de llave publica GPG
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centos*
rpm --checksig nombre_archivo_de_paquete (o -K)

Servicios y Seguridad en Linux LP201 Ver.1. 1-40


UNIDAD 6 ORGANIZACIÓN DE LOS
SISTEMAS DE RED

Servicios y Seguridad en Linux LP201 Ver.1. 1-41


Resolución de nombres de maquina

Algunos servicios de nombre proveen mecanismos para traducir nombre de maquina en direcciones
de capas-inferiores para que los computadores puedan comunicarse
Ejemplo: Nombre --> Dirección MAC (capa enlace)
Ejemplo: Nombre --> Dirección IP (capa red) --> Dirección MAC (capa enlace)
● Servicios comunes de nombre de maquina
Archivos (/etc/hosts y /etc/networks)
DNS
NIS
● Múltiples cliente para la resolución de nombres:
"stub"
dig
host
nslookup

Servicios y Seguridad en Linux LP201 Ver.1. 1-42


Analizar consultas DNS con dig, otras observaciones
● dig +trace centos.org
Lee /etc/resolv.conf para determinar el servidor de nombre
Consulta para los servidores de nombre RAIZ
Continua tras las referencias para buscar registros de nombre (respuestas)
Ver notas por ejemplos de salida, en caso que este restringida la salida DNS
● Esto es conocido como una consulta iterativa
● Observaciones Iniciales:
Los nombres están organizados en un árbol invertido con la raíz (.) en la parte superior
La jerarquía de nombres DNS permite cruzar las fronteras organizacionales
Los nombres en los registros terminan con un punto cuando está totalmente calificado
● Respuestas en la traza anterior son en forma de registros de recursos
● Cada recurso tiene cinco campos
domain – el dominio o sub-dominio que se consulta
ttl - el tiempo que el registro debe ser almacenado en caché, expresado en segundos
class – clasificación de registro (usualmente IN)
type – tipo de registro, such as A o NS
rdata - datos de recursos a los que el dominio mapea
● Conceptualmente, una consulta contra el dominio (nombre), que se asigna a la rdata por
una respuesta
● En el ejemplo trace,
El registro NS (servidor de nombre) son referencias
El registro A (dirección) es la respuesta final y el tipo de consulta por defecto para dig
Consultas directas, inversas
Búsqueda directa
● dig redhat.com
Intentos de recursión primero, como se indica por rd (recursión se desea) en la
sección de banderas de la salida: si el servidor de nombres permite recursión, el servidor comprueba
la respuesta y devuelve los registros pedidos al cliente
Si el servidor de nombres no permite recursión, entonces el servidor devuelve una referencia a
un dominio de nivel superior, que dig seguirá

Servicios y Seguridad en Linux LP201 Ver.1. 1-43


● Observaciones
La consulta tipo por defecto de dig es A; la rdata de un registro A es una dirección IPv4
Utilizar -t AAAA para solicitar rdata IPv6
Cuando tiene éxito, dig devuelve un estado de NOERROR, cuenta una respuesta, y también
indica que los servidores de nombres tienen autoridad para el nombre
Búsqueda Reversa
● dig -x 209.132.177.50
● Observaciones: La sección de preguntas en la salida muestra que DNS invierte los
octetos de una dirección y agrega in-addr.arpa para calificar completamente la parte de dominio del
registro.
La sección de respuesta muestra que DNS utiliza registros PTR (puntero) para búsqueda
reversa; en forma adicional, rdata para un registro PTR es un nombre de dominio completamente
cualificado.
Consultas de servidores de correo
● Un registro MX mapea un dominio al nombre de dominio completamente calificado de
dominio de un servidor de correo
● dig -t mx redhat.com
● Observaciones
El campo rdata se extiende para incluir una pieza mas de datos llamada la prioridad
para evitar búsquedas adicionales, los servidores de nombre proveen registros A como respuestas
adicionales que correspondan con el FQDN proveído en el registro MX.
Juntos, un registro MX y sus registros A asociados resuelven el dominio de un servidor
de correo.

Consultas SOA, datos SOA


● Un registro SOA marca un servidor como maestro de una autoridad
● dig -t soa redhat.com
● Observaciones iniciales
El campo dominio es llamado el origen
El campo rdata es extendido para soportar datos adicionales, explicado mas adelante
Normalmente hay un solo servidor de nombres maestro para un dominio; almacena la
copia maestra de sus datos.
Otro servidor de nombre con autoridad para el dominio o zona son referidos como
esclavos o secundario; ellos sincronizan los datos desde el maestro.

Servicios y Seguridad en Linux LP201 Ver.1. 1-44


Servidores de nombres FQDN Maestro
● Email de contacto
● Numero Serial
● Actualizar demora antes de verificar número de serie
● Intervalo de reintentos para servidores esclavos
● Espiración de registros cuando el esclavo no puede comunicarse con su maestro(s)
● TTL Mínimo para respuestas negativas ("no such host")

Autoridad
● El registro SOA simplemente indica el servidor maestro para el origen (dominio)
● Un servidor tiene autoridad si se tiene:
Delegación del dominio principal: registro NS mas registro A
Una copia local de los datos del dominio, incluyendo el registro SOA
● Un servidor de nombre que tiene la delegación adecuada pero carece de datos del dominio
es llamado un servidor defectuoso (lame server)

Transferencia de dominios
● dig -t axfr example.com. @192.168.0.254
● Observaciones
Todos los registros para la zona son transferidos
Registros revelan mucho en el conocimiento de la red
Respuesta es demasiado grande para UDP, entonces para transferencia se usa TCP
● La mayoría de los servidores restringen la zona de transferencia a unas pocas maquinas
(usualmente los servidores de nombre esclavos)
● Utilice este comando desde un esclavo para probar los permisos en el maestro

Explorar DNS con host


● Para cualquiera de las siguientes consultas, añadir la opción -v para ver la salida en formato
de archivo de zona
● Trace: no disponible
● Delegación: host -rt ns redhat.com

Servicios y Seguridad en Linux LP201 Ver.1. 1-45


● Force iterativo: host -r redhat.com
● Búsqueda reversa: host 209.132.177.50
● Búsqueda MX: host -t mx redhat.com
● Búsqueda SOA: host -t soa redhat.com
● Transferencia de Zona: host -t axfr redhat.com192.168.0.254 o
host -t ixfr=serial example.com. 192.168.0.254

Introducción al servidor DNS


● CentOS Linux utiliza BIND, Berkely Internet Name Daemon
● BIND es el servidor DNS más utilizado en Internet
Una estable y confiable infraestructura en la cual basar un nombre de dominio y la
asociación de direcciones IP
La referencia de implementación para DNS RFC's
Corre en un entorno chroot (“enjaulado”)
● Tipo: Servicio administrado System V
● Paquetes: bind, bind-utils, bind-chroot
● Demonios: /usr/sbin/named, /usr/sbin/rndc
● Script: /etc/init.d/named
● Puertos: 53 (dominio), 953(rndc)
● Configuración: (bajo /var/named/chroot/) /etc/named.conf, /var/named/*, /etc/rndc.key
● Relacionados: caching-nameserver, openssl
Primeros pasos con BIND
● Instalar paquetes
bind para binarios básicos
bind-chroot para seguridad
caching-nameserver para una configuración inicial
● Configurar inicio
service named configtest
service named start
chkconfig named on
● Proceder con la configuración esencial de named

Servicios y Seguridad en Linux LP201 Ver.1. 1-46


Perfil de control de acceso: BIND
● Netfilter: tcp/udp puertos 53 y 953 entrante; tcp/udp puertos salientes temporales
● TCP Wrappers: N/A
ldd `which named` | grep libwrap
strings `which named` | grep hosts
● Xinetd: N/A (named es un demonio independiente)
● PAM: N/A (no se configura en /etc/pam.d/)
● SELinux: si – ver notas
● Controles de aplicación específica: si, discutido más adelante y en ARM
/usr/share/doc/bind-*/arm/Bv9ARM.{html,pdf}
Configuración básica de named
● Configurar el resolver stub (Delegado)
● Define controles de accesos en /etc/named.conf
Declarar clientes match-lists
Interfaces de servidor: listen-on y listen-on-v6
¿Qué consultas debe ser permitido?
Iterativo: allow-query { match-list; };
Recursión: allow-recursion { match-list; };
Transferencias: allow-transfer { match-list; };
● Agregar datos vía archivos de zona
● Probar!
Configurar la resolución local
● En el servidor de nombre:
Editar /etc/resolv.conf para especificar nameserver 127.0.0.1
Editar /etc/sysconfig/network-scripts/ifcfg-* para especificar PEERDNS=no
● Ventajas:
Asegura búsquedas consistentes para todas las aplicaciones
Simplifica los controles de acceso y resolución de problemas
● Además en /etc/resolv.conf, donde un usuario sin privilegios puede ver qué servidores de
nombres DHCP proporciona

Servicios y Seguridad en Linux LP201 Ver.1. 1-47


El paquete bind-chroot
● Instala un entorno chroot bajo /var/named/chroot
● Mueve archivos existentes de configuración en el entorno chroot, reemplazando los
archivos originales con enlaces simbólicos
● Actualiza /etc/sysconfig/named con una opción named:
ROOTDIR=/var/named/chroot
● Concejos
Inspeccionar /etc/sysconfig/named después de instalar bind-chroot
Ejecutar ps -ef | grep named después de iniciar named para verificar opciones de
inicio
El paquete caching-nameserver
● Provee
named.caching-nameserver.conf
named.ca conteniendo servidores raíces 'hints'
Archivos de búsqueda Forward y reversa para nombres de maquina local y direcciones
IP (ej:localhost.localdomain)
● Concejos
Copiar named.caching-nameserver.conf a named.conf
Cambiar dueño y grupo a root:named
Editar named.conf
● Mas adelante se describe esenciales directivas de acceso
Listas de patrones
● Una lista separada por punto y coma de direcciones IP o subredes utilizadas con las
directivas de seguridad para control de acceso basado en maquina
● Formato
Dirección IP: 192.168.0.1
Punto final: 192.168.0.
CIDR: 192.168.0/24
Utilice una exclamación (!) para indicar inversión
● Una lista de coincidencias se comprueba en orden deteniéndose en la primera coincidencia
● Ejemplo: { 192.168.0.1; 192.168.0.; !192.168.1.0/24; };

Servicios y Seguridad en Linux LP201 Ver.1. 1-48


Listas de control de acceso (ACL), ACLs predefinidas
● En su forma mas simples, una ACL asigna un nombre a una lista de coincidencias con
direcciones
● Puede generalmente ser utilizada en lugar de una lista de coincidencia (Anidación está
permitido!)
● Una buena practica es definir las ACL's en el inicio de /etc/named.conf
● Ejemplo de declaraciones
acl "trusted" {192.168.1.21; };
acl "classroom" {192.168.0.0/24; trusted; };
acl "cracker" {192.168.1.0/24; };
acl "mymasters" {192.168.0.254; };
acl "myaddresses" {127.0.0.1; 192.168.0.1; };
Incorporando ACL's
● BIND pre-define cuatro ACL's
none - Sin coincidencia con dirección IP
any - Todas las direcciones IP coinciden
localhost - Cualquier dirección IP del servidor de nombre coincide
localnets - Redes directamente-conectadas coinciden
● ¿Cual es la diferencia entre la localhost integrada al ACL y myaddresses en el ejemplo
anterior (asumiendo que el servidor es multi tarjeta)?

Direcciones e interfaces
● Opción: listen-on port 53 { match-list; };
● Se enlaza named a una interface especifica
● Ejemplo: listen-on port 53 { myaddresses; };
listen-on-v6 port 53 { ::1; };
● Reiniciar y verificar: netstat -tulpn | grep named
● preguntas:
¿Qué pasa si listen-on no incluye 127.0.0.1?
¿Cómo podría el cambio listen-on-v6 a :: (todas las direcciones IPv6) afectar IPv4?
● Por defecto: Si listen-on falta, named escucha en todas las interfaces

Servicios y Seguridad en Linux LP201 Ver.1. 1-49


Permitir consultas
● Opción: allow-query { match-list; };
● El servidor provee respuesta de autoridad y en cache a clientes en lista de coincidencia
● Ejemplo: allow-query { classroom; cracker; };
● Por defecto: Si allow-query falta, named permite a todos
Permitir recursión
● Opción: allow-recursion { match-list; };
● Servidor sigue referencias en nombre de clientes en la lista de coincidencia
● Ejemplo: allow-recursion { classroom; !cracker; };
● Preguntas
¿Qué sucede si 192.168.1.21 intenta una consulta recursiva?
¿Qué sucede si 127.0.0.1 intenta una consulta recursiva?
● Por defecto: si allow-recursion falta, named permite a todos
Permitir transferencias
● Opción: allow-transfer { match-list; };
● Clientes en la lista de coincidencia son habilitados para actuar como servidor esclavo
● Ejemplo: allow-transfer { !cracker; classroom; };
● Preguntas: ¿Qué sucede si 192.168.1.21 intentó la transferencia de esclavo?
¿Qué sucede si 127.0.0.1 intentó la trasferencia de esclavo?
● Por defecto: si allow-transfer no está presente, named permite a todos
Modificar el comportamiento de BIND
● Opción: forwarders { match-list; };
● Modificador: forward first | only
● Dirige named a consultas recursivas de servidores especificados antes o en lugar de seguir
las referencias
● Ejemplo: forwarders { mymasters; };
forward only;
● ¿Como puedes determinar si forwarders es requerido?
● Si el modificador forward falta, named asume primero

Controles de acceso: Colocando juntos


● Ejemplo /etc/named.conf con opciones esenciales de control de acceso:

Servicios y Seguridad en Linux LP201 Ver.1. 1-50


// acl's hacen las directivas de seguridad más fáciles de leer
acl "myaddresses" { 127.0.0.1; 192.168.0.1; };
acl "trusted" { 192.168.1.21; };
acl "classroom" { 192.168.0.0/24; trusted; };
acl "cracker" { 192.168.1.254; };
options {
# unen a las interfaces específicas
listen-on port 53 { myaddresses; };
listen-on-v6 port 53 { ::1; };
# Asegurarse de que yo siempre puedo consulta para la solución de problemas
allow-query { localhost; classroom; cracker; };
allow-recursion { localhost; classroom; !cracker; };
/ * No dejes que cracker (incluso de confianza) hacer transferencias de zona * /
allow-transfer { localhost; !cracker; classroom; };
# Utilizar un recursivo, servidor de nombres arriba
forwarders { 192.168.0.254; };
forward only;
};

Declarar zonas slave


zone "example.com" {
type slave;
masters { mymasters; };
file "slaves/ejemplo.zn";
};
● Ejemplo de declaración de zona dirige el servidor a:
Actúa como un servidor de nombre con autoridad para example.com, donde
example.com es el origen como especifica el campo en el registro de dominio SOA
Sera un esclavo para esta zona
Realiza transferencia de zona (AXFR y IXFR) contra las maquinas en opción masters

Servicios y Seguridad en Linux LP201 Ver.1. 1-51


Almacena los datos transferidos en /var/named/chroot/var/named/slaves/ejemplo.zn
● Recargar named para automáticamente crear el archivo
Declarar zonas master, delegar subdominios
zone "example.com" {
type master;
file "example.com.zone";
};
● Ejemplo de declaración de zona dirige el servidor a:
Actúa como un servidor de nombre con autoridad para example.com, donde
example.com es el origen como se especifica en campo del registro de dominio SOA
Sera un maestro para esta zona
Leerá los datos del maestro desde /var/named/chroot/var/named/example.com.zone
● Manualmente crear el archivo maestro antes de recargar named
Crear ficheros de zonas, concejos sobre ficheros de zonas
● Contenido de un archivo de zona:
Una colección de registros, empezando con el registro SOA
El símbolo @ es una variable representando la zona origen como se especifica en la
declaración de zona en /etc/named.conf
Comentarios son estilo ensamblador (;)
● Precauciones:
BIND agrega el dominio origen a cualquier nombre que no termine en un punto.
Si el campo dominio falta en un registro, BIND utiliza el valor del registro previo
(¡Peligro! ¿ Qué pasa si otro administrador cambia el orden del registro?)
Recordar incrementar el numero serial y recargar named después de modificar el
archivo de zona
● ¿Qué resolvedor DNS específico pone su salida en formato de archivo de zona?

● Atajos:
No empiece desde cero - copia un archivo de zona existente instalado por el paquete
caching-nameserver
Para guardar escribiendo, agregar $TTL 86400 en la primera linea de el archivo de
zona, entonces omita el TTL de los registros individuales

Servicios y Seguridad en Linux LP201 Ver.1. 1-52


BIND permite que partas de valores múltiples rdata a través de lineas cuando se
encierra dentro de paréntesis ()
● Elija un nombre de archivo para el archivo de zona que refleje el origen de alguna manera
Probar BIND, utilidades de comprobación de sintaxis de BIND
● Operación
Seleccionar uno de dig, host, o nslookup, y utilizar con pericia para verificar la
operación del servidor DNS
Ejecutar tail -f /var/log/messages en un shell separado cuando reinicie el servicio
● Configuración
BIND podrá fallar al iniciar por errores de sintaxis, por lo que siempre ejecutar service
named configtest despues de editar los archivos de configuración
configtest ejecuta dos utilidades de sintaxis para archivos especificados en su
configuración, pero las utilidades se pueden ejecutar separadamente para archivos fuera de su
configuración
Demonio de control remoto(rndc)
● Provee administración local y remoto de named
● El paquete bind-chroot configura rndc
Escucha solo en IPv4 e IPv6 loopbacks
Lee llave desde /etc/rndc.key
Si la clave no coincide, no se puede iniciar o detener el servicio named
No es necesaria configuración adicional por defecto, en instalación local
● Ejemplo – Limpiar el servidor cache: rndc flush
Delegación de subdominios
● Pasos : En el hijo, crear un archivo de zona para almacenar los datos del subdominio
En el padre, agregar un registro NS, en padre, agregar registro A para completar delegación
● Registros encolados
Si el nombre canónico hijo esta en el subdominio que gestiona, el registro A es llamado
un registro encolado
Introducción a DHCP, configurar un servidor DHCP IPv4
● DHCP: Dynamic Host Configuration Protocol, implementado vía dhcpd
● dhcpd provee el servicio para clientes IPv4 DHCP y BOOTP IPv4
● Tipo: Servicio gestionado SystemV

Servicios y Seguridad en Linux LP201 Ver.1. 1-53


● Paquete: dhcp
● Demonio: /usr/sbin/dhcpd
● Script: /etc/init.d/dhcpd
● Puertos: 67 (bootps), 68 (bootpc)
● Configuración: /etc/dhcpd.conf, /var/lib/dhcpd/dhcpd.leases
● Relacionados: dhclient, dhcpv6_client, dhcpv6

Configurando en IPv4 Servidor DHCP


● Configurar el servidor en /etc/dhcpd.conf
● Ejemplo de configuración se provee en /usr/share/doc/dhcp-version/dhcpd.conf.sample
● Debe haber al menos un bloque subnet, y este debe corresponderse con las interfaces
configuradas.
● Ejecutar service dhcpd configtest para verificar sintaxis

Servicios y Seguridad en Linux LP201 Ver.1. 1-54


UNIDAD 7 SERVICIOS PARA
COMPARTIR ARCHIVOS

Servicios y Seguridad en Linux LP201 Ver.1. 1-55


Protocolo de transferencia de archivos (FTP)
● vsftpd – el servidor FTP por defectos de CentOS GNU/Linux
● Ya no es manejado por xinetd
● Permite sistemas, anónimos o virtual de acceso de usuarios (solo-FTP)
● La jerarquía de directorio anónimo es proveído por el RPM vsftpd
● /etc/vsftpd/vsftpd.conf es el archivo de configuración principal
● Tipo: Servicio administrado SystemV
● Paquete: vsftpd
● Demonio: /usr/sbin/vsftpd
● Script: /etc/init.d/vsftpd
● Puertos: 21 (ftp), 20 (ftp-data)
● Configuración: /etc/vsftpd/vsftpd.conf /etc/vsftpd.ftpusers /etc/pam.d/vsftpd
● Registros: /var/log/xferlog
● Relacionados: tcp_wrappers, ip_conntrack_ftp, ip_nat_ftp

Network File Service (NFS)


● El servicio NFS de CentOS GNU/Linux es similar a otras variantes BSD y UNIX
Recursos exportados son listados en /etc/exports
Servidor notifica cambios en lista de exportados con exportfs -r o service nfs reload
Directorios compartidos se accede mediante el comando mount
El servidor NFS es un servicio RPC y por lo tanto requiere portmap
● Tipo: Servicio gestionado System V
● Paquete: nfs-utils
● Demonios: rpc.nfsd, rpc.lockd, rpciod, rpc.mountd, rpc.rquotad, rpc.statd
● Scripts: /etc/init.d/nfs, /etc/init.d/nfslock
● Puertos: 2049(nfsd), Otros asignados por portmap (111)
● Configuración: /etc/exports
● Relacionados: portmap (obligatorio), tcp_wrappers

Servicios y Seguridad en Linux LP201 Ver.1. 1-56


Opciones de puertos para el Firewall
● mountd, statd y lockd pueden ser obligados a utilizar un puerto estático
● Ajustar las variables MOUNTD_PORT, STATD_PORT, LOCKD_TCPPORT y
LOCKD_UDPPORT en /etc/sysconfig/nfs
MOUNTD_PORT="4002"
STATD_PORT="4003"
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"

Servidor NFS, utilidades NFS, cliente NFS


NFS Server
● Directorios exportados son definidos en /etc/exports
● Cada entrada especifica el/los equipo/s a los que el sistema de archivos es exportado más
permisos asociados y opciones
Opciones deben especificarse
Opciones por defecto: (ro,sync,root_squash)
root es mapeado a UID 4294967294

Utilidades NFS
● exportfs -v
● showmount -e hostname
● rpcinfo -p hostname

Clientes NFS
● Implementado como un modulo del núcleo
● /etc/fstab puede ser utilizado para especificar montajes de red
● Recursos compartidos con NFS son montados en el arranque por /etc/init.d/netfs
● autofs monta recursos compartidos con NFS bajo demanda y desmonta cuando está
inactivo

Servicios y Seguridad en Linux LP201 Ver.1. 1-57


Servicios Samba, configurar Samba, el fichero smb.conf
Servicios Samba
● Cuatro principales servicios se proporcionan:
Autentificación y autorización de usuarios
Compartir archivos e impresoras
Resolución de nombres
Navegación (servicio de aviso)
● Relacionados: smbclient acceso por linea de comandos
Linux puede montar recursos compartidos Samba usando cifs o sistema de archivos smbfs
Perfil del servicio: SMB
● Tipo: Servicio gestionado System V
● Paquetes: samba, samba-common, samba-client
● Demonios: /usr/sbin/nmbd, /usr/sbin/smbd
● Script: /etc/init.d/smb
● Puertos: [NetBIOS] 137(-ns), 138(-dgm), 139(-ssn), [SMB sobre TCP] 445(-ds)
● Configuración: /etc/samba/*
● Relacionados: system-config-samba, testparm
Configurando Samba
● Configuración en /etc/samba/smb.conf
Linux provee una buena comentada configuración por defecto, adecuada para la
mayoría de las situaciones
● Herramientas de configuración están disponibles
system-config-samba y samba-swat (http://localhost:901)
Editar a mano smb.conf es recomendado
Revisión secciones de smb.conf
● smb.conf se inspira en el formato de archivo .ini y se divide [ ] en diferentes secciones
[global] : sección para la configuración del servidor genérica o global
[homes] : utilizada para dar acceso a algunos o todos los usuarios a sus directorio raíz
[printers] : define los recursos de impresión y servicios
● Utilizar testparm para verificar la sintaxis de /etc/samba/smb.conf

Servicios y Seguridad en Linux LP201 Ver.1. 1-58


Configurar ficheros y directorios compartidos
● Los recursos compartidos deben tener su propia [ ] sección
Algunas opciones para usar:
public – El recurso compartido puede ser accedido por usuario visita
browsable – El recurso compartido es visible en la lista de exploración
writable – Se permite leer y escribir en el recurso
printable – el recurso es una impresora, no un disco
group – Toda conexión al recurso compartido utiliza el grupo especificado como grupo
principal
Imprimir con el servidor Samba
● Todas las impresoras definidas en /etc/cups/ printers.conf son compartidas como recurso
por defecto
● Puede ser cambiado para permitir solo explícitamente impresoras publicadas
Métodos de autentificación, Contraseñas
● Especificado con security = method
● Métodos validos son:
user : validación por usuario y contraseña (esto es por defecto)
domain/server : grupo de trabajo con colección de datos de autentificación es usado
ads : actúa como miembro de Active Directory con la autentificación Kerberos
share : validación de usuario en base por-recurso compartido
Utilidades de comprobación de sintaxis de Samba
● Consideraciones con contraseñas cifradas
Almacenado en /etc/samba/smbpasswd
Usuarios agregados con smbpasswd -a user
Usuarios modificados con smbpasswd user
Usuarios deben tener una cuenta local (o ser traducido a una cuenta local a través de
/etc/samba/smbusers), o implementar winbindd, un servicio separado
● testparm es utilizado para verificar la sintaxis de /etc/samba/smb.conf
● Puede verificar el permitir/denegar declaraciones para verificar que un equipo puede
acceder al servidor:
testparm /etc/samba/smb.conf station1.example.com 192.168.0.1

Servicios y Seguridad en Linux LP201 Ver.1. 1-59


Herramientas del cliente de Samba: smbclient, nmblookup, mounts
Herramienta cliente de Samba: smbclient
● Permite la visualización de servicios compartidos
smbclient -L hostname
● Se puede utilizar como una herramienta de recuperación de archivo estilo ftp
[student@stationX]$ smbclient //machine/service
> cd directory
> get file
● user%password puede ser especificado con -U o por definir y exportando las variables de
entorno USER y PASSWD

Herramienta cliente de Samba: nmblookup


● Lista maquina especifica
nmblookup -U WINS_server -R name
● Lista todas las maquinas
nmblookup \*

Herramienta cliente de Samba: mounts


● Los sistema de archivos SMB y CIFS son soportados por el núcleo de Linux
● Utilizar mount para montar un recurso compartido Samba:
mount -t cifs service mountpoint -o option1,option2

Montar sistemas de ficheros Samba con /etc/fstab


● Montajes de Samba se pueden realizar automáticamente tras el arranque del sistema
mediante la colocación de una entrada en /etc/fstab
● Especificar la ruta UNC para el servidor Samba, el punto de montaje, cifs como el tipo de
formato, y un nombre de usuario.
//stationX/homes /mnt/homes cifs username=bob,uid=bob 00

Servicios y Seguridad en Linux LP201 Ver.1. 1-60


UNIDAD 8 SERVICIOS WEB

Servicios y Seguridad en Linux LP201 Ver.1. 1-61


Introducción a Apache, Configurar el servidor Apache
● Control de Procesos:
Genera procesos antes de necesitarlos
Adapta números de procesos a la demanda
● Carga dinámica de modulo:
En tiempo de ejecución ampliación sin recompilar
● Virtual hosts:
Múltiples sitios web pueden compartir el mismo servidor web
● Tipo: Servicio gestionado SystemV
● Paquetes: httpd, httpd-devel, httpd-manual
● Demonio: /usr/sbin/httpd
● Script: /etc/init.d/httpd
● Puertos: 80(http ), 443(https )
● Configuración: /etc/httpd/*, /var/www/*
● Relacionados: system-config-httpd, mod_ssl
● Configuración del servidor principal almacenada en /etc/httpd/conf/httpd.conf
Controles generales, parámetros del servidor web, virtual hosts regulares, y acceso
Define nombre de archivos y mime-types
● Archivo de configuración de modulo son almacenado en /etc/httpd/conf.d/*
● DocumentRoot por defecto /var/www/html/
Configuración Servidor Apache
● Min y Max servidores de repuesto ( spare )
● Configuración archivo de registro
● Búsqueda de nombre de maquina
● Módulos
● Virtual Hosts
● usuario y grupo

Servicios y Seguridad en Linux LP201 Ver.1. 1-62


Configuración de espacio de nombre de Apache
● Especificando un directorio para paginas de usuarios:
UserDir public_html
● Configuración de MIME types:
AddType application/x-httpd-php .phtml
AddType text/html .htm
● Declarando archivos de inicio por defecto:
DirectoryIndex index.php index.html default.htm cualqui.era

Hosts virtuales
NameVirtualHost 192.168.0.100:80
<VirtualHost 192.168.0.100:80>
ServerAdmin web@master.es
DocumentRoot /var/www/html/virt1
ServerName virt1.com
ServerAlias www.virt1.com
ErrorLog logs/virt1.error
CustomLog logs/acceso.virt1 common
</VirtualHost>
<VirtualHost 192.168.0.100:80>
ServerAdmin web@master.es
DocumentRoot /var/www/html/virt2
ServerName www.virt2.com
ServerAlias virt2.com
ErrorLog logs/virt2.error
CustomLog logs/acceso.virt2 common
</VirtualHost>

Servicios y Seguridad en Linux LP201 Ver.1. 1-63


Configurar el control de acceso de Apache
● Apache provee control de nivel acceso a directorio y archivo basado en maquina
● Especificaciones de maquina puede incluir punto notación numérica, red/mascara, y punto
notación nombre de maquina y dominios
● La declaración Order provee control sobre "order", pero no siempre de la manera esperada
Herramientas de comprobación de sintaxis de Apache
● service httpd configtest
● apachectl configtest
● httpd -t
● Verificar tanto httpd.conf y ssl.conf
Usar ficheros .htaccess
● Cambiar la configuración directorios:
Agregar las definiciones mime-type
Permitir o denegar determinadas maquinas
● Configurar base de datos de usuario y contraseña:
Directiva AuthUserFile
Comando htpasswd: htpasswd -cm /etc/httpd/.htpasswd bob
htpasswd -m /etc/httpd/.htpasswd alice

Ejemplo avanzado de .htaccess


AuthName "Bob's Secret Stuff"
AuthType basic
AuthUserFile /var/www/html/.htpasswd
AuthGroupFile /var/www/html/.htgroup
<Limit GET>
require group staff
</Limit>
<Limit PUT POST>
require user bob
</Limit>

Servicios y Seguridad en Linux LP201 Ver.1. 1-64


Módulos importantes de Apache
● mod_perl ● mod_php ● mod_speling
Cifrado de comunicaciones con Apache
● Apache y SSL: https (port 443)
mod_ssl
/etc/httpd/conf.d/ssl.conf
● Configuración de cifrado:
Certificado: /etc/pki/tls/certs/your_host.crt
Llave privada: /etc/pki/tls/private/your_host.key
● Generación de Certificado/Llave: /etc/pki/tls/certs/Makefile
Certificado auto-firmado: make testcert
Solicitud de firma de certificado: make certreq
Proxy caché con Squid
● Squid soporta almacenamiento en cache de FTP, HTTP, y otros flujos de datos
● Squid enviará solicitudes SSL directamente al servidor origen o a otro proxy
● Squid incluye características avanzadas incluyendo listas de control de acceso, Jerarquía
de cache, y aceleración HTTP
● Tipo:Servicio gestionado SystemV
● Paquete: squid ● Puerto: 3128(squid), (configurable)
● Demonio: /usr/sbin/squid
● Script: /etc/init.d/squid
● Configuración: /etc/squid/*
Parámetros útiles del fichero /etc/squid/squid.conf
● http_port 3128
● cache_mem 16 MB
● cache_dir ufs /var/spool/squid 1024 16 256
● acl all src 0.0.0.0/0.0.0.0
● acl localhost src 127.0.0.1/255.255.255.255
● http_access allow localhost
● http_access deny all

Servicios y Seguridad en Linux LP201 Ver.1. 1-65


UNIDAD 9 SERVICIOS DE CORREO
ELECTRÓNICO

Servicios y Seguridad en Linux LP201 Ver.1. 1-66


Fundamentos del correo electrónico

Simple Mail Transport Protocol (SMTP)


● RFC-Protocolo estándar para conversar con MTA's
Casi siempre se utiliza el puerto TCP 25
SMTP extendido (ESMTP) provee características avanzadas para MTA's
Un MTA usa a menudo Local Mail Protocolo Transport (LMTP) para hablar a sí mismo
● Ejemplo MSP:
mail -vs 'Some Subject' student@stationX.example.com
● Usar telnet para solucionar problemas de conexiones SMTP

Cortafuegos y SMTP
● Capa de red con Netfilter inspección de estado
Entrante y saliente en puerto TCP 25
● Capa de aplicación para protección de retransmisión
MTA Interno para que los usuario conecten para enviar y recibir
Maquina inteligente saliente basado en DMZ que retransmite correo de el MTA interno
Concentrador correo entrante basado en DMZ que retransmite correo a el MTA interno
Reglas de filtrado dentro del MTA's DMZ o aplicaciones integradas(ej:Spamassassin)

Servicios y Seguridad en Linux LP201 Ver.1. 1-67


Mail Transport Agents (MTA)
● CentOS Linux incluye tres MTA's: Sendmail , Postfix (MTA por defecto), y Exim
● Características comunes
Soporte a virtual hosting
Provee re-intento automático para fallas de entrega y otras condiciones de error
Interoperable con Spamassassin
● Control de acceso por defecto
Sendmail y Postfix no tienen componentes setuid
Escucha solo en loopback
Reenvío esta des-habilitado
Utilizar alternatives para seleccionar MTA
● Descripción del sistema alternatives
Despliega o configura MTA preferido y paginas de manual basado en nombre genérico
Nombre genérico es un enlace a un enlace en /etc/alternatives/
Solo los enlace en /etc/alternatives/ son modificados
● Cambiando entre MTA's
Detener el actual MTA y des-habilitar arranque al inicio
alternatives --config mta y hacer una elección
Iniciar el nuevo MTA y permitir el arranque al inicio
● Interfaz Gráfica: paquete system-switch-mail-gnome
Introducción a la configuración de Postfix
● Tipo: Servicio gestionado System V
● Paquete: postfix
● Demonios: /usr/libexec/postfix/master y otros
● Script: /etc/init.d/postfix
● Puerto: 25 (smtp)
● Configuración: /etc/postfix/main.cf y otros
● Relacionados: procmail
Introducción a la configuración de Postfix
● /etc/postfix/main.cf

Servicios y Seguridad en Linux LP201 Ver.1. 1-68


Pares Llave=valor, son evaluados en el orden en que ellos aparecen
Espacio en blanco al inicio de linea es carácter de continuación
Llaves pueden ser usados como variables para posteriores pares de llave=valor
llave1=valor1
llave2=$llave1, valor2
● postconf
Desplegar por defecto: postconf -d
Desplegar actuales configuraciones no por defecto: postconf -n
Modificar main.cf: postconf -e llave=valor
Mostrar mapas de tipo soportados: postconf -m
Configuración de correo entrante/saliente de postfix
Configuración entrante Postfix
● Modificar /etc/postfix/main.cf
Escuchar en todas las interfaces
inet_interfaces = all
Especificar cada nombre y el alias por el cual el servidor puede ser referido
mydestination = $myhostname,localhost.$mydomain,localhost,$mydomain
● Agregar reglas Netfilter para permitir trafico SMTP
● Reiniciar postfix
Configuración Saliente Postfix
● CentOS provee por defecto un /etc/postfix/main.cf
Activa Postfix para actuar como un cliente MSP
Ninguna otra configuración adicional es necesaria para una sola maquina
Postfix automáticamente resuelve nombre de maquina local y dominio
● Para hacerse pasar como un dominio
myorigin = $mydomain
masquerade_exceptions = root

Servicios y Seguridad en Linux LP201 Ver.1. 1-69


Alias para correo entrante en Postfix
● Alias locales: /etc/aliases
● Alias Virtuales
1. Habilitar en main.cf
virtual_alias_maps = hash:/etc/postfix/virtual
2. Definir en /etc/postfix/virtual usando el mismo formato como en Sendmail
3. “Rehash” el archivo: postmap /etc/postfix/virtual
Reescritura de direcciones para correo saliente en Postfix
1. Habilitar en /etc/postfix/main.cf
● smtp en el nombre de clave indica sólo SMTP(no LMTP )
smtp_generic_maps = hash:/etc/postfix/generic
2. Definir en /etc/postfix/generic
paul@example.com paul@otherexample.com
david@example.com david.lastname@example.com
3. “Rehash” el archivo: postmap /etc/postfix/generic
Restricciones SMTP en Postfix, funcionamiento de Postfix
Restricciones SMTP en Postfix
1. Crear /etc/postfix/access
● Sin etiquetas la versión del archivo de acceso de Sendmail
● rehash usando postmap /etc/postfix/access
2. Editar main.cf
smtpd_TAG_restrictions = check_TAG_access hash:/etc/postfix/access, ...
● TAG es uno de sender, recipient, o client
● Ejemplo:
smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/access,
permit_mynetworks, reject_unauth_destination
Operación de Postfix
● Ajustes en main.cf
Nombres del Servidor: mydestination debe contener el nombre del servidor y alias

Servicios y Seguridad en Linux LP201 Ver.1. 1-70


Interfaces de escucha: inet_interfaces = all
Archivar todos los mensajes: always_bcc = address
● Ver intercambio SMTP: mail -v user@domain.tld
● Ver mensajes diferidos: postqueue -p
● Limpiar mensajes diferidos: postqueue -f
● Seguir los registros: tail -f /var/log/maillog
Procmail, un Mail Delivery Agent (MDA)
● Diferentes usos incluyen:
Ordenar el correo entrante en diferentes carpetas o archivos
Pre-procesamiento de correo
Iniciar un evento o programa cuando es recibido un email
Automáticamente reenvío de correo a otros
● Habilitando Procmail
Sendmail: habilitado por defecto
Postfix: modificar /etc/postfix/main.cf
mailbox_command = /usr/bin/procmail
Control de acceso en Procmail, configuración de Procmail
● Controles Iniciales
Política de SELinux restringe utilidades de correo para ciertos directorios
Procmail se ejecuta como usuario nobody
Procmail tiene como grupo mail
/var/spool/mail es pueden escribir root y el grupo mail
● Requerido: cambiar el binario procmail para ejecutar con setgid
chmod g+s $(cual procmail)
Introducción a la configuración de Procmail
● Los archivos de configuración se procesan en orden si es que existen
1. /etc/procmailrc
2. ~/.procmailrc
● Los elementos dentro de un fichero de configuración
Directivas: VERBOSE=yes

Servicios y Seguridad en Linux LP201 Ver.1. 1-71


Variables: LOGFILE=/var/spool/mail/procmail.log
Recetas: Inicie con un ”:0” linea y flags
Cero o mas coincidencia de lineas usando expresiones regulares
Una o más lineas de acción
Ejemplos de receta Procmail
:0*
^From.*joshua*
^Subject:.*ADSL
{
:0 c
! Jim@somedomain.org
:0:
ADSL
}
● paginas de manual: procmailex, procmailrc, procmail
Protocolos de recuperación de correo
● Post Office Protocol (POP3)
Todos los datos, incluyendo contraseñas, es pasado sin cifrar sobre puerto 110 TCP
Utilizar POP3S para proveer cifrado SSL de datos sobre puerto 995 TCP
● Internet Mail Access Protocol (IMAP)
Todos los datos, incluyendo contraseñas, es pasado sin cifrar sobre puerto 143 TCP
Utilizar IMAPS para proveer cifrado SSL de datos sobre puerto 993 TCP
● Dovecot soporta POP3, POP3S, IMAP, y IMAPS
Configuración de Dovecot
● Tipo: Servicio gestionado SystemV
● Paquete: dovecot
● Demonio: /usr/sbin/dovecot
● Script: /etc/init.d/dovecot
● Puertos: 110 (pop3), 995 (pop3s), 143 (imap), 993 (imaps)
● Configuración: /etc/dovecot.conf

Servicios y Seguridad en Linux LP201 Ver.1. 1-72


● Relacionados: procmail, fetchmail, openssl
Configuración Dovecot
● Escucha en todas las interfaces IPv6 y IPv4 por defecto
● Especificar protocolos en /etc/dovecot.conf
protocols = imap imaps pop3 pop3s
● Hacer una llave privada y auto firmar un certificado antes usando SSL
1. Confirmar fecha del sistema para evitar problemas de fecha
2. Revisar /etc/dovecot.conf para localización de llaves y certificados
3. Ejecutar make -C /etc/pki/tls/certs dovecot.pem
Crea un único archivo PEM conteniendo ambos la llave y el certificado
4. Copiar el nuevo archivo PEM a ambas localizaciones
Comprobar el funcionamiento del protocolo POP y/o IMAP
Verificando operación de POP
● Verificar la operación del servidor
Gráfica: Thunderbird y Evolution
Modo texto: Mutt y Fetchmail
mutt -f pop://user@server[:port]
mutt -f pops://user@server[:port]
También se puede usar telnet (POP3) o openssl s_client (POP3S)
Identificar problemas con la fecha del certificado o permisos
Verificando operación de IMAP
● Verificando operación del servidor
Gráfica: Thunderbird y Evolution
Modo Texo: Mutt y Fetchmail
mutt -f imap://user@server[:port]
mutt -f imaps://user@server[:port]
También se puede usar telnet (IMAP) o openssl s_client (IMAPS)
Identificar los problemas con la fecha del certificado o permisos

Servicios y Seguridad en Linux LP201 Ver.1. 1-73

También podría gustarte