最近、私のサーバーで悪意のある攻撃を試みている攻撃者が何人かいたので、それほど遠くまで到達しないことはわかっていますが、ある程度「追跡」することにしました。
現在、サーバー ログを含むディレクトリ全体があり、ディレクトリ内のすべてのファイルを検索し、文字列が見つかった場合はファイル名を返す方法が必要です。そこで私は、テキストとファイルの操作に使用する言語で、Perl より優れた言語はあるだろうかと考えました。そのため、私の友人は、特定の IP のすべてのファイルをスキャンし、その IP を含むファイル名を返すスクリプトを手伝ってくれているので、すべてのログから攻撃者を手動で検索する必要はありません。(私は何百も持っています)
#!/usr/bin/perl
$dir = ".";
opendir(DIR, "$dir");
@files = grep(/\.*$/,readdir(DIR));
closedir(DIR);
foreach $file(@files) {
open FILE, "$file" or die "Unable to open files";
while(<FILE>) {
print if /12.211.23.200/;
}
}
ディレクトリの読み取りエラーが発生していますが。どんな援助も大歓迎です。
編集: コードが編集されましたが、10 行目で権限が拒否されたため、ディレクトリを開くことができません。
マイク。