|
Fesih
|
 |
« : Haziran 22, 2007, 08:28:29 ÖS » |
|
Güvenilir sistem yapılan saldırılara maksimumseviyede karşı koya bilecek bir sistemdir. Bir sistemin güvenilirolması için sistemde saldırganlara yardımcı olabilecek açıklar vezayıflıklar minimuma indirilmelidir. Bunun için sistem zamanındagüncellenmeli,kullanılmayan servisler ,portlar kapatılmalı, sistemintemel görevi olmayan tüm programlar kaldırılmalıdır. Aşağıdaki metindetüm bunların nasıl yapılacağı ele alınmıştır. Metin 2 kısımdanoluş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 desürekli yeni versiyonları çıkar. Bunların çıkmasının nedeni, Bir öncekiversiyondaki 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 sisteminizeyapı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ış olanbirisini 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 makexconfg 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 neyidestekleyip, neyi desteklememesi gerektiğini burdan belirlemeniz lazim.Sorulara cevap verirken size gerekmeyen hiç bir pakete "Y" dememeyedikkat edin. Bu hem sizin kernel'in boyutunu küçültücektir, (Böylecekernel daha hızlı çalışacak ve daha az RAM kullanacaktır), hem desisteminizin daha güvenli olmasını sağlayacaktır
Daha sonra make dep ve make clean komutlarını çalıştırı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'denboot ediyorsaniz floppy'ye kopyalayınız. Daha sonra /etc/lilo.confdosyası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 bakabilirsiniz.
Update'lerin Geçilmesi
Update'ler kernel'in güncellenmesinden daha önemlidir. Çünki herupdate çok önemli bir açığı kapatır. İlk yapmanız gereken işupdatelerin indirilmesidir. Bunun için
http://www.redhat.com/errataadresine gitmeniz lazım. Bu sayfadan size gereken tüm update'lerin rpmpaketlerini indiriniz. Bir paketin size gerekip-gerekmediğini oğrenmekiçin rpm -q komutunu paket adını parametre olarak verip çalıştırmanızlazım. Örneğin emacs paketinin sizde var olup-olmadığını oğrenmekistiyorsanı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ındaminimum bilgi vermelisiniz. Sisteme minimum erişim saldırganın sistemegirişini elgelleyeceği gibi, sistem hakkında minimum bilgi vermek desaldırganın sisteminiz hakkında bilgi toplamasını engelleyecek ve işinizorlaştıracaktır. Basit bir finger komutu sisteminiz hakkındasaldırgana az denemeyecek kadar bilgi veriyor. Bu bölümde sisteminizinmaksimum şekilde güvenli olması için yapmanız gerekenler madde-maddeele alınmıştır. a) Password
Sisteminiz çok kullanıcılı bir sistem ise, kullanıcıları kompleksve uzun şifreler seçmeye zorlayın. Genelde , kırılamayacak şifreyoktur, fakat şifreler uzun ve kopleksse bu saldırganın işinizorlaştırır ve hatta belki çok zamanını aldığı için sisteminizikırmaktan vazgeçirebilir de. Şifreleri kompleks ve uzun tutmak için ilkyapmaniz gereken şey kullanıcıları bu konuda uyarmak , daha sonra dasistemde bir takım önlemler almaktır. İlk olarak /etc/login.defs dosyasını herhangi bir editörde açarakPASS_MIN_LEN satırının sonundakı sayıyı (default olarak 5'tir) 8yapı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ğinizigösteren bir dosyadır. Dosya hizmet adlarıyla başlayan satırlardanoluşur. Satırın başında # işareti varsa bu satır comment'lenmiştir vebu hizmet artık verilmemekktedir, direk hizmet programı adıylabaşlıyorsa bu hizmet halen verilmektedir. Örneğin, aşağıdaki/etc/inetd.conf dosyasından götürülmüş satırlar bu sistemde ftphizmetinin 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ılabilinecek şekilde değiştiriniz, başka kullanıcıların bu dosyayıgörmeleri sistem hakkında gerektiğinden fazla bilgi almalarına nedenolur.
[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 busatırı comment'leyerek hizmet programını kaldırınız. Örneğinsisteminizin 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 hizmetlerikesinlike kaldırmanız lazım. inetd.conf dosyası ile işiniz bittiktensonra 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 vermenizgereke bilir. Bu izinleri ise /etc/hosts.allow dosyası vasıtasıylaveriyorsunuz. Örnegin , makinenize 192.168.1.1 adresinden telnet çekilebilmesini istiyorsanız, /etc/hosts.allow dosyasına aşağıdaki 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 olabilir. Bundan dolayı bu dosyayı açarak bin, daemon ve nobody kelimeleriile baslayan satırlar hariç tüm satırları ,satır başına # koyarakcomment'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 çekilmesiniyasaklarsanız, önemli bir açığı kapatmış olursunuz. Ayrıca sisteminizeping çekemeyen saldırgan sisteminiz hakkında daha az bilgi alır vehatta belki sisteminizin şu an ayakta olup olmadığından bile haberiolmaz. 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ğerleritekrar okumaya mecbur ediniz. /etc/inetd.conf dosyasını bu şekildedeğiştirmeniz makinenize telnet çekildiginde ekrana gelen issuedosyasının içeriğinin görüntülenmemesini sağlıyacaktır. Bu isesisteminiz hakkında dışarıya daha az bilgi verecek. Örneğin saldırgankernel versiyonunuzu 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ınazorlayacaktir. Daha sonra dosyaya şu satırı ekleyiniz. " nospoof on".Bu satır da makinenizi IP address spoofing'e karşı dikkatli olmayazorlayacaktı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ıntükenmesine yol açarak sizi makineyi reboot etmeye zorlar.Bu saldırıyakarşı 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 bilmemesiiçin aşağıdaki komutları çalıştırarak attribute'unu ve modunudeğ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çinbackdoor bırakabilir.
[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 çekilememsinisaglar. Dosyayı açarak içine makineye root olarak login olma hakkıtanıdığınız terminallerin adını yazabilirsiniz. Örneğin , makineyesadece birinci terminalden root olarak login olunabilmesiniistiyorsaniz dosyaya "tty1" satırını ekleyiniz, birinci ve ikinceterminallerden 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/passwddosyası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ümhesapları kaldırınız. Çünki bu hesaplar herbiri saldırganın sisteminizegirmesi için birer kapıdır. Bir kullanıcı hesabını kaldırmak içinaş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 sisteminizderoot hakkı kazanamayacaktır. Kullanıcıların su yapmasını engellemekiç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ülleayı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ırabileceğini belirtir. Tabii ki, bu sayıları kullanmak zorunda değilsinizve bunları değiştirip istediğiniz değerleri yazabilirsiniz.
p) Derleyiciler ve rpm.
Sisteminizde Derleyicinin bulunması (gcc, cc) sisteminize sızmışsaldırgana sisteminizde kaynak kodunu derleyerek çalıştırmasına izinverir.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ırganrpm komutunu kullanarak istediği programı sisteminize yükleyebilir.
Fakat rpm derleyiciler gibi degil. Derleyiciyi uninstall ettiktensonra tekrar install edebilirsiniz. Rpm için ise aynı şey geçerlideğil.Yapmanız gereken şey rpm komutunu /bin/ dizininde saldırganindüşünemeyeceği bir yere kopyalamaktır. Hatta en saglami rpm'i birfloppy'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 veyanlışlıkla yazılmış bir şifre arar. Saldırgana minimum imkan tanımak için history uzunluğunu mümkünolduğu kadar kısa tutunuz, örnegin 20 olsun. 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ızyeterli olacaktır.
r) /etc/lilo.conf
Makineniz herkesin girip-çıka bileceği bir mekanda ise aşağıdakiayarları yapmanızde fayda vardir. Makine sadece siz ve güvendiğinizinsanları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 buda LILO'ya parametre verilmesini engeller. restricted satırı makineninsingle 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 alabileceginiz tek kaynak log'lardır. Bundan dolayı,sisteminizi kırmış olan bir saldırgan ,işi bittikten sonra logdosyaları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ınprint 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 printertanıtılmamış ola bilir, her log'un çıktısını almak fazla masraflı vekarışık ola bilir.Bundan dolayı en iyi yöntem log'ların başka birmakineye kopyalanmasıdır. Log'ları kopyalacağınız örnek makinenin adılogserver olsun.Bu durumda sizin makinenizin /etc/syslog.confdosyası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" olarakdeğiştirmeniz ve değişikliği kaydettikten sonra her iki makinedeaş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 komutladeğiştiriniz
[root@server /root]# chmod 700 /etc/rc.d/init.d/*
NOT: Genel olarak kullanıcılara mutlaka görmeleri gereken dosyalarve dizinler hariç , hiç bir dosya ve dizine yazma ve okuma iznivermemeye ç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 şifresinideğiştirirken, passwd programı /etc/passwd dosyasına yazmak için roothakkı kazanır. Saldıgran bu tür programları farklı şekilde kullanaraksisteminize zarar vere bilir. Bundan dolayı sistemdeki tüm suid bitlidosyaların bulunup, bunlardan kullanıcıların kullanmak zorundaolmadıklarını tespit edilerek suid bitinin kaldırılmasılazım.Sistemdeki suid bitli dosyalar aşağıdaki komut kullanılarakbuluna 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 hangidosyaların kullanıcı tarafından çalıştırılmaması gerektiğine kararverin. Daha sonra "chmod a-s dosya_adi" komutu ile bu dosyanın suidbitini kaldırınız.Örnegin kullanıcının /usr/sbin/traceroute ve/bin/ping kullanmasına gerek 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ş olanbir kullanıcı bu program ve dosyaların bulunamaması için onları gizliolarak 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ürekliinceliyor olmanız lazım. Sistemdeki gizli dosyaları görmek içinaş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ılabilen Dosya ve Dizinler
Sisteminizi sürekli tarayarak sizin yazma izni verdiginiz dosya vedizinler hariç hiç bir dosya veya dizinin herkes tarafından yazılabilirolmamasına dikkat etmeniz lazim. Sisteminizi kırmayı başarmış olan birsaldırgan sisteme tekrar geri döne bilmek bu tür dosyaları ve dizinleribackdoor olarak bırakmış ola bilir. Bu tür dosya ve dizinleri bulmakiçin aşağıdaki komutu çalıştırınız.
[root@server /root]# find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \;
|