OVH Cloud OVH Cloud

Protection Apache

8 réponses
Avatar
Florian Carrère
Bonjour,

je suis entrain de faire des tests pour protéger mes répertoires sur le
serveur donc je rentre dans httpd.conf la valeur suivante :

<Directory />
Order Deny,Allow
Deny from all
</Directory>

pour protéger mon dossier racine (le serveur) afin que personne ne
puisse y accéder et à la suite je rentre cette valeur :

<Directory /var/www/>
Order Deny,Allow
Allow from all
</Directory>

pour dire que sur le serveur seulement le repertoire www/ est accessible
par les visiteurs

mais ça ne marche pas ( !!

voici la partie de mon httpd.conf dont je vous parle :

*CODE*


#
# Each directory to which Apache has access, can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# permissions.
#

<Directory />
Order Deny,Allow
Deny from all
</Directory>

<Directory /var/www/>
Order Deny,Allow
Allow from all
</Directory>



Mon but est de faire en sorte qu'on ne puisse pas accéder aux répertoire
autres que www/ (repertoire ou se trouve les pages) !

Par exemple je ne veux pas que les utilisateur parun script php/perl/
... puissent PAR EXEMPLE lister le contenu du fichier access.log qui se
trouve dans /var/log/apache/ ...

Pour infos le serveur tourne sous une debian avec Apache 1.3.31

j'éspère que vous pourrez m'aider

merci d'avance


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

8 réponses

Avatar
J.Pierre Pourrez
Le 07/07/04 à 14:00, Florian Carrère écrivait:

je suis entrain de faire des tests pour protéger mes répertoires sur le
serveur donc je rentre dans httpd.conf la valeur suivante :

<Directory />
Order Deny,Allow
Deny from all
</Directory>



Trop restrictif !
Comment peut-on savoir s'il existe des dossiers/fichiers dans le dossier
"/" ?

pour protéger mon dossier racine (le serveur) afin que personne ne
puisse y accéder et à la suite je rentre cette valeur :

<Directory /var/www/>
Order Deny,Allow
Allow from all
</Directory>



Perso, je remplace "/var/www/" par "/home/www".
Et bien sûr /home est dans une partition dédiée.
En cas d'upload ou de fichiers créés par un script cela évite de
saturer la partition où est situé le dossier /var

Mon but est de faire en sorte qu'on ne puisse pas accéder aux répertoire
autres que www/ (repertoire ou se trouve les pages) !

Par exemple je ne veux pas que les utilisateur parun script php/perl/
... puissent PAR EXEMPLE lister le contenu du fichier access.log qui se
trouve dans /var/log/apache/ ...



Les scripts sur le serveur web sont executés sur les comptes utilisateur
et groupe www-data comme indiqué dans le fichier httpd.conf.

Donc si tu veux interdire l'accès aux fichiers de log d'Apache à tes
visiteurs, fais ceci

chmod -R o-rwx /var/log/apache

dans le fichier /etc/logrotate.d/apache, changer la ligne
"create 644 root adm" par "create 640 root adm".

Pour infos le serveur tourne sous une debian avec Apache 1.3.31


Otes-moi un doute !
Tu ne cherches pas à monter un serveur Web en production avec une SID ?

Sur ma Sarge à jour, "apache -v" me donne cela :
Server version: Apache/1.3.29 (Debian GNU/Linux)
Server built: Mar 10 2004 19:07:32.

j'éspère que vous pourrez m'aider


On fait ce que l'on peut.
Mais là où on a le plus d'échec, c'est d'apprendre aux utilisateurs à
lire le manuel ;-)

Jean-Pierre Pourrez


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Yves Rutschle
On Wed, Jul 07, 2004 at 05:45:31PM +0200, J.Pierre Pourrez wrote:
Otes-moi un doute !
Tu ne cherches pas à monter un serveur Web en production avec une SID ?

Sur ma Sarge à jour, "apache -v" me donne cela :
Server version: Apache/1.3.29 (Debian GNU/Linux)
Server built: Mar 10 2004 19:07:32.



