Citat:
Originally posted by Helena@Dec 12 2004, 13:10
Jag har samlat ihop alla 416-svaren från den senaste loggen och zippat. Om du fortfarande har lust att hjälpa till får du gärna ta en titt, fast lägg inte ner en massa jobb och gör det bara om du verkligen känner för det. Jag skickar zippen nu (den är bara 12kB).
~ Helena
|
Okej, jag har tittat nu på filen. Det var bara en access-fil och det var inte det jag hade tänkt mig. Nå ändå. Här får du lite "detektivarbete". Först och främst, så är det mängder med rader i den filen som är kod 200 (dvs OK) bara att filen som hämtades blev exakt 416 kb (så dumt det kan vara

).
Så jag filtrerade dessa:
[4.2.0]root@diablo:/export/zorans# cat 416.txt | grep -v midsbg1a > rensad.txt
[4.2.0]root@diablo:/export/zorans# wc -l 416.txt
3891 416.txt
[4.2.0]root@diablo:/export/zorans# wc -l rensad.txt
3767 rensad.txt
[4.2.0]root@diablo:/export/zorans#
Nåja, någon hundra felaktigheter, inte så mycket. Fortfarande ca 4000 riktiga 416-responskoder.
Så:
Får vi ta reda på vilka hostar dessa kommer ifrån, om det är massa olika ip-adresser:
[4.2.0]root@diablo:/export/zorans# cat rensad.txt| awk '{ print $1}'| sort | uniq
201008142233.user.veloxzone.com.br
c83-251-115-224.bredband.comhem.se
ctb-cache1-vif1.saix.net
hkd1-p31.flets.hi-ho.ne.jp
host112-118.pool80180.interbusiness.it
modemcable101.35-203-24.mc.videotron.ca
pd9f8e2d3.dip.t-dialin.net
[4.2.0]root@diablo:/export/zorans#
[4.2.0]root@diablo:/export/zorans# cat rensad.txt| awk '{ print $1}'| sort | uniq | wc -l
7
[4.2.0]root@diablo:/export/zorans#
Dvs, 7 olika IP-adresser. Låt mig kolla en sak då:
[4.2.0]root@diablo:/export/zorans# cat rensad.txt| grep ctb-cache1-vif1.saix.net | awk '{print $12 " " $13 }' | wc -l
2681
[4.2.0]root@diablo:/export/zorans# cat rensad.txt| grep ctb-cache1-vif1.saix.net | awk '{print $12 " " $13 }' | uniq
"DA 7.0"
[4.2.0]root@diablo:/export/zorans#
Jag skrev alltså ut alla user-agents som kom från en av ip-adresserna som fanns i din fil. Det var 2681 som kom från en enda host. Alla requests ville hämta samma fil. Alla requests hade en User-agent: dvs "DA 7.0".
[4.2.0]root@diablo:/export/zorans# cat rensad.txt| grep ctb-cache1-vif1.saix.net | head -1
ctb-cache1-vif1.saix.net - - [09/Dec/2004:08:46:32 +0100] "GET /files6/graphics/print/calendar/2005/2005eb.zip HTTP/1.1" 416 0 "-" "DA 7.0"
[4.2.0]root@diablo:/export/zorans# cat rensad.txt| grep ctb-cache1-vif1.saix.net | tail -1
ctb-cache1-vif1.saix.net - - [09/Dec/2004:09:11:40 +0100] "GET /files6/graphics/print/calendar/2005/2005e.zip HTTP/1.1" 416 0 "-" "DA 7.0"
[4.2.0]root@diablo:/export/zorans#
Vidare: Den första requesten kom 2004-12-09 08:46:32 och sista kom 2004-12-09 09:11:40 dvs 24 minuter senare. Så 2681 req per 24 min, det är ca 112 req / min, vilket är ungefär 2 req/sec.
Jag har googlat lite för att få veta lite mer om DA 7.0 ( de andra ip-adresserna i din logg, hade DA 5.3 osv) men ej hittat något. Inte en enda fick 416 med "vanlig" -user agent (dvs browser).
Så... conclusion. Det som orsakar dina 416 i din apache-log är inte en människa bakom (eller jo, någon måste dra igång programmet), utan ett program/skript.
Det är inte vansinnigt mycket trafik på dig visserligen så det ser inte ut som att du är måltavla för en DOS-attack. Däremot kan det vara så att du är måltavla för ett test? Att DA user agent verkar finnas ute på nätet i folks loggar. Men någon kanske hackar en modifierad version och kör mot din server som test?
Inte vet jag. Kanske kan skaran på forumet berätta lite mer om DA -user agent.
Så, det kan ju vara så att du är måltavla för en DDOS-test. Eller så är de 416 bara slump och du hittade dessa när du felsökte ditt system. Hursomhelst. Om jag vore dig, skulle jag anlita en säkerhetsexpert som kan se över ifall din maskin har blivit "penetrerad".
Jag vill inte skrämma dig än iofs. Men om du har ssh-tillgång till din server så skulle jag vilja att du, när du märker att du får massa konstiga 416 i dina loggar, sätter igång en tcpdump som loggar ALL trafik från den IP-adressen.
Men du kommer behöva upptäcka det snabbt. Så läs loggar ofta.
Eventuellt kör följande i ett zsh-skal (tror det funkar i bash med):
found=0
while [ $found = 0 ]; do
tail -1000 access_log | grep "416 [0-9]" && echo "Nujävlar kommer han igen " | mail "
[email protected]" && found=1
sleep 3
done
Den här kommer skanna 1000 senaste rader av din log och leta efter kod 416 (var inte rädd, var 3-dje sekund. Hur ofta, och hur många rader du vill skanna beror på hur mycket träffar du får. Får du i snitt ca 1000 träffar varje sekund så kan du antigen öka värdet från 1000 till 3-4000 eller minska intervallet (sleep 3) till 1 sekund (sleep 1). När den kommer och ger 416 kommer du få ett mail. Då ska du snabbt sätta igång en tcpdump.
tcpdump -w dumplog host <ipadress som ger 416>
Så.. hoppas det hjälper.
/Zoran
Hur ser din ssh-log?
/Zoran