Son zamanlarda müşterilerimden gelen güvenlik endişelerinde belirgin bir artış yaşıyoruz. Özellikle WordPress sitelerinde yaşanan hack girişimleri ve güvenlik açıkları, işletme sahiplerini oldukça tedirgin ediyor. Geçtiğimiz ay yine bir müşterim, sitesinde yaşadığı güvenlik sorunu nedeniyle büyük bir panik yaşadı. Sorunun temel nedenini araştırdığımızda karşımıza çıkan şey oldukça basitti: yanlış yapılandırılmış dosya izinleri.
WordPress dosya izinleri, web sitenizin güvenliği için kritik öneme sahip olmasına rağmen, çoğu site yöneticisi tarafından göz ardı ediliyor. Doğru yapılandırılmamış dosya izinleri, sitenizi ciddi güvenlik tehditlerine açık hale getirirken, aşırı kısıtlayıcı izinler de sitenizin düzgün çalışmasını engelleyebiliyor. Bu yazıda, WordPress dosya izinlerini güvenli bir şekilde nasıl yapılandıracağınızı, hangi dosyalar için hangi izin seviyelerinin uygun olduğunu ve güvenliğinizi maksimum seviyeye çıkaracak pratik adımları ele alacağız.
WordPress Dosya İzinleri Temelleri
WordPress dosya izinleri, Linux/Unix tabanlı sunucularda üç rakamdan oluşan bir sistemle belirlenir. Her rakam farklı kullanıcı grupları için yetkileri temsil eder: sahip (owner), grup (group) ve diğerleri (others). Bu sayısal sistemde 4 okuma, 2 yazma ve 1 çalıştırma yetkisini ifade eder.
Örneğin, 644 izni şu anlama gelir: dosya sahibi okuyup yazabilir (6=4+2), grup üyeleri ve diğer kullanıcılar sadece okuyabilir (4). WordPress sitelerde en yaygın kullanılan izin kombinasyonları 644, 755 ve özel durumlarda 600’dür.
Çoğu WordPress kullanıcısının yaptığı en büyük hata, tüm dosya ve klasörler için aynı izin seviyesini kullanmaktır. Oysa farklı dosya türleri farklı güvenlik seviyeleri gerektirir. wp-config.php gibi hassas yapılandırma dosyaları için çok kısıtlayıcı izinler kullanırken, tema dosyaları için daha esnek izinlere ihtiyaç duyarsınız.
Güvenli İzin Yapılandırması: Dosya Türlerine Göre Ayarlar
WordPress kurulumunuzda farklı dosya türleri için önerilen güvenli izin seviyelerini inceleyelim. Bu ayarlar, güvenlik ve işlevsellik arasında optimum dengeyi sağlamak için uzun yılların deneyimi sonucu oluşturulmuş standartlardır.
Temel WordPress Dosyaları
WordPress’in ana dizininde bulunan dosyalar için 644 izni en uygun seçenektir. Bu izin seviyesi, index.php, wp-blog-header.php ve diğer temel WordPress dosyalarının güvenli bir şekilde çalışmasını sağlarken, gereksiz yazma yetkilerini engelleyerek güvenliği artırır.
wp-config.php dosyası özel dikkat gerektiren bir istisnadır. Bu dosya veritabanı bilgilerinizi ve güvenlik anahtarlarınızı içerdiği için 600 veya 644 izni kullanılmalıdır. Bazı uzmanlar ekstra güvenlik için 600’ü önerirken, bazı hosting sağlayıcıları 644’ü gerekli kılabilir.
Klasör Yapısı İzinleri
WordPress klasörleri için standart izin 755‘dir. Bu izin, klasör sahibinin tam yetkiye sahip olmasını sağlarken, diğer kullanıcıların sadece okuma ve çalıştırma yetkisine sahip olmasını garanti eder. wp-content, wp-includes, wp-admin klasörleri dahil olmak üzere tüm ana klasörler için bu izin seviyesi uygundur.
Tek istisna wp-content/uploads klasörüdür. Bu klasörün 755 izni ile çalışması gerekir çünkü WordPress’in medya dosyalarını yükleyebilmesi için yazma yetkisine ihtiyacı vardır. Ancak güvenlik açısından bu klasörde PHP dosyalarının çalıştırılmasını engellemek için .htaccess kuralları eklemenizi öneririm.
Hosting Türüne Göre Özel Durumlar
Farklı hosting türleri, dosya izinleri konusunda farklı yaklaşımlar gerektirebilir. Shared hosting, VPS ve dedicated server ortamlarında izin yapılandırması değişkenlik gösterebilir.
Shared hosting ortamlarında çoğunlukla standart 644/755 izin kombinasyonu sorunsuz çalışır. Ancak bazı shared hosting sağlayıcıları, güvenlik nedeniyle daha kısıtlayıcı politikalar uygulayabilir. Bu durumda hosting desteği ile iletişime geçerek uygun izin seviyelerini öğrenmeniz gerekir.
VPS ve dedicated server ortamlarında daha esnek izin yapılandırması mümkündür. Bu ortamlarda özellikle wp-config.php için 600 izni kullanmak, wp-content/uploads klasöründe PHP çalıştırmayı tamamen devre dışı bırakmak ve tema/plugin dosyaları için daha kısıtlayıcı izinler uygulamak mümkündür.
Cloud Hosting ve CDN Entegrasyonu
Modern WordPress sitelerinin çoğu cloud hosting hizmetleri ve CDN’ler kullanıyor. Bu durumda dosya izinleri yanında ek güvenlik katmanları da devreye giriyor. Amazon S3, Cloudflare veya benzeri hizmetler kullanıyorsanız, yerel dosya izinleri kadar cloud tabanlı erişim kontrollerini de doğru yapılandırmanız gerekir.
Özellikle medya dosyalarınızı cloud storage’da saklıyorsanız, wp-content/uploads klasörünün izinlerini daha da kısıtlayıcı hale getirebilirsiniz. Bu durumda sadece gerekli cache dosyaları için yazma yetkisi yeterli olacaktır.
Dosya İzinlerini Kontrol Etme ve Değiştirme Yöntemleri
Dosya izinlerinizi kontrol etmenin ve değiştirmenin birkaç farklı yolu bulunmaktadır. En yaygın yöntemler FTP/SFTP istemcileri, cPanel File Manager ve SSH bağlantıları üzerinden terminal komutlarıdır.
FTP istemcileri kullanarak izin değişikliği yapmak en kolay yöntemdir. FileZilla, WinSCP gibi popüler FTP istemcilerinde dosya üzerine sağ tıklayıp “File permissions” veya “Chmod” seçeneğini kullanabilirsiniz. Burada hem sayısal değerleri (644, 755) hem de checkbox’ları kullanarak izinleri ayarlayabilirsiniz.
Toplu izin değişikliği yapmanız gerekiyorsa SSH erişiminiz varsa terminal komutları en etkili yöntemdir. Örneğin, tüm WordPress dosyalarını 644’e ayarlamak için find /path/to/wordpress/ -type f -exec chmod 644 {} \; komutunu, klasörleri 755’e ayarlamak için ise find /path/to/wordpress/ -type d -exec chmod 755 {} \; komutunu kullanabilirsiniz.
Otomatik İzleme ve Uyarı Sistemleri
Dosya izinlerinizi düzenli olarak kontrol etmek güvenliğinizi artırır. Wordfence, Sucuri Security gibi güvenlik eklentileri dosya izinlerinizdeki değişiklikleri izleyebilir ve anormal durumları size bildirebilir. Bu eklentiler ayrıca önerilen izin seviyelerini otomatik olarak uygulama seçeneği de sunar.
Özellikle e-ticaret siteleri ve kurumsal WordPress kurulumları için dosya bütünlüğü izleme kritik öneme sahiptir. Bu sistemler sadece izin değişikliklerini değil, dosya içeriklerindeki değişiklikleri de takip ederek potansiel hack girişimlerini erken tespit edebilir.
Sonuç ve Eylem Planı
WordPress dosya izinleri, web sitenizin güvenliği için temel taşlardan biridir. Doğru yapılandırılmış izinler, hem güvenlik açıklarını kapatır hem de sitenizin performansını optimize eder. Unutmayın ki mükemmel güvenlik, birden fazla katmanın doğru bir şekilde uygulanmasıyla elde edilir.
Bugün yapmanız gereken ilk adım mevcut dosya izinlerinizi kontrol etmektir. wp-config.php dosyanızın 600 veya 644 izinle korunduğundan, temel klasörlerin 755, dosyaların 644 izinle ayarlandığından emin olun. Ardından bir güvenlik eklentisi kurarak düzenli izleme sistemini devreye alın.
Dosya izinleri konusunda kararsız kaldığınız durumlar için mutlaka teknik destek alın. Yanlış yapılandırma sitenizi çalışamaz hale getirebileceği gibi, güvenlik açıklarına da yol açabilir. Güvenlik bir kerelik işlem değil, sürekli bakım gerektiren bir süreçtir.