Neden olmasın / var / www chmod 777 var

62

Bir localhost üzerinde bir sayfa geliştirirken, bazen chmod -R 777 /var/www dosyasını çalıştırarak çözebileceğim "İzin reddedildi" hatası alıyorum. Ancak, insanlar bana bunun güvenlik nedenleriyle ilgili kötü bir fikir olduğunu söylüyorlar.

Neden /var/www değerinin 777 chmodu olmasın?

    
sordu Luis Alvarado 05.01.2011 02:03

2 cevap

75

777 genel olarak kötü bir izin ve size nedenini göstereceğim.

Bir Casino veya Las Vegas'ta nasıl görünebilse de, 777 sizin için büyük ikramiye anlamına gelmez. Aksine, dosyalarınızı değiştirmek isteyen herkes için ikramiye. 777 (ve çirkin kuzeni 666) Okuma ve Yazma izinlerine (ve 777, Execute durumunda) diğer 'e izin verir. Dosya izinlerinin nasıl çalıştığı hakkında daha fazla bilgi edinebilirsiniz, ancak kısaca üç grup var. izinler: sahip, grup ve diğer . Diğer için 6 veya 7 ( rw- veya rwx ) izni ayarlayarak, herhangi bir kullanıcıya bu dosyaları ve klasörleri düzenleme ve işleme yeteneği verirsiniz. Tipik olarak, tahmin edebileceğiniz gibi, bu güvenlik için kötüdür.

İşte benim örneğim:

[email protected]:~/Projects/AskUbuntu/20105$ cd ..
[email protected]:~/Projects/AskUbuntu$ chmod 0777 20105
[email protected]:~/Projects/AskUbuntu$ cd 20105/
[email protected]:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
[email protected]:~/Projects/AskUbuntu/20105$ touch test
[email protected]:~/Projects/AskUbuntu/20105$ chmod 0666 test 

Şimdiye kadar bir klasör oluşturdum ve "kötü" izinlerle bir dosya oluşturdum (777 ve 666). Şimdi başka bir kullanıcıya geçeceğim ve bu dosyaları değiştirmeye çalışacağım.

[email protected]:~/Projects/AskUbuntu/20105$ sudo su - malicious
[email protected]:~$ cd /home/marco/Projects/AskUbuntu/20105
[email protected]:/home/marco/Projects/AskUbuntu/20105$ ls
test
[email protected]:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco    0 2011-01-04 20:33 test
[email protected]:/home/marco/Projects/AskUbuntu/20105$ touch bad
[email protected]:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test 
[email protected]:/home/marco/Projects/AskUbuntu/20105$ cat test 
OVERWRITE

Bu "kötü amaçlı" kullanıcı olarak dosyaları dizine yerleştirebildim ve zaten var olan dosyalara metin ekleyebiliyordum. Aşağıda, 755 ve 644 dosyalarının bulunduğu bir dizinde, dosya ve dizinleri görebiliyorum ancak dosyaları düzenleyemiyorum ve yenilerini oluşturamıyorum:

[email protected]:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
[email protected]:/home/marco/Projects$ touch hey
touch: cannot touch 'hey': Permission denied

Apache izinleri için sırasıyla klasör ve dosyalar için 0755 ve 0644'e (AKA umask 022 ) yapıştırmak isteyeceksiniz. Bu, dosyaların sahibi olarak, Apache'ye çalışmak için gereken minimum erişim düzeylerini verirken bunları düzenlemenize ve değiştirmenize izin verir.

    
verilen cevap Marco Ceppi 05.01.2011 02:39
13

Temel olarak, 777 izinlerine sahip olmanız sizi kendi başınıza hacklemeyecek, ancak birisi herhangi bir yerde herhangi bir tuşa basıyorsa, izinleri yükseltmek ve bilgisayarınızda tam kontrol sağlamak için kullanılabilir. En kötüsü, izinlerinizin "7" yi kullanmasıdır - bu, okuma, yazma, ve izinleri anlamına gelir.

Diyelim ki bir hacker bilgisayarını ele geçirmek istiyor. Bir web tarayıcısı kullanarak bilgisayarınıza bağlanıp İşte ’e bağlanabilir. Görüntü yüklemesine izin veren herhangi bir sayfanız varsa, ".jpg" ile bitecek ve sunucunuza yükleyecek bir yürütülebilir dosyayı yeniden adlandırabilir. Artık web tarayıcısında bu dosyaya göz atıyor ve çalıştırıyor, çünkü linux uzantıyı umursamıyor, sadece bunun bir yürütülebilir dosya olduğunu görüyor. Bu onu çok fazla alamayabilir, ama hiç işe yaramadığı için apache kullanıcısı olduğunu biliyor. Daha sonra apache'nin yapılandırma dosyalarını düzenleyen ve daha da fazla erişim sağlayan bir değiştirilmiş sürüm yükler. Öyle ki, apache / etc / passwd'nin içeriğini çıkarır. Daha sonra sistemde kullanıcıların neler olduğunu görmek için bu bilgileri kullanabilir. Daha sonra ssh kullanarak bağlanabiliyor ve bu kullanıcılar olarak giriş yapmak için ortak şifreleri deneyebiliyor - eğer bu işe yaramazsa tam bir kaba kuvvet saldırısı kullanacak. Sudo erişimi olan bir kullanıcı olarak girerse, tüm sistem onundur.

Şimdi, bunun büyük olasılıkla olmadığını ya da gerçek bir hackerın nasıl çalışacağını söylemeyebilirsiniz. Bu doğrudur, ancak dosya, dosyaları 773 chmod olarak ayarlayarak hacker'ın kullanabileceği bir güvenlik deliği açmış olmanızdır.

Bunun yerine en az ayrıcalık ilkesini izlerseniz o zaman bu delik oluşmaz ve sisteminiz kesmek çok daha zor. İşleri düzgün yapmak daha zor olsa da, bunu yapmak için her türlü çabayı göstermelisiniz.

    
verilen cevap ImaginaryRobots 29.10.2012 18:39

Etiketlerdeki diğer soruları oku