Une question qui nous revient régulièrement sur le forum, quels outils à utiliser pour modifier les fichiers de Joomla ?

Cet article n'est pas vraiment un tutoriel à proprement dit, mais une présentation d'outils que nous conseillons pour leur simplicité et vous permettra de faire votre choix selon vos besoins.

Une chose importante pour cette sélection, tous ces produits sont sous licence GNU et totalement gratuit.

Hormis pour les logiciels de FTP, ces outils requierent quand même un minimum de connaissance, car ils vont vous permettre de modifier les fichiers PHP, XML et CSS utilisés dans la conception de Joomla.

Afin de vous prémunir des problèmes de spam lors de l'utilisation du formulaire de contact natif de Joomla!, et mettre en place une sécurité supplémentaire lors de l'inscription de nouveaux utilisateurs. Nous vous proposons une solution simple et fonctionnelle.

enregistrementcontact

La procédure à suivre:

  • Installez le plugin Bigo Captcha et ne pas oublier de l'activer dans la gestion des plugins.
  • Décompressez et uploadez le contenu du pack com_contact-com_user-joomla_x.x.x.-stable.zip à la racine d'installation de votre Joomla! en remplacement des fichiers existants sur votre FTP .

transfer_ftp

 

Réglage dans le formulaire de contact

dans la fiche du contact à afficher, vérifier que l'option Use Captcha soit bien activée dans les paramètres de l'émail.

parametre_contact

Désinstallation :

Remplacez les répertoires par ceux contenus dans le pack_undo fournit dans l'archive et supprimer le plugin Bigo Captcha.

download1 Téléchargement de Bigo Captcha

download1 Téléchargement du patch com_contact -com_user(Réservé aux membres)

Sujet traité sur le forum

Un VDS (serveur virtuel), c'est quoi ?

Un serveur virtuel est une fraction de serveur dédié (la machine hôte) possédant ses propres caractéristiques et ses propres ressources. Ainsi les performances sont garanties et tout se passe pour le Client comme s'il s'agissait de son propre serveur dédié. Le serveur virtuel est une solution économique qui cumule tous les avantages du serveur dédié, sans l'inconvénient du prix.

logo_plesk.jpg

Qu'est-ce que Plesk ?


C'est une interface qui vous permet de gérer et administrer à la manière d'un hébergeur professionnel plusieurs sites.





logo_fedora.jpgEt Fedora ?


Fedora
est un système d'exploitation et une plate-forme, basé sur Linux, que tout le monde peut utiliser, modifier et distribuer librement.


Pour effectuer les opérations de ce tutoriel vous aurez besoin de deux logiciels libre et gratuit


Avant de lire la suite de ce tutoriel, nous vous conseillons la lecture de aides disponibles pour vous documenter sur ce deux produits:

 




Si votre seveur n'est pas configuré avec Fedora et Plesk, ce qui par défaut n'est pas le cas avec 1&1 par exemple, il vous faudra réinstailer le serveur, l'opération est relativement simple et rapide.( Consulter la faq de votre hébergeur)

Sous PuTTy, une fois connecté en Root, lancer les commande suivante :

yum clean all
yum update
yum upgrade

Les fichiers système du serveur sont propres et prêt pour la suite des opérations

Il faut ensuite passer à l'installation du module Suphp , toujous avec PuTTY lancer la commande suivante :

yum install mod_suphp

Et suivre les instructions de validation.

La partie installation en elle-même du serveur est maintenant effectuée, passons à la suite.

A l'aide de Winscp rendez-vous dans le fichier /etc/suphp.conf et éditer le comme ceci :

[global]
;Path to logfile
logfile=/var/log/httpd/suphp_log
;Loglevel
loglevel=warn
;User Apache is running as
webserver_user=apache
;Path all scripts have to be in
docroot=/var/www
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true
;Send minor error messages to browser
errors_to_browser=true
;PATH environment variable
env_path=/bin:/usr/bin
;Umask to set, specify in octal notation
umask=0026
; Minimum UID
min_uid=500
; Minimum GID
min_gid=500
; Use correct permissions for mod_userdir sites
handle_userdir=true
[handlers]
;Handler for php-scripts
php5-script=php:/usr/bin/php-cgi
;Handler for CGI-scripts
x-suphp-cgi=execute:!self

Modifiez ensuite le fichier /etc/httpd/conf.d/mod_suphp.conf :

# This is the Apache server configuration file providing suPHP support..
# It contains the configuration directives to instruct the server how to
# serve php pages while switching to the user context before rendering.
LoadModule suphp_module modules/mod_suphp.so
### Uncomment to activate mod_suphp
suPHP_AddHandler php5-script
# This option tells mod_suphp if a PHP-script requested on this server (or
# VirtualHost) should be run with the PHP-interpreter or returned to the
# browser "as it is".
suPHP_Engine on
# This option tells mod_suphp which path to pass on to the PHP-interpreter
# (by setting the PHPRC environment variable).
# Do *NOT* refer to a file but to the directory the file resists in.
#
# E.g.: If you want to use "/path/to/server/config/php.ini", use "suPHP_Config
# /path/to/server/config".
#
# If you don't use this option, PHP will use its compiled in default path.
#suPHP_ConfigPath /etc

