ApacheのログのBandWithを監視する

ApacheのログBandWithを監視するために、色々な方法があります。Perlスクリプトでも下記のようにログを監視することもできます。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Apache | Leave a comment

外部のIPからのアクセスのみユーザおよびパスワードが必要設定方法

社内からのアクセスの場合、ユーザ認証は不要ですが、外部からのアクセスの場合、ユーザ認証が必要な場合あります。そのために、設定は次のようになります。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Apache | Leave a comment

特定拡張子をもっているファイルをダウンロードしないように

よく忘れたことですが、管理者がバックアップ用のファイルをコンテンツディレクトリにおいておき忘れました。そのファイルがsqlのデータベースの場合、非常に危険です。対策はまずそのようなファイルをコンテンツディレクトリにおいておかないことですが、それでも忘れてしまった場合、Apache側にセキュリティ対策を実施することもできます。


Order allow,deny
Deny from all

これでsql・bak・oldの拡張子ファイルはアクセスできなくなります。
どっとファイルも危険ですが、次の設定でアクセスできなくなります。


Order allow,deny
Deny from all

設定の変更を行った後、Apacheプロセスを再起動する必要です。

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Apache | Leave a comment

.htaccess設定を避けて、Apacheスピードをアップする

ディフォルト設定では、どこでも.htaccessは設定できるようになる環境設定がよくあります。ウェブへのアクセスが集中していない場合、あまり問題はありませんが、アクセス集中がある場合、この設定があるから、Apacheの応答が遅くなる場合あります。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Apache | Leave a comment

Apache/SSLのSSL v2を無効にする方法

ApacheのSSL v2を有効にするために、外部から攻撃を受ける場合あります。そのために、このSSLは最近ディフォルトでよく無効にされます。実際に接続できるかどうかを確認するために、次のコマンドで行えます。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Apache | Leave a comment

PerlでBandwidthレポートを作成する

AnalogでもBandwidthを解析することができますが、今回PerlでApacheのログをどのようなBandWidthがあるかを解析してみます。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Perl | Leave a comment

PerlでTop 100 IPアドレス Visitsを解析する

Analogは存在していないサーバにはApacheログを解析するために、awkでも行えますが、今回Perlでもっと自由に簡単に行ってみます。IPアドレスを検出するために、IP情報が必要ですが、サーバのログによってホストで記録される場合があります。その場合、スクリプトで変換する機能も追加します。

#!/bin/env perl
use Cwd;
use Net::DNS;
use Socket;
my $progressMarker = 100000;
my $res = Net::DNS::Resolver->new;
$| = 1;
my $inputFile = $ARGV[0];
my $limit = $ARGV[1];
my $logFile = getcwd . '/' . $inputFile;
my %stats;
my $topLimit = 0;
if ($limit ne "")
{
$topLimit = $limit;
}
print "Scanning $inputFile ....";
my $progressCnt = 0;
open(LOG, $logFile) || die "Cannot open $logFile $!";
my $totalHits = 0;
while(my $line = )
{
my @fields = split(/\s/, $line);
if ($progressCnt % $progressMarker == 0)
{
print '.';
}
my $ip = $fields[0];
$progressCnt++;
$stats{$ip}++;
$totalHits++;
}
close(LOG);
print "done.\n";
print "Sorting IP by visit count ...";
@ipList = sort { $stats{$b} $stats{$a} } keys %stats;
print "done.\n";
printf("%-10s%-20s%-60s%-10s%-5s\n","RANK",
"IP ADDR",
"HOST",
"VISITS",
"% OF VISITS");
my $rank = 0;
foreach my $thisIP (@ipList)
{
my $cnt = $stats{$thisIP};
my $host = "n/a";
my $reverseIP = join('.', reverse split(/\./, $IP)).".in-addr.arpa";
my $query = $res->query("$reverseIP", "PTR");
if ($query)
{
foreach my $rr ($query->answer)
{
next unless $rr->type eq "PTR";
$host = $rr->rdatastr;
}
}
else
{
$err = $res->errorstring;
if ($err eq "NOERROR")
{
my $iaddr = inet_aton($thisIP);
$host = gethostbyaddr($iaddr, AF_INET);
}
if ($host eq "")
{
$host = "unknown (dig -x $thisIP)";
}
}
$rank++;
printf("%-10d%-20s%-60s%-10d%-4.2f%\n",$rank,
$thisIP,
$host,
$cnt,
($cnt * 100/$totalHits));
if ($rank >= $topLimit)
{
exit;
}
}

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Perl | Leave a comment

PerlでTopコンテンツを解析する

AnalogかWebalizerかでApacheのログ解析を行えますが、簡単なPerlスクリプトでTopコンテンツを解析することもできます。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Perl | Leave a comment

Apacheのログのリモートとローカルホストを解析する

Apacheのログにリモートとローカルホストのアクセス数を解析するために、簡単に行います。ログの内容は大体次のようになります。最初のフィルドをみますと、ローカルからかリモートからかはわかります。そのために、この最初のフィルドを注目すればよいです。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Perl | Leave a comment

PerlでFTPログを解析する

どのファイルが一番アクセスされたかを確認するために、今回Perlスクリプトで行ってみました。 たとえば、次のログの情報があり、この中にどのファイルがよくアクセスされたかを確認できます。 Continue reading

VN:F [1.9.11_1134]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.11_1134]
Rating: 0 (from 0 votes)
Posted in Perl | Leave a comment