Bezpiecze±stwo system≤w Linux'owych

Linux Security - Perl w administracji
Strona g│≤wna

Statystyki Apache'a
[1] [2]
W typ przypadku Perl pos│u┐y nam do zrobienia statystyk, kto i ile pobra│ danych z naszego serwera WWW.
Logi Apache'a wygl▒daj▒ w ten spos≤b:
www.linux.org - - [09/Jun/2001:14:27:57 +0200] 
"GET / HTTP/1.0" 200 2890 "-" "Lynx/2.8.4dev.16 
libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6"
www.security.com - - [09/Jun/2001:14:28:27 +0200] 
"GET / HTTP/1.0" 200 576 "-" "Lynx/2.8.4dev.16 
libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6"
www.security.com - - [11/Jun/2001:21:49:23 +0200] 
"GET / HTTP/1.0" 200 576 "-"
Skrypt bΩdzie sumowa│ wszystkie pobrania danych, jakie nast▒pi│y z poszczeg≤lnych host≤w.

Listing programu jest nastΩpuj▒cy:
#!/usr/bin/perl
open(dane,'/etc/httpd/logs/access_log');
while ()
{
@linia=split(/\s+/);
$host=$linia[0];
$transfer=$linia[9];
$suma{$host}+=$transfer;
}
close(dane);

foreach $wynik (keys %suma)
{
printf "%-20s %30s\n","HOST:","TRANSFER:";
printf "%-20s %30d\n" ,$wynik,$suma{$wynik};
}
Teraz mo┐na zobaczyµ, kt≤ry host pobra│ najwiΩcej danych z naszego serwera:
 HOST:					    TRANSFER:
 www.linux.org                  		 2890
 www.security.com               		 1152
W powy┐szym programie zastosowano tablice asocjacyjne o nazwie "suma", czyli konkretnemu ci▒gowi znak≤w (w tym wypadku to nazwy host≤w) zosta│y przypisane liczby (ilo╢µ pobranych danych w bajtach).
PΩtla foreach pobiera dane z tablicy "suma" i podstawia je do zmiennej "wynik"

ICMP - Pine - Fork - Firewall - Bezpieczne partycje
Suidy - Skanowanie - Word exportable - Backdoor'y - Sumy kontrolne
Perl - Logrotate - Shell przez WWW - Forum - KsiΩga go╢ci - Statystka - Linki

Kontakt: tronix@2com.pl
Copyright by Tronix (c)2001 All Rights Reserved