Pourquoi pas? Sur un serveur en production, entre Sid (qui
risque de poser des problèmes) et Sarge (qui risque de poser
des problèmes et n'a pas de mises à jour de sécurité), Sid
n'est pas nécessairement un mauvais choix. Si Stable n'est
pas une option, ça reste ma solution préférée.

Y.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Florian Carrère
J.Pierre Pourrez a écrit :

Le 07/07/04 à 14:00, Florian Carrère écrivait:



je suis entrain de faire des tests pour protéger mes répertoires sur le
serveur donc je rentre dans httpd.conf la valeur suivante :

<Directory />
Order Deny,Allow
Deny from all
</Directory>





Trop restrictif !
Comment peut-on savoir s'il existe des dossiers/fichiers dans le dossier
"/" ?




Que dois-je mettre alors ? en fait mon but et que les internautes ne
puisses pas toucher aux autres repertoires que www/ je ne veux pas par
exemple qu'ils aillent squatter mon repertoire var/ et qu'ils modifies
des fichiers ou même en consultes



pour protéger mon dossier racine (le serveur) afin que personne ne
puisse y accéder et à la suite je rentre cette valeur :

<Directory /var/www/>
Order Deny,Allow
Allow from all
</Directory>





Perso, je remplace "/var/www/" par "/home/www".
Et bien sûr /home est dans une partition dédiée.
En cas d'upload ou de fichiers créés par un script cela évite de
saturer la partition où est situé le dossier /var





Ok merci pour ce conseil ;)

Mon but est de faire en sorte qu'on ne puisse pas accéder aux répertoire
autres que www/ (repertoire ou se trouve les pages) !

Par exemple je ne veux pas que les utilisateur parun script php/perl/
... puissent PAR EXEMPLE lister le contenu du fichier access.log qui se
trouve dans /var/log/apache/ ...





Les scripts sur le serveur web sont executés sur les comptes utilisateur
et groupe www-data comme indiqué dans le fichier httpd.conf.

Donc si tu veux interdire l'accès aux fichiers de log d'Apache à tes
visiteurs, fais ceci

chmod -R o-rwx /var/log/apache

dans le fichier /etc/logrotate.d/apache, changer la ligne
"create 644 root adm" par "create 640 root adm".




S'est fait ! et ça marche ! merci bien M'sieur ! O:-)




Pour infos le serveur tourne sous une debian avec Apache 1.3.31




Otes-moi un doute !
Tu ne cherches pas à monter un serveur Web en production avec une SID ?




Non mon serveur tourne sous Une Debian Woody ;)

Sur ma Sarge à jour, "apache -v" me donne cela :
Server version: Apache/1.3.29 (Debian GNU/Linux)
Server built: Mar 10 2004 19:07:32.



j'éspère que vous pourrez m'aider




On fait ce que l'on peut.
Mais là où on a le plus d'échec, c'est d'apprendre aux utilisateurs à
lire le manuel ;-)

Jean-Pierre Pourrez








--
-------------------------------------
Florian.Carrère - http://www.open-xhtml.org
-------------------------------------


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
J.Pierre Pourrez
Le 07/07/04 à 18:49, Florian Carrère écrivait:

J.Pierre Pourrez a écrit :

>Le 07/07/04 à 14:00, Florian Carrère écrivait:
>
>
>
>>je suis entrain de faire des tests pour protéger mes répertoires sur le
>>serveur donc je rentre dans httpd.conf la valeur suivante :
>>
>><Directory />
>>Order Deny,Allow
>>Deny from all
>></Directory>
>>
>>
>
>Trop restrictif !
>Comment peut-on savoir s'il existe des dossiers/fichiers dans le dossier
>"/" ?
>
>
Que dois-je mettre alors ? en fait mon but et que les internautes ne
puisses pas toucher aux autres repertoires que www/ je ne veux pas par
exemple qu'ils aillent squatter mon repertoire var/ et qu'ils modifies
des fichiers ou même en consultes

>
>
>>pour protéger mon dossier racine (le serveur) afin que personne ne
>>puisse y accéder et à la suite je rentre cette valeur :
>>
>><Directory /var/www/>
>>Order Deny,Allow
>>Allow from all
>></Directory>



Bon j'ai parlé un peu vite sur <Directory />.

Voilà ce que j'ai testé sur mon serveur et qui marche avec ma version :

<Directory />
Order deny,allow
Deny from all
</Directory>

<Directory /var/www/>
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Bon courage
Jean-Pierre Pourrez





--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Florian Carrère
J.Pierre Pourrez a écrit :

Le 07/07/04 à 18:49, Florian Carrère écrivait:



J.Pierre Pourrez a écrit :



Le 07/07/04 à 14:00, Florian Carrère écrivait:





je suis entrain de faire des tests pour protéger mes répertoires sur le
serveur donc je rentre dans httpd.conf la valeur suivante :

<Directory />
Order Deny,Allow
Deny from all
</Directory>






Trop restrictif !
Comment peut-on savoir s'il existe des dossiers/fichiers dans le dossier
"/" ?






Que dois-je mettre alors ? en fait mon but et que les internautes ne
puisses pas toucher aux autres repertoires que www/ je ne veux pas par
exemple qu'ils aillent squatter mon repertoire var/ et qu'ils modifies
des fichiers ou même en consultes





pour protéger mon dossier racine (le serveur) afin que personne ne
puisse y accéder et à la suite je rentre cette valeur :

<Directory /var/www/>
Order Deny,Allow
Allow from all
</Directory>









