Tuesday, May 24, 2011

F5 Clone_Pool özelliği, http logging, IDS v.b. şekilde trafic mirroring

Selamlar,

İhtiyaç nedeni ile canlıdaki bir pool'dan trafiği clone_pool'ada mirror etmem gerekti.

Kısaca anlatarak açıklayacağım.;

Bir makineyi node olarak F5'e ekledim sonra clone_sniff adında bir pool yarattım ve bu yeni makineyi bu pool'a dahil ettim.

Daha sonra, trafiğini mirror etmek istediğim vserver ayarlarında clone_pool seçeneğinde clone_sniff'i bularak seçtim ve apply ettim.

Böylece, F5 X vserver'ına gelen tüm trafik aynı zamanda clone_sniff pool adı altında yer alan makineye mirrorlanmaya başladı.

Daha sonra makineye giderek,

#!/bin/sh

DAY=$(date +%d);
MONTH=$(date +%m);
YEAR=$(date +%Y);

LOGDIR="/logs/${YEAR}/${MONTH}/${DAY}"
LOGFILE="${LOGDIR}/"

if [ ! -d ${LOGDIR} ]
then
    mkdir -p ${LOGDIR}
fi

/usr/bin/tshark -i eth0 -R "http.request" -T fields -e frame.time -T fields -e "ip.src" -e "http.request.method" -e "http.request.uri" > ${LOGDIR}/httpd.log

http trafiği alıyoruz, frameden zamanları alıyoruz,  , source ip leri alıyoruz, request methodu alıyoruz, ve request uri alıyoruz filtrelendikten sonra httpd.log altına yazılmaktadır.

Örnek ;

May 24, 2011 17:34:51.401069000    11.11.11.11    GET    /favicon.ico
May 24, 2011 17:35:22.938430000    12.12.12.12    POST    /login.aspx

Not: Benim örnekde log bölen bir uygulama yok trafik çok yüksek değil, siz bunun için küçük bir logrotate patlatırsınız olur. Ayrıca istekler gibi cevaplarıda aldırabilirsiniz size kalmış tshark'da filterleri mevcut.

Not: Tshark 80k - 100k packet per second gibi değerlerde patlamalar yapıyor. Trafik çok ise başka şekillere bakın ntop falan gibi.

Aynı yöntem ile ids falanda çalıştırıp monitoring yapabilirsiniz.

No comments:

Post a Comment