• 17-10-2023, 19:14:06
    #1
    Merhaba,

    Şahsen kullandığım .htaccess ve config.php dosyası güvenlik önlemlerini sizlerle paylaşmak istiyorum. Siteleriniz güvende olsun. Tabii bunun dışında da çok şey var ama ben .htaccess ve config.php tarafını anlatacağım.

    Ne yaptığınızı hiç bilmiyorsanız fazla kurcalamayın ve bir uzmandan destek alın. Daha detaylı bilgi almak ve öğrenmek için; kodu ChatGPT'ye yapıştırın ve 'bu kodu bana detaylı şekilde açıklayarak anlatır mısın?' diyin veya internetten araştırın.

    Not: Her zaman lisanslı tema ve eklenti kullanın, bunu yapmazsanız hiçbir güvenlik önlemi sizi koruyamaz.
    Not2: Her zaman uzun ve zor şifre, recaptcha ve 2FA (tercihen uygulama) kullanın.

    Kullanmadan önce yedek alınız! Haydi başlayalım.


    1.
    # PHP Sorgu GÜVENLİK
    RewriteCond %{QUERY_STRING} =PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
    RewriteRule .* - [F]
    # PHP Sorgu GÜVENLİK
    Bu kod, URL'deki sorgu dizgisinin (query string) belirli bir biçimi kontrol ederek PHP ile ilgili potansiyel güvenlik açıklarını engelleme amacı taşır.


    2.
    # Updrade PHP Security
    <Files upgrade.php>
    order allow,deny
    deny from all
    </Files>
    # Updrade PHP Security
    Bu kod, internet sitesi üzerinde upgrade.php dosyasına erişimi kısıtlamak için kullanılır.


    3.
    #BEGIN WP Security - Hide PHP version in header
        <IfModule mod_headers.c>
        Header unset X-Powered-By
        Header unset Server
        Header unset X-Pingback
        </IfModule>
    #END WP Security - Hide PHP version in header
    Kodun amacı, sitenin kullanılan PHP sürümünü ve diğer bazı bilgileri gizlemektir.


    4.
    # Block xmlrpc Start
    <files xmlrpc.php>
        Require all denied
    </files>
    # Block xmlrpc End
    XMLRPC kapatma.

    Ek bilgi: WordPress xmlrpc.php Nedir ve Niçin Devre Dışı Bırakılmalı? (hostinger.web.tr)


    5.
    # PHP UPLOAD KORUMA
    <Directory "BURAYA UPLOAD KLASÖRÜNÜN FTP DİZİN ADRESİ GİRİLECEK">
    <Files "*.php">
    Order Deny,Allow
    Deny from All
    </Files>
    </Directory>
    # PHP UPLOADA KORUMA
    Sitenize zararlı PHP yazılım yüklenerek çalıştırılmasını engelleyen bir kod.


    6.
    # Script KORUMA
    <IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
    RewriteRule ^(.*)$ index.php [F,L]
    </IfModule>
    # Script KORUMA
    Zararlı script girişimlerine karşı koruma sağlar.


    7.
    # Block author scans
    RewriteEngine On
    RewriteBase /
    RewriteCond %{QUERY_STRING} (author=\d+) [NC]
    RewriteRule .* - [F]
    # Block author scans End
    Kullanıcı taramalarını engellemek için bir kod. Kullanıcı adınızı öğrenip BruteForce saldırısı atıyorlar. Aslında çok önemli değil, kullanıcı adınızı öğrenseler bile; çok zor + uzun şifre, recaptcha ve 2FA kullanıyorsanız bir şey olmaz.


    8.
    # Block directory browsing
    Options -Indexes
    # Block directory browsing End
    FTP klasörünüzde dolaşıp, ne var ne yok diye bakmalarını engeller.


    9.
    # Block access sensitive files
    <FilesMatch "^.*(((?:wp-config)\.(?:php|bak|swp))|php.ini|\.[hH][tT][aApP].*|((?:error_log|readme|license|changelog|-config|-sample)\.(?:php|md|log|txt|htm|html)))$">
        Require all denied
    </FilesMatch>
    # Block access sensitive files End
    Hassas dosyalarınıza erişmesinler.


    10.
    # Block .htaccess and .htpasswd
    <FilesMatch ^(?i:\.ht.*)$>
        Require all denied
    </FilesMatch>
    # Block .htaccess and .htpasswd End
    .htaccess dosyasına dışardan erişimi engeller.

    Bu güvenlik ayarlarının bazılarını, ek olarak cPanel'de olan SOFTACULOUS tarafında yapabilirsiniz.

    Şimdi de wp-config.php tarafından bahsetmek istiyorum; aşağıda vereceğim kod


    define( 'DISALLOW_FILE_EDIT', true );
    define( 'DISALLOW_FILE_MODS', true );
    1- Sitenizin 'kod editörü' kısmını kapatıyor. Yani artık admin panelinden kodsal düzenleme yapılamayacak. Yani sitenize erişim sağlansa bile, koda müdahale edemeyecek. En fazla bir şeyleri bozar siler ama yedekten dönersiniz.
    2- Eklenti eklemeyi ve silmeyi kapatıyor. Yani sitenize erişim sağlansa bile, saldırgan zararlı yazılım içeren eklenti yükleyerek işlem sağlayamacak. En fazla bir şeyleri bozar siler ama yedekten dönersiniz. Bu kod özellikle FTP erişimi ile alakalı eklentilerin yüklenmesini engelleyerek büyük güvenlik sağlıyor.

    Bunları ara ara açıp kapatmanız gerekebilir. Mesela haftada 1 açıp, eklentileri güncelleyip, tekrar kapatabilirsiniz.

    Bahsedebileceğimiz başka güvenlik önlemleri de var ama daha fazla derine inmek istemiyorum. WordPress güvenliği için kullanabileceğiniz eklentiler de var; mesela Headers Security Advanced & HSTS WP – WordPress plugin | WordPress.org veya WordPress Security Plugin | Wordfence

    Ne yaptığınızı hiç bilmiyorsanız kurcalamanızı tavsiye etmem. Kullanmadan önce mutlaka yedek alın.

    Not: Kodlar tüm sunucularda/yazılımlarda çalışmayabilir, kodların engelleyebileceği eklentileriniz/sistemleriniz olabilir. Mutlaka yedek alın ve kullanmadan önce sorun çıkarmadığından emin olacak şekilde deneyin.

    Teşekkürler, güvenli kalın.
  • 17-10-2023, 19:23:45
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
  • 17-10-2023, 19:25:28
    #3
    emegine saglik hocam
  • 17-10-2023, 19:27:27
    #4
    Güzel konu ve yazı ,ben siber güvenlik öğrencisiyim,neyi nasıl yapmam gerektiğini de öğretmiş oldu arkadaş teşekkürler
  • 17-10-2023, 19:28:27
    #5
    eline sağlık hocam...
  • 23-10-2023, 13:55:57
    #6
    Wordfence yüklü olmasına rağmen bu ayarları uygulayalım mı?

    Çünkü wordfence tek başında güvenlik sağlamıyor maalesef.
  • 23-10-2023, 18:38:17
    #7
    Civan adlı üyeden alıntı: mesajı görüntüle
    Wordfence yüklü olmasına rağmen bu ayarları uygulayalım mı?

    Çünkü wordfence tek başında güvenlik sağlamıyor maalesef.
    Merhaba,

    WordFence kuruluysa bu ayarların hepsinin uygulanmaması gerekiyor. Çünkü çakışabilir.

    Şöyle; default olarak WordFence kurup hiçbir şeye dokunmadıysanız problem yok. Hepsini kullanabilirsiniz. Ücretsiz versiyonda default ayarlar; WordPress root klasörünüze wordfence-waf.php diye bir dosya ekler ve korumayı buradan sağlar, ek olarak bu WAF kurallarını da .htaccess dosyanıza ekler. Bu sadece trafiği filtreleme ve giriş denemeleri (+ şifre sıfırlama) gibi basit şeylere karşı korur. Ancak, WordFence'i konfigüre ederseniz (özellikle Premium sürümde) bu verdiğim ayarlarla çakışacak ayarlar var. Çünkü, WordFence de bu verdiklerimin çoğunu yapıyor. Burada ne yaptığınızı bilmek çok önemli. Bunlar, eğer hiç bilinmiyorsa kurcalanmaması gereken dosyalar.

    Verdiklerimin WordFence ile birlikte kullanılmasında bir sakınca yok. Sadece WordFence tarafında ne eksik veya ne aktif değil, verdiklerimden hangileri de buna göre ekleniyor onu bilmek gerekli. Bu da dediğim gibi çakışmayı engellemek için.

    Her zaman bir uzmandan danışmanlık almanızı tavsiye ederim.

    Saygılarımla.