Bon j'ai parlé un peu vite sur <Directory />.

Voilà ce que j'ai testé sur mon serveur et qui marche avec ma version :

<Directory />
Order deny,allow
Deny from all
</Directory>

<Directory /var/www/>
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Bon courage
Jean-Pierre Pourrez






ça marche aussi chez moi !! merci :)

mais maintenant j'ai un autre problème ! je n'arrive pas à éxécuter les
scripts cgi !
j'ai mis ça dans mon httpd.conf pour que chaque utilisateur dans son
repertoire www/cgi-bin/ puisse éxécuter ses scripts mais ça ne
foncitonne pas, quand j'essaye de lancer un script cgi il me dit :

------------------------------


Internal Server Error

The server encountered an internal error or misconfiguration and was
unable to complete your request.

Please contact the server administrator, and
inform them of the time the error occurred, and anything you might have
done that may have caused the error.

More information about this error may be available in the server error log.


-------------------------------

j'ai rentré ça dans le fichier httpd.conf :

<Directory /home/*/www/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

j'ai portant bien la ligne : LoadModule cgi_module
/usr/lib/apache/1.3/mod_cgi.so
et celle là : AddHandler cgi-script .cgi .sh .pl

Quelqu'un sait d'ou cela peut venir ?

merci d'avance

florian












--
-------------------------------------
Florian.Carrère - http://www.open-xhtml.org
-------------------------------------


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sébastien Lardière
Florian Carrère a écrit :

mais maintenant j'ai un autre problème ! je n'arrive pas à éxécuter les
scripts cgi !
j'ai mis ça dans mon httpd.conf pour que chaque utilisateur dans son
repertoire www/cgi-bin/ puisse éxécuter ses scripts mais ça ne
foncitonne pas, quand j'essaye de lancer un script cgi il me dit :

------------------------------


Internal Server Error

The server encountered an internal error or misconfiguration and was
unable to complete your request.

Please contact the server administrator, and
inform them of the time the error occurred, and anything you might have
done that may have caused the error.

More information about this error may be available in the server error log.


-------------------------------

j'ai rentré ça dans le fichier httpd.conf :

<Directory /home/*/www/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

j'ai portant bien la ligne : LoadModule cgi_module
/usr/lib/apache/1.3/mod_cgi.so
et celle là : AddHandler cgi-script .cgi .sh .pl

Quelqu'un sait d'ou cela peut venir ?



Moi je ne sais pas, mais ton fichier de log d'erreurs surement.

Je te conseille de le lire quand tu as une erreur. Si tu ne vois pas de
probleme, augmente le niveau de log. Attention à ne pas laisser de
niveau de log trop élevé sur un serveur en prod.


--
Sébastien


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Sébastien Lardière
Florian Carrère a écrit :

Oui désolé j'ai complètement oublié de vous montré le fichier de log ,
voici ce qu'il me met : [Thu Jul 8 10:22:29 2004] [error] [client
192.168.169.254] Premature end of script headers:
/home/debianuser/www/cgi-bin/traiteform.cgi



Le script cgi est buggé ? Qu'est ce que c'est, perl, php, binaire ?
--
Sébastien


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Florian Carrère
Sébastien Lardière a écrit :

Florian Carrère a écrit :


mais maintenant j'ai un autre problème ! je n'arrive pas à éxécuter
les scripts cgi !
j'ai mis ça dans mon httpd.conf pour que chaque utilisateur dans son
repertoire www/cgi-bin/ puisse éxécuter ses scripts mais ça ne
foncitonne pas, quand j'essaye de lancer un script cgi il me dit :

------------------------------


Internal Server Error

The server encountered an internal error or misconfiguration and was
unable to complete your request.

Please contact the server administrator,
and inform them of the time the error occurred, and anything you
might have done that may have caused the error.

More information about this error may be available in the server
error log.


-------------------------------

j'ai rentré ça dans le fichier httpd.conf :

<Directory /home/*/www/cgi-bin/>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

j'ai portant bien la ligne : LoadModule cgi_module
/usr/lib/apache/1.3/mod_cgi.so
et celle là : AddHandler cgi-script .cgi .sh .pl

Quelqu'un sait d'ou cela peut venir ?




Moi je ne sais pas, mais ton fichier de log d'erreurs surement.

Je te conseille de le lire quand tu as une erreur. Si tu ne vois pas
de probleme, augmente le niveau de log. Attention à ne pas laisser de
niveau de log trop élevé sur un serveur en prod.




Oui désolé j'ai complètement oublié de vous montré le fichier de log ,
voici ce qu'il me met : [Thu Jul 8 10:22:29 2004] [error] [client
192.168.169.254] Premature end of script headers:
/home/debianuser/www/cgi-bin/traiteform.cgi

:)


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact