WordPress dosya izinleri: güvenli web sitesi ve web sunucusu izinlerini yapılandırma kılavuzu

Yayınlanan: 2020-07-02

WordPress, PHP çalıştıran herhangi bir işletim sisteminde hemen hemen çalışabilir. Ancak, WordPress web sitelerinin büyük çoğunluğu Linux üzerinde çalışır. Bu nedenle Linux dosya izinlerini anlamanız önemlidir.

Dosya izinlerini doğru almak çok önemlidir. Yanlış dosya izinlerini ayarlamak, web sitenizi saldırıya açabilir. Yanlış dosya izinleri, yetkisiz kullanıcıların potansiyel olarak hassas dosya ve verilere erişmesine izin verebilir. Bu tür veriler daha sonra daha büyük bir saldırı için bir sıçrama tahtası olarak kullanılabilir.

Bir WordPress yöneticisi olarak, özellikle Linux'ta yeniyseniz, dosya izinleri biraz göz korkutucu görünebilir. Korkma! Bu kılavuz, Linux'ta hangi dosya izinlerinin sıfırdan olduğunu açıklar. Ayrıca, Linux dosya izinlerinin WordPress web sitenize nasıl uygulandığını da açıklar.

İçerik tablosu

  • Dosya izinleri nedir?
    • İzin grupları
    • İzin türleri
  • izinler temsili
  • Önerilen WordPress dosya izinleri
  • WordPress dosya izinleri nasıl düzeltilir?
    • Paylaşılan bir barındırma hizmetinde
    • FTP aracılığıyla
    • SSH aracılığıyla
  • Bonus ipucu: dosya izinlerinin ötesinde güvenlik

Dosya izinleri nedir?

İzin grupları

Her şey kim ile başlar. Diğer tüm işletim sistemlerinde olduğu gibi, Linux'un da bir kullanıcı ve grup kavramı vardır. Bir dosyaya kimin erişeceğini tanımlarken, bir Linux sistemindeki her dosya ve dizinin üç izin grubu vardır.

  • Sahip
    • Her dosya veya dizinin bir sahibi vardır.
    • Sahip izinleri yalnızca dosya veya dizinin sahibi için geçerlidir. Diğer kullanıcıların eylemlerini etkilemezler.
  • Grup
    • Her dosya veya dizine, kendisine erişim izni verilen bir grup kullanıcı atanabilir.
    • Grup izinleri yalnızca dosyaya veya dizine atanmış grup için geçerlidir. Diğer kullanıcıların eylemlerini etkilemezler.
  • Diğer
    • Her dosya veya dizin, "diğer herkesin" hangi izinlere sahip olduğunu tanımlayabilir. Yani sahibi veya belirlediğimiz grup dışında.
    • Diğer izinler sistemdeki diğer tüm kullanıcılar için geçerlidir. Bu, istemeden herkese erişime izin verebileceğinizden en çok izlemek istediğiniz izin grubudur.

İzin türleri

Artık bir dosyaya veya dizine kimin erişimi olduğunu nasıl belirleyeceğimizi bildiğimize göre, dosyalar veya dizinler için her bir sahip , grup ve diğerlerine ne tür izinler vereceğimizi seçmemiz gerekiyor. Bir izin grubuna ( sahip , grup , diğer ) verebileceğimiz izin türleri şunlardır:

  • Okumak
    • Okuma izni türü, bir kullanıcının dosyanın içeriğini okuma yeteneğini ifade eder.
  • Yazı yazmak
    • Yazma izni, bir kullanıcının dosyanın içeriğini yazma ve/veya değiştirme yeteneğini ifade eder.
    • Bir kullanıcının içeriğini okuma yeteneği olmadan bir dosyaya yazmasına izin vermek mümkündür.
  • Uygulamak
    • Yürütme izni, kullanıcının bir dosyayı, örneğin bir komut dosyasını çalıştırma yeteneğini etkiler.
    • Yürütme izni, bir kullanıcının bir dizinin içeriğini görüntülemesine de izin verir.

izin gösterimi

Artık izinlerin nasıl çalıştığını anladığımıza göre, bir Linux izninin gerçekte nasıl temsil edileceğine bakalım. Dosya izinleri 3 sayı dizisi olarak saklanır. Ancak, harfler olarak da gösterilebilirler, bu da onları okumayı biraz daha kolaylaştırır. Önce bu sayıların ne anlama geldiğini anlayalım.

  1. İlk sayı
    • Sahibine verilen izinler
  2. ikinci sayı
    • Gruba verilen izinler
  3. Üçüncü sayı
    • Diğerlerine verilen izinler ( sahip ve grup hariç diğer herkes)

Her sayı, daha önce tartıştığımız bir veya daha fazla izin türünün birleşimine karşılık gelir. Bunu anlamak, görselleştirildiğinde çok daha kolaydır. Her izin türü , her bir izin grubu için birlikte eklenen bir ağırlık taşır.

Linux dosya ve dizin izinleri

Kafası karışmış? Başınızı etrafına sarmak biraz zaman alabilir ve biraz pratik yapabilir. Bu arada, her bir izin grubuna atayabileceğiniz tüm olası dosya izinlerinin bir tablosu burada.

Numara Edebiyat Açıklama
0 (0+0+0) --- erişim yok
1 (0+0+1) --x Uygulamak
2 (0+2+0) -w- Yazı yazmak
3 (0+2+1) -wx Yaz ve Çalıştır
4 (4+0+0) r-- Okumak
5 (4+0+1) rx Oku ve Çalıştır
6 (4+2+0) rw- Oku ve yaz
7 (4+2+1) rwx Oku, Yaz ve Çalıştır

Somut bir örnek görmek gerekirse, 644 dosya izni şu anlama gelir:

  • dosya veya dizini okumak ve yazmak için sahip izni
  • grubun dosyayı veya dizini okuma izni var
  • diğerinin dosyayı veya dizini okuma izni var

Dosya izinleri 644 açıklandı

Tipik olarak, bu değerlerin aralarında boşluk olmadan ve başında ek - veya d ile temsil edildiğini görürsünüz. normal bir dosyayı belirtir. d bir dizini belirtir. Aşağıda, bir dizindeki dosyaları listelemek için Linux ls -la komutunun kullanıldığı bir örnek verilmiştir.

 $ ls -la
toplam 0
drwxr-xr-x 4 kullanıcı grubu 128 25 Mayıs 23:25 .
drwxrwxrwt 8 kök çark 256 25 Mayıs 23:25 ..
drwxr-xr-x 2 kullanıcı grubu 64 25 Mayıs 23:25 dizini
-rw-r--r-- 1 kullanıcı grubu 0 25 Mayıs 23:25 file.txt

Önerilen WordPress dosya izinleri

Yanlış WordPress dosya izinlerini ayarlamak, yanlışlıkla diğer kullanıcılara istediğinizden erişim izni vermenize neden olabilir. En kötü senaryoda, bu, bir saldırganın erişimi olmayan önemli bir dosyanın içeriğini değiştirmesine izin verebilir. Ayrıca, İnternet'teki herhangi bir kullanıcının WordPress kurulumunuzdaki hassas dosyaları okumasına izin verebilir.

Bu nedenle WordPress dosya izinlerini asla 777 (-rwxrwxrwx) olarak ayarlamamalısınız. Bu, o dosyayı kontrol edebilecek konumda olan herkese tam okuma, yazma ve yürütme erişimine izin verir. Bu, FTP veya SSH aracılığıyla değişiklik yapan bir üçüncü taraf veya bir yükleme formu aracılığıyla bir saldırgan olabilir.

Öte yandan, WordPress'in işini yapması için işleri çok kısıtlayıcı hale getirmemeye dikkat etmeniz gerekiyor. WordPress'in yanı sıra temalar ve eklentilerin çoğu zaman birkaç dosyada güvenli bir şekilde değişiklik yapması gerekir. Örneğin, WordPress sitenizi güvenlik açıklarına karşı güvende tutmak için otomatik güncellemeler yaptığında.

Bu nedenle, argüman uğruna, 444 (-r–r–r–) izni, WordPress web sitenizin arızalanmasına neden olabilir. 444 ile WordPress'in yalnızca okumasına izin verilecek , bu nedenle otomatik güncellemeler başarısız olacaktır . Bununla birlikte, WordPress'i salt okunur izinlerle çalıştırmak mümkündür ( 444 veya r–r–r–). Çok başarılı bir kurulum olacak. Ancak, yukarıda belirtilen sınırlamaları dikkate almanız gerekecektir.

Bazı yönetilen WordPress barındırma sağlayıcıları bunu kutunun dışında destekler. WordPress'i bu tür izinlerle çalıştırmak istiyorsanız, önce hazırlama ortamında deneyin.

WordPress tarafından önerilen dosya izinleri aşağıdaki gibidir.

Tip sayılar Edebiyat Açıklama
dizinler 755 drwx-wx-wx WordPress kurulum dizinleri
Dosyalar 644 -rwxr--r-- WordPress çekirdeği, WordPress temaları ve eklentileri (bazı temalar ve eklentiler için istisnalar geçerli olabilir)
wp-config.php 600 -rw------- WordPress yapılandırma dosyası
.htaccess 644 veya
600
-rw-r--r--
-rw-------
Apache HTTP Sunucusu yapılandırma dosyası (Nginx veya Apache HTTP Sunucusu dışında bir web sunucusu kullanıyorsanız geçerli olmayabilir)

WordPress dosya izinleri nasıl düzeltilir?

Bir barındırma ortamı diğerinden farklı olsa da, her zaman WordPress dosya izinlerini kontrol etmenin bir yolunu bulacaksınız.

Paylaşılan barındırma kontrol paneliniz aracılığıyla WordPress dosya izinlerini düzeltme

Paylaşımlı barındırma kullanıyorsanız, büyük olasılıkla cPanel veya Plesk gibi bazı kontrol panellerine erişiminiz olacaktır. Bu durumda, WordPress sitenizdeki dosya izinlerini değiştirmek için atmanız gereken adımlarla ilgili olarak barındırma sağlayıcınıza danışın.

FTP üzerinden WordPress dosya izinlerini düzeltme

WordPress dosya izinlerini düzeltmek, FileZilla veya Cyberduck gibi bir FTP istemcisi aracılığıyla kolayca yapılabilir. Aşağıdaki ekran görüntüsü Cyberduck'tan alınmıştır. İzinlerini değiştirmek istediğiniz dosyaya veya dizine sağ tıklayın, Bilgi öğesine ve ardından İzinler sekmesine tıklayın.

İşlem Filezilla'da benzer. Dosyaya sağ tıklayın, Dosya izinleri'ni seçin ve benzer bir iletişim kutusu ile karşılaşacaksınız.

FTP istemcisi ile dosya izinlerini değiştirme

SSH aracılığıyla WordPress izinlerini düzeltme

Halihazırda bir SSH istemcisi kullanıyorsanız, dosya izinlerini değiştirmek için Linux chmod komutunu çalıştırabilirsiniz. Yukarıdakiyle aynı örneği alarak wp-config.php izinlerini 644'ten 600'e değiştirmek için aşağıdaki komutları kullanırdık:

 # dizini WordPress kurulumunuzun konumuna değiştirin
$ cd /var/www/html
# wp-config.php dosyasının ayrıntılarını listeleyin
$ ls -la wp-config.php
-rw-r--r-- 1 www-data www-data 7368 2 Eylül 2019 wp-config.php
# wp-config.php'nin izinlerini mevcut 644'ten 600'e değiştirin
$ chmod 600 wp-config.php
# değişikliğinizi doğrulayın
$ ls -la wp-config.php
-rw------- 1 www-data www-data 7368 2 Eylül 2019 wp-config.php

Düzgün yapılandırılmış WordPress dosya izinleri, daha güvenli bir web sitesi anlamına gelir

Nelerin kapsandığını tekrar hatırlayalım. Dosya izinlerinin, bir Linux sisteminde bir dosyaya veya dizine kimin ve nasıl erişilebileceğini ve/veya değiştirilebileceğini belirtmemize izin verdiğini gördük. Ayrıca hem SFTP istemcisi hem de SSH aracılığıyla izinlerin nasıl değiştirileceğini tartıştık. Ancak, tartıştığımız en önemli şey, WordPress web sitenizde dosya izinlerini doğru bir şekilde ayarlamaya neden dikkat etmeniz gerektiğidir.

İlk başta sıkıcı bir süreç olsa da, yanlış dosya izinleri WordPress web sitenizdeki hassas dosyaları açığa çıkarabilir. Ayrıca, doğru koşullar sağlandığında, bir saldırganın düşük önemdeki bir güvenlik açığını daha tehlikeli bir güvenlik açığına yükseltmesine izin verebilirler.

Artık dosya izinlerinin Linux'ta nasıl çalıştığını ve WordPress sitenizin güvenliğini nasıl etkilediğini daha iyi anladığınıza göre, bu bilgileri fazla serbest olan tüm WordPress dosya izinlerini desteklemek için kullanın.

Bonus güvenlik ipuçları: WordPress dosya izinlerinin ötesinde

Doğru WordPress dosya izinleri, WordPress güvenliği konusunda çalışmaya başlamak için harika bir yerdir. Ancak, endişelenecek tek şeyden çok uzaklar. WordPress web sitenizin güvenlik durumunu iyileştirmek için yapmanız gereken diğer şeyler şunlardır:

  • Bir WordPress etkinlik günlüğünde sitenizde olan her şeyin kaydını tutun,
  • Bir WordPress dosya bütünlüğü izleme eklentisi kullanın,
  • Güçlü WordPress şifre politikalarını uygulayın,
  • WordPress web sitenize İki faktörlü kimlik doğrulama ekleyin,
  • Bir WordPress güvenlik duvarı kurun / çevrimiçi bir WordPress güvenlik duvarı hizmeti kullanın.