Je suis enseignant au primaire et nous voulons héberger notre propre site Web sur le serveur de notre école. Ainsi, il est crucial que cela ne compromette pas la stabilité ou la sécurité de notre réseau.
Y -a-t-il quelque chose de particulier à faire suite à l'installation de WAMP5 afin de le sécuriser ou est-il déjà configuré de façon sécuritaire?
Je vous remercie à l'avance de votre collaboration et félicitations à toute l'équipe pour cette merveilleuse distribution!
Viper l'a installé comme serveur sur son pc mais je sais pas si question rapidité et fiabilité c'est le meilleur outil à utiliser pour le web publique... Je te conseille de faire ça sous linux, ce sera peut-être déroutant au départ mais tu vas y gagner en stabilité et rapidité. Je te donne l'adresse d'un site qui explique comment installer tout ça sur un pc linux : [www.az-php.com] Linux a l'avantage d'utiliser des debians et de se mettre à jour automatiquement.
Au niveau sécurité, on peut parfaitement arriver à quelque chose de très correct avec du Windows... Et puis bon, au niveau rapidité, sur Internet la bande passante joue bien plus que le système d'exploitation.
Donc comme Linux c'est une usine à gaz à installer et à configurer (et je dis ça en connaissance de cause), on va rester sur du Windows pour plus de convivialité je pense
Premièrement on va faire en sorte de pouvoir définir des droits d'accès à certains dossiers selon l'IP, ou selon un mot de passe... donc dans "c:\wamp\apache\conf\httpd.conf" (à éditer avec le bloc-notes), cherche les lignes commençant par "AllowOverride" (il y en a 2), et mets à côté "All" à la place de "None". Tu peux redémarrer le serveur apache.
Il te faut ensuite un bon firewall pour restreindre Apache à n'utiliser que le port 80, et empêcher toute autre communication sur tout autre port (à 2-3 ports près (DNS, etc...)). Donc comme le firewall sort un peu du sujet "wamp", si jamais tu veux en savoir d'avantage là-dessus, envoie-moi un mail, je te répondrai directement !
Moi aussi je parle en connaissance de cause Pour cause, mon serveur est sur linux clara 2.4.25 et avec 128 mb de Ram sans firewall je fais des résultats que n'atteindra jamais windows server Mais mon avis peut être déformé parce que je déteste windows :p trop insécurisé pour les serveurs, payant, trop lent, trop gourmand en ressources, les spywares 'merci à lavasoft pour l'outil génial qu'il a fait : ad-aware) En plus il n'y a pas longtemps, j'ai essayé d'installer le sp1a sur windows pro sans rien et ça a tout fait foirer :p heureusement j'ai sus tout récupérer sans formatter...
VIVE le liiibre (et easy tools :p) Je te vois pas sur msn c normal ??
Cool, ce sujet m'interesse également pour quand je serais sur le campus dans 3 semaines comme ca, tlm pourra voir mon boo site ^^ (en fait, je mettrai juste un chat lol)
Donc, afin de sécuriser Apache, je n'ai qu'à modifier les droits d'accès dans le fichier de configuration et le tour est joué? Seulement 2 lignes à modifier?
En ce qui concerne le Firewall, si j'utilise Sygate Personal Firewall, quelles sont les étapes à suivre exactement? N'oubliez pas qu'il s'agit du serveur d'une école primaire et qu'une trentaine d'ordinateurs y sont reliés; il ne faut donc pas bloquer de ports qui sont utilisés par le réseau scolaire!
Et concernant MySQL, n'ai-je que le mot de passe de l'utilisateur "root" à modifier afin de le rendre sécuritaire? J'ai trouvé d'excellentes explications ici: "[www.wampserver.com];. Autre chose à faire?
Et PHP est-il déjà configuré de façon optimale et sécuritaire?
Enfin, une dernière question: si nous hébergeons nous-même notre site Web, comment modifier les autorisations sur les fichiers (chmod) directement sur le serveur, sans passer par un client FTP?
- l'Allow Override va servir à établir tes propres règles... Tu peux autoriser pour certains dossiers hébergés, uniquement l'accès au réseau local, bloquer certains autres dossiers hébergés par l'utilisation d'un mot de passe, etc... Je te conseille cette petite page qui explique bien le fonctionnement de tout ceci : [www.infres.enst.fr]
Cela dit, au niveau hackers tu n'es pas mieux protégé qu'avant. Mais il faut savoir que les informaticiens ont trop tendance à plonger dans la parano et à immaginer qu'il y a des Kevin Mitnick à tous les coins de rue... Donc même pour un réseau scolaire, un simple firewall bien configuré suffit amplement à repousser les hypothétiques tentatives d'intrusion. Mais il faut savoir que "Sygate Perso Firewall" n'est pas le top : [www.firewall-net.com] Donc si tu veux absolument un firewall gratuit, il vaut mieux prendre "Kerio Perso Firewall". Personnellement je ne connais ni l'un ni l'autre, je sais juste que Kerio est super austère, donc bon... Je suis resté avec Outpost !
- Concernant MySQL oui, tu ne risque trop rien à ce sujet non plus. Les pros vont te dire d'utiliser un mot de passe à 8 caractères minimum. Il faut qu'il y ait des minuscules, majuscules et chiffres, et qu'il n'y ait pas de logique particulière dans le choix de ce pass : "U7gQm92x" ... Bon, c'est exagéré encore une fois. Evite juste "dieu" et "pass" et ça ira
- Euh non, je ne pense pas que PHP soit configuré de façon très sécurisée, et je ne suis pas un expert de la configuration de php... C'est dommage que Bistory vienne de s'absenter pour une semaine, il touche un peu + que moi ! Et est d'ailleurs en train de faire un outil là-dessus... Mais bon, pour exemple, mon PC tourne 24h/24 depuis plusieurs mois, j'ai des tonnes de serveurs installés dessus (y-compris Wamp), et mon firewall suffit à bloquer les moindres attaques (et c'est bien + souvent des scans de port que de vraies attaques), donc il n'y a encore une fois pas de grande crainte à avoir !
- Pour modifier les autorisations, il faut que tu soies en NTFS, et que tu changes les autorisations de "tout le monde"... Lecture, Ecriture, Execution, ... Ca se fait avec clic droit sur le fichier/dossier concerné. "Propriétés/sécurité", et là tu fais ta soupe
Cependant, la fichier .htaccess m'est encore difficile à comprendre... Si j'installe WAMP5 sur notre serveur et que j'installe SPIP à l'intérieur du répertoire www, comment restreindre les visiteurs à ne pouvoir consulter que ce répertoire et rien d'autre?
Enfin, au niveau du Firewall, que doit-on faire afin qu'il soit "bien configuré"?
De rien, et puis on en n'a pas encore fini !! Je t'enverrai la facture une fois tout ça terminé
Si vraiment tu ne comptes laisser aux visiteur un accès qu'à SPIP, place dans les autres dossier (pas les sous-dossiers hein !) un fichier ".htaccess" de ce style :
<limit GET> satisfy any order deny,allow deny from all allow from localhost </limit>
Comme ça on ne pourra avoir accès aux dossiers "exemples", "phpmyadmin" et "sqlitemanager" (vu qu'il s'agit des seuls dossiers présents à la base), que depuis le poste serveur ! ... N'importe qui d'autre se verra refuser l'accès.
Ensuite, remplaces le fichier "c:\wamp\www\index.php" par un autre fichier "index.php" contenant le code suivant :
<? header("Location: spip" ?>
(uniquement !) Ca permettra de rediriger les gens qui taperont l'IP/le nom de la machine, directement vers le dossier de spip (à supposer que ce dossier s'appelle "spip".
Donc pour résumer, pour avoir accès à phpmyadmin et autres, il faudra tapper le nom complet directement dans la barre d'adresse, et depuis le serveur uniquement.
Voilà, c'est une des solutions, et elle est assez simple
Pour le firewall, ça dépend de ta config. réseau (routeur, partage de connexion, ...) Donc le mieux c'est que tu me dises tout ça par mail à ViperAogiri@hotmail.com et on en parle directement tous les deux. Ce forum étant tout de même essentiellement dédié à Wamp5 et non aux firewalls
Il y a moyen de restreindre l'accès à phpMyAdmin, Viper tu connais le moyen. Je ne suis pas chez moi donc je saurais pas chercher la variable à éditer :s. C'est un truc avec cookie à la place de qqchose d'autre enfin je laisse ce soin à viper
Mais si la ligne là : "$cfg['PmaAbsoluteUri'] = 'localhost/phpmyadmin/';", faut déjà être sur le serveur même pour pouvoir utiliser phpmyadmin... Mais bref, oui, pour sécuriser l'accès à phpmyadmin, il faut trouver la ligne suivante :
$cfg['blowfish_secret'] = '';
et mettre quelquechose dedans (n'importe quoi, c'est pour crypter le pass, et on n'a pas besoin de connaître ce code). Donc pourquoi-pas un truc de ce style :
Ensuite, on va dire à PhpMyAdmin d'utiliser un login par cookie (pas mal). En trouvant les lignes ci-dessous (juste un peu plus bas que le "blowfish_secret" dans le fichier) : $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'votre mot de passe';
et en les remplaçant par : $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = '';
un petit .htaccess devrait suffir pour les dossiers sensibles soit avec une limitation par IP ou par un fchier de mots de passes. apres tu peut aussi faire deux interfaces une sur 80 pour le site principale et une sur 8080 pour l'admin (virtual host et listen pour les ports a ouvrir) a la limite le 80 pour le site et le 8080 pour l'admin et la racine du 8080 protégé par htraccess avec liste d'utilisateurs.
de toute facon le mieux est d'installer soit-même apache mysql et php mais c'est vrais que ca demande plus de temps (c'est pas dificile il y a pleins de docs).
Merci de votre dévouement; je vais donc tenter de me lancer dans cette aventure en suivant vos bons conseils!
Donc, j'ai installé WAMP5 sur XP Pro et, si je récapitule, je dois:
1. "définir des droits d'accès à certains dossiers selon l'IP, ou selon un mot de passe... donc dans "c:\wamp\apache\conf\httpd.conf" (à éditer avec le bloc-notes), chercher les lignes commençant par "AllowOverride" (il y en a 2), et mettre à côté "All" à la place de "None"
2. Configurer les .htaccess à ajouter dans les dossiers de cette façon: <limit GET> satisfy any order deny,allow deny from all allow from localhost </limit>
Mais dans quels dossiers dois-je les inclure? Tous ceux du répertoire www?
3. Remplacer le fichier "c:\wamp\www\index.php" par un autre fichier "index.php" contenant le code suivant :
Pour php, ouvre ton php.ini dans ton répertoire apache/ Il n'y a pas beaucoup à faire en fait pour le sécuriser mais les quelques petites choses à modifier sont ici : remplacer expose_php = On Par expose_php = Off
Remplacer register_globals = On Par : register_globals = Off
Etant donné que ton serveur est destiné à un usage privé, c'est tout ce qu'il y a à faire Tu dois surtout toujours avoir ta version de php à jour pour qu'elle soit la plus sécurisée.
"Premièrement on va faire en sorte de pouvoir définir des droits d'accès à certains dossiers selon l'IP, ou selon un mot de passe... donc dans "c:\wamp\apache\conf\httpd.conf" (à éditer avec le bloc-notes), cherche les lignes commençant par "AllowOverride" (il y en a 2),..."
Je compte 5 AllowOverride dans ce document... Lesquels dois-je modifier? Tous?
En consultant SQL via phpMyAdmin, j'ai remarqué ce message d'erreur:
"Certaines fonctionnalités ayant trait aux tables reliées sont désactivées. Pour une analyse du problème, cliquez ici."
Est-ce normal? Puis-je faire disparaître ce message d'erreur? _____
Aussi, sur la page "localhost", l'information suivante apparaît:
"Version de Apache: Apache/1.3.31 (Win32) Version de PHP: 5.0.2 Version de MySQL: MySQL n'est pas lancé ou votre configuration phpmyadmin n'est pas bonne."
Dans phpMyAdmin, tu peux supprimer "test" mais surtout pas mysql Le message d'erreur n'altere en rien ta sécurité. Je crois qu'il y a moyen de le faire disparaître mais ça ne m'intéresse. pas donc je ne saurais pas t'aider. En ce qui concerne le httpd.conf, je laisse la main à Viper
# # This controls which options the .htaccess files in directories can # override. Can also be "All", or any combination of "Options", "FileInfo", # "AuthConfig", and "Limit" # AllowOverride all --------------------
Donc c'est celui-ci qu'il faut changer !
2- Comme dit Bistory, en effet, tu peux virer "test", mais tâche de laisser mysql quand-même
3- Si tu ne veux plus avoir ce message, il y a toute une manip à faire, assez ennuyeuse, pour finalement pas changer grand chose. Ni au niveau sécurité, ni vraiment au niveau fonctionnalités.
Si vraiment tu veux faire ça, dans ton dossier "phpmyadmin/scripts", tu as un fichier "create_tables.txt". Fais-le exécuter par phpmyadmin (dans les fenêtres "SQL".
Ensuite tu éditeras le fichier "config.inc.php", pour renseigner tous ces champs :
Bon, y'a 3 lignes de commentaires derrière chaque champ, mais je les ai pas mis là, pcque sinon on y serait encore
Et pour terminer, il faut que tu accordes ("privilèges", dans phpmyadmin), les autorisations "SELECT, INSERT, UPDATE, DELETE" à tous tes différents utilisateurs SQL, sur la base "phpmyadmin" !
Après tout ça tu ne devrais plus avoir ce message, mais tu verras, ça va te faire une belle jambe !!
Petit conseil sécurité : ne jamais laisser des répertoires sans index ! Pour remédier à ce trou de sécurité, il suffit de mettre des .htaccess "denied from all" pour les dossiers dans lesquels les utilisateurs ne peuvent pas accéder et d'aller dans le httpd.conf, chercher : Option Indexes et remplacer par : Option -Indexes
Mettre aussi des index.htm dans les dossiers dans lesquels les utilisateurs peuvent accéder et dans lesquels il n'y a aucun index.xxx