Lsof’un analiz amacli kullanimi

lsof.jpg Linux/UNIX sistemlerin temelini “dosya” tanimi olusturur, diger bir deyisle Linux/UNIX sistemlerde hersey bir dosyadan ibarettir. Soket baglantisi acmadan tutun da kullandiginiz ses aygitina kadar hepsi birer dosya ile tanimlanir. Sadece dosyalarin tipleri farklidir. Hal boyle olunca sistemler uzerinde yapilan tum islemler dosyalar araciligi ile yapilmis oluyor ve bir sistem analizinde dosyalarin tipi, durumu, kim tarafindan kullanildigi bilgisi onem kazaniyor.

lsof(list Open Files) tam da burada devreye girerek dosyalar ile ilgili tum islemlerde bize yardimci oluyor.

lsof kullanimi

Temel lsof kullanimi

Herhangi bir dosyanin ya da dizinin kim tarafindan kullanildigini gormek icin lsof dosya_ismi demeniz yeterli.

# lsof /etc/master.passwd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vipw 56985 root 3rW VREG 0,81 3177 49780 /etc/master.passwd

burada /etc/master.passwd dosyasinin hangi kullanici ve hangi komut tarafindan acildigi bilgisi yer aliyor.

Dinlemede olan soketleri bulma

UNIX dunyasinda acilan tum soketler de birer dosyadir mantigindan gidersek lsof ile dinelmede olan soketleri ve bunlari hangi proseslerin baslattigini bulabiliriz.

# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
perl5.8.8 825 root 5u IPv4 0xc7b47000 0t0 TCP localhost.orneksistem.com:783 (LISTEN)
perl5.8.8 892 root 5u IPv4 0xc7b47000 0t0 TCP localhost.orneksistem.com:783 (LISTEN)
perl5.8.8 893 root 5u IPv4 0xc7b47000 0t0 TCP localhost.orneksistem.com:783 (LISTEN)
couriertc 945 root 3u IPv4 0xc5d3f000 0t0 TCP *:pop3s (LISTEN)
couriertc 967 root 3u IPv4 0xc5d3f1d0 0t0 TCP *:imaps (LISTEN)
couriertc 980 root 3u IPv4 0xc5d3f570 0t0 TCP *:imap (LISTEN)
qmail-smt 1100 vpopmail 0u IPv4 0xc6ed3740 0t0 TCP mail.orneksistem.com:smtp->bzq-84-109-159-122.red.bezeqint.net:13995 (ESTABLISHED)
qmail-smt 1100 vpopmail 1u IPv4 0xc6ed3740 0t0 TCP mail.orneksistem.com:smtp->bzq-84-109-159-122.red.bezeqint.net:13995 (ESTABLISHED)
sshd 1129 root 3u IPv4 0xcc5e33a0 0t0 TCP mail.orneksistem.com:ssh->117.102.4.13:56902 (ESTABLISHED)
inetd 1368 root 5u IPv4 0xc5d40570 0t0 TCP *:ftp (LISTEN)
inetd 1368 root 6u IPv4 0xc6806000 0t0 TCP *:telnet (LISTEN)
inetd 1368 root 7u IPv4 0xc68061d0 0t0 TCP *:pop3pw (LISTEN)
httpd 7828 root 3u IPv6 0xc7c10910 0t0 TCP *:http (LISTEN)
httpd 7828 root 4u IPv4 0xcc5bdcb0 0t0 TCP *:* (CLOSED)
httpd 7828 root 5u IPv6 0xc6ce5740 0t0 TCP *:https (LISTEN)
httpd 7828 root 6u IPv4 0xcc09ecb0 0t0 TCP *:* (CLOSED)
httpd 7828 root 8u IPv4 0xcbe29570 0t0 TCP *:* (CLOSED)
httpd 7828 root 9u IPv6 0xcc3a9570 0t0 TCP *:8080 (LISTEN)
httpd 7828 root 10u IPv4 0xcc591910 0t0 TCP *:* (CLOSED)
syslogd 14603 root 6u IPv6 0xc89aee10 0t0 UDP *:syslog
syslogd 14603 root 7u IPv4 0xc89af2d0 0t0 UDP *:syslog
couriertl 25523 root 0u IPv4 0xc72cf570 0t0 TCP mail.orneksistem.com:imaps->88.234.153.204:hiq (ESTABLISHED)
python 25895 huzeyfe 3u IPv4 0xc9e8c000 0t0 TCP localhost.orneksistem.com:8022 (LISTEN)
python 25895 huzeyfe 3u IPv4 0xc9e8c000 0t0 TCP localhost.orneksistem.com:8022 (LISTEN)
python 25895 huzeyfe 3u IPv4 0xc9e8c000 0t0 TCP localhost.orneksistem.com:8022 (LISTEN)
python 25895 huzeyfe 3u IPv4 0xc9e8c000 0t0 TCP localhost.orneksistem.com:8

