expertenaustausch > comm.software.* > comm.software.webserver

H. W. (30.05.2016, 07:40)
Hallo Leute,

auf meinem Webspace werden in der access_log jede Menge Einträge aus dem
IP-Bereich 91.200 mitgeloggt. Diese IP-Adresse stammt wohl aus RU, wie
ich ermitteln konnte.
Da ich von diesem IP-Bereich täglich bis zu 15000 Logeinträge in der
access_log habe, möchte ich diese IP-Adresse aus der access_log raus
haben bzw. gar nicht erst mitloggen lassen.
Problem: Ich habe keinen Zugriff auf die Apache Konfigurationsdatei,
sondern lediglich auf meine access_log.

Gibt es eine Möglichkeit, bestimmte IP-Adressen oder Adressbereiche wie
91.200.x.y zu ignorieren, wenn lediglich Zugriff auf die access_log
meines Webspace besteht?

Die kleine Anleitung auf


erscheint mir plausibel, funktioniert bei mir aber aus o. g. Grund wohl
nicht.

Gruß
Heiko
Helmut Hullen (30.05.2016, 11:41)
Hallo, H.,

Du meintest am 30.05.16:

> Gibt es eine Möglichkeit, bestimmte IP-Adressen oder Adressbereiche
> wie 91.200.x.y zu ignorieren, wenn lediglich Zugriff auf die
> access_log meines Webspace besteht?


Beliebt ist "fail2ban" - ist mir zu umständlich.

Ich bevorzuge eine Liste von Sperr-IP-Adressen bei ipfilter:

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

# Teil der "ipfilter"-Konfigurationsdatei

# einzelne Netzbereiche komplett blocken
while read IP Rest
do
Block=${IP%%#*}
test "$Block" || continue
$IPTABLES_BIN -t filter -A INPUT -p tcp -s $Block --dport 0:1024 -j reject_fkt
$IPTABLES_BIN -t filter -A INPUT -p udp -s $Block --dport 0:1024 -j reject_fkt
done < /etc/Schule/vollblock

---------------------
# Datei "/etc/Schule/vollblock", Muster

67.79.0.0/16 # Time-Warner, US; 11.2.16
120.0.0.0/6 # China; 8.12.13

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

So etwas ist natürlich nicht "politisch korrekt", das gibt Probleme in
einem Betrieb, der weltweit erreichbar sein will oder muss.

Und eine automatische Übernahme verdächtiger Adressen habe ich
vorsätzlich nicht eingebaut; da forsche ich lieber erst mal nach, aus
welcher Gegend die Anrufe kommen

Viele Gruesse!
Helmut
Stefan Froehlich (30.05.2016, 11:46)
On Mon, 30 May 2016 11:41:00 Helmut Hullen wrote:
> > Gibt es eine Möglichkeit, bestimmte IP-Adressen oder
> > Adressbereiche wie 91.200.x.y zu ignorieren, wenn lediglich
> > Zugriff auf die access_log meines Webspace besteht?


> Beliebt ist "fail2ban" - ist mir zu umständlich.
> Ich bevorzuge eine Liste von Sperr-IP-Adressen bei ipfilter:
> [...]


Das wird ganz, ganz sicher funktionieren, wenn er schrieb:

| Problem: Ich habe keinen Zugriff auf die Apache Konfigurationsdatei,
| sondern lediglich auf meine access_log.

Gehen wir doch einfach einmal aus, dass nicht nur die
Apache-Konfigurationsdatei unzugänglich ist, sondern auch
alles, was mit der Systemkonfiguration zu tun hat :-)

Erster Ansatzpunkt wäre daher wohl die .htaccess, sofern das
vom Provider erlaubt wird.

Servus,
Stefan
H. W. (30.05.2016, 13:00)
Am 30.05.2016 11:46, schrieb Stefan Froehlich:
[..]
Andreas Kohlbach (30.05.2016, 22:36)
On Mon, 30 May 2016 13:00:59 +0200, H. W. wrote:
> Am 30.05.2016 11:46, schrieb Stefan Froehlich:
>> Das wird ganz, ganz sicher funktionieren, wenn er schrieb:
>> | Problem: Ich habe keinen Zugriff auf die Apache Konfigurationsdatei,
>> | sondern lediglich auf meine access_log.


Man könnte sed oder etwas in Perl drüber laufen lassen, was aus der Datei
die gewünschten Einträge entfernt und in eine neue Datei kopiert in der
Annahme, dass das Original nicht beschreibbar ist. Dann halt nur diese neue
Datei lesen statt des Originals.

>> Gehen wir doch einfach einmal aus, dass nicht nur die
>> Apache-Konfigurationsdatei unzugänglich ist, sondern auch
>> alles, was mit der Systemkonfiguration zu tun hat :-)
>> Erster Ansatzpunkt wäre daher wohl die .htaccess, sofern das
>> vom Provider erlaubt wird.

> Also Zugriff auf die .htaccess besteht natürlich. :-)


Dann könnte man

| <Limit GET POST>
| order allow,deny
| allow from all
| deny from w.x.y.z
| </Limit>

Was dann aber den Zugriff auf den Server selbst schon verhindert.
H. W. (31.05.2016, 06:55)
Am 30.05.2016 22:36, schrieb Andreas Kohlbach:
> Dann könnte man
> |<Limit GET POST>
> | order allow,deny
> | allow from all
> | deny from w.x.y.z
> |</Limit>
> Was dann aber den Zugriff auf den Server selbst schon verhindert.


