Linux/Unix Sistemlerde Çalıştırılan Komutlar ile Alakalı Geriye Dönük İz Sürme (Auditing)

Filed in Genel | Gezegen | Linux-Komutlar | Solaris Leave a comment

Kontrol ettiğiniz bir sisteminiz olduğunu düşünün. Fakat yanlız değilsiniz. Sisteme sizin haberiniz olmadan başkaları bağlanıp istemediğiniz işlemler yapabilirler. İşte tam da bu noktada;

  • Sisteme kimler bağlandı?
  • Hangi komutları ne zaman çalıştırdı?
  • Hangi kullanıcı hangi komutları çalıştırdı?
  • Çalıştırılan komutların çalışması ne kadar sürdü?
  • Komutlar hangi kabuktan çalıştırıldı?

Sorularına cevap aramanız geri dönüşüm veya bir sonuca varmak amacıyla ilk yapmanız gereken şeydir. Peki bu soruları nasıl cevaplandıracağız?

İşte size bu soruların cevapları;

1- history komutuna zaman parametresi ekleyin

Salt history komutunu kullanırsanız login olduğunuz kullanıcının geriye dönük çalıştırmış olduğu komutları sıra numarası ile görürsünüz. Fakat bir de bu çalıştırılan komutların çalıştırılma zamanlarının da history çıktısında gösterilmesi geriye dönük iz sürme noktasında işimize yarayacağı kesin. O halde ilk login olduğumuzdaki home dizinimizin altında bulunan .bash_profile dosyasına veya unix sistemlerde sh kullananlar için .profile dosyasına aşağıdaki değişkeni ekleyelim.

$ HISTTIMEFORMAT="%d/%m/%y %T "

veya

$ echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bash_profile

komutunu çalıştırdıktan sonra kabuktan logout login olup veya .profile dosyasını environment değişkenleri için kullananlar (. .profile) komutunu kullanarak ve env. değişkenlerini .bash_profile dosyasında kullananlar için de (. .bash_profile) komutunu kullanma sonrasında history çıktısını inceleyelim.

$ history
<pre>....
..
  986  11/03/10 04:31:36 memcached-tool  10.10.28.22:11211 stats
  987  11/03/10 04:31:36 w
  988  11/03/10 04:31:37 iostat
  989  11/03/10 04:31:37 top
  990  11/03/10 04:31:37 at
  991  11/03/10 04:31:38 atop
  992  11/03/10 04:31:40 collectl
  993  11/03/10 04:31:41 grep CPU /proc/cpuinfo
  994  11/03/10 04:31:45 vmstat 3 100
  995  11/03/10 04:31:55 sar -W -f /var/log/sa/sa12
....
..

2- last komutu çıktısı yorumu

last komutu ile sisteme kimlerin ne zaman bağlandığı ve hangi ip veya domainler üzerinden sistem login olduklarını görebilirsiniz. Bu komut ile aynı zamanda sisteme kimlerin, ne zaman restart attığı ve ne kadar süre ile sistemde login kaldıkları bilgisini de öğrenebilirsiniz.

>last
root      pts/2        192.168.5.2      Sat Feb 26 21:43   still logged in
root      sshd         192.168.5.2      Sat Feb 26 21:43   still logged in
root      pts/3        192.168.5.8      Sat Feb 26 13:24 - 13:44  (00:19)
root      sshd         192.168.5.8      Sat Feb 26 13:24 - 13:28  (00:03)
root      pts/2        192.168.5.3      Sat Feb 26 11:17 - 13:28  (02:11)
root      sshd         192.168.5.3      Sat Feb 26 11:17 - 13:24  (02:07)
root      pts/2        192.168.2.129    Tue Feb 22 17:40 - 17:52  (00:11)
root      sshd         192.168.2.129    Tue Feb 22 17:40 - 17:52  (00:11)
root      pts/2        192.168.5.4      Mon Feb 21 22:56 - 23:21  (00:24)
root      sshd         192.168.5.4      Mon Feb 21 22:56 - 23:21  (00:24)
root      pts/2        192.168.2.129    Wed Feb 16 14:45 - 17:48  (03:03)
root      sshd         192.168.2.129    Wed Feb 16 14:45 - 17:48  (03:03)
root      pts/2        192.168.5.8      Sun Jan 30 15:17 - 15:19  (00:01)
root      sshd         192.168.5.8      Sun Jan 30 15:17 - 15:19  (00:01)

3-lastcomm komutu ile detaylı loglama

lastcomm komutunun en güzel tarafı kullanıcıların çalıştırdığı komutları göstermesinin yanında sistem süreçlerinin de çalıştırdığı komutları göstermesidir. Bununla kalmayıp komutların çalıştırılması süresini de göstermektedir. Bu özellik sayesinde sisteminizde uzun süre çalışan komutları belirleyip gereksiz ise bu komutları sonlandırabilirsiniz.

Solaris sistemlerde lastcomm komutu default olarak aktif değildir. Bu komutu aktif hale getirmek için;

lastcomm aktif olmadığı zaman ki komut çıktısı

>lastcomm
/var/adm/pacct: No such file or directory

accounting servisini başlatarak lastcomm dan çıktı alabilmek için;

>/usr/lib/acct/turnacct on

startup ta accounting servisinin default çalışması isteniyorsa;

>/usr/lib/acct/startup

