previous up next contents index
Previous: 3 Routage Up: Nullix 113 (LYX 1.5.4) Next: 5 Uniformisation des menus   Contents   Index

Subsections

4 Serveur apache

4.1 Principes de base

  1. Les rpm à installer sont (au minimum) : apache2, apache2-doc, perl, php5
  2. Une arborescence html est destinée à être consultée. Et cette consultation ne peut avoir lieu sans une intrusion de l'extérieur vers la machine qui exécute cette arborescence. Il s'agit de garder le contrôle de cette intrusion... et de ne pas ouvrir plus de portes que nécessaire. La règle de base est d'interdire en général et de n'autoriser qu'en particulier.
  3. Un mécanisme de mascarade (cf le paragraphe correspondant) permet de monter différents répertoires du système de fichiers à un endroit ou un autre du site (arborescence web).
  4. Pour qu'un fichier soit web-accessible, il doit d'abord être unix-accessible par le serveur. Pour que la chose puisse fonctionner, il faut que chacun des répertoires emboîtés depuis la racine-fichiers soit exécutable worldwide (même s'il n'est pas lisible et encore moins inscriptible) et que chaque fichier utilisé soit lisible worldwide (sans être ni inscriptible ni exécutable).
  5. En complément de ces autorisations Unix, il y a les autorisations Apache. Bien comprendre qu'il y a des autorisations dépendant de l'adresse réelle (directory) et d'autres de l'adresse de montage (location). Par ailleurs, il y a une hiérarchie et chaque niveau peut interdire la modification des contraintes par les niveaux inférieurs.

4.2 Etapes de mise en route ($ SuSE-10.2$)

  1. Lancement par /etc/init.d/apache2, en direct ou bien sous le contrôle du mécanisme des runlevels. Le fichier /etc/sysconfig/apache2 est utilisé pour configurer ce lancement (cf Subsection 4.3).
  2. La configuration statique est déterminée par le fichier /etc/apache2/httpd.conf et les fichiers appelés par une directive Include (Subsection 4.4). Le batch qya_docs_apache permet de rassembler tout cela en un seul document, qui est plus facile à interroger. Quand tout fonctionne, on n'a plus besoin de rien et, en plus, on peut consulter http://localhost/server-info.
  3. Dans la configuration standard, l'utilisateur système est wwwrun:www, son répertoire de travail est (depuis $ SuSE-8.1$) /srv/www et la racine exportée est /srv/www/htdocs. Auparavant, le répertoire /usr/local/httpd était utilisé.
  4. Depuis la $ SuSE-8.1,$ il faut fournir la page d'accueil racine. Dans tous les cas, cette page est cruciale pour le référencement du site.


4.3 Le batch de lancement

  1. Le batch de lancement est /etc/init.d/apache2. Ce batch tire ses informations du fichier /etc/sysconfig/apache2 ($ SuSE-10.2$) qui a été /etc/sysconfig/httpd ($ SuSE-8.0$) après avoir été en répartis entre /etc/rc.config et /etc/rc.config.d/apache.rc.config ($ SuSE-7.2$).
  2. L'idée sous-jacente est que les drapeaux sont plutôt sous le contrôle du webmaster, et la config plutôt sous le contrôle de YaST. Le résultat est plutôt d'embrouiller les choses. Être attentif à l'environnement existant lors du lancement du serveur. Il n'est pas indifférent d'être root ou seulement su root (en particulier le PATH n'est pas le même).
  3. Sous $ SuSE-10.2$, le batch de lancement commence par positionner à sa façon les variables pname, apache_link, logdir, pidfile, sysconfdir, sysconfig_apache.
  4. Les commandes de marche-arrêt sont :

    start
    start httpd
    startssl
    start httpd with -DSSL
    stop
    stop httpd by a SIGTERM
    try-restart
    stop httpd then, if it was running before, start it again.
    restart
    stop httpd if running then, in any case, start httpd
    reload
    start if not running or do a graceful restart by sending a SIGUSR1
  5. Les commandes de contrôle sont :

    status
    check whether httpd is running
    [full-]server-status
    dump a [full-]status screen; requires lynx or w3m and mod_status enabled
    probe
    probe for the necessity of a reload, give out the argument which is required for a reload. (by comparing conf files with pidfile timestamp)
    configtest
    do a configuration syntax test
    extreme-configtest
    try to run httpd as nobody (detects more errors by actually loading the configuration, but cannot read SSL certificates)
  6. Le batch commence par interpréter la configuration actuelle, et stocke ce qu'il en a vu dans le répertoire /etc/apache2/sysconfig.d (globals, includes, modules).
  7. Puis les drapeaux APACHE_SERVER_FLAGS sont convertis en variables d'aiguillages qui seront transmises au programme principal (contrôle des fichiers de configuration à l'aide de tests IfDefined).
  8. Modifier les points suivants de /etc/sysconfig/apache2 :

    1. APACHE_ACCESS_LOG : le nom de fichier est *.log et non *_log
    2. APACHE_MODULES : ajouter status info
    3. APACHE_EXTENDED_STATUS= on
    4. APACHE_SERVER_FLAGS : ajouter STATUS.


