|
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:
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:
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
}
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
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ı: 1000
Sadece kayıtlı kullanıcılar yorum yazabilir. Lütfen sisteme giriş yapın veya kayıt olun. |