Giris

Güvenilir sistem yapılan saldırılara maksimum seviyede karşı koya  bilecek bir sistemdir.

Bir sistemin güvenilir olması için sistemde saldırganlara yardımcı olabilecek açıklar ve

zayıflıklar minimuma  indirilmelidir. Bunun için sistem zamanında  güncellenmeli,

kullanılmayan servisler ,portlar kapatılmalı, sistemin temel görevi olmayan tümprogramlar

kaldırılmalıdır. Aşağıdaki metinde tüm bunların nasıl yapılacağı ele alınmıştır. Metin 2

kısımdan oluşmaktadır

a)Sistemi güvenilir yapmak için gereken güncellemeler

Bu bölümda kernelin yeni versiyonlarının ve update'lerin ne   işe yaradıkları ve nasıl

 yüklenecekleri anlatılmıştır.

b)Gereksiz programların, portların, servislerin kaldırılması

Bu bölümde portların , gereksiz servislerin neden tehlikeli   olabilecegi ve nasıl kaldırılacağı anlatılmıştır.

 

Güncelleme

Bu bölümde RedHat Linux için güncellemenin nasıl yapılacağı    anlatılmıştır. RedHat

Linux'un her versiyonunun bir sürü update'i ve kernelinin de sürekli yeni versiyonları

çıkar. Bunların çıkmasının nedeni, Bir önceki versiyondaki açıkları kapatmak, sistemi

daha güvenli ve saglıklı yapmaktır. Bunların sürekli takip edilmesi ve sistemin güncel

tutulması  gerekmektedir. Bunları yapmazsanız sisteminizde çoğu Linux kullanıcısı

tarafından bilinen açıklar kapatılmamış olur ve bu da sisteminize yapılabilecek

saldırıların daha fazla zarar vermesine yol açar. Sistemin güncellenmesini iki alt başlık

altında inceleyeceğiz.

a) Kernelin yeni versiyonunun indirilmesi ve derlenmesi.

b) Update'lerin geçilmesi.

 

Kernelin Yeni Versiyonun Indirilmesi Ve Derlenmesi

 

NOT: Kernelin derlenmesi fazla zor değil. Fakat daha önce hiç derlemediyseniz, dikkatli

olmanızda ve daha önce bu işi yapmış olan birisini yanınızda bulundurmanızda fayda vardır.

 

İlk    yapmanız    gereken    iş      kernelin en son versiyonunun indirilmesidir.

http://www.kernelnotes.org/ sayfasına gidiniz ve kernelin en son stable  versiyonunu /tmp

dizinine indiriniz.Daha sonra http://www.openwall.com/    /linux/ adresinden indirdiginiz

kernelle ayni versiyonda olan patch'i indiriniz. Daha sonra asagidaki komutlari sırası ile

çalıştırınız.

 

[root@server /root]# cp /tmp/linux-2.x.tar.gz /usr/src

[root@server /root]# cp /tmp/patch-2x.gz /usr/src

[root@server /root]# cd /usr/src

[root@server /root]# gzip -cd linux-2.x.tar.gz | tar xvf -

[root@server /root]# gzip -cd path-2x.gz | patch -p0

 

Yukarıdaki komutlar vasıtası ile indirdiğiniz paketler /usr/src dizinine       kopyalanır,

açılır ve kernel'e patch uyğulanir.

Bunları yaptıktan sonra aşağıdaki komutları da çalıştırınız

 

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make mrproper

 

Sıra kernelin configurasyonunu belirlemektedir. Bunun için make   config        komutunu

çalıştırmanız lazım.

 

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make config

 

make config komutuna alternatif olarak make menuconfig ve make xconfg    komutlarını da

çalıştıra bilirsiniz. make xconfig komtunu çalıştıra    bilmeniz için startx'de olmaniz

lazim. make config komutunu çalıştırdıktan sonra karşınıza bir sürü soru çıkacak. Kernelin

neyi destekleyip, neyi desteklememesi gerektiğini   burdan belirlemeniz lazim. Sorulara

