Nociones basicas de seguridad en GNU/Linux Victor Leonel Orozco López Presentacion elaborada a partir del material de: Rene Mayorga - Debian-sv
¿Quien soy? ● En el software libre ● Usuario GNU/Linux desde 2003 (cualquiera que se imaginen) ● Tiempo completo desde 2006 (Gentoo) ● Administrador de sistemas desde el 2006 ● En software ● Certificado por tata consulting services como DBA en oracle ● Desarollo de aplicaciónes en J2EE desde el 2008 ● Experimentando siempre con free software (solaris, bsd y lo que venga) ● Miembro de lugusac, slgt y fundador del grupo de usuarios Linux de San Marcos ● Adicto a la cafeina, rss y la buena musica
Agenda ● ¿Que es GNU/Linux? ● ¿Es importante? ● Principios de seguridad ● Algunos consejos
GNU/Linux ● Sistema operativo ● Utilidades ● Un sistema libre inspirado en UNIX ● Cuatro libertades (compartir, estudiar, modificar y redistribuir)
Es importante ● Empresas como: – Google – Yahoo – Wordpress – Hi5 ● Todas estas empresas dan fe de que esto no es asi, incluso uds. podrian estar utilizando software libre
Asegurar al 100% un servidor ● ¿Como asegurar al 100% un servidor? – ¿Ideas?
Asegurar al 100% un servidor ● ¿Como asegurar al 100% un servidor? – ¿Ideas? ● Facil!!!. Desconectando el cable de energia y asegurandolo dentro de una caja fuerte.
Asegurar al 100% un servidor ● ¿Como asegurar al 100% un servidor? – ¿Ideas? ● Facil!!!. Desconectando el cable de energia y asegurandolo dentro de una caja fuerte. – Y aun asi podrian penetrar la caja y robar nuestra información
Principios de seguridad ● Principio # 0 ● Siempre seremos blanco de ataque.
Principios de seguridad ● Principio # 0 ● Siempre seremos blanco de ataque. – botnets – zombies – pr0n, ancho de banda
Principios de seguridad ● Principio # 1 ● El sistema operativo es tan seguro como nosotros querramos.
Principios de seguridad ● Principio # 1 ● El sistema operativo es tan seguro como nosotros querramos. – Pero hay sistemas que no ayudan ;). FacilidadSeguridad
Principios de seguridad ● Principio # 2 ● Pensar siempre en el *que necesito que haga* no que software voy a utilizar
Principios de seguridad ● Principio # 2 ● Pensar siempre en el *que necesito que haga* no que software voy a utilizar – Por ejemplo NO necesito chat, musica o ¿entorno grafico?, solo necesito que el software funcióne. – Los sistemas base y distribuciones normales son buena opción (debian, red hat)
Principios de seguridad ● Principio # 3 ● Nunca esta de más particionar
Principios de seguridad ● De lo comodo a lo incomodo / (raiz)
Principios de seguridad ● De lo comodo a lo incomodo / (raiz) /home /usr /tmp
¿Porque? ● ¿Ideas?
¿Porque? ● ¿Ideas? – Se propaga menos el daño – Mejor control – Para eso se hicieron las particiones – CONTROL DE PERMISOS
¿Porque? ● ¿Ideas? – Se propaga menos el daño – Mejor control – Para eso se hicieron las particiones – CONTROL DE PERMISOS
Permisos ● ¿Que son?
Permisos ● Permisos=¿Quien hace que? ● ¿Quien? ● Usuarios ● Grupo ● Otros ● ¿Que? ● Leer ● Escribir ● Ejecutar
¿Entonces como segmento? ● Proteger al usuario de si mismo /home * Escribir * Modificar * NO ejecutar
¿Entonces como segmento? ● Proteger al sistema del administrador /home * Escribir * Modificar * NO ejecutar /usr * Solo deberia Ser posible MIENTRAS INSTALAMOS
¿Entonces como segmento? ● Proteger al sistema del administrador /home * Escribir * Modificar * NO ejecutar /usr * Solo deberia Ser posible MIENTRAS INSTALAMOS /tmp * CUALQUIERA TIENE PERMISO * La preferida de Los hackers *NO ejecutar
¿Entonces como segmento? ● Proteger al sistema del administrador /home * Escribir * Modificar * NO ejecutar /usr * Solo deberia Ser posible MIENTRAS INSTALAMOS /tmp * CUALQUIERA TIENE PERMISO * La preferida de Los hackers *NO ejecutar /var * Similar a la Anterior * El sistema SI Necesita escribir *NO ejecutar
Lo que logre ● Proteger al usuario de si mismo ● Proteger las rutas importantes para que los hackers no modifiquen ejecutables o reemplacen los existentes (ro) ● La idea es que solo el administrador pueda administrar y editar este esquema DE MANERA TEMPORAL
Software recomendado ● Planificar antes de instalar e instalar SOLO LO ESTRICTAMENTE NECESARIO
Algunos consejos ● Mis usuarios son una de mis mayores amenazas
Algunos consejos ● Mis usuarios son una de mis mayores amenazas – Cracklib para que el usuario no utilice contraseñas sencillas
Algunos consejos ● Mis usuarios son una de mis mayores amenazas – Cracklib para que el usuario no utilice contraseñas sencillas – De ser posible (y si el $$$ lo permite) utilizar kerberos
Algunos consejos ● Mis malas practicas tambien son una amenaza
Algunos consejos ● Mis malas practicas tambien son una amenaza – /etc/passwd el esqueleto de usuarios
Software recomendado ● Mis malas practicas tambien son una amenaza – /etc/passwd el esqueleto de usuarios ● Hay usuarios que no necesitan shell ● /bin/false
Software recomendado ● Mis malas practicas tambien son una amenaza – /etc/passwd el esqueleto de usuarios ● Hay usuarios que no necesitan shell ● /bin/false – No necesito superpoderes 24/7
Algunos consejos ● Mis malas practicas tambien son una amenaza – /etc/passwd el esqueleto de usuarios ● Hay usuarios que no necesitan shell ● /bin/false – No necesito superpoderes 24/7 ● No solo ROOT puede administrar
Algunos consejos ● Mis malas practicas tambien son una amenaza – /etc/passwd el esqueleto de usuarios ● Hay usuarios que no necesitan shell ● /bin/false – No necesito superpoderes 24/7 ● No solo ROOT puede administrar ● adm puede revisar status y yo puedo ser parte de adm
Algunos consejos ● Mis malas practicas tambien son una amenaza – /etc/passwd el esqueleto de usuarios ● Hay usuarios que no necesitan shell ● /bin/false – No necesito superpoderes 24/7 ● No solo ROOT puede administrar ● adm puede revisar status y yo puedo ser parte de adm ● Tener cuidado a quien dejo en wheel
Algunos consejos ● Cuidar mi acceso remoto, puede ser de dos filos
Algunos consejos ● Cuidar mi acceso remoto, puede ser de dos filos – Cambiar el puerto no funcióna (nmap)
Algunos consejos ● Cuidar mi acceso remoto, puede ser de dos filos – Cambiar el puerto no funcióna (nmap) – No permitir root por ssh, para eso es mejor estar frente a la pc
Algunos consejos ● Cuidar mi acceso remoto, puede ser de dos filos – Cambiar el puerto no funcióna (nmap) – No permitir root por ssh, para eso es mejor estar frente a la pc – Timeout considerable
Algunos consejos ● Cuidar mi acceso remoto, puede ser de dos filos – Cambiar el puerto no funcióna (nmap) – No permitir root por ssh, para eso es mejor estar frente a la pc – Timeout considerable – SOLO v2 ssh (jamas ssh 1, mucho menos telnet)
Algunos consejos ● Si tengo sospecha revisar siempre: – Los procesos (ps -fea) – Los puertos (netstat -ptua) – Cualquier cosa reciente (who, history), la paranoia a veces es buena
Algunos consejos ● Aislar cuando sea posible
Algunos consejos ● Aislar cuando sea posible – Jails (jaulas) de chroot
Algunos consejos ● Aislar cuando sea posible – Jails (jaulas) de chroot – Virtualización (lo que esta de moda)
Software ● Script kiddies – fail2ban – sshguard – scponly – samhain – syslog
Algo más ● Firewalls ● Tcpwrappers ● Backups ● Ldap, radius, kerberos ● Etc.
Gracias :D ● ¿Dudas, comentarios, sugerencias? – Blog: – Mail: ● Esta licencia se encuentra bajo una licencia libre (GFDL v2) en – – Información: