| Editor Login | Register | ||
| > Bilgisayar > Linux |
|
|
| tmp güvenliği |
|
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 |
|
| Bağlantılar: bilgininefendisi.net |
| Open Source Document Project | AUP&TOS |