cevap verirken size gerekmeyen    hiç bir pakete "Y" dememeye dikkat edin. Bu hem sizin

kernel'in boyutunu küçültücektir, (Böylece kernel daha hızlı çalışacak ve daha az

RAM kullanacaktır), hem de sisteminizin daha güvenli olmasını sağlayacaktır

 

Daha sonra make dep ve make clean komutlarını çalıştirınız

 

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make dep

[root@server /root]# make clean

 

Bunlar bittikten sonra make zImage komutunu çalıştırınız

 

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make zImage

 

Daha sonra modulleri desteklemek için make modules ve make modules_install komutlarını

çalıştırınız.

 

[root@server /root]# cd /usr/src/linux-2x

[root@server /root]# make modules

[root@server /root]# make modules_install

 

Yeni kerneliniz hazırdır,  /usr/src/linux/arch/i386/boot/ dizini    altındakı zImage

dosyasıdır yeni kerneliniz. Bunu /boot dizinine ve ya      floppy'den boot ediyorsaniz

floppy'ye kopyalayınız. Daha sonra /etc/lilo.conf dosyasındaki image=/boot/vmlinuz-2x

satırını  değiştiriniz ve vmlinuz-2x yerine /boot/ dizinine kopyaladığınız dosyanın

adını yazınız. /sbin/lilo komutunu çalıştırınız ve artık yeni kernel   hazırdır. Makinenizi

reboot ede bilirsiniz.

 

NOT: Daha fazla bilgi için /usr/src/linux/ dizini altındakı README    dosyasına baka

bilirsiniz.

 

 

Update'lerin Geçilmesi

 

Update'ler kernel'in  güncellenmesinden daha önemlidir. Çünki her update çok önemli bir

açığı kapatır. İlk yapmanız gereken iş updatelerin indirilmesidir. Bunun için

http://www.redhat.com/errata adresine  gitmeniz lazım. Bu sayfadan size gereken tüm

update'lerin rpm paketlerini indiriniz. Bir paketin size gerekip-gerekmediğini oğrenmek

için    rpm -q komutunu paket adını parametre olarak verip çalıştırmanız lazım. Örneğin

emacs paketinin sizde var olup-olmadığını oğrenmek istiyorsanız    aşağıdaki komutu

çalıştırınız.

[root@server /root]# rpm -q emacs

 

Eğer çıktı aşağıdaki gibiyse bu paket sizde var ve bunun update'ini  indirmeniz lazım.

[root@server /root]# rpm -q emacs

emacs-20.5-7

[root@server /root]#

Çıktı bu şekilde değilde aşağıdaki gibiyse bu paket sizde zaten yok ve olmayan bir paketin

update'ini indirmenize gerek yok

[root@server /root]# rpm -q x

package x is not installed

[root@server /root]#

Update'leri indirdikten sonra teker-teker geçilmesi lazım. Örnek paketin adı

package-x.y.rpm ise bu paketin update'ini geçmek için update'lerin oldugu dizine geçerek

aşağıdakı komutu çalıştırmanız lazım:

 

[root@server /root]# rpm -Uvh package-x.y.rpm

 

Bu komutu indirdiğiniz tüm paketler için çalıştırdıktan sonra iş bitmiştir.

Sisteminiz artık günceldir.

 

 

Genel güvenlik

Sisteminizin saldırılardan etkilenmesini istemiyorsanız, sisteminize erişimi minimuma

indirmeli ve dışarıya sisteminiz hakkında minimum bilgi vermelisiniz. Sisteme minimum

erişim saldırganın sisteme girişini elgelleyeceği gibi, sistem hakkında minimum bilgi

vermek de saldırganın sisteminiz hakkında bilgi toplamasını engelleyecek ve işini

zorlaştıracaktır. Basit bir finger komutu sisteminiz hakkında saldırgana az denemeyecek

kadar bilgi veriyor. Bu bölümde sisteminizin maksimum şekilde güvenli olması için yapmanız

