Rechercher dans ce blog

vendredi 21 mai 2010

Alfresco : Connexion SSO (passthru CentOS vers serveur DC SBS2003)

Editer le fichier /var/lib/tomcat5/shared/classes/alfresco-global.properties et ajouter la ligne

authentication.chain=passthru1:passthru
La version 3.2 comporte un bug empêchant la configuration du subsystem/authentication/passthru dans "shared"
Il faut obligatoirement "écraser" la version installée sous webapps, pour cela :
Editer le fichier /var/lib/tomcat5/webapps.../alfresco/subsystems/Authentication/passthru/passthru-authentication-context.properties et définir :

passthru.authentication.useLocalServer=false
passthru.authentication.domain=JR2
passthru.authentication.servers=JR2\\192.168.0.200,192.168.0.200
ntlm.authentication.sso.enabled=true
alfresco.authentication.allowGuestLogin=false
ntlm.authentication.mapUnknownUserToGuest=false
passthru.authentication.authenticateCIFS=true
passthru.authentication.authenticateFTP=false
passthru.authentication.guestAccess=false
passthru.authentication.defaultAdministratorUserNames=administrateur
# Timeout value when opening a session to an authentication server, in milliseconds
passthru.authentication.connectTimeout=5000
# Offline server check interval in seconds
passthru.authentication.offlineCheckInterval=300
passthru.authentication.protocolOrder=NetBIOS,TCPIP
passthru.authentication.authenticateCIFS=true
passthru.authentication.authenticateFTP=false

J'ai aussi édité le fichier /etc/samba/smb.conf et mis les valeurs suivantes:
[global]
workgroup = nomDuDomaine
server string = nomMachineLinux.nomDuDomaine.local
netbios name = nomMachineLinux
security = domain
password server = IPduServeurDomaine
encrypt passwords = yes
local master = no
wins server = IPduServeurDomaine
dns proxy = no
Tout le reste par défaut.


Editer le fichier /etc/init.d/tomcat5
Modifier la fonction redirect() ajoutée lors de la configuration de CIFS comme suit :

#ajout Stef
function redirect() {
            echo "Redirecting port $1 to $2 ($3)"
            iptables -t nat -A PREROUTING -d IP_du_CentOs -p $3 -m $3 --dport $1 -j REDIRECT --to-ports $2
    }





Maintenant plus besoin d'arrêter le tomcat pour accéder au serveur DC et donc l'authentification passthru va marcher aussi.
Configuration de Vista :
exécuter secpol.msc

Editer Paramètres de sécurité/Stratégies locales/Options de sécurité/Sécurité réseau : niveau d'authentification LAN Manager et mettre "envoyer uniquement les réponses NTLM" au lieu de NTLM v2

Configuration de Firefox:
Dans l'adresse taper : about:config
Dans le champs network.automatic-ntlm-auth.trusted-uris mettre l'adresse d'Alfresco http://192.168.0.*:8080/alfresco


Voilà ça doit marcher maintenant !

Attention

Je n'ai pas configuré le CIFS en SSO passthru car je n'en ai pas vraiment besoin les lecteurs réseaux étant montés avec un nom/pass.

Pareil pas de synchro LDAP, pas envie de devoir refaire toute la partie utilisateur avec la nouvelle importée.

A voir plus tard éventuellement.

vendredi 19 mars 2010

Montage lecteur réseau windows

Vu ici : http://doc.ubuntu-fr.org/fusesmb
C'est parti !

Installer "fuse" (application/ajouter des logiciels/ Recherche Fuse)
fuse et fuse-lib
Il faut maintenant récupérer fuse-smb qui n'est pas dans les packages par défaut de CentOS5.4
wget http://timeoff.wsisiz.edu.pl/rpms/fuse-smb/fuse-smb-0.8.7-1.fc8.i386.rpm
rpm -ivh fuse-smb-0.8.7-1.fc8.i386.rpm