artık lastcomm çıktısında istediğimiz bilgilere ulaşabiliriz. Aşağıdaki çıktıda dikkat edilirse kabuktan bağlanan kullanıcılar için kabuk bilgisi (ör: pts/2) gösterilmektedir. Kabuk bilgisi gösterilmeyen komutlar sistemin kendi çalıştırdığı komutlardır.

>lastcomm
postgres  F postgres __             0.00 secs Sun Feb 27 01:03
lastcomm    root     pts/2          0.00 secs Sun Feb 27 01:03
postgres  F postgres __             0.00 secs Sun Feb 27 01:03
hatimeru    root     __             0.00 secs Sun Feb 27 01:03
sh          root     __             0.00 secs Sun Feb 27 01:03
control_ S  root     __             0.00 secs Sun Feb 27 01:03
grep        root     __             0.00 secs Sun Feb 27 01:03
postgres  F postgres __             0.00 secs Sun Feb 27 01:03
psql     S  postgres __             0.00 secs Sun Feb 27 01:03
egrep       root     __             0.00 secs Sun Feb 27 01:03
postgres  F postgres __             0.00 secs Sun Feb 27 01:03
psql     S  postgres __             0.00 secs Sun Feb 27 01:03
rm       S  root     __             0.00 secs Sun Feb 27 01:03

* rm komutu çalıştırma geçmişi sorgulama;

>lastcomm rm
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16
rm          root     pts/2          0.00 secs Sun Feb 27 00:16

* oracle userının çalıştırdığı perl komutlarının geriye dönük bilgileri;

>lastcomm perl oracle
perl        oracle   __             0.16 secs Sun Feb 27 00:19
perl      F oracle   __             0.00 secs Sun Feb 27 00:19
perl      F oracle   __             0.00 secs Sun Feb 27 00:19
perl        oracle   __             0.10 secs Sun Feb 27 00:19
perl      F oracle   __             0.00 secs Sun Feb 27 00:18
perl      F oracle   __             0.00 secs Sun Feb 27 00:18
perl        oracle   __             0.09 secs Sun Feb 27 00:18

bu komutun tek eksik yanı çıktısında kullanılan komutlar için sadece ana komuta yer verip komuta eklenen parametreleri göstermemesidir. Ama history komutu çıktısı da bunu bir nebze olsun hafifletiyor diyebiliriz.

Bu yöntemler güzel ama daha iyisi yok mu derseniz cevap olarak visudo ile ayrı ayrı kullanıcılar için özel haklar atayarak tüm kullanıcıların çalıştırdığı komutları loglamanızı tavsiye ederim. Bu konuyla alakalı daha önce yazmış olduğum yazıma buradan ulaşabilirsiniz.

KAYNAKLAR;

http://www.cyberciti.biz/tips/freebsd-process-accounting-tutorial.html

http://www.tek-tips.com/viewthread.cfm?qid=542324&page=242

http://www.cyberciti.biz/faq/unix-linux-bash-history-display-date-time/

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.13_1145]
Rating: 0 (from 0 votes)
Share
PDF Creator    Send article as PDF   

, , , ,

AIX, Linux Sistemlerde CPU ve RAM Kullanımlarının İncelenmesi

Filed in Genel | Gezegen | Linux-Komutlar Leave a comment

Linkedin de sistemci bir arkadaşın yaşadığı problem üzerine verilen cevaplardan derlediğim bir inceleme makalesini sizlerle paylaşmak istedim. Sisteminizde yaşayabileceğiniz CPU RAM sorunlarını belirlemede bu komutlar işinize yarayabilir.

  • CPU yiyen proseslerin gösterilmesi;
#ps aux | head -1; ps aux | sort -rn +2 | head -10
  • RAM yiyen top 10 prosesin listelenmesi;
#ps aux | head -1; ps aux | sort -rn +3 | head
  • Sırasına göre cezalandırılmış süreçlerin listelenmesi;
#ps -eal | head -1; ps -eal | sort -rn +5
  • Proseslerin öncelik sırasına göre listelenmesi;
ps -eal | sort -n +6 | head
  • NICE değerlerine göre proseslerin listelenmesi;
#ps -eal | sort -n +7
  • Zaman sıralamasına göre proseslerin listelenmesi;
#ps vx | head -1;ps vx | grep -v PID | sort -rn +3 | head -10
  • Gerçek memory kullanımına göre proseslerin listelenmesi;
#ps vx | head -1; ps vx | grep -v PID | sort -rn +6 | head -10
  • I/O kullanımına göre proseslerin listelenmesi;
#ps vx | head -1; ps vx | grep -v PID | sort -rn +4 | head -10
  • Bekleyen proseslerin ID sine ulaşma;
#ps vg | head -1; ps vg | grep -w wait
  • Öncelik sıralama seviyelerine göre CPU kullanımı;
#topas -P
  • top 10 MEMORY tüketen proseslerin listelenmesi;
#svmon -Put 10

ps komutunun kullanımı ile alakalı daha ayrıntılı bilgi için;

http://unix.ittoolbox.com/groups/technical-functional/ibm-aix-l/memory-usage-901788

http://www.scribd.com/doc/26831738/AIX-Commands

http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/ps_command.htm

VN:F [1.9.13_1145]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.13_1145]
Rating: +1 (from 1 vote)
Share
PDF Download    Send article as PDF   

, , , , , ,

TOP