gerekenler madde-madde ele alınmıştır.

a) Password

Sisteminiz çok kullanıcılı bir sistem ise, kullanıcıları kompleks ve uzun şifreler seçmeye

zorlayın. Genelde , kırılamayacak şifre yoktur, fakat şifreler uzun ve kopleksse bu

saldırganın işini zorlaştırır ve hatta belki çok zamanını aldığı için sisteminizi kır-

maktan vaz geçire de bilir. Şifreleri kompleks ve uzun tutmak için ilk yapmaniz gereken

şey kullanıcıları bu konuda uyarmak , daha sonra da sistemde bir takım önlemler almaktır.

İlk olarak /etc/login.defs dosyasını herhangi bir editörde açarak  PASS_MIN_LEN satırının

sonundakı sayıyı (default olarak 5'tir) 8  yapınız. Daha sonra ise /etc/pam.d/login

dosyasını yine bir editörde açarak auth ve account kelimeleriyle başlayan satırlardan

sonra aşağıdaki satırı ekleyiniz

 

password required /lib/security/pam_cracklib.so

 

Bu satır , kullanıcıyı şifre seçerken kompleks şifreler seçmeye  zorlayacaktır.

NOT: Pam , sistem güvenliyini artırmak için önemli bir araçtır. Daha fazla bilgi almak

için /usr/doc/pam-xx/ dizinine göz ata   bilirsiniz.

 

b) /etc/exports dosyası

Bu dosya sisteminizdeki hangi dizinleri ortak kullanıma açtığınızı  gösterir. NFS

kullanmıyorsanız bu dosyanın içinin boş olmasına dikkat edin. Dosyanın attribute'unu da

değiştirerek immutable (değişmez) yapınız.

 

[root@server /root]# chattr +i /etc/exports

 

c) /etc/inetd.conf dosyası

Bu dosya sisteminizin dışarıya hangi hizmetleri verdiğinizi gösteren bir dosyadır. Dosya

hizmet adlarıyla başlayan satırlardan oluşur.    Satırın başında # işareti varsa bu satır

comment'lenmiştir ve bu  hizmet artık verilmemekktedir, direk hizmet programı adıyla

başlıyorsa  bu hizmet halen verilmektedir. Örneğin, aşağıdaki /etc/inetd.conf

dosyasından götürülmüş satırlar bu sistemde ftp hizmetinin verildigini, telnet hizmetinin

ise verilmediğini gösterir.

 

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a

#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

 

İlk olarak bu dosyanın modunu sadece root tarafından okunup-yazıla bilinecek şekilde

değiştiriniz, başka kullanıcıların bu dosyayı görmeleri sistem hakkında gerektiğinden

fazla bilgi almalarına neden olur.

 

[root@server /root]# chmod 600 /etc/inetd.conf

 

Daha sonra ise attribute'unu değiştirerek immutable yapınız.

 

[root@server /root]# chattr +i /etc/inetd.conf

 

Daha sonra sisteminizin vermesini istemediginiz hizmet progamlarını tespit ederek bu

programın adıyla başlayan satırın başına # koyup  bu satırı comment'leyerek hizmet

programını kaldırınız. Örneğin sisteminizin artık finger'lere cevap vermesini

istemiyorsanız

önceden

finger stream nowait root /usr/sbin/tcpd in.fingerd

 

şeklinde olan satırı değiştirerek aşağıdakı şekle getiriniz

 

#finger stream nowait root /usr/sbin/tcpd in.fingerd

 

Sisteminiz temel görevleri arasında olmayan tüm hizmetleri kesinlike kaldırmanız lazım.

inetd.conf dosyası ile işiniz bittikten sonra yaptığınız değişikliklerin aktif olması için

aşağıdaki komutu çalıştırınız

 

[root@server /root]# killall -HUP inetd

 

d) /etc/hosts.allow ve /etc/hosts.deny dosyalari

 

Makinenize erişimi kısıtlamalısınız. Bunun için /etc/hosts.deny dosyasına aşağıdakı

