consejos de seguridad con alfresco
Post on 18-Dec-2014
12.729 Views
Preview:
DESCRIPTION
TRANSCRIPT
Consejos de seguridad con Alfresco Toni de la Fuente Senior Solutions Engineer
twitter: @ToniBlyx - blog: blyx.com
Contenidos
• Introducción • Ciclo del proyecto y seguridad
o Planificación o Instalación o Configuración y fortificación o Mantenimento o Monitorización y auditoría
• Otras tareas relacionadas con la seguridad
• Conclusiones
* No los vamos a cubrir en esta sesión
Introducción
Introducción
• ¿Por qué es importante la seguridad en Alfresco? o Es importante si tus contenidos lo son.
• Si la caída de Alfresco te supone un problema económico para tu organización, la seguridad del mismo es importante.
• La seguridad es un proceso no un producto. • Continuidad de las operaciones, protección,
integridad, privacidad. • Llevar al máximo el MTBF, garantizar el mínimo MTTR
posible, contemplados en el Plan de Seguridad de la organización, Plan de contingencias y Plan de recuperación de desastres.
Ciclo del Proyecto y Seguridad
Planificación y análisis previo
• ¿Qué debo securizar? Depende… o Necesidades del proyecto o Interfaces o Usuarios, aplicaciones o ambos o Personalización o Arquitectura, alta disponibilidad y escalabilidad
Document Management
Records Management
Collaboration Web Content Management
Email Archive
¿Interfaces? Personalización? Número de…?
Depende de la arquitectura de red
Share
App Srv
Alfresco
Con
tent
S
tore
Inde
x
Dat
aBas
e
A
B
Instalación
Buenas prácticas y recomendaciones 1/2
• Usar un usuario no “root” o Configura todos los puertos por encima del 1024
• Evitar contraseñas por defecto (admin, db). • Cambiar certificados y claves por defecto
de SOLR. o Usa keytool o tus propios certificados. o installRoot/alf_data/solr/CreateSSLKeystores.txt
• Permisos de los ficheros de configuración, contentstore, índices y logs. Nadie salvo el usuario de la aplicación debe poder acceder. o chown –R alfresco:alfresco installRoot/ o chmod –R 600 installRoot/
Buenas prácticas y recomendaciones 2/2
• Antes de realizar la instalación usa Alfresco Environment Validation Tool para evitar servicios y/o puertos conflictivos.
• Activa SSL siempre que sea posible: o No uses certificados autofirmados para producción. o Comprueba la fortaleza del certificado en:
• https://www.ssllabs.com/ssldb/analyze.html
• Usa Apache (u otro) para proteger el servidor de aplicaciones y los servicios.
• En Linux puedes usar SELinux • Cuando sea posible, usar el bundle para tener los
binarios externos controlados y evitar una posible suplantación.
Configuración post instalación
¿Qué puertos debo abrir y conocer? IN
¿Qué puertos debo abrir y conocer? OUT
* Habría que permitir el tráfico a XAM y a servicios remotos de Facebook, Twitter,LinkedIn, Slideshare, Youtube, Flickr o Blogs, en caso de usar el Publishing Framework.
Control y revisión
• Controla los procesos y los puertos que usa el sistema (Linux):
# netstat -tulpn|grep -i java!!tcp 0 0 0.0.0.0:50500 0.0.0.0:* LISTEN 8591/java !tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 8591/java !tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 8591/java !
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 8591/java !tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 8591/java !tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 8591/java !tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 8591/java !tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 8591/java !tcp 0 0 0.0.0.0:7070 0.0.0.0:* LISTEN 8591/java !udp 0 0 0.0.0.0:137 0.0.0.0:* 8591/java !
Activación de SSL para los servicios
• HTTP – HTTPS o Appliance con soporte SSL offloading o Activar HTTPS en el frontal Apache o Activar HTTPS en Servidor de Aplicaciones
• FTP – FTPS o Ver documentación oficial
• SharePoint (jetty) SSL o Así evitarás problemas de los usuarios (MS Office) o Ver documentación oficial
• SMTP – SMTPS: tanto IN como OUT • IMAP y JGroups (workarounds)
Configuración post instalación
• Configuración de IPtables para redireccionar puertos inferiores a 1024: o Ejemplo para FTP:
• iptables -t nat -A PREROUTING -p tcp --dport 21-j REDIRECT --to-ports 2121
o http://wiki.alfresco.com/wiki/File_Server_Configuration
• Cambia las credenciales de JMX o http://blyx.com/2011/12/20/persistencia-en-las-
credenciales-jmx-de-alfresco/
• Asegúrate que los logs están donde tu quieres o http://blyx.com/2011/06/02/consejos-sobre-los-logs-en-
alfresco/
Configuración post instalación
• ¿Vas a usar autenticación externa? o Cifra la comunicación entre Alfresco y el LDAP/AD o
Sistema de SSO (usa el puerto 636 TCP para LDAPS)
• Desactiva los servicios que no necesites: o ftp.enabled=false o cifs.enabled=false o imap.server.enabled=false o nfs.enabled=false o webdav: se desactiva comentando las opciones
correspondientes en tomcat/webapps/alfresco/WEB-INF/web.xml
o SharePoint: no instales el módulo si no lo necesitas.
Configuración post instalación
• Configuración de las copias de seguridad o Backup Lucene 2 AM
• installRoot/alf_data/backup-lucene-indexes o Backup SOLR 2AM Alfresco core y 4AM Archive core.
• installRoot/workspace-SpacesStore • installRoot/archive-SpacesStore
o Backup SQL. o Backup contentStore.
• Considera el uso de snapshots de LVM • Recuerda que se pueden hacer backup de sitios con:
o http://code.google.com/p/share-import-export/
• Prueba la recuperación como medida preventiva de forma asidua y planificada.
• Incorpora el procedimiento comprobado de recuperación de Alfresco a tu plan de contingencia.
• Contempla usar Replication Service en el plan de recuperación de desastres.
Configuración post instalación
• Desactivar usuario invitado (Guest): o Para NTLM-Default:
• alfresco.authentication.allowGuestLogin=false (true por defecto)
o Para pass-through: • passthru.authentication.guestAccess=false (false por
defecto) o Para LDAP/AD:
• ldap.authentication.allowGuestLogin=false (true por defecto)
• Limitar el uso por usuarios y estado del repositorio: o server.maxusers=-1 (-1 no limit) o server.allowedusers=admin,toni,bill (vacio para todos) o server.transaction.allow-writes=true (false para poner todo
el sistema en solo lectura)
Configuración post instalación
• Desactivar papelera de reciclaje: o Crear un fichero *-context.xml con el siguiente contenido:
<bean id="storeArchiveMap" class="org.alfresco.repo.node.StoreArchiveMap">! <property name="archiveMap">! <map>!! ! </map>!
</property>! <property name="tenantService">! <ref bean="tenantService" />!
</property>! </bean>!
Mantenimiento
Mantenimiento
• Revisión diaria de los log y registro de auditoría.
• Revisión diaria del backup. • Borrado de los ficheros huérfanos,
rotación de los logs, limpiado de temporales. o Script en cron más info aquí:
• http://www.fegor.com/2011/08/mantenimiento-diario-de-alfresco.html
Monitorización y Auditoría
Monitorización y Auditoría
• JMX o Jconsole o VisualVM
• Hyperic o http://blyx.com/2009/11/19/monitoring-alfresco-
nagiosicinga-hyperic-auditsurf-jmx-rocks/
• Nagios/Icinga o http://blyx.com/2009/11/19/monitoring-alfresco-
nagiosicinga-hyperic-auditsurf-jmx-rocks/
• Javamelody o http://blyx.com/2010/09/13/monitoring-alfresco-con-
javamelody/
• AuditSurf
Monitorización y Auditoría
• Auditoría de logins fallidos: audit.enabled=true audit.tagging.enabled=true !audit.alfresco-access.enabled=true!audit.alfresco-access.sub-events.enabled=true !audit.cmischangelog.enabled=true
Saber que se está auditando:
$ curl -u admin:admin http://localhost:8080/alfresco/service/api/audit/control
Renombrar: tomcat/shared/classes/alfresco/extension/audit/alfresco-audit-example-login.xml.sample
$ curl -u admin:admin "http://localhost:8080/alfresco/service/api/audit/query/AuditExampleLogin1/auditexamplelogin1/login/error/user?verbose=true"!{! "count":5,! "entries": ! [ { "id":7,! "application":"AuditExampleLogin1",! "user":null,! "time":"2012-03-05T19:20:48.994+01:00",! "values":! { "\/auditexamplelogin1\/login\/error\/user":"toni"! } } !
Otras tareas relacionadas con la seguridad
Otras tareas o herramientas relacionadas • Evitar fugas de información mediante metadatos. • Considera usar el nuevo tipo “d:encrypted” • Añadir checksum a los contenidos • Bloqueo de usuario tras fallos de autenticación • Cambiar la ruta de visibilidad de webdav • Timeout de sesión de Explorer y Webdav • Timeout de sesión en Share • Timeout de sesión en CIFS • Poner CIFS y FTP en solo lectura. • Más herramientas en “Alfresco Security Toolkit” en Google
Code. • Considerar usar un escaner de red para evitar
almacenamiento de virus y troyanos. • Mod_security para limitar el tamaño de ficheros a subir o
interceptar contenidos. • Filtra qué aplicaciones acceden a los servicios/API remotos
Conclusiones
Conclusiones
• Actualmente disponemos de herramientas para hacer de nuestra plataforma un sistema seguro.
• No debemos tomar estos consejos como una tarea aislada.
• Recuerda que la seguridad es un proceso continuo. • Temas a tratar en futuros webinars:
o Seguridad y desarrollo. o Auditoría. o Usuarios, roles y permisos. o Acegi. o Creación de subsistemas de Autenticación (webinar realizado) o SSO con CAS, Siteminder, OpenSSO, JoSSO, ForgeRock, Oracle Identity
Manager, etc. o Integración con PKI, firma digital, portafirmas, cifrado, etc.
• ¿Alguna idea?
¿Preguntas?
Toni de la Fuente toni.delafuente@alfresco.com Foro en español: http://forums.alfresco.com/es
Contacta con el equipo de Alfresco en España
http://www.alfresco.com/es/about/contact/
toni.delafuente@alfresco.com
http://blyx.com Twitter: @ToniBlyx
The open platform for social content management.
top related