Linux/UNIX Sistemlerde Açık Portları Kullanan Servisleri Bulma

Rootkit , trojan gibi kötü amaçlı yazılımlar saldırganın daha sonra tekrardan sisteme rahat erişim sağlayabilmesi için, sistem üzerinde port açarak sisteme uzaktan bağlanma imkanı sağlarlar. Bundan dolayı sistem üzerinde bulunan açık portlar ve bu port üzerinden hizmet veren servisler düzenli aralıklarla kontrol edilmelidir.
Linux sistemlerde netstat komutu ile açık portlar ve bu portları kullanan servisler bulunabilir. Bu duruma ilişkin örnek bir kullanım aşağıda verilmiştir.

linuxguvenlik# netstat -nlptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q   Local Address         Foreign Address           State       PID/Program name
1. tcp        0        0         127.0.0.1:3306           0.0.0.0:*             LISTEN       4927/mysqld
2. tcp        0        0         0.0.0.0:1241              0.0.0.0:*             LISTEN       17797/nessusd
3. udp        0        0         0.0.0.0:161               0.0.0.0:*                               2196/snmpd

Netstat komutunun bu kullanımına ilişkin parametrelerin ne anlama geldikleri ise yine aşağıda gösterilmiştir.

-l, –listening = Sistem üzerinde dinlenen soket bilgileri gösterilir.
-p, –programs = Soket bilgileri için süreç numarası ve program ismi gösterilir.
-t,-u =  -t ile tcp, -u ile de udp protokolüne ait port bilgileri gösterilir.
-n, –numeric = Gösterilecek ip adres bilgileri için isim çözünürlüğü gerçekleştirilmez.

Komutun örnek kullanımında gösterilen ekran çıktısında yer alan satır numaraları, komutun yorumlanması için kullanılmış olup gerçek kullanımında böyle bir durum söz konusu olmayacaktır. Aşağıda komut çıktısına dair ilgili açıklamalar bulunmaktadır. Her satır numarası komut çıktısında gösterilen numaraya göre yorumlanmalıdır.

1. Mysqld servisi 4927 süreç numarası, 127.0.0.1 ip adresi üzerinden, 3306 port numarası ve tcp protokolü ile hizmet vermektedir.

2. Nessusd servisi 17797 süreç numarası, sistem üzerinde bulunan bütün ip adresleri üzerinden, 3306 port numarası ve tcp protokolü ile hizmet vermektedir.

3. Snmpd servisi 2196 süreç numarası, sistem üzerinde bulunan bütün ip adresleri üzerinden, 161 port numarası ve udp protokolü ile hizmet vermektedir.

İlgili servisin çalışma paremetresine dair ayrıntılı bilgi edinmek için ps komutu kullanılabilir. Bunun için “ps -p servis_süreç_numarası -f” şeklinde kullanılmalıdır.

linuxguvenlik# ps -p 4927 -f
UID        PID  PPID  C STIME TTY          TIME CMD
mysql     4927     1  0  2009 ?        11:19:00 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/run/mysqld/mysqld.pid