satırı ekleyiniz

 

ALL: ALL@ALL, PARANOID

Bu satır makinenize herhangi bir şekilde erişimi yasaklayacaktır. Tabii ki , bazi

kullanıcılara bazı programları kullanmaları için izin vermeniz gereke bilir. Bu izinleri

ise /etc/hosts.allow dosyası vasıtasıyla veriyorsunuz. Örnegin , makinenize 192.168.1.1

adresinden telnet çekile bilmesini istiyorsanız, /etc/hosts.allow dosyasına aşağıdakı

satırı eklemeniz lazim:

 

in.telnetd: 192.168.1.1 myhost.mydomain.

 

myhost.mydomain 192.168.1.1 IP adresli makinenin domain name'idir.

 

e)/etc/aliases dosyasi

 

Saldırgan bu dosyayı kullanarak sisteminizde root hakkına sahip ola bilir. Bundan dolayı

bu dosyayı açarak bin, daemon ve nobody kelimeleri ile baslayan satırlar hariç tüm

satırları ,satır başına # koyarak comment'leyiniz.

 

f) Sisteminizin ping'e cevap vermesini yasaklayınız

Ping, TCP/IP protokollarındaki zayıflıklardan dolayı saldırganlar tarafından sıkça

kullanılan bir programdır. Sisteminize ping çekilmesini yasaklarsanız, önemli bir açiği

kapatmış olursunuz. Ayrıca sisteminize ping çekemeyen saldırgan sisteminiz hakkında

daha az bilgi alır ve hatta belki sisteminizin şu an ayakta olup olmadığından bile haberi

olmaz. Sisteminize ping çekilmesini yasaklamak için aşağıdaki komutu çalıştırmanız lazım:

 

[root@server /root]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

 

Bunun sistemi reboot ettikten sonra da aktıf olmasını istiyorsaniz  yukarıdaki satırı

/etc/rc.d/rc.local dosyasına da eklemeniz lazım.

 

g) Issue dosyası

 

Sisteminiz telnet hizmeti veriyorsa, /etc/inetd.conf dosyasındakı telnet kelimesi ile

başlayan satırı aşağıdaki gibi değiştiriniz

 

telnet stream nowait root /usr/sbin/tcpd in.telnetd -h

 

Daha sonra "killall -HUP inetd" komutu ile inetd'yi değerleri tekrar okumaya mecbur

ediniz. /etc/inetd.conf dosyasını bu şekilde değiştirmeniz makinenize telnet çekildiginde

ekrana gelen issue dosyasının içeriğinin görüntülenmemesini sağlıyacaktır. Bu ise

sisteminiz hakkında dışarıya daha az bilgi verecek. Örneğin saldırgan kernel versiyo-

nunuzu bilemiyecek ve hangi crack programını kullanması gerektiğine karar vermekte

zorlanacaktır.

 

h) /etc/host.conf dosyasi

Bu dosyayı açarak order kelimesi ile başlayan satırı değiştirerek şu şekle getiriniz

"order bind, hosts". Bu makinenizi Adres sorgulamasını ilk olarak DNS'den yapmasına

zorlayacaktir. Daha sonra dosyaya şu satırı ekleyiniz. " nospoof on" .Bu satır da

makinenizi IP address spoofing'e karşı dikkatli olmaya zorlayacaktır.

 

i) Source routing

IP Source routing saldirganların sistemi kırmak için kullandıkları başka bir yöntemdir.

Bunu yasaklamak için aşağıdaki komutu çalıstırmanız gerekmektedir.

 

[root@server /root]# for f in /proc/sys/net/ipv4/conf/*/accept_source_route;do

echo 0> $f

done

 

Çalıştırdığınız komutun makine reboot edildikten sonra aktif olmasını istiyorsanız

yukarıdaki komutu /etc/rc.d/rc.local dosyasına da eklemeniz lazım.

 

j) SYN Cookie'ler.

"SYN attack" DoS'a (Denial Of Service) neden ola bilecek önemli bir saldırı çesididir.

