Cuanta más información almacenamos en Alfresco, más necesidades de protegerla tenemos. En este webinar haremos un repaso sobre los consejos de seguridad más importantes a tener en cuenta en Alfresco, tanto a nivel de aplicación como a nivel de servidor, red e intrusiones.
1. Consejos de seguridad
con Alfresco
Toni de la Fuente
Senior Solutions Engineer
twitter: @ToniBlyx - blog: blyx.com
2. 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
4. 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.
6. 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 Collaboration Web Content Records Email
Management Management Management Archive
¿Interfaces? Número de…? Personalización?
7. Depende de la arquitectura de red
B
A
Share
Alfresco
App Srv
DataBase
Content
Index
Store
9. 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/
10. 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.
13. ¿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.
15. 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)
16. 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/
17. 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.
18. 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.
19. 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)
20. 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>!
22. 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
24. 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
27. 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
29. 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?
30. ¿Preguntas?
Toni de la Fuente
toni.delafuente@alfresco.com
Foro en español:
http://forums.alfresco.com/es
31. 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