Category: Türkçe

Date:

Linuxun güzelliklerinden birini geçen gün keşfettim: apparmor. Bu yazılım, arkaplanda çalışmakta ve belirttiğiniz programların hangi dosyalara / cihazlara erişebileceğine karar vermekte. Böylelikle güvenmediğiniz, kapalı kaynak kodlu bir programın özel dosyalarınıza erişmesini engelleyebilirsiniz.

Öncelikle programı kuralım:

sudo apt-get install apparmor apparmor-profiles apparmor-utils

Denetlemek istediğim kapalı kaynak kodlu yazılımın çalıştırılabilir dosyası:

/home/emre/.bin/pycharm-2.5.2/bin/pycharm.sh

Şimdi bunun için bir profil dosyası oluşturalım:

/etc/apparmor.d/home.emre..bin.pycharm-2.5.2.bin.pycharm.sh

ve içeriği:

#include <tunables/global>

/home/emre/.bin/pycharm-2.5.2/bin/pycharm.sh {
# Required for runserver
 #include<abstractions/base>
 #include<abstractions/apache2-common>

 / rwmixlk,
 /** rwmixlk,
 /usr/lib/jdk.1.7.0_06/bin/java rix,
 deny /[boot,mnt,media,var]/ rw,
 deny /[boot,mnt,media,var]/** rwmxlk,
 deny /dev/sd*/ rw,

 deny /home/*/.[^bin,PyCharm20,lib,idea]*/ rw,
 deny /home/*/.[^bin,PyCharm20,lib,idea]*/** rwmxlk,
 deny /home/*/[Desktop,Documents]/ rw,
 deny /home/*/[Desktop,Documents]/** rwmxlk,

}

ve kaydedelim. Ardından şu aa-enforce pycharm komuduyla bu programın tüm bu yasaklara uymasını sağlayabilir, aa-complain pycharm komuduyla ise belirttiğiniz dosyalara erişimlerini sadece takip edebilirsiniz. Ardından /etc/init.d/apparmor restart ile apparmoru yeniden başlatmanız gerekli. Erişim kayıtlarına /var/log/syslog veya /var/audit/audit.log adreslerinden ulaşabilirsiniz. Bu profilde cihazlara, Desktop ve Documents klasörlerine, 4 tanesi hariç nokta ile başlayan klasörlere erişimini engelliyoruz. Onun dışında sistemde zaten erişebildiği her şeye erişebilir durumda. "/**" içeren bu ayarın çok da güvenli olmadığı söyleniyor, tabi ki tehlikeli durumlarda tek tek "erişebildiği" klasörleri belirtmek gerek.

Eğer internet erişimini kısıtlamak isterseniz kullanmanız gereken kural:

deny /etc/hosts r,

Eğer tek tek dosyaları belirtmek isterseniz

# aa-autodep pycharm
$ ./pycharm.sh
gezin, kurcala, kapat
# aa-logprof

diyerek kullanımınız süresince kullanılan dosyaları tek tek görebilir, izin verebilir ya da reddedebilirsiniz. Ama programın her fonksiyonunu çalıştırmanız gerekli. Bir diğer husus java programları hakkında. Bu pycharm.sh dosyası içerisinden javayı çalıştırmakta. Tüm bu kısıtlamaların javaya geçmesi için /usr/lib/jdk.1.7.0_06/bin/java rix, komutundaki inherit executable ‘ix ifadesini kullanıyoruz. Ayrıca dosyayı sh pycharm.sh şeklinde çalıştırırsak bu işe yaramaz. ./pycharm.sh şeklinde çalıştırmanız gerekli.

Çalıştırdığım süre boyunca PyCharm, beklenmedik yerlere erişme talebinde bulunmadı. Şimdilik güvenli görünüyor. Ayrıca en sevdiğim Python IDEsi olma başarısını da gösterdi. Üretken olmak isteyenlere tavsiye ederim.


Share: FacebookGoogle+Email


comments powered by Disqus