Bu yazi dahilinde degisik tekniklerle Linux üzerinde olasi sistem yada ag hatalarini nasil testip edebilecegimizden söz edecegim.
Sistem log dosyalari
Genelikle /var/log dizini altinda bulabileceginiz sistem üzerindeki degisikliklerin cetelesinin tutuldugu dosyalar size sisteminizdeki hatalar hakkinda fikir verecektir. Loglarda gördügünüz anormal satirlari google üzerinde arastirmanizda fayda var..
Örnek olarak beli bir ftp kullanicisinin ftp server üzerindeki tüm faliyetlerini incelemek istiyorsunuz. ftp serverimiz proftd olsun. Grep’e i parametesini yolu***** ayrintili bir arama yapabiliriz grep fonksiyonlari hakkinda daha fazla bilgi edinmek icin man dosyalarini inceleyin.
grep –i fgenc /var/log/proftpd.xferlog
Sat Mar 31 12:12:57 2007 362 84.58.178.0 1815994 home/neu/update/15_neu_npm_ilan.pdf b _ o r fgenc ftp 0 * c
…
aktif olarak loglari incelemek. Loglara enson eklenen bilgileri edinmek istiyorsaniz tail’i -f secenegi ile kullanabilirsiniz. Bu sekilde shell’inizi acik biraktiginizda surekli iligli logda bir degisiklik oldugunda bunu gözlemliyebilirsiniz..
tail –f /var/log/proftpd.xferlog
bu sekilde shell’inizi acik biraktiginizda ftpserverinize olan herhangi bir aksiyondan direk habeeriniz olur.
Eger analize etiginiz proragmin yada serverin log sistemi syslog destegi varda ayarlanmamis ise bunu ayarlayin ilgili konfiguration dosyasi surada /etc/syslogd.conf bu konuda ayrintiya girmiyecegim syslogd ayarlanmasi kendi icinde bir konuyla ilgili surdaki yazidan faydanalabilirsiniz.
http://fatihgenc.com/wiki/doku.php?id=syslogdmesg
Sisteminiz boot ederken olusan hatalari dmesg programi ile gözlemliyebilirsiniz. Özelikle ag kartiniz yada sürücülerle ilgili sorunlari gözlemlemek icin faydali olabiliyor.
Hangi program ne kadar ram yiyor zombi modunda calisan bir proses varmi bunlari top adli programla gözlemliyebilirsiniz. Windows dünyasindan CTRL+ALT+DEL tuslarina basgitimizda karsimiza cikan proses menüsünü andiran bir sema cikicak karsiniza.
lsof
Yine olducak faydali bir program bir dosyaya hangi proseslerin yada hangi prosesin hangi dosylari degistirdigini anlik olarak gösteren hos bir program lsof.
lsof DOSYADI
yada
lsof –p PROSESNUMA’rasi seklinde kullanilabilir.
df
Bazen sabit diskimizde yer kalmadigi icin degisik hata mesajlari aliriz. Sabit diskimizde ne kadar yer kaldigini bilmke istiyorsaniz. df programini calistirin
Örnek:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vzfs 41943040 3914988 38028052 10% /
tmpfs 4072388 4 4072384 1% /dev/shm
which
sisteminizde php kurulumu kuruluysa versiyonu ney yada filanci program varmi. Varsa kütühaneleri nerede seklinde bir sorunuz varsa which komutu size fikir verebilir..
which python
/usr/bin/python
daha ayrintili bir arama icin locate’yi kullanabilirsiniz. Locate her gece sisteminizdeki dosyalarin bunulup bir dosyaya index’inin cikarilmasi sonucu olusturulan veritabanini kullanarak arama yapar. Dolayisi ile sisteminizde yeni olan bilgiler bu veritabaninda kayitli olmayabilir. Aktual aramalar icin find komutunu kullanin. Eger locate’nin veritabanini aktualize etmek istiyorsaniz shell’inize updatedb komutunu verin ve islemin sonlanmasini bekleyin.
strings
Sisteminizde süpelendiginiz calistirilabilir bir (trojana rootkit = redkit degil rootkit) dosya buldugunuzu varsayalim bu programin ne oldugu hakkin fikir edinmek istiyorsunuz string programi size bu konuda fikir verebilir. strings belibir binear dosya icindeki insan tarafadan okunabilir kisimlari bulur ve gösterir.
/proc dizini
/proc dizini bu dizin altinda sistemimizin donanimi hakkinda bilgi iceren bir cok dosya var. cpuinfo , version(linux ve dagilim versiyonunuz hakkinda fikir verir),uptime gibi eger domaniminizda acpi varsa ve bunu kullandiginiz kernel versiyonu destekliyorsa /proc dizin altinda acpi adi bir dizin ve donanimizi hakkinda bilgi iceren bir cok farkli dosya bulacaksiniz. Elimde kurulu acpi destegi olan sistem olmadigi icin bu konuda örnek veremeyecegim. Ancak islemcinin aktual isisindan ne kadar akkü bilgilerine kadar detayli bir cok bilgiye ulasabilirsiniz. Kisacasi donanimla ilgili bir bilgiye ulasmak istediginizde /proc dizinini aklinizda bulsun.
Örnek olarak ide diskleriniz hakkinda ayrintili bilgi icin
cd ide/hd? Seklinde dizinlerin icine bakin gerek sabit diskin modeli, sürücüsü hakkinda degisik bilgilere ulasabilirsiniz.
ping
Gel gelelim ag’la ilgili sistem sorunsallarina. Ilk önce ilgili bilgisayarin orda olup olmadigina ping ile göz atalim.
# ping ceviz.net
PING ceviz.net (89.149.202.121) 56(84) bytes of data.
64 bytes from 89-149-202-121.internetserviceteam.com (89.149.202.121): icmp_seq=1 ttl=56 time=4.76 ms
hping
evet ceviz.net ping’e acik. Ya pinge acik olmayan hostlari nasil pinglersiniz. Mesela superonline.com. Deneyin cevap vermedigini göreceksiniz. Ilk önce dig ile superonline.com ipye cevirelim.. Aranilan ip 62.146.28.82 (bu arada debian üzerinde hping yok hping3 var onu kurun). Superonline serverleri üzerinde www server oldugunu biliyoruz. Buda 80. portun acik olduguna isaret eder o halde su sekilde pingliyebiliriz.
hping3 62.146.28.82 -p 80
HPING 62.146.28.82 (venet0:0 62.146.28.82): NO FLAGS are set, 40 headers + 0 data bytes
len=40 ip=62.146.28.82 ttl=55 DF id=0 sport=80 flags=RA seq=0 win=0 rtt=8.0 ms
len=40 ip=62.146.28.82 ttl=55 DF id=0 sport=80 flags=RA seq=1 win=0 rtt=7.9 ms
len=40 ip=62.146.28.82 ttl=55 DF id=0 sport=80 flags=RA seq=2 win=0 rtt=7.2 ms
hping oldukca güclü bir programdir arastirin göreceksiniz.
bing
Birde pek bilinmeyen bing programi var. Buda ag üzerindeki biri yakin digeri uzak olmak üzere 2 nokta arasindaki baglanti bizini ölcmeye yarar. Tam bir sonuc vermesede hiz konusunda size fikir verebilir.
bing YAKINHOST UZAKHOST
Seklinde calistirin bir süre calistikdan sonra programi CRTL+C tuslari ile sonlandirin ve istatistikleri okuyun..
bing localhost web.de
BING localhost.localdomain (127.0.0.1) and web.de (217.72.195.42)
44 and 108 data bytes (1024 bits)
web.de: 3.241Mbps 0.316ms 0.308594us/bit
web.de: 6.206Mbps 0.165ms 0.161133us/bit
web.de: 13.128Mbps 0.078ms 0.076172us/bit
web.de: 15.515Mbps 0.066ms 0.064453us/bit
web.de: 16.000Mbps 0.064ms 0.062500us/bit
web.de: 17.965Mbps 0.057ms 0.055664us/bit
web.de: 5.689Mbps 0.180ms 0.175781us/bit
web.de: 15.284Mbps 0.067ms 0.065430us/bit
web.de: 16.254Mbps 0.063ms 0.061523us/bit
web.de: 16.787Mbps 0.061ms 0.059570us/bit
web.de: 14.629Mbps 0.070ms 0.068359us/bit
web.de: 11.770Mbps 0.087ms 0.084961us/bit
web.de: minimum delay difference is zero, can't estimate link throughput
web.de: 19.321Mbps 0.053ms 0.051758us/bit
web.de: 22.261Mbps 0.046ms 0.044922us/bit
web.de: 20.480Mbps 0.050ms 0.048828us/bit
--- localhost.localdomain statistics ---
bytes out in dup loss rtt (ms): min avg max std dev
44 901 901 0% 0.026 0.035 0.097 0.009
108 901 901 0% 0.024 0.026 0.058 0.003
--- web.de statistics ---
bytes out in dup loss rtt (ms): min avg max std dev
44 900 900 0% 6.428 6.801 11.475 0.326
108 900 900 0% 6.478 6.837 12.249 0.358
--- estimated link characteristics ---
host bandwidth ms
warning: rtt big localhost.localdomain 0.024ms < rtt small localhost.localdomain 0.026ms
web.de 20.480Mbps 6.402
test etigim serverin web.de olan baglanti hizi 20.480Mbps …
telnet ile hizmet analiz
beli bir serverin calisip calismadigini test etmek istiyorsunuz telnet ile serverin ilgili portuna ulasip deniyebilirsiniz. Yine www serveri icin 80 portu deniyelim. Ve ceviz.net baglanalim..
telnet
www.ceviz.net 80
Trying 89.149.202.121...
Connected to 89-149-202-121.internetserviceteam.com.
Escape character is '^]'.
Eger baglantiginiz hizmetin komutlarini biliyorsaniz degisik testler yapabilirsiniz. Mesela http icin get index.html komutunu kullanabilir.
telnet
www.ceviz.net 80
Trying 89.149.202.121...
Connected to 89-149-202-121.internetserviceteam.com.
Escape character is '^]'.
get index.html
Yada smtp’ye (kimlik sorgulamali bir smtp sisteminizin oldugunu varsa*****tan) baglanip olasi kimlik sorgulamasinda ki sorunun tam olarak ne oldugunu adim adim inceleyerek tespit edebilirsiniz.