Den Zugriff zu verhinddern würde ich in Kauf nehmen. Aber das Problem
ist wohl, dass bereits Einträge in die access_log geschrieben werden,
noch bevor überhaupt ein Zugriff auf die .htaccess stattfindet.

Ich habe heute um 06:15 Uhr die obigen Einträge in die .htaccess
eingetragen und gespeichert. Hier das Ergebnis:

---[Auszug aus access_log]---
91.200.12.149 - - [31/May/2016:06:24:19 +0200] "GET /guestbook.php
HTTP/1.0" 403 498 "http://www.example.com/guestbook.php" "Mozilla/5.0
(Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/48.0.2564.116 Safari/537.36"

91.200.12.149 - - [31/May/2016:06:24:19 +0200] "GET / HTTP/1.0" 403 5162
"http://www.example.com/guestbook.php" "Mozilla/5.0 (Windows NT 6.3;
WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116
Safari/537.36"
91.200.12.149 - - [31/May/2016:06:24:19 +0200] "GET / HTTP/1.0" 403 5162
"http://www.example.com/" "Mozilla/5.0 (Windows NT 6.3; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"

91.200.12.149 - - [31/May/2016:06:24:20 +0200] "GET / HTTP/1.0" 403 5162
"http://www.example.com/" "Mozilla/5.0 (Windows NT 6.3; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"

37.xxx.xxx.xxx - - [31/May/2016:06:25:27 +0200] "GET / HTTP/1.0" 403
5162 "-" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:28 +0200] "GET
/noindex/css/bootstrap.min.css HTTP/1.0" 200 19599 "http://example.com/"
"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:28 +0200] "GET
/noindex/css/open-sans.css HTTP/1.0" 200 5338 "http://example.com/"
"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:29 +0200] "GET
/images/apache_pb.gif HTTP/1.0" 200 2583 "http://example.com/"
"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:29 +0200] "GET
/images/poweredby.png HTTP/1.0" 200 4213 "http://example.com/"
"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:31 +0200] "GET
/noindex/css/fonts/Light/OpenSans-Light.eot? HTTP/1.0" 403 527
"http://example.com/" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0;
rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:31 +0200] "GET
/noindex/css/fonts/Semibold/OpenSans-Semibold.eot? HTTP/1.0" 403 533
"http://example.com/" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0;
rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:31 +0200] "GET
/noindex/css/fonts/Italic/OpenSans-Italic.eot? HTTP/1.0" 403 529
"http://example.com/" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0;
rv:11.0) like Gecko"

37.xxx.xxx.xxx - - [31/May/2016:06:25:31 +0200] "GET
/noindex/css/fonts/SemiboldItalic/OpenSans-SemiboldItalic.eot? HTTP/1.0"
403 545 "http://example.com/" "Mozilla/5.0 (Windows NT 6.1; Trident/7.0;
rv:11.0) like Gecko"
---[Auszug aus access_log Ende]---

In der .htaccess steht Folgendes:
<Limit GET POST>
Order allow,deny
allow from all
deny from 91.200
deny from 91.213
deny from 37.xxx.xxx.xxx
</Limit>

Die 37er IP-Adresse habe ich mal testweise eingetragen. Es handelt sich
dabei um meine statische IP. Rufe ich meine Website auf, lande ich auf
einer Apache-Testseite und nicht auf meiner HP. Dennoch werden die
Zugriffe in die access_log eingetragen.
Aber genau das ist nicht gewünscht. Gerade die 91.200 und 91.213
Adressbereiche erhalten zwar einen Error 403, aber das interessiert dort
keine Sau. Täglich erfolgen zwischen 800 und 1200 Zugriffe auf das
Gästebuch, natürlich, um Spams abzusetzen. Es ist nämlich mühsam, jeden
Tag über 800 Einträge aus dem GB zu löschen. Okay, das passiert zwar
nicht mehr, weil ich das unterbunden habe, aber die Zugriffe erfolgen
weiter und vergrößern die access_log extrem.
Wie also ist es möglich, ohne Zugriff auf die Konfigurationsdateien des
Webservers, solche Einträge aus der access_log rauszuhalten, also gar
nicht erst mitzuschreiben?

Gruß
Heiko
Stefan Froehlich (31.05.2016, 10:20)
On Tue, 31 May 2016 06:55:24 H. W. wrote:
> > |<Limit GET POST>
> > | order allow,deny
> > | allow from all
> > | deny from w.x.y.z
> > |</Limit>


> Den Zugriff zu verhinddern würde ich in Kauf nehmen. Aber das Problem ist
> wohl, dass bereits Einträge in die access_log geschrieben werden, noch
> bevor überhaupt ein Zugriff auf die .htaccess stattfindet. [...]
> Wie also ist es möglich, ohne Zugriff auf die Konfigurationsdateien des
> Webservers, solche Einträge aus der access_log rauszuhalten, also gar
> nicht erst mitzuschreiben?


Stimmt, die Zugriffe werden natürlich trotzdem protokolliert.

Da führt, fürchte ich, ohne Zugriff auf wenigstens die vhost-Konfiguration
kein Weg vorbei. Im Minimum müsste dort ein CustomLog-Eintrag gemacht
werden, der bedingt von einer Umgebungsvariable abhängt (die Du dann
wiederum selbst in der htaccess setzen könntest).

Servus,
Stefan
Ähnliche Themen