Ensuite
su -
//ajout d'admin pas sûr que ce soit utile ??
gpasswd -a $USER fuse
//ajout utilisateur stef
gpasswd -a stef fuse
j'ai aussi mis le "root" ou alors il y est par défaut? mais on le retrouve si on édite les groupes (attention il faut afficher les groupes systèmes)
Se déconnecter comme dit dans le tuto. Si accès par vnc, le plus simple : rebooter !
avec Kitty par exemple
/sbin/reboot -f
puis après redémarrage si pas accès vnc
service vncserver restart
on va donner les infos de connection dans le fichier de conf de fuse:
on édite donc le fichier /~/.smb/fusesmb.conf (montrer les fichiers cachés)
(ce fichier sera présent dans les répertoires /home/.smb pour l'utilisateur stef et dans /root/.smb pour l'utilisateur root. Je fais les 2 car on utilise cron en root par la suite pour la sauvegarde d'Alfresco)
[global]
username=JR2\stef
password=monmotdepassewindows



Puis dans la ligne de commande
cd ~
mkdir -p Network
fusesmb Network


Pour "démonter" on tape
fusermount -u Network

Le truc étrange ensuite qui s'est passé c'est que j'ai dû faire plein d'essais en changeant le username (notamment en donnant le login de l'administrateur windows, sans succès d'ailleurs puisque je ne listait que mon NAS...linux !) pour à un moment avoir en effet accès au réseau alors que j'étais revenu à mon fusesmb.conf initial

Rien compris sur ce coup là ! et je ne sais pas ce qui va se passer à un prochain reboot...

Peut-être se souvient-il du bon parmi tout ceux que j'ai testé. Après un nouvel essai, il semble que JR2 en majuscule soit important ?




mercredi 10 mars 2010

Alfresco Backup/Restore

Pour faire le backup complet :
1/ Arrêt d'Alfresco
service tomcat5 stop
2/ Dump de mysql
mysqldump -ualfresco -palfresco > /var/lib/alfresco/alf_data/alf.sql
(pas d'espace après la commande -u et après la commande -p)
3/ Copie de tout le répertoire alf_data (/var/lib/alfresco/alf_data) vers la destination du backup souhaitée

Pour faire le restore :
1/ Arrêt d'Alfresco
2/ Suppression de tout le répertoire alf_data
3/ Réintialisation de la base à l'aide des scripts sous /opt/alfresco/extras/databases/mysql/db_remove et db_setup
4/ Copie de tout le répertoire alf_data du backup (y compris les 2 répertoires Lucene car sans ça provoque une erreur au démarrage)
5/ Restore de la base :
mysql -u alfresco -p alfresco < /var/lib/alfresco/alf_data/alf.sql
6/ Démarrage d'Alfresco


jeudi 25 février 2010

Bureau distant depuis Windows vers CentOS

Vu ici : http://www.commentcamarche.net/faq/17620-acceder-a-distance-a-sa-machine-vnc-ssh
Sur CentOS le vncserver était déjà installé, ainsi qu'openssh, j'ai juste autorisé l'accès au bureau distant par le menu :
et modifié le fichier /etc/ssh/sshd_config en changeant le port 22 en port 6522 et PermitRootLogin yes en PermitRootLogin no. Redémarrer le serveur ssh : /etc/init.d/sshd restart (ou service sshd restart)
Pour prendre la main sur le Windows:
Télécharger kitty ou putty, télécharger et installer tightvnc
Avec kitty.exe (ou putty.exe) il faut suivre ce qu'il y d'écrit dans le lien ci-dessus.
Ensuite, si une session X est déjà ouverte sur CentOS alors on peut depuis tightvnc avec l'adresse "localhost"


Sinon, on va configuer le vncserver pour qu'il ouvre une session X tout seul (enfin c'est ce que j'ai compris...)
Je suis parti de ça http://forum.hardware.fr/hfr/OSAlternatifs/reseaux-securite/serveur-client-xubuntu-sujet_70649_1.htm qui m'a amené sur ça http://www.ehow.com/how_5089245_install-vnc-server-ubuntu.html


Donc sur le CentOS, j'ai édité le fichier /etc/sysconfig/vncservers et j'ai écrit

VNCSERVERS="1:stef"
VNCSERVERARGS[1]="-geometry 1280x1024 -depth 16"



Ensuite il faut faire créer le répertoire .vnc par vnc (voir ici : http://wiki.centos.org/HowTos/VNC-Server):
Avec le compte voulu (ici stef, donc pas de "su") on fait

vncpasswd
puis on entre le mot de passe d'accès à vnc.Le répertoire .vnc sous /home/stef est créé.




Puis j'ai édité /home/stef/.vnc/xstartup (attention le répertoire est caché, il suffit de cocher "Afficher les fichiers cachés" sous Affichage du menu de Nautilus) et là j'ai fait comme on le dit sur le site ehow.com ci-dessus
Le fichier ne contient plus que :
(zone simplement décommentée)
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x ....etc
[ -r .... etc


le reste est mis en commentaire

#setroot...
#vnc...
#xterm...
#twm...

On sauve et on fait un chmod 755 /etc/X11/xinit/xinitrc (mais moi c'était déjà bon)
Ensuite on relance le serveur vnc (service vncserver restart).

On accède avec tightvnc à l'adresse 192.168.0.xxx:1 (attention pas de tunnel ssh !!, mais connexion en local pour moi et derrière firewall), en effet avec localhost ça ne veut pas fonctionner (je pense à cause de l'ouverture de session non faite).

On doit pouvoir résoudre ça avec ce qui est dit sur le premier lien de ce message (sur commentcamarche.net)

L'avantage pour le moment c'est qu'on n'a plus besoin de lancer kitty pour ouvrir le tunnel ssh.


Edit 15/05/2011 :

Le vnc se coupe tout seul ???

pour le relancer, se connecter avec Kitty, sous session stef, puis taper un "su -" (bien noter le "-") et taper le mot de passe su pour ensuite faire service vncserver start (ou /sbin/service vncserver start)

mardi 23 février 2010

Installation d'un AMP sur le Alfresco précédemment installé sur CentOS


Après l'install, on devrait avoir sous /opt/alfresco un répertoire bin contenant alfresco-mmt.jar, alfresco-bm.remote.jar, clean_tomcat.sh, un répertoire amps, et un script apply_amps.sh. 
Et bien rien de tout ça après l'install !! Décidément, à croire qu'ils n'ont jamais testé leur install les gens d'Alfresco !!
Alors c'est reparti à la mano...
J'ai téléchargé le fichier alfresco-community-tomcat-3.2r.tar.gz afin d'avoir les fichiers manquants (j'avais au préalable fait un essai en copiant les fichiers manquants depuis une install 3.2 windows sans succès, mais c'était peut-être dû à des problèmes de structures des répertoires mal reproduits)
J'ai dézippé le tout puis copier les fichiers et répertoires manquants.
Ensuite j'ai modifié les scripts
vi /opt/alfresco/bin/clean_tomcat.sh
#!/bin/sh 
# ---------------------------------
# Script to clean Tomcat temp files
# ---------------------------------
CATALINA_HOME=/usr/share/tomcat5
echo "Cleaning temporary Alfresco files from Tomcat..."
rm -rf $CATALINA_HOME/temp/Alfresco
rm -rf $CATALINA_HOME/work/Catalina/localhost/alfresco
rm -rf $CATALINA_HOME/work/Catalina/localhost/share
rm -rf $CATALINA_HOME/work/Catalina/localhost/mobile
rm -rf $CATALINA_HOME/work/Catalina/localhost/studio
#rm -rf tomcat/temp/Alfresco tomcat/work/Catalina/localhost/alfresco
#rm -rf tomcat/work/Catalina/localhost/share
#rm -rf tomcat/work/Catalina/localhost/mobile
#rm -rf tomcat/work/Catalina/localhost/studio

ok les "studio et mobile" me servent à rien dans ma version 3.2. Pas grave.

Puis
vi /opt/alfresco/apply_amps.sh
#!/bin/sh
# -------
# Script for apply AMPs to installed WAR
# -------
#export CATALINA_HOME=tomcat
CATALINA_HOME=/usr/share/tomcat5
echo "This script will apply all the AMPs in ./amps to the alfresco.war file in $CATALINA_HOME\webapps"
echo "Press control-c to stop this script . . ."
echo "Press any other key to continue . . ."
read RESP
java -jar bin/alfresco-mmt.jar install ./amps $CATALINA_HOME/webapps/alfresco.war -directory
java -jar bin/alfresco-mmt.jar list $CATALINA_HOME/webapps/alfresco.war
echo "About to clean out tomcat/webapps/alfresco directory and temporary files..."
echo "Press control-c to stop this script . . ."
echo "Press any other key to continue . . ."
read DUMMY
rm -rf $CATALINA_HOME/webapps/alfresco
sh ./bin/clean_tomcat.sh
Et voilà that's all !
Maintenant il suffit de copier l'amp dans le répertoire /opt/alfresco/amps et de lancer 
sh apply_amps.sh

Enfin prèsque...
Puisqu'en fait il y a encore un problème avec cette install sur CentOS.
Comme vu ci-dessous, un bug d'Alfresco gêne l'envoi des emails. Il faut donc changer un jar dans la lib d'Alfresco.
Pour faire ça j'ai créé un patch.sh que voici :
#!/bin/sh
# -------
# Script for patching Alfresco
# -------
CATALINA_HOME=/usr/share/tomcat5
echo "This script will apply patch to make alfresco runs on centos"
echo "Press control-c to stop this script . . ."
echo "Press any other key to continue . . ."
read RESP
rm /var/lib/tomcat5/webapps/alfresco/WEB-INF/lib/mail.jar
ln -s /usr/share/java/classpathx-mail/mail-1.3.1-api-1.1.1.jar /var/lib/tomcat5/webapps/alfresco/WEB-INF/lib/\[mail-1.3.1-api-1.1.1\].jar
ln -s /usr/share/java/classpathx-mail/mail-1.3.1-providers-1.1.1.jar /var/lib/tomcat5/webapps/alfresco/WEB-INF/lib/\[mail-1.3.1-providers-1.1.1\].jar
rm /var/lib/tomcat5/webapps/alfresco/WEB-INF/classes/log4j.properties
cp log4j.properties /var/lib/tomcat5/webapps/alfresco/WEB-INF/classes/
echo "Patched, you can do service tomcat5 start"

On remarquera que je corrige aussi l'erreur log4j que l'on avait corrigée manuellement lors de l'installation. Mais comme on détruit entièrement le répertoire Alfresco il faut le refaire et ce coup-ci je le refais automatiquement. J'ai tenté de mettre ce log4j sous "shared" mais sans succès, donc comme j'en ai un peu marre de corriger l'install foireuse, je mets ça en vrac dans le patch et basta !
Donc maintenant pour mettre un amp il faut faire :
sh apply_amps.sh
sh service tomcat5 start
Puis une fois tomcat démarré et le répertoire Alfresco reconstruit on fait :
sh service tomcat stop
sh alf_patch_centos.sh
Et enfin c'est fini reste plus qu'à redémarrer tomcat
service tomcat5 start


lundi 22 février 2010

Accès partage Windows après les iptables d'installation d'Alfresco

Il suffit de faire
iptables -t nat -F
et l'accès au partage du serveur Windows refonctionne.
Attention du coup le CIFS d'Alfresco ne marche plus.
Il faut refaire les iptables qui vont bien pour retrouver CIFS ou simplement redémarrer tomcat5

Installation Alfresco 3.2 Community sur CentOS 5.4

Installation Alfresco 3.2 Community sur CentOS 5.4
J'ai suivi ces instructions http://wiki.alfresco.com/wiki/Installing_Alfresco_Community_3.2_WAR_on_Centos_5.3
en installant la version 1.6.0.06 de java et non la 1.6.0.18 que Sun proposait car problème dans la suite de l'install sinon.
Au démarrage j'avais une ERREUR qui parlait de "unsupported value : EXACT_LANGUAGE_AND_ALL"
Le problème a été résolu grâce à ce post http://forums.alfresco.com/en/viewtopic.php?f=14&t=14548
en désinstallant le OpenJdk.
J'ai ensuite suivi ça http://wiki.alfresco.com/wiki/Installing_Alfresco_Community_3.2r_WAR_on_Centos_5.4
pour créer le script de démarrage d'OpenOffice (ooffice)
Pour démarrer Alfresco faire ensuite :
service mysqld start
service ooffice start
service tomcat5 start

Puis surveiller /var/log/tomcat5/catalina.outEnsuite résolution de l'erreur "xalan TransformerFactoryImpl not found" selon http://forums.alfresco.com/en/viewtopic.php?f=8&t=18857
cd /opt/alfresco/endorsed/
cp xalan.jar /usr/share/java
cd /var/lib/tomcat5/common/endorsed/
rebuild-jar-repository /var/lib/tomcat5/common/endorsed xalan.jar
(ne pas suivre la solution pour CentOS, ça n'a pas marché pour moi)
J'ai fait de même avec serializer.jar (résolution de "error OutputPropertiesFactory")
Pour le problème ImageMagik, OpenOffice et pdf2swf, j'ai fait
yum install ImageMagick rpm-build
cd /opt
wget http://www.swftools.org/swftools-0.9.0.tar.gz
tar xzf swftools-0.9.0.tar.gz
cd swftools-0.9.0
yum install gcc gcc-c++ automake zlib-devel libjpeg-devel freetype-devel giflib-devel fontconfig-devel freeglut-devel
wget ftp://ftp.pbone.net/mirror/atrpms.net/el5-x86/atrpms/stable/libmp3lame0-3.98.2-20.el5.x86.rpm \ ftp://ftp.pbone.net/mirror/atrpms.net/el5-x86/atrpms/stable/lame-devel-3.98.2-20.el5.x86.rpm \ ftp://ftp.pbone.net/mirror/ftp.freshrpms.net/pub/freshrpms/pub/dag/redhat/el5/en/x86/RPMS.dag/lame-3.98.2-1.el5.rf.x86.rpm \ ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/x86/RPMS/t1lib-5.1.0-9.el5.kb.x86.rpm \

Là j'ai eu des erreurs mais j'ai continué quand même avec :
./configure
make
make install
J'ai vérifié que j'avais bien le binaire pdf2swf dans /usr/local/bin puis
vi /var/lib/tomcat5/shared/classes/alfresco-global.properties
et changer
ooo.exe =/usr/lib/openoffice.org/program/soffice
img.dyn =/usr/lib
img.exe =/usr/bin/convert
swf.exe =/usr/local/bin/pdf2swf 

Tant qu'on est dans ce fichier on ajoute :cifs.enabled=true
cifs.Server.Name=monserveur
cifs.domain=mondomaine
cifs.hostanounce=true
cifs.broadcast=0.0.0.0
cifs.tcpipSMB.port=1445
cifs.ipv6.enabled=false
cifs.netBIOSSMB.namePort=1137
cifs.netBIOSSMB.datagramPort=1138
cifs.netBIOSSMB.sessionPort=1139

ftp.enabled=true
ftp.port=2021
en remplaçant bien sûr monserveur et mondomaine par les bonnes valeurs.

Problème "Attention failed to register in JMX ... ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
Ceci est dû à un fichier jar manquant (naming-factory-dbcp.jar) dans le rpm tomcat5 de la CentOS5.
Solution tirée d'ici https://bugzilla.redhat.com/show_bug.cgi?id=217630

wget https://staff.washington.edu/joshuadf/java/naming-factory-dbcp.jar -O /var/lib/tomcat5/common/lib/naming-factory-dbcp.jar
service tomcat restart



Si Erreur FileServer failed to local domain... (après correction du alfresco-gloabl.properties il semblerait qu'on n'ait pas cette erreur)
J'ai suivi ça http://forums.alfresco.com/fr/viewtopic.php?f=6&t=3243
vi /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco/file-servers.properties
puis ajout dans ce fichier de 


filesystem.name=Alfresco

cifs.enabled=true
cifs.localname=${localname}
cifs.domain=
cifs.broadcast=255.255.255.255

cifs.bindto=0.0.0.0
cifs.hostanounce=true
cifs.ipv6=disabled

ftp.enabled=true
ftp.ipv6=disabled

nfs.enabled=false
Et enfin plus aucune erreur dans le catalina.out !! ouf !!



Pour activer CIFS, j'ai complété avec la modification du fichier /etc/init.d/tomcat5
...
# Define the tomcat log file
TOMCAT_LOG="${TOMCAT_LOG:-/var/log/tomcat5/catalina.out}"
RETVAL="0"

#ajout Stef
function redirect() {
echo "Redirecting port $1 to $2 ($3)"
iptables -t nat -A OUTPUT -p $3 --dport $1 -j REDIRECT --to-ports $2
iptables -t nat -A PREROUTING -p $3 --dport $1 -j REDIRECT --to-ports $2
iptables -t nat -A OUTPUT -p $3 --dport $1 -j REDIRECT --to-ports $2
}
#
# setup_iptables
# setup iptables for redirection of CIFS and FTP
function setup_iptables () {
echo "1" >/proc/sys/net/ipv4/ip_forward
# Clear NATing tables
iptables -t nat -F
# FTP NATing
redirect 21 2021 tcp

# CIFS NATing
redirect 445 1445 tcp
redirect 139 1139 tcp
redirect 137 1137 udp
redirect 138 1138 udp
}
#fin ajout Stef

# remove when the RHEL and FC daemon functions converge
# (pulled from /etc/rc.d/init.d/functions)

...

puis plus loin dans ce même fichier
...# See how we were called.
function start() {
echo -n "Starting ${TOMCAT_PROG}: "
echo "Setting up iptables ..." setup_iptables
if [ -f "/var/lock/subsys/${NAME}" ] ; then
if [ -f "/var/run/${NAME}.pid" ]; then

...


Pour se connecter à Alfresco en CIFS, il suffit de connecter un lecteur réseau sous Windows avec l'adresse IP, par exemple
\\192.168.0.15\Alfresco
avec le bon nom d'utilisateur qui va bien et hop !!
Pareil pour un accès FTP : 192.198.0.15 port 2021, le bon nom qui va bien et hop !

Après lancement, il reste encore une erreur log4j que l'on résoud en faisant (vu ici http://forums.alfresco.com/fr/viewtopic.php?f=6&t=2544:

vi /var/lib/tomcat5/webapps/alfresco/WEB-INF/classes/log4j.properties
et en modificant 
log4j.appender.File.File=/var/log/tomcat5/alfresco.log

Ensuite il reste un problème, les emails ne sortent pas (voir ici : http://wiki.alfresco.com/wiki/Installing_Alfresco_Community_3.2r_WAR_on_Centos_5.4) . Il semble que cela soit dû à un problème de mail.jar d'Alfresco incompatible avec CentOS.

J'ai fait ça

[root@server base]# mkdir -p /var/lib/tomcat5/backup
[root@server base]# mv /var/lib/tomcat5/webapps/alfresco/WEB-INF/lib/mail.jar /var/lib/tomcat5/backup/
[root@server base]# ln -s /usr/share/java/classpathx-mail/mail-1.3.1-api-1.1.1.jar \ 
     /var/lib/tomcat5/webapps/alfresco/WEB-INF/lib/\[mail-1.3.1-api-1.1.1\].jar
[root@server base]# ln -s /usr/share/java/classpathx-mail/mail-1.3.1-providers-1.1.1.jar \ 
     /var/lib/tomcat5/webapps/alfresco/WEB-INF/lib/\[mail-1.3.1-providers-1.1.1\].jar



sans succès. Je mettrai à jour dès que j'aurai la solution.
Edit : en fait ça marche, il y avait un bug dans mon code java d'envoi.


C'est fini pour l'install d'Alfresco, maintenant installation de mon amp.