spacer.png, 0 kB
Bilgi için: bilgi at bilgiguvenligi gov tr   

 

spacer.png, 0 kB
spacer.png, 0 kB
Doinkd ile Konsol Etkinliğinin İzlenmesi Yazdır E-posta
Can Bican, TÜBİTAK BİLGEM   
09.02.2009
Güvenli sistem kurulumlarında dikkat edilen bir konu, yerel kullanıcı erişimini kısıtlamak için ekran koruyucusuna şifre koyarak dikkatsizlik sonucu yetkisiz erişimin olma ihtimalini azaltmaktır.Bu yazıda, UNIX/Linux sistemlerde atıl kullanıcıların bağlı olduğu terminallerin erişiminin kapatılması için kullanılabilecek bir çözüm anlatılacaktır. Eski ismi idled olan doinkd sürücüsünün kurulum, yapılandırma ve kullanımı gösterilecek, sistem erişiminin güvenliğine katkısı tartışılacaktır.

Grafik arabirimlerin hemen hepsinde bulunan ekran koruyucu ve kilitleyici özellikleriyle, belli bir süre kullanılmamış terminallerin erişime kapanması mümkündür. Fakat aynı şekilde UNIX/Linux sistemlerin konsol erişimlerinde nadiren bir önlem alınır.Doinkd (eski adıyla idled), kullanıcıların etkinliklerini izleyen ve yapılandırmasında belirlenen durumlara göre tepki veren bir yazılımdır. Bu yazı için ilgilendiğimiz özelliği, belli bir süre etkinlik göstermeyen kullanıcıların otomatik olarak sistemden çıkartılmasıdır. Doinkd yazılımı http://idled.sourceforge.net/ adresinden indirilebilir.

Kurulum:

Doinkd programının derlenmesi için gcc, flex ve byacc yazılımlarına ihtiyaç vardır. Centos ya da Fedora benzeri sistemlerde aşağıdaki komutlarla bunlar kurulabilir:

 yum install gcc byacc flex

Doinkd'nin derlenmesi için kaynak kod ile birlikte gelen Makefile dosyasının düzenlenmesi gerekmektedir. Dosya bir düzenleyiciyle açılmalı ve Linux için gerekli derleme seçeneklerinin önündeki '#' işareti kaldırılmalıdır. Böylece aşağıdaki satırlar etkin hale gelecektir:

DEFS += -DSYSV -DUTMPPID -DUTMPHOST -DHAVE_SETSID -DHAVE_YYRESTART

SPECLIBS =  

INSTTYPE = install1

DEST    = /usr/local/sbin

CFDEST  = /etc/doinkd

MDEST   = /usr/local/man

LOGDEST = /var/log

OWNER   = root

CFOWNER = root

CFOWNER = root

MOWNER  = root

GROUP   = root

CFGROUP = root

MODE    = 750

CFMODE  = 664

MMODE   = 644

Bu değişiklikler yapıldıktan sonra 'make' komutu yazılımı derleyecek, root olarak çalıştırılan 'make install' komutu ise yazılımı konuşlandırılacaktır. Kurulum sürecindeki bir hatadan dolayı, 'make install' komutunu vermeden önce aşağıdaki komut verilmelidir:

mkdir -p /etc/doinkd

Yapılandırma:

Aşağıda örnek bir /etc/doinkd/doinkd.cf dosyası bulunmaktadır. Bu örnek dosya, root dahil tüm kullanıcıların 5 dakikadan fazla bağlı kalması durumunda sistemden çıkarılmasını sağlayacaktır. Farklı ayarlar ve açıklamaları için /etc/doinkd/doinkd.cf.template dosyasına bakılabilir:

sleep 60

warn 60

conswins idle 5

conswins multiple off

conswins session off

timeout tty console 5

timeout default 5

Ayrıca sistem açıldığında doinkd sürecinin başlatılması için de aşağıdaki betiğin /etc/init.d/doinkd olarak kaydedilmesi gerekmektedir:

#! /bin/sh

#

# doinkd        Logs out idle users, and more

#

# chkconfig: 2345 50 50