-i komutu ile tum soket baglantilarini goruruz, ozelde bir baglantiyi gormek icin ek parametrelere ihtiyac vardir. Mesela sadece TCP baglantilarini ve baglanti detaylarini gormek istersek

# lsof -i TCP
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
perl5.8.8 825 root 5u IPv4 0xc7b47000 0t0 TCP localhost.sistembil.com:783 (LISTEN)
perl5.8.8 892 root 5u IPv4 0xc7b47000 0t0 TCP localhost.sistembil.com:783 (LISTEN)
perl5.8.8 893 root 5u IPv4 0xc7b47000 0t0 TCP localhost.sistembil.com:783 (LISTEN)
couriertc 945 root 3u IPv4 0xc5d3f000 0t0 TCP *:pop3s (LISTEN)

benzer sekilde udp baglantilari izlenmek istenirse -i UDP parametresi kullanilabilir.

# lsof -i UDP
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
perl5.8.8 893 vpopmail 11u IPv4 0xc6f77870 0t0 UDP mail.sistembil.com:52570->ttdns40.ttnet.net.tr:domain
openvpn 87210 root 4u IPv4 0xc6f77ec4 0t0 UDP mail.sistembil.com:domain

Sistemde hem ipv6 hem de ipv4 protokollerini birlikte kullaniyorsaniz -i4 ve -i6 parametreleri ile sadece ilgili protokole ait baglantilari izlenebilir.

# lsof -i6TCP
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 6545 www 3u IPv6 0xc7c10910 0t0 TCP *:http (LISTEN)
httpd 6545 www 5u IPv6 0xc6ce5740 0t0 TCP *:https (LISTEN)
httpd 6545 www 9u IPv6 0xcc3a9570 0t0 TCP *:8080 (LISTEN)
httpd 6546 www 3u IPv6 0xc7c10910 0t0 TCP *:http (LISTEN)

Belirli bir adrese ait baglantilari gormek icin lsof [email protected] komutu kullanilabilir.

# lsof [email protected]
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
qmail-smt 17324 vpopmail 0u IPv4 0xcbe1f000 0t0 TCP mail.sistembil.com:smtp->203.156.41.23:3445 (ESTABLISHED)
qmail-smt 17324 vpopmail 1u IPv4 0xcbe1f000 0t0 TCP mail.sistembil.com:smtp->203.156.41.23:3445 (ESTABLISHED)

daha ozellestirilmis bir komut belirli bir adresin belirli bir portunu dinleyen uygulama

# lsof [email protected]:25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
qmail-smt 8069 vpopmail 0u IPv4 0xcbe27910 0t0 TCP mail.sistembil.com:smtp->121.230.115.112:19355 (ESTABLISHED)
qmail-smt 8069 vpopmail 1u IPv4 0xcbe27910 0t0 TCP mail.sistembil.com:smtp->121.230.115.112:19355 (ESTABLISHED)
qmail-smt 19639 vpopmail 0u IPv4 0xcc2ce740 0t0 TCP mail.sistembil.com:smtp->0x5731652c.hrnxx15.adsl-dhcp.tele.dk:61207 (ESTABLISHED)
qmail-smt 19639 vpopmail 1u IPv4 0xcc2ce740 0t0 TCP mail.sistembil.com:smtp->0x5731652c.hrnxx15.adsl-dhcp.tele.dk:61207 (ESTABLISHED)

Belirli bir kullanici tarafindan acilmis dosyalar

[[email protected] /home]# lsof -uhuzeyfe|more
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 25895 huzeyfe cwd VDIR 0,87 512 7613299 /usr/home/huzeyfe/0
python 25895 huzeyfe rtd VDIR 0,81 1024 2 /
python 25895 huzeyfe txt VREG 0,87 827372 472743 /usr/local/bin/python2.4
python 25895 huzeyfe txt VREG 0,81 158712 49443 /libexec/ld-elf.so.1
python 25895 huzeyfe txt VREG 0,81 43572 16577 /lib/libutil.so.5
python 25895 huzeyfe txt VREG 0,87 803928 2779483 /usr/lib/libstdc++.so.5
python 25895 huzeyfe txt VREG 0,81 98120 16558 /lib/libm.so.4

bunu tersine cevirmek istersek (x kullanicisi haric diger kullanicilarin actigi dosyalar) kullanici adi onune ^ isareti koymamiz yeterlidir.

lsof’un burada anlatmakla bitiremeyecegim kadar cok kullanim parametresi vardir. Benim genellikle ihtiyac duydugum kullanim parametrelerini ve islevlerini kisaca anlatmaya calistim. Ozellikle sistemde anormal giden birseylerin oldugunu sezinledigimde ilk kullandigim komutlardan birisi lsof.

This entry was posted in Linux Security. Bookmark the permalink.

1 Response to Lsof’un analiz amacli kullanimi

  1. Pingback: lsof Kullanımı ve Örnek Komutlar - Açık Dosyaların Tespiti | Syslogs

Leave a Reply

Your email address will not be published. Required fields are marked *

eighteen + 20 =