4.4 Fichiers de configuration

  1. Le fichier principal est /etc/apache2/httpd.conf ($ SuSE-10.2$) après avoir été /etc/httpd/httpd.conf. Les autres fichiers sont appelés par des directives Include.
  2. Les fichiers du répertoire /etc/apache2/extra ne sont pas utilisés.
  3. Placer les fichiers *.conf additionnels en : /etc/apache2/conf.d/
httpd.conf
error.log (et non error_log)
info.conf, status.conf
Allow from localhost, ::1 (à cause d'une modification de /etc/hosts, elle même dûe à un bricolage lié à Maple/Mathematica)
Ne pas oublier de déclarer le module dans /etc/sysconfig/apache2
server-tuning.conf
Par défaut ($ SuSE-10.2$) StartServers 5, MinSpareServers 5, MaxSpareServers 10, ServerLimit 150, MaxClients 150, MaxRequestsPerChild 10000
Actuellement utilisé : start=50, min=10, spare=20
Sous $ SuSE-8.1$ il suffisait d'indiquer le type de serveur (slim/mid/thick/enterprise) dans /etc/sysconfig/apache
mod_log_config.conf
Ajouter une ligne ref_common pour pouvoir enregistrer le Referrer sans le User-agent. Modifier sysconfig.
LogFormat "%h %l %u %t \"%r\" %>s %b \ \"%{Referer}i\" %l" ref_common

mod_userdir.conf
Fichier capital...
mod_php5.conf
Examiner l'intérêt de distinguer php, php4, php5
htdig.conf
A écrire conformément aux directives de Subsection 4.11
manual.conf
Renommer en manual.conf-kill et remplacer par un fichier vide
localdocs.conf
A écrire conformément aux directives de Subsection 4.6.4

4.5 Mpm

.Apache (2007)

4.6 Autorisations et mascarades

4.6.1 Le mécanisme d'autorisation

  1. Mécanisme hiérarchique (avec héritage)
  2. AllowOverride

    None, All, or any combination of Options, FileInfo, AuthConfig, and Limit.

    They control which options the .htaccess files in directories can override.

  3. Options

    None, All, or any combination of Indexes, Includes, IncludesNoExec, FollowSymLinks,  
    SymLinksIfOwnerMatch ExecCGI or MultiViews
      Note that MultiViews must be named explicitly : Options All doesn't give it to you.

  4. Allow, Deny :

    1. Order allow, deny 
      Allow from all
    2. Order deny, allow 
      Deny from all  
      Allow from localhost xxx.xxx.xxx.xxx
    They control who can get stuff from this server.

4.6.2 Protection des racines

Le symbole ¶ indique un passage à la ligne.

  1. Racine du système de fichiers LOCAL ()

    <Directory /> 
        Options None $ \qquad¶\qquad $AllowOverride None 
        Order deny, allow $ \qquad¶\qquad $Deny from all 
    </Directory>
  2. La config était

    <Directory /> 
        AuthUserFile  /etc/httpd/passwd 
        Options -FollowSymLinks $ \qquad¶\qquad $AllowOverride None 
    </Directory>
  3. Racine EXPORTÉE par le serveur

    DocumentRoot "/srv/www/htdocs" 
    <Directory   "/srv/www/htdocs"> 
        Options None $ \qquad¶\qquad $AllowOverride None 
        Order allow,deny $ \qquad¶\qquad $Allow from all 
    </Directory>
    En particulier, il faut que le fichier de base du serveur s'appelle explicitement index.html, puisque les liens symboliques ne sont pas autorisés.

  4. La config était

        Options Indexes -FollowSymLinks +Includes MultiViews 
        AllowOverride None 
        Order allow,deny $ \qquad¶\qquad $Allow from all 
        <IfDefine DAV> DAV On </IfDefine>
  5. Protection des fichiers .htaccess

    AccessFileName .htaccess

    <Files ~ "^\.ht"> 
        Order allow,deny $ \qquad¶\qquad $Deny from all 
    </Files>

4.6.3 Mascarades

  1. Répertoire principal des serveurs personnels

    UserDir public_html 
    <Directory /home/*/public_html> 
      AllowOverride FileInfo AuthConfig Limit Indexes 
      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
      <Limit GET POST OPTIONS PROPFIND> 
        Order allow,deny $ \qquad¶\qquad $Allow from all 
      </Limit>

      <LimitExcept GET POST OPTIONS PROPFIND> 
        Order deny,allow $ \qquad¶\qquad $Deny from all 
      </LimitExcept> 
    </Directory>

    Indexes n'était pas spécifié pour $ SuSE-8.1$.

  2. icônes

    Alias /icons/  /usr/share/apache2/icons/ 
    <Directory "/usr/share/apache2/icons"> 
      Options Indexes MultiViews $ \qquad¶\qquad $AllowOverride None

      Order allow,deny $ \qquad¶\qquad $Allow from all 
    </Directory>

    Etait /usr/local/httpd/icons/ pour $ SuSE-8.1$.


4.6.4 Documentation

  1. Créer un fichier /etc/apache2/conf.d/localdocs.conf. Les Alias des sous répertoires doivent venir avant ceux des répertoires. Tout cela restreint à localhost.
  2. Vérifier la syntaxe avant chargement.
  3. Créer un fichier racine, servant de menu.
  4. Ne pas oublier de placer des fichiers index.html aux bons endroits (redirection ou bien envoi sur un fichier d'accueil).
  5. Recompiler le manuel apache. Ne conserver que la version us (les autres ne sont probablement pas à jour) et placer tout cela en docs/apache.
  6. Les alias :

    Alias /docs/howto "/usr/share/doc/howto/en/html"

    Alias /docs/opensuse "/usr/share/doc/manual/opensuse-manual_en/manual"

    Alias /docs/htdig "/usr/share/doc/packages/htdig/htdoc"

    Alias /docs/gimp "/opt/gnome/share/gimp/2.0/help/"

    Alias /docs "/srv/www/docs"


4.7 Réglage des exécutables cgi, pl, php

4.7.1 Réglage global

  1. Les règles de sécurité imposent de confiner ce genre de fichiers dans des répertoires "sécurisés".
  2. Pour $ SuSE-10.2$, /etc/apache2/httpd.confcontient :

    Include /etc/apache2/default-server.conf
  3. /etc/apache2/default-server.conf contient :
    (les deux premières lignes sont un patch d'une erreur de compilation de htdig)

    Alias /cgi-bin/images/star.gif /srv/www/gif/star.gif

    Alias /cgi-bin/images/star_blank.gif /srv/www/gif/star_blank.gif

    ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

    <Directory "/srv/www/cgi-bin">

      AllowOverride None $ \qquad¶\qquad $Options +ExecCGI -Includes

      Order allow,deny $ \qquad¶\qquad $Allow from all

    </Directory>

    Et alors les cgi-bin fonctionnent dans le répertoire cgi-bin (global)

  4. /etc/apache2/mod_perl-startup.pl contient :

    if ( ! $ENV{MOD_PERL}) { die "GATEWAY_INTERFACE not Perl!"; }

    use lib qw(/srv/www/perl-lib);

    use ModPerl::Util (); #for CORE::GLOBAL::exit

    use Apache2::RequestRec ();

    use Apache2::RequestIO ();

    use Apache2::RequestUtil ();

    use Apache2::ServerRec ();

    use Apache2::ServerUtil ();

    use Apache2::Connection ();

    use Apache2::Log ();

    use APR::Table ();

    use ModPerl::Registry ();

    use Apache2::Const -compile => ':common';

    use APR::Const -compile => ':common';

    1;

    Et alors les cgi-bin fonctionnent dans le répertoire cgi-bin (global)

  5. /etc/apache2/conf.d/php5.conf contient :

    <IfModule mod_php5.c>

      AddHandler application/x-httpd-php .php

      AddHandler application/x-httpd-php-source .phps

      DirectoryIndex index.php

    </IfModule>

    (chaque ligne en triple : php, php4, php5)

    Et alors les php fonctionnent partout. Placer php_test.php dans un répertoire sous password, de façon à ne pas révéler l'état intérieur du serveur.

4.7.2 Ancienne version de cgi/perl

  1. version précédente ($ SuSE-8.1$) :

    Alias   /cgi-bin-sdb/ /usr/local/httpd/cgi-bin/ 
    ScriptAlias /cgi-bin/ /usr/local/httpd/cgi-bin/ 
    <Directory "/usr/local/httpd/cgi-bin"> 
      Options None $ \qquad¶\qquad $AllowOverride None $ \qquad¶\qquad $Allow from all  
    </Directory> 
      
    <Directory /usr/lib/sdb/cgi-bin> 
      Options +ExecCGI -Includes $ \qquad¶\qquad $AllowOverride None 
      SetHandler cgi-script 
    </Directory>
  2. AddHandler : allows you to map certain file extensions to "handlers", actions unrelated to filetype. These can be either built into the server or added with the Action command
    To use server side includes outside ScriptAliased directories:
    To use CGI scripts outside ScriptAliased directories : "AddHandler cgi-script .cgi".
    Exemples anciens :

    <Location /cgi-bin> 
      AddHandler  perl-script .pl 
      PerlHandler Apache::Registry 
      PerlSendHeader On 
      Options +ExecCGI 
    </Location> 
      
    AddType text/html .shtml 
    AddHandler server-parsed .shtml 
    AddHandler cgi-script .cgi
  3. Exécutables php

    AddType application/x-httpd-php4 .php 
    AddType application/x-httpd-php4 .php4 
    AddType application/x-httpd-php3-source .phps

4.7.3 Réglages locaux

  1. Le fichier /etc/apache2/mod_userdir.conf contient (avant la déclaration générale de userdir) :

    ScriptAlias "/~ipse/cgi-bin/" "/home/ipse/public_html/tests/" 

    <Directory /home/ipse/public_html/tests>

      AllowOverride FileInfo AuthConfig Limit Indexes Options

      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

      <Limit GET POST OPTIONS PROPFIND>

        Order allow,deny $ \qquad¶\qquad $Allow from all

      </Limit>

      <LimitExcept GET POST OPTIONS PROPFIND>

        Order deny,allow $ \qquad¶\qquad $Deny from all

      </LimitExcept>

    </Directory>

  2. Et alors le répertoire /~ipse/cgi-bin/ se comporte activement, tandis que /~ipse/tests/ se comporte comme un répertoire banal (demande comment lire tout cela)
    Remarque : aucun fichier .htaccess n'est présent.

4.7.4 php

  1. La doc php se trouve en http://localhost/docs/packages/phpdoc/manual/
  2. (Remarque $ SuSE-8.1$) : le répertoire /srv/www/htdocs/phpMyAdmin doit être sécurisé.

4.8 Personnalisation des messages d'erreur (Apache style)

Regarder le répertoire /usr/share/apache2/error/

  1. plain text

    ErrorDocument 500 "The server made a boo boo. 
    #  n.b.  the (") marks it as text, it does not get output 

  2. local redirects

    ErrorDocument 404 /missing.html 
    #  to redirect to local URL /missing.html 
    ErrorDocument 405 /cgi-bin/missing_handler.pl 
    #  redirecting to a script or a ssi-doc 

  3. external redirects

    ErrorDocument 402  
      http://some.other_server.com/subscription_info.html 
    #  N.B.: Many of the environment variables associated with  
    the original request will *not* be available to such a script. 


4.9 Webalizer

Les logs sont pollués par des coucous qui cherchent à se faire référencer, et il est difficile d'exploiter les fichiers obtenus : il faut utiliser des batches complémentaires pour filtrer le travail de webalizer.

  1. Ce programme exploite les fichiers /var/log/httpd/access.log... qui doivent donc exister et être maintenus à une taille raisonnable (cf Section 1.4).
  2. Il est particulièrement intéressant d'avoir trace des Referrers, c'est à dire des liens qui ont amené à entrer dans le site. Il est donc nécessaire de configurer /etc/httpd/httpd.conf pour en garder trace :
    CustomLog /var/log/httpd/access.log combined
  3. Drapeaux à positionner dans le fichier webalizer.conf

    Incremental
    yes
    DNSChildren
    30 (permet d'accélérer le traitement)
    AllReferrers
    yes (page spéciale avec tous les Referrers du mois)
    GroupReferrer
    www.google google
    IgnoreURL
    /cgi-bin/Count.cgi
  4. Le batch de lancement doit sélectionner les fichiers à prendre en compte :
    newer=$site/index.html 
    for qui in `find $logdir/access.log* -newer $newer` ; do ...
  5. Prétraiter les fichiers logs de façon à attribuer à Google les urls 216.239.xx.xx
    s¶http://216.239\.[0-9]*\.[0-9]*/search¶http://www.google.xx.xx/search¶g
  6. Un post-traitement du fichier de statistiques permet de le mettre au look général du site (couleurs, boutons, etc).

4.10 Counter-cgi

  1. La version installée en 2001 se laisse recopier d'une machine à l'autre. Il suffit de copier /srv/www/cgi-bin/Count.cgi d'une part et /srv/www/Counter/ d'autre part (le sous répertoire datas doit appartenir à wwwrun). Par contre, une simple copie ne suffit pas lorsque les répertoires standard ont changé de place.
  2. En tout état de cause, les sources wwwcount2.5.tar.gz. sont toujours ($ SuSE-10.2$) disponibles sur le site http://www.muquit.com/muquit/software/Count/Count.html. Il n'est pas nécessaire d'imprimer la documentation depuis le site, car elle est incluse dans le fichier archive. Nous choisissons de placer cette archive dans /opt/cgi_scr/. Décompacter par gunzip * puis tar -extract -file=wwwcount2.5.tar.
  3. Se placer dans le répertoire /opt/cgi_scr/wwwcount2.5 qui vient d'être créé. Suivre la doc, c'est à dire lancer successivement make config.h, make all, make cfg, et enfin make install. La configuration consiste en particulier à choisir les répertoires.
  4. Le premier batch : make config.h donne à choisir certaines options. Nous retenons :

    CgiBinDir=/srv/www/cgi-bin

    BaseDir= /srv/www/Counter

    ConfDir= /srv/www/Counter/conf

    ConfFile=count.cfg

    DataDir=/srv/www/Counter/data

    DigitDir=/srv/www/Counter/digits

    LogDir=/var/log/counter

    LogFile=Count2_5.log

  5. Puis make all. Cela crée diverses choses, attribuées à user 500/ group 500.
  6. Puis make cfg. Cela crée un fichier count.cfg. Automatic files création =y, strict mode =n. Laisser l'affichage des messages d'erreur dans la phase de tests, puis la supprimer (pour ne pas publier les répertoires effectifs).
  7. La page de tests issue de testcount-sh peut être reprise pour en faire une page active. La nouvelle version figure dans les pages de test du site.
  8. Configuration : le répertoire ~Counter/data doit appartenir à l'utilisateur wwwrun. Les images à incruster doivent être placées dans les répertoires ~Counter/digits/xx. Et bien entendu : recopier les valeurs des compteurs qui sont dans DataDir
  9. Utilisation effective : décrire le compteur comme un bouton de la barre de titre.


4.11 Moteur de recherche htdig

Incomplet.

4.11.1 htdig ($ SuSE-10.2$)

  1. Fichier /etc/apache2/conf.d/htdig.conf :
    .Alias /htdig "/srv/www/htdig" 
    <Directory "/srv/www/htdig"> 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    </Directory>
  2. Une erreur de compilation nécessite de masquerader les icônes utilisées pour afficher les scores. /etc/apache2/default-server.conf contient :

    Alias /cgi-bin/images/star.gif /srv/www/gif/star.gif

    Alias /cgi-bin/images/star_blank.gif /srv/www/gif/star_blank.gif

  3. Le répertoire confdir décrit dans htdig ($ SuSE-8.1$) a bougé de /srv/www/htdig/conf/ vers /etc/htdig/. Utiliser le même mécanisme de liaison.

4.11.2 htdig ($ SuSE-8.1$)

  1. La documentation est toujours à l'adresse /usr/share/doc/packages/htdig. Tout le reste à changé de place (ancienne localisation : /opt/www/htdig).

    bindir
    /usr/bin : exécutables destinés aux créateurs des pages web. En particulier htdig, htmerge. Anciennement /opt/www/htdig/bin .
    confdir
    Ce répertoire des fichiers de configuration est fixé à la compilation du fichier /cgi-bin/htsearch. Mais il est raisonnable que les utilisateurs puissent les modifier. Compromis : placer ces fichiers dans /qublic_bin/htdig/conf/ et les lier vers $confdir. Actuellement /srv/www/htdig/conf/.
    commondir
    Contient les fichiers utiles pour la fabrication au vol des pages de recherche. En particulier header, footer, long, short.
    /htdig/
    Contient les images utilisées pour les pages de recherche. Ce répertoire doit être déclaré par un alias dans httpd.conf. En principe /srv/www/htdig/images/.
    dbdir
    bases de données. Les placer dans un répertoire où l'utilisateur peut écrire !
  2. Exemple de commande : htdig -isv -c $1 ; htmerge -sv -c $1
  3. La syntaxe est devenue plus stricte. L'affectation d'une variable se fait par "nom de variable", pas d'espace, deux points, espace, "valeur de la variable".
  4. Le nombre d'items par page est "matchesperpage" et pas "matches_per_page".
  5. ??? décrire le mécanisme d'utilisation (questionnaire)

4.11.3 htdig ($ SuSE-7.2$)

  1. Tout le barnum htdig se retrouve en /opt/www/htdig. Ce n'est pas génial, car cela mélange des fichiers de configuration, des exécutables destinés aux créateurs des pages web, des bases de données et des exécutables au vol (cgi-bin).
  2. Créer des liens sur les exécutables depuis /opt/www/htdig/bin vers /usr/bin (de façon à les rendre accessibles sans surcharger le path).
  3. Les fichiers de configuration servent à la fois à la création et à l'exploitation. Ils doivent se trouver dans le répertoire /opt/www/htdig/conf/htdig.conf (fixé une fois pour toutes à la compilation de /cgi-bin/htsearch). Mais il est raisonnable que les utilisateurs puissent les modifier. Compromis : placer ces fichiers dans ~/qublic_bin/htdig/conf/ et les lier vers /opt/www/htdig/conf/
  4. Créer des fichiers de configuration. En particulier déclarer un "nom de base". Exclure les fichiers *.css et *.mws
  5. htdig -isv -c /opt/www/htdig/conf/nullix.conf


4.12 Exploitation de httpd/error.log

4.12.1 Classer les erreurs par sortes

  1. Gestion des fichiers error.log.bz2 : root recopie ces fichiers et les attribue à logger
  2. Déziper tout cela. Faire attention : cela peut être volumineux...
  3. Il reste ensuite à ventiler les différents messages par sortes. Le batch httpdian (user logger) fait cela. Au passage standardisation des adresses ip (trois chiffres par blocs) et réduction des redondances.
err_autres
Résidu de traitement des erreurs.
err_cgi-bin
Liste datée des problèmes de script. En gros : manquants ou placés dans un répertoire non exécutable. Il n'y a pas mention de la page appelante.
err_conf_deny
Liste datée des refus d'accès causés par la configuration du serveur.
Concerne par exemple les fichiers /usr/share/doc/
err_counter
Liste triée des fichiers manquants (non autorisés) pour le compteur
/usr/local/httpd/Counter/digits/A/{button_count.gif, button_count2.gif}
err_DB2
Messages non datés, issus de la compilation htdig.
missing files like .../htdig/common/{synonyms.db, word2root.db}.
err_file_deny
Liste datée des refus d'accès causés par la configuration unix des fichiers (en particulier fichiers qui ne sont pas world-readable).
err_link
Utilisation de liens dans un répertoire non autorisé. Remplacer cela par des pages de redirection tant que l'on reste dans la partie exportée de l'arborescence.
<meta http-equiv="refresh" content="1;url=http:xxx">
err_missing
Liste datée des pages manquantes. En principe, les mauvais liens sont repérés lors de l'indexation, et donc les pages manquantes sont liées à une exploration volontaire du site par des personnes extérieures...
err_ssl
"Child could not open SSLMutex lockfile /var/run/ssl_mutex.989 (System error follows) : No such file or directory (errno: 2)... 200Mo de logs en quelques heures.
err_variant
no acceptable variant: (= c'est quoi ??? )
/usr/local/httpd/htdocs/index.html
/opt/www/htdocs
err_virus
voir paragraphe "attaque contre système32".
list_cgi-bin
Liste triée des scripts manquants
/usr/local/httpd/cgi-bin/{Count.cgi, cgi_test.cgi, perl_test.pl, visitor.exe}
list_file_deny
Liste triée des pages dont l'accès est unix-interdit.
list_missing
Liste triée des pages manquantes, extraite de err_missing.
msg_notice
Messages datés signalement le lancement ou l'arrêt de httpd.

4.12.2 Erreurs de programmation

  1. Lors d'un enchaînement (ring), après le dernier et avant le premier doivent être prévus. Exemple : ~/2001/Cours2001/cours01, ou les ansecpb.
  2. Au passage : le grand blanc au début des fichiers cours, et autres (les macros a_tex ???)
  3. Il faudrait un avertissement dans tous les fichiers codés avec T2H concernant la façon de configurer le navigateur.

4.12.3 Fichiers manquants

  1. Les fichiers webweb/gif manquaient. Un certain nombre d'icônes sont maintenant disponibles dans ~/gifs/. Créé le batch bin/Gif qui permet de créer une page avec ces icônes. Placer cette page dans ~/webweb et aussi dans ~/gifs/ pour garder le contrôle du répertoire.
  2. Les étoiles de htdig.
  3. Les fichiers dans les répertoires personnels : créer un fichier .htaccess (au plus près des fichiers manquants), contenant
    ## both addresses MUST be full-qualified 
    Redirect 301 /~douillet/toto-old http://www.douillet.info/~douillet/toto-new 
    Bien entendu, tout cela est sous le contrôle de /etc/apache2/extra/httpd-userdir.conf.
  4. Pour les fichiers dans le répertoire serveur : le même mécanisme présuppose l'ouverture des droits adéquats (la racine est mieux protégée que les individus). Cela se trouve dans /etc/apache2/default-server.conf.

4.12.4 Attaque contre winnt/system32/cmd.exe

Constaté la présence de paquets d'environ une dizaine de requêtes venant de 140 sites, constituant 40 commandes en tout (taux de coïncidence extraordinaire).

Le principe est la recherche d'une adresse commençant par
MSADC/ PBServer/ Rpc/ _mem_bin/ _vti_bin/ _vti_cnf/ adsamples/ c/ d/ iisadmpwd/ msadc/  
samples/ scripts/  
et se continuant par un nombre variable de ..\ pour se terminer par winnt/system32/cmd.exe.

Un certain nombre de \ sont masqués en %2f. L'objectif semble être un trou de sécurité dans un serveur, permettant d'accéder au système d'exploitation. Une exploration concernant les sites émetteurs est en cours. Il semble s'agir de sites ayant beaucoup de scripts java... et qui peuvent donc être eux-mêmes infectés.


previous up next contents index
Previous: 3 Routage Up: Nullix 113 (LYX 1.5.4) Next: 5 Uniformisation des menus   Contents   Index


douillet@ensait.fr
2010-03-01