Seguridad en equipos Linux

Slides:



Advertisements
Presentaciones similares
Instalación de wordpress
Advertisements

Introducción a Linux Lic. Gonzalo Pastor.
Uso de la evaluación y monitoreo. Objetivos Entender las técnicas de evaluación y monitoreo del uso de un recurso electrónico Discutir algunos lineamientos.
Diseño de Bases de Datos
Profesor: Lic. Albino Petlacalco Ruiz M.C. Jose David Alanis Urquieta
Cuentas de Usuarios Como Mac OS X es un verdadero sistema operativo multiusuario, por tanto una computadora puede usar mas de un usuario, integrando.
Carlos Vicente Servicios de Redes Universidad de Oregón
Listas de Acceso Módulo 11.
0/ Localizar la intranet en los tablet del alumno. Como la Intranet está instalada en algunos ordenadores, debemos localizarla primeramente para poder.
PROTOCOLOS Y ESTANDARES DE RED
Tema 5 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto
Programación II Ing. Diego J. Arcusin 3 – Uso del Shell.
Shorewall GNU/Linux Integrantes: Jhonatan Ruiz Miguel Galecio Iván Alvarado.
INSTALACIÓN Y MANTENIMIENTO SO ADMINISTRACIÓN SO LINUX.
E NRUTAMIENTO E STÁTICO Prof.:Sergio Quesada Espinoza Conf. Dispositivos de Red.
Samba(SMB)Para Linux. Federico Coria 3 Info..
ARIS-G: Software de Monitoreo Geomecánico de Superficies
Sistema de Ficheros, Permisos de archivos y Propietarios de los Mismos.
Servidores de nombres de dominio (DNS):
4.3. Privilegios de usuarios
BASE DE DATOS DISTRIBUIDAS
“ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA PARA EVITAR ATAQUES AL PROTOCOLO ARP EN REDES DE ÁREA LOCAL” Andre Ortega A. Xavier Marcos R. 1.
FIREWALL.
FHS: organización de directorios en Linux
1.Firewall 2.Herramientas de detección de intrusión 3.Recuperación de datos PREVENCIÓN/DETECCIÓN Y RECUPERACIÓN ALARCON BELLO MIGUEL ANGEL.
FIREWALLS.
POP3 UCLV Mapas Conceptuales para la enseñanza de Redes de Computadoras.
Daniel E. Coletti CaFeLUG / LUGAr GNU/Linux y ``La Banda Ancha'' 1era Conferencia Abierta de GNU/Linux CaFeLUG – Capital Federal GNU/Linux Users Group.
Como Instalar Un Access Point
LISTAS DE CONTROL DE ACCESO (ACL)
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
File Ownerships and Permissions. Propiedades de Archivos regulares y Permisos.
Conferencia “IPv6 en Chile” NIC Chile un caso de adopción de IPv6 Ejemplos de configuraciones Septiembre 2007.
Es una herramienta que nos permite automatizar tareas de tipo rutinario de nuestro sistema. Por medio de una página de diseño tipo Web, Webmin nos permite.
Para la instalación completa se deberá contar con las siguientes aplicaciones: Servidor APACHE | versión
66.69 Criptografía y Seguridad Informática FIREWALL.
LOS SERVIDORES DHCP. Acerca del protocolo DHCP DHCP (acrónimo de Dynamic Host Configuration Protocol, que se traduce Protocolo de configuración dinámica.
Filtrado de paquetes y NAT. Aprendizajes esperados Contenidos: Filtrado de paquetes NAT.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Servidores.
Servidores LAMP (Linux Apache MySQL PHP) ING CARLOS EDUARDO PUENTES F. UNIVERSIDAD MANUELA BELTRAN.
Access Control List Modulo 11, Semestre 2 CCNA..
Aprenda MySQL en 120 minutos Tutorial. Dirigido a...
Ing. Elmer Raúl Aro Valderrama
Usuarios y privilegios MySQL. Cuentas de usuario ALTAS:  CREATE USER IDENTIFIED BY ‘contrasena’; Si no se pone ningún host, interpreta.
Sistemas Operativos de Red (SOR) Unidad I Propiedades y Permisos (Repaso) Cambio de Permisos de Archivos Cambio de Propiedad de Archivos Propiedad de Directorios.
1 Seguridad de los sistemas de ficheros Ampliación de Sistemas Operativos Trabajo realizado por: –Jose Yeray Suárez Perdomo.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Introducción a ataques de tipo inyección: Inyección SQL
Propiedades de Archivos regulares y Permisos  Linux es un entorno multiusuario  Varias personas pueden estar trabajando al mismo tiempo ◦ Ejemplo 
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
Introducción a los modelos de simulación y análisis de datos en Física de Partículas Isidro González Caballero (
INSTRUCCIONES. El alumno, seguirá los pasos que se le va indicando a continuación. En el recuadro en blanco, debe ir añadiendo un pantallazo con la.
Prof. Daniel Obando Fuentes
MySQL LENGUAJE SQL.
Luis Villalta Márquez. Servidores de nombres de dominio (DNS)
Unidad 4 SEGURIDAD 4.1 Tipos de usuarios
Luis Villalta Márquez Servicios SFTP/SCP. SFTP SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo.
UD 3: “Implantación de técnicas de seguridad remoto. Seguridad perimetral.” Arquitecturas de cortafuegos Luis Alfonso Sánchez Brazales.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
SEGURIDAD EN SERVIDORES WEB (APACHE).
Unidad 4. Servicios de acceso remoto
Iptables Introduccion Comandos Basicos Ejemplos.
Caracteristicas Apache
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
Benemérita Universidad Autónoma de Puebla Comandos Unix Ivan Rosas Torre.
Profesor: Ángel Juárez Palacios Alumno:Luis Otañez Rosete.
INSTALACION LAMP Linux sistema operativo Apache servidor web MySQL gestor de Bases de Datos P lenguaje de programación Copyright by Patrick Piñarete1.
LISTAS DE CONTROL DE ACCESO
Ing. Sanchez Castillo Eddye Arturo Escuela Académica Profesional de Ingeniería de Sistemas.
TEMA 1 Introducción a la administración de los sistemas operativos Msc. Rina Arauz.
Transcripción de la presentación:

Seguridad en equipos Linux Sergio A. Becerril SSI / UNAM-CERT

¿Para quién es este taller? Administradores de sistemas UNIX/Linux Usuarios de sistemas UNIX/Linux con alguna experiencia Entusiastas de la seguridad informática

Temario Usuarios y grupos Permisos sudo Minimización de servicios Firewall Apache MySQL ssh Monitoreo

Qué *no* se verá en el taller Minimización de paquetes Centralización de configuraciones Esquemas distribuidos/balanceados HIDS Análisis de bitácoras _________ “a fondo” …

Seguridad en equipos Linux Usuarios y grupos

Conceptos básicos Archivos Superficie de ataque Contraseñas seguras /etc/passwd -- No relativo a la contraseña /etc/shadow -- Relativo a la contraseña /etc/group -- Relaciones grupo(s)/usuario(s) Superficie de ataque Menos usuarios es mejor Contraseñas seguras Más (caracteres/clases) es mejor

Manejo de cuentas Desplegar info Acción inmediata passwd -S [cuenta] chage –l <cuenta> Acción inmediata Expirar pw: passwd -e <cuenta> Deshabilitar pw: passw -l | usermod -L Deshabilitar cuenta: usermod -e 1 <cta> Implementación de políticas passwd (-n, -x, -w, -i) usermod (-e, -f, -s) chage

Manejo de cuentas /etc/passwd /etc/shadow /etc/group usuario:pw:uid:default gid:desc:home:shell /etc/shadow usuario:[!]pw:ultimoCambio*:min:max:warn:gracia:dis*: (*días desde 1970) /etc/group grupo:pw:gid:usuario[,usuario…]

Contraseñas ¿Qué es una contraseña “segura”? Pensemos en “más vulnerable” o “menos vulnerable” Vulnerabilidades de las contraseñas Ataques de diccionario (ya obtenido un shadow, p.ej.) Ataques de fuerza bruta (ya obtenido un shadow, p.ej.) Post-it

passwdqc Implementa (algunas) políticas de contraseña Fácil configuración: [config=ARCHIVO] min=N0,N1,N2,N3,N4 max=# passphrase=# match=# similar=permit|deny random=#[,only] enforce=none|users|everyone [non-unix] retry=# [ask_oldauthtok[=update] | use_first_pass] [check_oldauthtok] [use_authtok]

Seguridad en equipos Linux Permisos

Conceptos básicos Objetivo: mínimo privilegio necesario Al César lo que es del César… y ni un denario más Todo “archivo” en UNIX tiene permisos rwx r-x r-x carácter usuario grupo otros 7 5 5 octal Modificación de permisos: chmod [opts] <modo> <archivo>

chmod [4|2]xxx | [u|g]+s <archivo> SetUID, SetGID Bits para controlar archivos ejecutables Permiten la ejecución con los privilegios del usuario o grupo dueño, respectivamente. chmod [4|2]xxx | [u|g]+s <archivo>

Permisos sobre directorios Lectura Permite listar archivos en el directorio Ejecución Permite leer archivos en el directorio SetGID Los archivos creados en el directorio tendrán de grupo el del directorio (no el del creador). Los subdirectorios heredarán el bit SetGID. *SetUID no tiene interpretación en directorios en Linux

Sticky bit En Linux solo aplica a directorios Para todos los archivos dentro del directorio, solo su dueño (y el dueño del directorio) pueda renombrarlo o borrarlo.

umask <máscara> Establece permisos predeterminados para el proceso en el que se ejecuta. Incrustado en archivos de inicio de sistema, afecta los permisos predeterminados globales. umask <máscara>

umask Escrito simbólicamente, funciona como guía Define qué permite umask u=rwx,g=rx,o=rx Escrito en octal, funciona como filtro Define qué impide umask 22

Seguridad en equipos Linux sudo

Conceptos básicos Delegación de privilegios “sin root” Modalidad con y sin contraseña Last match and exit Terriblemente desperdiciado

sudoers Archivo de configuración (usualmente bajo /etc) Sintaxis básica: aliases (listas), defaults (opciones) y especificaciones (quién puede hacer qué) La sintaxis del man… no ayuda mucho.

Aliases De usuario: nombres, #uid, %grupos, %#gid, … De runas (identidades asumidas): ib. De hosts: hostname, dirección IP, red, … De comando: comando*, directorio, sudoedit * Con parámetros, parámetros opcionales, o forzando sin parámetros Todos los elementos de los aliases soportan negación (!) y se separan con coma

Defaults Defaults [@ host_list] [ : user_list] [ ! cmd_list] [ > runas_list] parámetro [+|-]=valor[,parámetro…] !parámetro ¿Qué parámetros (opciones de configuración) hay? Más de 100 (consultar documentación, ‘sudo options’)

user_list host_list = cmd_SPEC_LIST [: host_list = cmd_SPEC_LIST] Especificaciones user_list host_list = cmd_SPEC_LIST [: host_list = cmd_SPEC_LIST] ellos aquí pueden… … y también… Esto implica que podemos tener especificaciones para el mismo usuario en diferentes hosts. sudo no es centralizable*, pero sí podemos utilizar el mismo archivo en múltiples equipos. * Excepto bajo LDAP

…¿y qué es el “cmd_SPEC_LIST”? Uno o más cmd_SPEC (separados por comas), que a su vez definen los comandos… y otros “detalles” cmd_SPEC: [(runas_list[:runas_list])] [tag:[tag...]] cmd_list El (opcional) segundo runas_list se utiliza para hacer sudo de grupo Hay ocho tags: NOPASSWD, PASSWD, NOEXEC, EXEC, SETENV, NOSETENV, LOG_INPUT, NOLOG_INPUT, LOG_OUTPUT y NOLOG_OUTPUT

Conjuntando… ¡Y aún faltaron más opciones! user_list host_list = [(runas_list[:runas_list])] [tag:[tag...]] cmd_list ellos aquí como ellos de esta manera pueden… [,[(runas_list[:runas_list])] [tag:[tag...]] cmd_list …] y también… como ellos de esta manera pueden… La sintaxis completa es muy compleja Desmenuzando, es más sencilla ¡Y aún faltaron más opciones!

Ejemplos sergio ALL = (ALL) NOPASSWD:ALL sergio kuechenberg = vi El usuario sergio puede ejecutar todos los comandos en todos los equipos con privilegios de root, sin necesidad de escribir su contraseña (!) sergio kuechenberg = vi El usuario sergio puede ejecutar vi en kuechenberg con privilegios de root, previa introducción correcta de su contraseña (!!) sergio kuechenberg = (www-data) vi, (root) NOPASSWD:less,cat El usuario sergio puede ejecutar vi en kuechenberg con privilegios de www-data, previa introducción correcta de su contraseña; además puede ejecutar less y cat (también en kuechenberg) con privilegios de root, sin necesidad de escribir su contraseña (…)

No es lo mismo… sergio kuechenberg = (www-data) vi, (root) NOPASSWD:less,cat sergio kuechenberg = (www-data) vi : buoniconti = (root) NOPASSWD:less,cat

Minimización de servicios Seguridad en equipos Linux Minimización de servicios

Conceptos básicos ¿Sabes realmente qué está ejecutándose en tu equipo? Superficie de ataque Mientras más procesos, más lugares donde “picar” Los sysadmins también son personas Mientras más procesos, más difícil reconocer irregularidades

Baseline Un estado “normal” con el cuál comparar O también, un estado “ideal” al cual llegar Mucho más sencillo “desde cero” a producción, que viceversa. Puede estar predefinido Políticas Estándares Post-its del sysadmin anterior

De producción al nirvana ¿Qué estamos ejecutando? RedHat (y variantes): chkconfig Todos los demás: netstat -natp ps -fea find -name “S*” /etc/rc`runlevel`.d/ Más tiempo en producción – menos confiabilidad

Eliminar servicios innecesarios RedHat chkconfig Todos los demás: insserv rm /etc/rc#.d/S##<servicio> /bin/kill -s 15 <proceso>, /bin/kill -s 2 <proceso> /bin/kill -s 9 <proceso>

Seguridad en equipos Linux firewall

Conceptos básicos Buena idea en general, indispensable en servidores Cuidar las entradas, pero también las salidas Tres tipos básicos: de paquetes, de estado, de contenido

iptables Disponible en *todas* las distribuciones de Linux Permite modificar las reglas del firewall del kernel (i.e. iptables no es un firewall) Establece tablas de cadenas de reglas de filtrado

Breviario TCP/IP

Esquema completo

Simplificado En la entrada, prerouting tiene prioridad* En la salida, postrouting siempre se ejecuta al final * Excepto sobre conntrack

Conntrack Convierte a iptables en un firewall de estado (-m state …) Monitorea solo ciertos protocolos Depende de módulos de kernel (usualmente, pero no siempre, montados “de fábrica”)

[especificación] <acción> Sintaxis /ruta/a/iptables [-t tabla] <-operación> <cadena> <regla> raw, mangle, filter, nat, <creadas por el usuario> Add, Delete, Insert, Policy*, … prerouting (raw, mangle, nat); input (mangle, filter); forward (mangle, filter); output (todas); postrouting (mangle, nat) [especificación] <acción> *en regla especificar ACCEPT o DENY

[ <-j [ACCEPT|DROP|QUEUE|RETURN]> | <-g cadena> ] Reglas Especificación Define el paquete de interés [-s origen] [-d destino] [-p proto] [-i int. ent.] [-o int. sal.] [--sport pto. ent.] [--dport pto. sal.] [-m …] Acción Define el comportamiento del firewall, de coincidir el tráfico observado con la especificación [ <-j [ACCEPT|DROP|QUEUE|RETURN]> | <-g cadena> ]

Seguridad en equipos Linux Apache

Conceptos básicos Más del 60% de sitios web 90%+ en Linux Soporta múltiples CGI, módulos Amplia superficie de ataque Compleja configuración httpd.conf, apache2.conf, sites-enabled, …

Niveles de configuración Generales httpd.conf De sitio <VirtualHost> … </VirtualHost> Usualmente, sites-enabled/sitio De carpeta Archivos .htaccess Requiere AllowOverride en VirtualHost

Configuraciones útiles ServerName www.sitio.com UseCanonicalName on ServerSignature off ServerTokens Prod <Directory “/”> Order allow, deny Deny from all … </Directory>

Configuraciones útiles Options -Indexes -FollowSymlinks … Order Allow, Deny Allow from … Deny from… Order Deny, Allow

Seguridad en equipos Linux MySQL

Conceptos básicos Parte esencial de LAMP MySQL != phpMyAdmin Rápido, escalable, comercial Usualmente, solo requiere localhost

my.cnf -- [mysqld] bind-address=127.0.0.1 set-variable=local-infile=0 Deshabilita acceso remoto set-variable=local-infile=0 Deshabilita lectura a archivos log =/var/log/mylogfile Habilita bitácoras

Renombrar root mysql> RENAME USER root TO new_user; (5.0.2+) mysql> use mysql; mysql> update user set user="new_user" where user="root"; mysql> flush privileges; (inferiores)

Más tips mysql> use mysql; mysql> select * from users; mysql> show grants for ‘root’@’localhost’; mysql> drop database test; mysql> select * from mysql.user where user=""; Si no regresa vacío: mysql> DROP USER "“;

Seguridad en equipos Linux ssh

Tips (muy breves!) Deshabilitar acceso root Cambiar puerto 22 Usar llaves privadas (con ssh-agent) Deshabilitar port forwarding

Seguridad en equipos Linux monitoreo

Más tips! Bitácora no monitoreada = bitácora inútil No te conformes con un baseline Si tienes recursos, simplifica (e.g. Splunk) Apóyate de tu experiencia, confía en tu instinto

Finalmente… Actualiza, actualiza, actualiza La flojera es tu amiga Nada con “security” es opcional La flojera es tu amiga Scriptea todo Asume tu rol Los usuarios no siempre tienen la razón No eres Dios Nadie nace sabiendo; preguntar no te hace menos

Gracias! Sergio A. Becerril sab0403@gmail.com http://sergiob.org