Tmp dizini geçici dosyalarýn yazýldýðý bir dizindir biizm yapýcaklarýmýz dosyalarýn yazýlmasýný engellemiyecek fakat icra yetkisini önleyecektir.Yani kýsaca saldýrgan ruhlu insan gene exploitini ,bindshelini yada ne indiriyorsa gene tmp dizininize indirebilecek ama onu çalýþtýramýyacaktýr.
Hemen baþlýyalým
ideal olaný sistem kurulurken bir partion u tmp ye ayýrmaktýr ama burada yapacaðýmýzda sistemi reboot filan etmeye gerek kalmadan olucaktýr fiziksel olarak formatlamýyacaðýz diski iþleme baþlýyoruz
öncelikle 200 mb lik bir dosya oluþturuyorum bu dosya boyutu tmp dizininin boyutu olacaktýr
bu iþlemleri yapabilmek için root yetkiniz olmalýdýr
dev dizinine geçiyoruz öncelikle
Kod:
cd dev
daha sonra dosyamýzý oluþturuyoruz 200 mb boyutunda
Kod:
dd if=/dev/zero of=tmpdir bs=1024 count=200000
burada count un karþýsýndaki 200000 boyutunu göstermektedir isteðinize göre deðiþtirin bunu
daha sonra tmpMnt dosyamýz için extended dosya sistemimizi oluþturuyoruz aþaðýdkai komutu vererek
Kod:
mke2fs /dev/tmpMnt
size þu hatayý vericektir
/dev/tmpMnt is not a block special device
Proceed, anyway? (y,n)
siz burada yes i iþaretleyip devam ediyorsunuz
ve dosya sistemimizde oluþturuldu
þimdi tmp dizinimiizn yedeðini alýyoruz
Kod:
cp -R /tmp /tmp_yedek
þimdi yeni tmp dizinimizi noexec nosuid olarak mount ediyoruz
Kod:
mount -o loop,noexec,nosuid,rw /dev/tmpMnt /tmp
gerekli izini veriyoruz tmp dizinine
Kod:
chmod 0777 /tmp
yedeklerimiz eski /tmp dizinindeki dosyalarý yeni mount ettiðimiz tmp dizinine atýyoruz
Kod:
cp -R /tmp_yedek/* /tmp/
þimdide tmp yedek dizinimizi siliyoruz
Kod:
rm -rf /tmp_yedek
fstab dosyasý file system table a karþýlýk gelir bu dosya sistem yöneticisinin iþletim sistemine iþletim sisteminin hangi dosyalara ve ne þekilde ulaþýlacaðýný gösterir
þimdi etc dizinindeki fstab dosyasýný açýyoruz
Kod:
pico -w /etc/fstab
dosyanýn en alt satýrýna aþaðýdakini ekliyoruz
Kod:
/dev/tmpMnt /tmp ext2 loop,noexec,nosuid,rw 0 0
ve görünümü þu þekilde oluyor
artýk tmp dizininizde dosya icra yetkisi yoktur
tabi bir trik de var
yada bir shared library kullanmakta geri ictra yetkisi getirebilir
/lib/ld-linux.so.2 /tmp/dosya gibi
öncelikle mysql sunucusuna bir restart atýn herþeyin çalýþýp çalýþmadýðýný kontrol etin
Kod:
/etc/init.d/mysqld restart
eðer bir sorun olursaki olacaðýný hiç sanmýyorum mysql.sock dosyasýnýn sembolik baðýný yapýn bu komutla
Kod:
cd /var/tmp/
ln -fs /var/lib/mysql/mysql.sock /var/tmp/mysql.sock
baþlamýþken /dev/shm ninde güvenliðini saðlayalým
gene
Kod:
pico -w /etc/fstab
yazarak dosyayý açtýk
/dev/shm nin görüntüsü bu þekilde
Kod:
none /dev/shm tmpfs defaults 0 0
onu bu þekilde deðiþtiriyoruz
Kod:
none /dev/shm tmpfs noexec,nosuid 0 0
deðiþiklilerin olabilmesi için umount layýp sorna mount luyoruz /dev/shm yi
aþaðýdkai komutla
Kod:
umount /dev/shm
mount /dev/shm
eski /var/tmp dizinini silip linkliyoruz
Kod:
rm -rf /var/tmp/
ln -s /tmp/ /var/
þükür bitti artýk
/tmp , /var/tmp ve /dev/shm noexec nosuid olarka mount edildi biraz daha güvendesiniz
/tmp güvenliði
Yapýlmasý gereken bazi islemler:
1- Dizin erisim yetkilerini incele. Belirli kullanicilarin yetkilerini sinirla.
2- En cok kullanilan komutlarin belirledigin kullanicilarin calistirmasina izin verme(ls , wget , ps …).
3- Herhangi bir olumsuzluga karsin siteminde tripwire, samhain gibi butunluk kontrol uygulamalarini kur.
4- Uygulamalarini guncel tut.
Örnek saldýrý-1 :
[dropby23@server /tmp]$ ./date
bash: ./date: Permission denied
[dropby23@server /tmp]$ /lib/ld-linux.so.2 ./date
Thu May 8 12:20 MDT 2005
[dropby23@server /tmp]$
#pwd
/tmp
#./test.pl
-bash: ./test.pl: Permission denied
#perl /tmp/test.pl
Örnek saldýrý-2 :
ssh e800@sorubank.ege.edu.tr password:****
e800@sorubank.ege.edu.tr/$ scp /bin/poweroff.bin / e800@sorubank.ege.edu.tr:/wwwhome/
cd wwwhome
dir
poweroff /kiþisel /dersler /webödev
./poweroff
Saygýlar..