LinShare est une application de partage de fichiers sécurisés libre et gratuite, développée et distribuée par l’entreprise Linagora selon les méthodes de développement du logiciel libre/open source.
LinShare permet la mise en place d’une plate-forme de partage de fichiers, avec une contrainte forte de sécurité, entre les collaborateurs d’une entreprise mais également avec des correspondants externes. (Src : Wikipedia)
Sources : http://www.linshare.org/
Pré-Requis : Debian Squeeze à Jour
1 – Installation des pré-requis
aptitude install tomcat6 tomcat6-admin sun-java6-jre apache2 subversion postgresql
Appuyer sur [TAB] puis sur [ENTREE]
Appuyer sur [TAB] puis sur [ENTREE] (Si vous acceptez la licence) !
2 – Installation de la base de données
Linshare a besoin d’une base de données pour fonctionner. Nous allons utiliser PostgreSQL. Il va falloir créer deux bases de données, linshare et linshare_data.
2-1 Création d’un utilisateur
Nous allons créer un utilisateur linshare pour la base PostgreSQL
Se connecter en utilisateur postgresql
su - postgres
Lancer l’interpréteur PostgreSQL
psql
Saisir les commandes suivantes
CREATE USER linshare; ALTER USER linshare with password 'CHOISIRMOTDEPASSE';
2-2 Création des bases
Toujours en utilisateur Postgres, saisir dans l’interpréteur PostgreSQL les commandes suivantes.
CREATE DATABASE linshare OWNER linshare encoding 'UTF-8'; CREATE DATABASE linshare_data OWNER linshare encoding 'UTF-8'; GRANT ALL ON DATABASE linshare to linshare; GRANT ALL ON DATABASE linshare_data to linshare;
Quitter l’interpréteur
\q
Revenir en root
exit
2-3 Configuration des accès PostreSQL
Afin de nous identifier en tant qu’utilisateur PostgreSQL linshare, saisir les lignes suivantes dans le fichier pg_hba.conf
METTRE DES TABULATIONS ENTRE LOCAL ET ALL ET ALL PUIS DEUX TABULATIONS ENTRE ALL ET PASSWORD
nano /etc/postgresql/8.4/main/pg_hba.conf
local all all password
Redémarrer les services PostgreSQL
/etc/init.d/postgresql restart
Tester la connexion à la base
psql -U linshare linshare -W
Quitter la base
\q
2-4 Insertion des schémas SQL
Pour faire fonctionner linshare, il faut insérer les schémas SQL fourni dans les sources. Il faut récupérer les sources via Subversion.
Création d’un dossier temporaire.
mkdir /tmp/linshare
Se déplacer dans ce dossier
cd /tmp/linshare
Récupération des sources
svn co http://svn.linid.org/svn/linshare/tags/linshare-1.2.2/
Se déplacer dans le dossier contenant les scripts SQL
cd /tmp/linshare/linshare-1.2.2/src/main/resources/sql/postgresql/
Insertion des scripts
psql -U linshare linshare < createSchema.sql psql -U linshare linshare < import-postgresql.sql
3- Configuration de Linshare
2-1 Création de l’utilisateur linshare pour Tomcat
Cet utilisateur aura les droits administrateurs de Tomcat. Il permettra l’administration de ce service via une page web.
Éditer le fichier tomcat-users.xml
nano /etc/tomcat6/tomcat-users.xml
Saisir la ligne suivante
;
Redémarrer les services Tomcat
/etc/init.d/tomcat6 restart
Tester le bon fonctionnement. Depuis un navigateur, saisir l’URL
http://IP.DE.VOTRE.SERVEUR:8080/manager/html
Saisissez votre identifiant et mot de passe configurés plus haut, la page ci-dessous doit apparaitre.
2-2 Création des répertoires pour linshare
mkdir /etc/linshare mkdir -p /var/lib/linshare/tmp mkdir -p /var/lib/linshare/tmp/linSignDocuments mkdir -p /var/lib/linshare/repository chown -R tomcat6: /var/lib/linshare
2-3 Fichier de configuration
Copie des fichiers de configuration
cp /tmp/linshare/linshare-1.2.2/src/main/resources/linshare.properties.sample /etc/linshare/linshare.properties cp /tmp/linshare/linshare-1.2.2/src/main/resources/jackRabbit.properties /etc/linshare/
Indiquer à Tomcat, le chemin de configuration de linshare. Éditer le fichier /etc/default/tomcat6.
Modifier la ligne JAVA_OPTS et rajouter à la fin de celle-ci -Dlinshare.config.path=file:/etc/linshare
nano /etc/default/tomcat6
JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Dlinshare.config.path=file:/etc/linshare"
Modification du fichier linshare.properties
nano /etc/linshare/linshare.properties
#******************** MAIL CONFIGURATION TO SEND MAIL INFORMATION TO USER mail.smtp.host=adresse.de.votre.serveur.mail mail.smtp.port=25 mail.smtp.user=utilisateur mail.smtp.password=motdepasse mail.smtp.auth.needed=false mail.smtp.charset=UTF-8 #******************** DATABASE linshare.db.username=linshare linshare.db.password=mot.passe.utilisateur.base.postresql linshare.db.driver.class=org.postgresql.Driver linshare.db.url=jdbc:postgresql://localhost:5432/linshare linshare.db.dialect=org.hibernate.dialect.PostgreSQLDialect linshare.db.persistence_manager=org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager #******************** GENERAL PROPERTIES linshare.info.url.base=http://ip.de.votre.serveur.linshare:8080/linshare/ linshare.info.url.internal=http://ip.de.votre.serveur.linshare:8080/linshare/ #******************** SSO #sso.button.hide=true # extra config for CAS sso (disable springContext-security and use configuration springContext-#securityCAS.xml) #sso.cas.url=http://localhost:8081/cas-server-webapp-3.3.5 #sso.cas.url.login=http://localhost:8081/cas-server-webapp-3.3.5/login #sso.cas.url.serviceId=http://localhost:8080/linshare/j_spring_cas_security_check # LemonLDAP::NG / SiteMinder HTTP request authenticator #sso.header.user=Auth-User # comma separated list of ip address to be trusted : #sso.header.allowfrom=127.0.0.1
3 – Démarrage de Linshare
3-1 Déploiement de linshare
Télécharger l’archive .war sur le site de Linshare. Dans mon cas j’ai utilisé le fichier linshare-1.2.2-without-SSO.war
https://forge.linshare.org/projects/linshare/files
Une fois le fichier téléchargé, renommez le en linshare.war
Pour installer Linshare, nous allons passer par l’interface d’administration Tomcat.
Depuis un navigateur, saisir l’URL
http://IP.DE.VOTRE.SERVEUR:8080/manager/html
Cliquer sur Parcourir, aller chercher le fichier linshare.war puis cliquer sur Deployer
Une fois le fichier déployé, il apparait dans la liste. Cliquer sur Démarrer
Cliquer sur Ok
Afin de vérifier de bon fonctionnement ou un éventuel problème, saisir la commande suivante :
tail -f /var/log/tomcat6/catalina.out
3-2 Première connexion
Linshare est maintenant installé. Pour vérifier son fonctionnement, saisir l’adresse suivante dans un navigateur internet
http://ip.de.votre.serveur:8080/linshare
Identifiant : root@localhost.localdomain
Mot de passe : adminlinshare
Si tous se passe bien, la page suivante va apparaitre.
Linshare nécessite une base LDAP (Active Directory, OpenLDAP..) pour l’authentification LDAP.
4 – Liaison Active Directory
Pré-requis : Adresse mail des utilisateurs renseigné dans l’AD
4-1 Création d’une connexion LDAP
Cliquer sur Domaine puis Créer une connexion LDAP
Saisir les informations demandées puis cliquer sur Valider
Identifiants : Nom pour la connexion (Ex : Test)
URL du LDAP : ldap://ip.de.votre.AD:389
Principal : DN du compte qui permet l’accès a AD (Ex: CN=Administrateur,CN=Users,DC=domaine,DC=local)
Credentials : Mot de passe du compte
4-2 Création d’un Modèle de Domaine
Un modèle de domaine permet de définir comment récupérer les informations liées aux utilisateurs et dans quelle unité d’organisation les trouver.
Cliquer sur Domaines puis Créer un modèle de domaine
Saisir les informations demandées.
Identifiant : Identifiant unique pour le modèle (Ex:Test_Modele)
Description : Description du modèle (Ex: Modèle de test)
Commande auth : Commande permettant l’authentification à linshare.
/!\ Modifier la commande par celle-ci : ldap.list(domain, « (&(objectClass=*)(givenName=*)(sn=*)(|(mail= »+login+ »)(uid= »+login+ »))) »); /!\
Commande searchUser : Commande utilisée pour rechercher un utilisateur.
/!\ Modifier la commande par celle-ci :
ldap.list(domain, « (&(objectClass=*)(mail= »+mail+ »)(givenName= »+firstName+ »)(sn= »+lastName+ »)) »);
Une fois tous les champs remplis, cliquer sur Valider
4-3 Création d’un Domaine
Cliquer sur Domaines puis Créer un domaine
Saisir les informations demandées puis cliquer sur Valider
Identifiant : Identifiant unique (Ex: Domaine1)
Clé différentielle : Permet de spécifier une unité d’organisation spécifique (OU= Users,DC=mondomaine,DC=local)
Default Locale : Langue par défaut
Rôle de l’utilisateur : Rôles des utilisateurs pour ce domaine
Description : Description du domaine (Ex: Mon domaine fonctionne)
Policy Identifier : Définit une règle d’ACL
Modèle de domaine : Modèle à utiliser
LDAP Identifier : Connexion LDAP à utiliser
Depuis un navigateur internet, saisir les informations suivantes puis cliquer sur Connexion.
http://ip.de.votre.serveur:8080/linshare
Identifiant : adresse mail renseigné dans l’AD
Mot de passe : mot de passe AD
Si l’authentification se passe bien, la fenêtre suivante devrait apparaître
5 – Installation OpenLDAP
Si vous souhaitez comme moi séparer vos utilisateurs AD et vos utilisateurs Linshare, vous pouvez monter une base OpenLDAP. Pour cela commencer par installer le paquet slapd
aptitude install slapd
La fenêtre suivante apparait, saisir un mot de passe puis Ok
Saisir de nouveau le mot de passe puis Ok
5-1 Installation des utilitaires
aptitude install ldap-utils
Configuration
dpkg-reconfigure slapd
Sélectionner Non puis [Entree]
Saisir un nom de domaine puis Ok
Saisir un nom d’organisation puis Ok
Saisir un mot de passe puis Ok
Confirmer le mot de passe puis Ok
Sélectionner HDB puis Ok
Non puis appuyer sur [ENTREE]
Choisir Oui puis [ENTREE]
Choisir Non puis Entree
Une base est maintenant créée.
5-2 Vérification
ldapsearch -x -b dc=linshare,dc=local
5-3 Interface d’administration
Pour administrer OpenLDAP plusieurs solutions existent: interfaces web, applications etc…
Dans mon cas je vais utiliser LdapAdmin, une application disponible sur le site suivant. Ce logiciel est entièrement gratuit.
Disponible sur le SourceForge à l’adresse suivante : http://sourceforge.net/projects/ldapadmin/files/ldapadmin/
Une fois l’archive téléchargée et décompressée, exécuter LdapAdmin.exe
Cliquer sur Start puis Connect
Double-Clique sur New Connection
Saisir les informations demandées puis cliquer sur Ok.
Connection name : Nom de la connexion
Host : Adresse IP de votre serveur LDAP
Base : DN de la base. Cliquer sur Fetch DNs pour faire apparaitre le DN
Username : Nom d’utilisateur pour l’accès a LDAP
Password : Mot de passe du compte
Une fois la connexion créée, double cliquer sur OpenLDAP
Une fois connecté, la fenêtre suivante apparaît:
Vous pouvez maintenant créer les utilisateurs et les unités d’organisations que vous désirez.
6- Liaison LDAP
6-1 Création d’une connexion LDAP
Cliquer sur Domaine puis Créer une connexion LDAP
Saisir les informations demandées puis cliquer sur Valider
Identifiants : Nom pour la connexion (Ex : Test)
URL du LDAP : ldap://ip.de.votre.AD:389
Principal : DN du compte qui permet l’accès a AD (Ex: CN=Administrateur,CN=Users,DC=domaine,DC=local)
Credentials : Mot de passe du compte
6-2 Création d’un Modèle de Domaine
Un modèle de domaine permet de définir comment récupérer les informations liées aux utilisateurs et dans quelle unité d’organisation les trouver.
Cliquer sur Domaines puis Créer un modèle de domaine
Saisir les informations demandées.
Identifiant : Identifiant unique pour le modèle (Ex:Test_Modele_LDAP)
Description : Description du modèle (Ex: Modele de test LDAP)
Commande auth : Commande permettant l’authentification à linshare.
/!\ Modifier la commande par celle-ci : ldap.list(domain, « (&(objectClass=*)(givenName=*)(sn=*)(|(mail= »+login+ »)(uid= »+login+ »))) »); /!\
Commande searchUser : Commande utilisée pour rechercher un utilisateur.
/!\ Modifier la commande par celle-ci :
ldap.list(domain, « (&(objectClass=*)(mail= »+mail+ »)(givenName= »+firstName+ »)(sn= »+lastName+ »)) »);
Une fois tous les champs remplis, cliquer sur Valider
6-3 Création d’un Domaine
Cliquer sur Domaines puis Créer un domaine
Saisir les informations demandées puis cliquer sur Valider
Identifiant : Identifiant unique (Ex: Domaine1)
Clé différentielle : Permet de spécifier une unité d’organisation spécifique (OU= Users,DC=mondomaine,DC=local)
Default Locale : Langue par défaut
Rôle de l’utilisateur : Rôles des utilisateurs pour ce domaine
Description : Description du domaine (Ex: Mon domaine fonctionne)
Policy Identifier : Définit une règle d’ACL
Modèle de domaine : Modèle à utiliser
LDAP Identifier : Connexion LDAP à utiliser
7 – Commande de dépannage.
tail -f /var/log/tomcat6/catalina.out
Auteur : POMENTE Guillaume
Partager la publication "INSTALLATION CONFIGURATION LINSHARE AVEC LIAISON LDAP ou ACTIVE DIRECTORY SUR DEBIAN"
Bonjour
Merci pour ce tuto. Plus ou moins nouveau dans le monde linux, j’ai un souci au moment du test de connexion à la base. Authentification échouée pour l’utilisateur linshare.
Avez vous une idée?
Cordialement
Bonjour,
Ce problème intervient lors de l’installation ?
Cordialement,
éditer le fichier
vi /etc/postgresql/9.1/main/pg_hba.conf
#local all all peer
local all all password
Bonjour ,
D’abord un grand merci pour ce tutoriel bien détaillé, je me retrouve face au probleme connexion avec mon ad sur 2003 server r2
j’ai ce message quand j’utilise un user du domaine voici le message que j’ai
Etat HTTP 500 –
——————————————————————————–
type Rapport d’exception
message
description Le serveur a rencontré une erreur interne () qui l’a empêché de satisfaire la requête.
exception
org.mozilla.javascript.EvaluatorException: caractère non autorisé (#1)
org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:109)
org.mozilla.javascript.DefaultErrorReporter.error(DefaultErrorReporter.java:96)
org.mozilla.javascript.Parser.addError(Parser.java:146)
org.mozilla.javascript.TokenStream.getToken(TokenStream.java:825)
org.mozilla.javascript.Parser.peekToken(Parser.java:172)
org.mozilla.javascript.Parser.argumentList(Parser.java:1907)
org.mozilla.javascript.Parser.memberExprTail(Parser.java:2050)
org.mozilla.javascript.Parser.memberExpr(Parser.java:1958)
org.mozilla.javascript.Parser.unaryExpr(Parser.java:1813)
org.mozilla.javascript.Parser.mulExpr(Parser.java:1742)
org.mozilla.javascript.Parser.addExpr(Parser.java:1723)
org.mozilla.javascript.Parser.shiftExpr(Parser.java:1703)
org.mozilla.javascript.Parser.relExpr(Parser.java:1677)
org.mozilla.javascript.Parser.eqExpr(Parser.java:1633)
org.mozilla.javascript.Parser.bitAndExpr(Parser.java:1622)
org.mozilla.javascript.Parser.bitXorExpr(Parser.java:1611)
org.mozilla.javascript.Parser.bitOrExpr(Parser.java:1600)
org.mozilla.javascript.Parser.andExpr(Parser.java:1588)
org.mozilla.javascript.Parser.orExpr(Parser.java:1576)
org.mozilla.javascript.Parser.condExpr(Parser.java:1559)
org.mozilla.javascript.Parser.assignExpr(Parser.java:1544)
org.mozilla.javascript.Parser.expr(Parser.java:1523)
org.mozilla.javascript.Parser.statementHelper(Parser.java:1202)
org.mozilla.javascript.Parser.statement(Parser.java:707)
org.mozilla.javascript.Parser.statements(Parser.java:655)
org.mozilla.javascript.Parser.statementHelper(Parser.java:1145)
org.mozilla.javascript.Parser.statement(Parser.java:707)
org.mozilla.javascript.Parser.statementHelper(Parser.java:1093)
org.mozilla.javascript.Parser.statement(Parser.java:707)
org.mozilla.javascript.Parser.parse(Parser.java:401)
org.mozilla.javascript.Parser.parse(Parser.java:338)
org.mozilla.javascript.Context.compileImpl(Context.java:2368)
org.mozilla.javascript.Context.compileString(Context.java:1359)
org.mozilla.javascript.Context.compileString(Context.java:1348)
org.linagora.linshare.ldap.JScriptEvaluator.instanceEval(JScriptEvaluator.java:201)
org.linagora.linshare.ldap.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:144)
org.linagora.linshare.ldap.JScriptLdapQuery.auth(JScriptLdapQuery.java:154)
org.linagora.linshare.core.service.impl.LDAPQueryServiceImpl.auth(LDAPQueryServiceImpl.java:70)
org.linagora.linshare.core.service.impl.UserProviderServiceImpl.auth(UserProviderServiceImpl.java:224)
org.linagora.linshare.core.service.impl.AbstractDomainServiceImpl.auth(AbstractDomainServiceImpl.java:497)
org.linagora.linshare.auth.DomainAuthProviderDao.retrieveUser(DomainAuthProviderDao.java:154)
org.linagora.linshare.auth.DomainAuthProviderDao.authenticate(DomainAuthProviderDao.java:241)
org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:130)
org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:97)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/6.0.35.
Est ce que la connexion à l’AD s’effectue correctement ?
Cordialement,
précisement comment je peux le testé via l’application car lorsuque j’utilise ldapadmin j’arrvie a me connecter sur mon LDAP ,
Un grand merci pour votre prise en charge
Bonjour,
merci pour ce super tuto, par contre j’ai la même erreur que DRAKUN à part que je suis sur un AD 2003 non R2… 🙁
Une idée?
Bonjour,
Avec un compte local Linshare fonctionne ?
Avez vous bien modifier Commande auth et searchUser ?
Cordialement
J’aimerais savoir comment dégugger suivant les message d’erreur car je vien de refaire une nouvelle installation et lorsque je modifie mes paramètres ex ma langue d’affichage, j’ai le message une erreur est survenue …..Veuillez contacter votre administrateur vraiment je ne sais pas ou chercher en cas de problème je suis tout le temps obligé de DROP DATASE linsare* et de le recréer.
Merci d’avance
Re, pour les commandes ldap.list, je pense qu’il faudrait remplacer les guillemets « par des « .
En remplaçant j’ai l’erreur suivante :
Connexion invalide. Vérifiez vos adresse électronique/mot de passe.
Cdlt.