# description: Logs out idle users, and more

#

# processname: /usr/local/sbin/doinkd

. /etc/rc.d/init.d/functions

PROGRAM=doinkd

DAEMON=/usr/local/sbin/$PROGRAM

start(){

echo -n "Starting $PROGRAM: "
$DAEMON
RETVAL=$?
echo
touch /var/lock/subsys/$PROGRAM
}

stop(){
echo -n "Stopping $PROGRAM: "
pid=`/usr/bin/pgrep -f $DAEMON`
if [ "$pid" != "" ]
then
/bin/kill $pid
fi
RETVAL=$?
echo
rm -f /var/lock/subsys/$PROGRAM
}

restart(){
stop
start
}

condrestart(){
[ -e /var/lock/subsys/$PROGRAM ] && restart
}  
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $DAEMON
;;
restart|reload)
restart
;;
condrestart)
condrestart
;;
*)
echo "Usage: $PROGRAM {start|stop|status|restart|condrestart|reload}"
RETVAL=1
esac

exit $RETVAL

Bundan sonra aşağıdaki komutlarla servis başlatılabilir:

# chkconfig --add doinkd

# service doinkd start

Doinkd etkinliğinin kaydı /var/log/doinkd.log dosyasında tutulmaktadır. Bu dosyanın logrotate tarafından yönetilerek büyümesi engellenebilir ve arşivlenebilir. Bunun için /etc/logrotate.d/doinkd dosyası, aşağıdaki içerikle oluşturulmalıdır:

 /var/log/doinkd.log {

missingok

create 0600 root root

postrotate

/sbin/service doinkd reload 2>/dev/null >/dev/null || true

endscript

}

Ayrıca varolan kayıt dosyası aşağıdaki komutlarla güvenli hale getirilmelidir:

# touch /var/log/doinkd.log

# chown root:root /var/log/doinkd.log

# chown a=,u=rw /var/log/doinkd.log

Kullanım:

Doinkd süreci çalıştığı sürece oturumlar izlenecek ve atıl oturumlar kapatılacaktır. Sürecin etkinliği /var/log/doinkd.log dosyasından izlenebilir. Bir kullanıcı atıl olduğundan dolayı çıkartılmak üzereyse, terminaline aşağıdaki mesaj gelecektir:

This terminal has been idle 5 minutes. If it remains idle for 1 more minutes it will be logged out by the system.

Kullanıcı çıkartıldığında kayıtlarda aşağıdakine benzer bir satır görülecektir:

   Mon Jan 19 16:08:01 : can on /dev/tty4 because idle

Süreç, varsayılan ayarlarıyla sistem açıldığında çalışacak ve kapatılana kadar çalışmaya devam edecektir. Sürecin yönetimi için aşağıdaki komutlar kullanılabilir:

  • Durdurmak: service doinkd stop
  • Yeniden başlatmak: service doinkd restart
  • Başlatmak: service doinkd start
  • Durumu hakkında bilgi edinmek: service doinkd status

Sonuç:

Doinkd sayesinde, yanlışlıkla açık bırakılan terminaller güvenli hale getirilebilir. Kurulum ve kullanımı gayet basit olmasına rağmen, getirdiği kazanımın alternatifi azdır. Tüm güvenli sunucu kurulumlarında kullanılması tavsiye edilmektedir.

Referanslar:

[1] doinkd(idled) web sayfası: http://idled.sourceforge.net/

[2] vlock web sayfası: http://cthulhu.c3d2.de/~toidinamai/vlock/vlock.html


Favori olarak ekle (0) | Görüntüleme sayısı: 5162

Bu yazıya ilk yorumu yazın

Sadece kayıtlı kullanıcılar yorum yazabilir.
Lütfen sisteme giriş yapın veya kayıt olun.

 
spacer.png, 0 kB
spacer.png, 0 kB
Copyright 2017 TÜBİTAK-BİLGEM. Sitenin teknik altyapısında Joomla kullanılmıştır. Yazar ve site referans gösterilmeden alıntı yapılamaz. Görüşleriniz
spacer.png, 0 kB