Denial Of Service saldırıları sistemdeki tüm kaynakların tükenmesine yol açarak sizi

makineyi reboot etmeye zorlar.Bu saldırıya karşı koymak istiyorsanız aşağıdaki komutu

çalıştırmanız lazım

 

[root@server /root]# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

 

Komutun sistem reboot edildikten sonra da aktif olmasını istiyorsanız yukarıdaki komutu

/etc/rc.d/rc.local dosyasına da eklemeniz lazım.

 

k) /etc/services dosyası

Bu dosya sistemdeki hizmet programlarının port numaralarını belirler Bu dosyanin kimse

tarafından değiştirile ve görüle bilmemesi için aşağıdaki komutları çalıştırarak

attribute'unu ve modunu değiştiriniz Saldırgan bu dosyaya yaza bilmesi halinde portları

kafasına göre kullanıma açar, ve başka bir zaman geri döne bilmek için backdoor bıraka

bilir.

 

[root@server /root]# chattr +i /etc/services

[root@server /root]# chmod 600 /etc/services

 

l) /etc/securetty dosyasi

Bu dosyanın var olması sisteminize root olarak telnet çekilememsini saglar. Dosyayı açarak

içine makineye root olarak login olma hakkı tanıdığınız terminallerin adını yaza

bilirsiniz. Örneğin , makineye sadece birinci terminalden root olarak login oluna

bilmesini istiyorsaniz dosyaya "tty1" satırını ekleyiniz, birinci ve ikince terminaller-

den login olunmasını istiyorsanız "tty1" ve "tty2" satırlarını ekleyiniz.

 

m) gereksiz hesaplar

Sisteminizde default olarak gelen , fakat hiç bir şekilde kullanmadığınız hesaplar vardır.

Örneğin gopher , uucp genelde kullanılmayan hesaplar. /etc/passwd dosyasına bakın ve

uid'si 500'ün altında olan tüm kullanıcıları teker-teker gözden geçiriniz. Bunu

kullanmıyorum, dediğiniz tüm hesapları kaldırınız. Çünki bu hesaplar herbiri saldırganın

sisteminize girmesi için birer kapıdır. Bir kullanıcı hesabını kaldırmak için

aşağıdaki komutu çalıştırmanız lazım:

 

[root@server /root]# userdel gopher

 

Bu komut gopher kullanıcısını sisteminizden kaldırır.

 

n) su izni

Kimsenin su yapmasına izin vermemeniz lazım. Bunu yaparsanız, birisi bir şekilde root

şifresini öğrendiyse bile ,root olarak telnet çekemeyeceği (bak. madde l. ) ve su izni

olmadığı için sisteminizde root hakkı kazanamayacaktır. Kullanıcıların su yapmasını

engellemek için aşağıdaki satırları /etc/pam.d/su dosyasına eklemeniz lazım.

 

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=wheel

 

Bundan sonra su yapa bilmesini istediğiniz kullanıcı adlarını /etc/group dosyası içine

wheel'le başlayan satırın sonuna virgülle ayırarak ekleye bilirsiniz.

 

o) /etc/limit.conf

Dos(Denial Of Service)'lerle karşı-karşıya kalmak istemiyorsanız bu dosyaya aşağıdaki

satırları eklemeniz lazım

* hard rss 5000

* hard nproc 20

Birinci satır bir kullanıcının maksimum 5 M RAM kullana bileceğini, ikinci satır ise bir

kullanıcının sistemde maksimum 20 proses çalıştıra bileceğini belirtir. Tabii ki, bu

sayıları kullanmak zorunda değilsiniz ve bunları değiştirip istediğiniz değerleri yaza

bilirsiniz.

 

p) Derleyiciler ve rpm.

Sisteminizde Derleyicinin bulunması (gcc, cc) sisteminize sızmış saldırgana sisteminizde

kaynak kodunu derleyerek çalıştırmasına izin verir.Bunu önlemek için derleyicileri

