Erişim Log Kayıtları ve Analizi

Linux Komutları ile Log Kayıtlarının Analizi

Web sunucu log kayıtlarını analiz ederken kullanabileceğiniz hazır linux komutları ve işlevleri işinizi oldukça kolaylaştıracaktır.

cat logdosyası | less

Enter tuşuna basarsanız tek tek space tuşuna basarsanız ekran boyutu kadar okuyarak ilerlersiniz. Buna benzer olarak less yerine more komutunu da kullanabilirsiniz.


split -l 15000 logdosyası

15000 satır olacak şekilde log kaydını eşit dosyalara ayırır.


split -b500m logdosyası

Dosya boyutu olarak parçalamak için kullanılır.


cat log* > logtamami

Parça halindeki log dosyalarını birleştirmek için kullanılır (log1,log2,log3)


grep -i select logdosyası

Log dosyasında arama yaparken büyük küçük harf duyarlılığını kaldırmak için kullanılır.


grep -wi "adm" logdosyası

Sadece adm kelimesi geçen satırları listeler. (admin geçenleri getirmez).


head -n 10 logdosyası

İlk 10 satırı listeler.


tail -n 10 logdosyası

Son 10 satırı listeler.


cat logdosyası | grep -i "select\|admin\|union\|r57\|ls"

Birden fazla kelimeyi tek komutla arayabilirsiniz.


cat logdosyası | awk '{print $1}' | sort | uniq -c | sort -n

Azdan çoğa istek gönderen IP Adreslerini ve sayısını listeyebilirsiniz. Sutünların log kaydından log kaydına yeri değişecek olduğundan $1 yazan kısmı kendinize göre değiştirebilirsiniz. Ayrıca bu komutta $1 yazan yeri değiştirerek;

  • En çok isteğin yer aldığı dizin ve sayıları
  • En çok istek gönderen useragent bilgisi ve sayıları
  • Ne kadar GET ne kadar POST isteğiginin bulunduğu

vs. listelenebilir.


sed '/404/d' logdosyası

404 geçen satırlar hariç tüm satırları listelemek için kullanılır. Bu işlemi grep komutu ile de gerçekleştirebiliriz.


grep -v 404

İçerisinde 404 geçen satırları listelemez.


Linux dağıtımlarında | (pipe) işareti ile birçok komutu birleştirerek birlikte çalıştırabilirsiniz. > (büyüktür) işareti ile çıkan sonucu farklı bir dosyaya yazdırabilirsiniz. Yukarıdaki komutları tek başına ve birlikte birleştirerek kullanırsanız kısacası bir log dosyasını oldukça kolay inceleyebilirsiniz.

cat logdosyası | grep -i "select\|union\|r57\|ls" > saldiri.txt

Örneğin saldırı parametreleri olabilecek kelimeleri birlikte arayalım ve çıkan sonuçları ekrana değilde, saldiri.txt adlı dosyaya yazdıralım.


cat logdosyası | awk '{print $7}' | sort | uniq -c | sort -n | grep -v ".jpg\|.gif\|.ico\|.png\|.js"

Örneğin bir apache web sunucu log kayıtlarında azdan – çoğa en çok erişim gerçekleştirilen dizinleri terminal ekranında listeleyelim fakat arada gereksiz .jpg, .gif, .ico, .png, .js satırlar olmasın diyelim.

Bu komutla ise çıkacak olan sonucu erisilendizinler.txt adlı dosyaya yazdırdık.

cat logdosyası |awk '{print $7}' | sort | uniq -c | sort -n | grep -v ".jpg\|.gif\|.ico\|.png\|.js" > erisilendizinler.txt

Site Footer