Dans le fichier journal d'apache (access.log), je trouve des entrées comme les suivantes :
10.20.30.40 - - [18/Mar/2011:02:12:44 +0200]
"GET /index.php HTTP/1.1" 404 505 "-" "Opera/9.80 (Windows NT 6.1; U; en)
Presto/2.7.62 Version/11.01"
Dont la signification est claire : Le client avec l'IP 10.20.30.40 a appliqué une méthode HTTP GET sur /index.php (c'est à dire http://mysite.org/index.php ) reçoit un code d'état 404 en utilisant Opera comme client/navigateur. Ce que je ne comprends pas, ce sont des entrées comme celles qui suivent :
174.34.231.19 - - [18/Mar/2011:02:24:56 +0200]
"GET http://www.siasatema.com HTTP/1.1" 200 469 "-"
"Python-urllib/2.4"
Donc ici, ce que je vois, c'est que quelqu'un (client avec l'IP 174.34.231.19) a accédé à http://www.siasatema.com et j'ai obtenu un code d'état HTTP 200( ?). Cela n'a aucun sens pour moi... la seule interprétation à laquelle je peux penser est que mon serveur Apache agit comme un proxy ! Voici d'autres requêtes qui n'ont pas mon site comme destination...
187.35.50.61 - - [18/Mar/2011:01:28:20 +0200] "POST http://72.26.198.222:80/log/normal/ HTTP/1.0" 404 491 "-" "Octoshape-sua/1010120"
87.117.203.177 - - [18/Mar/2011:01:29:59 +0200] "CONNECT 64.12.244.203:80 HTTP/1.0" 405 556 "-" "-"
87.117.203.177 - - [18/Mar/2011:01:29:59 +0200] "open 64.12.244.203 80" 400 506 "-" "-"
87.117.203.177 - - [18/Mar/2011:01:30:04 +0200] "telnet 64.12.244.203 80" 400 506 "-" "-"
87.117.203.177 - - [18/Mar/2011:01:30:09 +0200] "64.12.244.203 80" 400 301 "-" "-"
Je pense que tout cela est lié à une sorte d'attaque ou d'abus du serveur. Quelqu'un pourrait-il m'expliquer ce qui se passe et comment faire face à cette situation ?
Mise à jour 1 :
J'ai désactivé mod_proxy
pour être sûr que je n'ai pas un proxy ouvert :
# a2dismod proxy
D'où vient le message :
Module proxy already disabled
Je me suis assuré qu'il n'y a pas de fichier proxy.conf
sous $APACHE/mods-enabled
. Finalement, j'ai configuré sur mon navigateur (Mozzila) mon IP comme un proxy et j'ai essayé d'accéder à http://google.com
. Je n'ai pas été redirigé vers google.com mais ma page Web est apparue. La même chose s'est produite lorsque j'ai essayé d'accéder à http://a.b ( !). Mon serveur ne fonctionne donc pas vraiment comme un proxy puisqu'il ne transmet pas les demandes... Mais je pense que ce serait mieux si, d'une manière ou d'une autre, je pouvais le configurer pour qu'il renvoie une réponse de type code d'état 403 .
Voici mon fichier de configuration apache :
<VirtualHost *:80>
ServerName mysite.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Mise à jour 2 :
En utilisant un bloc, je limite l'utilisation d'autres méthodes que GET et POST...
<Limit POST PUT CONNECT HEAD OPTIONS DELETE
PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
<LimitExcept GET>
Order deny,allow
Deny from all
</LimitExcept>
Maintenant, les méthodes autres que GET sont interdites (403). Ma seule question maintenant est de savoir s'il existe une astuce pour faire sortir ceux qui essaient d'utiliser mon serveur comme un proxy...