(kullanmıyorsanız) kaldırınız. Ayni şey rpm komutu için de geçerlidir, sisteme sızmış bir

saldırgan rpm komutunu kullanarak istediği programı sisteminize yükleye bilir.

Fakat rpm derleyiciler gibi degil. Derleyiciyi uninstall ettikten sonra tekrar install ede

bilirsiniz. Rpm için ise aynı şey geçerli değil.Yapmanız gereken şey rpm komutunu /bin/

dizininde saldırganin düşünemeyeceği bir yere kopyalamaktır. Hatta en saglami rpm'i bir

floppy'ye kopyalamaktır.Gerektiği zaman rpm'i geri yerine kopyalayıp çalıştıra bilirsiniz.

 

q) history size

Sistemdeki su yapma yetkisine sahip (bak . madde n.) birisinin şifresini ele geçirmis

saldırgan, bu kullanıcının history'sine bakar ve yanlışlıkla yazılmış bir şifre arar.

Saldırgana minimum imkan tanımak için history uzunluğunu mümkün kadar kısa tutunuz,

örnegin 20. Bunu yapmak için /etc/profile dosyasında HISTSIZE ve HISTFILESIZE satırlarını

değiştirerek bu kelimelerden sonraki sayıyı değiştirerek 20 yazmanız  yeterli olacaktır.

 

r) /etc/lilo.conf

 

Makineniz herkesin girip-çıka bileceği bir mekanda ise aşağıdaki ayarları yapmanızde fayda

vardir. Makine sadece siz ve güvendiğiniz insanların gire bildigi bir yerde ise bu maddeyi

geçe bilirsiniz. /etc/lilo.conf dosyasını açınız ve aşağıdaki satırları ekleyiniz

 

timeout=00

restricted

password="your_password"

 

timeout satırı makine açılırken LILO'nun beklememesini sağlar ki bu da LILO'ya parametre

verilmesini engeller. restricted satırı makinenin single modda açılması için şifre

verilmesi gerektiğini belirtir. Şifreyi ise siz veriyorsunuz. (password satırının

önüne yazarak). Bunları yaptıktan sonra şifrenizin gözükmemesi için aşağıdaki komutu

çalıştırarak /etc/lilo.conf dosyasının izinlerini değiştirmeniz lazım

 

[root@server /root]# chmod 600 /etc/lilo.conf

 

s) log'lar

Sisteminizin herhangi bir şekilde kırılması durumunda , saldırı hakkında  bilgi ala

bileceginiz tek kaynak log'lardır. Bundan dolayı, sisteminizi kırmış olan bir saldırgan

,işi bittikten sonra log dosyalarını siler ve saldırı hakkında herhangi bir bilgi

alamazsınız. Bunu önlemek için log dosyalarının saldırıyı yapan şahsın ulaşamayacağı bir

yerde kopyalarının tutulması gerekir. En sağlıklı yöntem log'ların print edilmesidir.

 

Bunun için /etc/syslog.conf dosyasının sonuna aşağıdaki satırı eklemeniz lazım.

 

authpriv.* ; mail.*;local7.*;auth.*;daemon.info /dev/lp0

 

Fakat bu yontemin birtakım dezantajları var, makinenizde printer tanıtılmamış ola bilir,

her log'un çıktısını almak fazla masraflı ve karışık ola bilir.Bundan dolayı en iyi

yöntem log'ların başka bir makineye kopyalanmasıdır. Log'ları kopyalacağınız örnek

makinenin adı logserver olsun.Bu durumda sizin makinenizin /etc/syslog.conf dosyasının

sonuna şu satırı eklemeniz lazım.

 

authpriv.* ; mail.*;local7.*;auth.*;daemon.info @logserver

 

logserver makinesinde ise /etc/rc.d/init.d/syslog scriptindeki

"daemon syslogd -m 0 " satırını "daemon syslogd -r -m 0" olarak değiştirmeniz ve

değişikliği kayd ettikten sonra her iki makinede aşağıdaki komutu çalıştırarak syslog