Une fois les modifications des fichiers sytème du serveur réalisées il faut relancer Apache pour que celles-ci soit prises en compte

/etc/init.d/httpd restart

Si vous n'avez pas constaté d'erreurs lors de ces opérations, il ne vous reste plus qu'à configurer queqlues paramètres pour utiliser Joomla avec les paramètres conseillé par défaut.




Configuration de Joomla

Créer à la racine de votre site grâce à votre client de Ftp, un nouveau répertoire que nous nommerons config pour notre exemple, ainsi qu'un autre sessions.

Pour le premier répertoire, libre cours à imagination, par contre pour le répertoire (dossier) sessions, il n'y a pas d'alternative car ce dossier sera utilisé par le core (système) de Joomla.

Dans le dossier config, créer un fichier .htaccess avec simplement ces lignes :

<LIMIT GET POST>
order deny,allow
deny from all
</LIMIT>

Créer à l'intérieur de ce répertoire un fichier php.ini avec les lignes suivantes

magic_quotes_gpc=on
safe_mode=off
display_errors=on
memory_limit=64M à définir selon vos besoins, le niveau de mémoire au minum 32M, cette ligne peut-être à supprimer dans certains cas.
session.save_path = /var/www/vhosts/votre_nom_de_domaine/httpdocs/sessions

En dernier à la racine de votre site, il vous faut créer un fichier .htaccess ou ajouter à celui existant la ligne suivante:

#Configuration serveur
SetEnv PHPRC "/var/www/vhosts/votre_nom_de_domaine/httpdocs/config/"

Une fois toutes les opérations réalisées, il faut impérativement redémarrer le serveur pour que les modifications soient prises en compte.

Note : si vous décidez d'héberger plusieurs domaines sur votre serveur, vous devrez renouveller l'opération autant de fois.

Dans certians cas,si vous rencontrez des problèmes d'indentification il faut chmoder le dossier sessions en 777.

Attention : La base de cet article est succeptible d'être modifée avec l'apport de nouvelles fonctions.


Réagissez à cet article sur le forum

Vous souhaitez supprimer un module, un composant ou un mambot (plugin), la procédure peu paraître simple à la base, mais nous allons vous expliquer que ce n'est pas toujours le cas.

Commençons par le début, nous prendrons un exemple ( attention c'est juste pour imager ce tuto ) : Fireboard

Pour la désinstallation, vous devez vous rendre via l'administration de votre site dans la partie installation d'un composant.

 

 

 

 

 

 

 

 

 

 

 

  • Sélectionner le composant dans la liste, puis cliquer sur désinstaller.


 

 

 



Voilà cette extension n'est plus présente dans l'administration de votre site, à ce stade on peut penser être tranquille, ce qui n'est pas le cas.

Que ce soit pour les modules, mambots ou composants le principe de suppression dans l'interface administrateur est le même, malheureusement il reste de traces non visibles au premier abord sur votre serveur.

Et  pourquoi donc, me direz-vous ?

Dans la plupart des cas, ceci permet de conserver vos bases de données dans le cas d'une mise à jour, dans l'autre cas pour les fichiers c'est simplement une mauvaise conception d'une extension due aux développeurs.

Avec ces traces, je cours un risque ?

Malheureusement oui et les conséquences peuvent être graves, en effet la  plupart des piratages sont due à des attaques de types injection sql , par l'intermédiaire des fichiers présents sur un serveur.

Comment faire pour me débarrasser mon site de toutes ses traces ?

Avant de commencer les opérations, il est indispensables de faire une sauvegarde de vos fichiers et de votre base SQL.



Il faut procéder à des suppressions via votre client de ftp :

  • Pour les modules

Dans le répertoire modules, vous trouverez un fichier php , un xml et souvent un répertoire .

  • Pour les composants

Dans components et administrator/components supprimer les dossiers .

  • Pour les mambots

Explorer les répertoires selon le type de plugin (content, editor…)

 

La première partie est réalisée, il reste maintenant à effacer le reste des traces dans la base de données SQL.

Pour les composants, vous devez supprimer toutes les tables portant soit le nom de l'extension soit ces initiales.

Reprenons notre exemple de départ :

  • Sélectionner les tables concernées et cliquer en bas de page ( dans le menu déroulant) de votre administration SQL, sur supprimer.
  • Autre possibilité, supprimer une à une les tables en cliquant sur la croix rouge des options de la table.


 

 

 

 

 



En principe pour les modules, le problème ne se pose pas, mais explorer tout de même le contenu de la table modules

Pour les plugins, visiter la table mambots et effectuer éventuellement les opérations nécessaires.

Vue la richesse du nombre d'extensions pour ce CMS, il est impossible de vous faire une liste cas par cas, mais prenez bien le temps de vérifier ses traces, ceci vous permettra de conserver un site en bon état et évitera de laisser une porte ouverte ( backdoor ) à de potentiellles attaques.

Réagissez à cet article sur le forum