programını restart etmeniz lazım

 

[root@server /root]# /etc/rc.d/init.d/syslog restart

 

t) /etc/rc.d/init.d dizini

 

Bu dizinin altında programları çalıştıran scriptler yer almaktadır. Bu dizin altindakı tüm

dosyaların izinlerini aşağıdaki komutla değiştiriniz

[root@server /root]# chmod 700 /etc/rc.d/init.d/*

 

NOT: Genel olarak kullanıcılara mutlaka görmeleri gereken dosyalar ve dizinler hariç , hiç

bir dosya ve dizine yazma ve okuma izni vermemeye çalışın.

 

u) suid bitli dosyalar

Bu tür dosyalar çalışma esnasında , işlemlerini devam ettirmek için root hakkı kazanırlar.

Örneğin kullanıcı passwd komutunu çalıştırarak şifresini değiştirirken, passwd programı

/etc/passwd dosyasına yazmak için root hakkı kazanır. Saldıgran bu tür programları farklı

şekilde kullanarak sisteminize zarar vere bilir. Bundan dolayı sistemdeki tüm suid bitli

dosyaların bulunup, bunlardan kullanıcıların kullanmak zorunda olmadıklarını tespit

edilerek suid bitinin kaldırılması lazım.Sistemdeki suid bitli dosyalar aşağıdaki komut

kullanılarak buluna bilir:

 

[root@serveer /root]# find / -type f \( -perm -04000 -o -perm -02000

\) \-exec ls -l {} \;

 

Çıktının aşağıdaki gibi olmasi lazım.

 

-rwsr-xr-x 1 root root 34565 sep 22 23:35 /usr/bin/chage

 

Buna benzer 20-30 civarında satır çıka bilir. En sağdaki /usr/bin/chage adını ve yerini

gösterir. Sağdaki satıra bakın ve hangi dosyaların kullanıcı tarafından çalıştırılmaması

gerektiğine karar verin. Daha sonra "chmod a-s dosya_adi" komutu ile bu dosyanın suid

bitini kaldırınız.Örnegin kullanıcının /usr/sbin/traceroute ve /bin/ping kullanmasına ge-

rek yok. O zaman aşağıdaki komutları çalıstırmanız lazım

 

[root@server /root]# chmod a-s /usr/sbin/traceroute

[root@server /root]# chmod a-s /bin/ping

 

v) Gizli dosyalar

 

Sisteminize crack programları ve ya passwd dosyaları getirmiş olan bir kullanıcı bu

program ve dosyaların bulunamaması için onları gizli olarak tutar.Ve verdiği isimlerin

dikkat çekici olmamasına dikkat eder. Örneğin bir crack programını ".. " adı ile tutar ve

bu size sıradan bir şeymiş gibi gelir. Bundan dolayı sistemdeki gizli dosyaları sürekli

inceliyor olmanız lazım. Sistemdeki gizli dosyaları görmek için aşağıdaki komutu

çalıştırmanız lazım.

 

[root@server /root]# find / -name ".*"

 

Bu komut noktayla başlayan (gizli ) dosyaları bulur ve siz de size normal gözükmeyen

dosyaları inceleye bilirsiniz.

 

w) Herkes Tarafından Yazıla Bilen Dosya ve Dizinler

Sisteminizi sürekli tarayarak sizin yazma izni verdiginiz dosya ve dizinler hariç hiç bir

dosya veya dizinin herkes tarafından yazılabilir olmamasına dikkat etmeniz lazim.

Sisteminizi kırmayı başarmış olan bir saldırgan sisteme tekrar geri döne bilmek bu tür

dosyaları ve dizinleri backdoor olarak bırakmış ola bilir. Bu tür dosya ve dizinleri

bulmak için aşağıdaki komutu çalıştırınız.

 

[root@server /root]# find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \;

 

THE END..

 

 

 

NEBİ     GURBANOV

ITU   SISTEMDESTEK

 

© Copyright of all documents belong to ITU SISTEMDESTEK