GNU/Linux >> Belajar Linux >  >> Linux

Praktik terbaik keamanan Wordpress di Linux

WordPress® adalah sistem manajemen konten (CMS) yang hebat, terutama jika Anda baru mengenal blogging atau coding. Namun, karena tingginya jumlah instalasi WordPress, Wordpress menjadi target penyerang. Kabar baiknya adalah ada banyak langkah yang dapat Anda ambil untuk membuat instalasi WordPress Anda lebih aman.

Pengguna dan izin Linux

Sudah umum bagi pengguna yang baru mengenal WordPress untuk membuka lebar izin mereka (setel 777 izin) saat mereka melihatPermission Denied kesalahan dari WordPress. Konfigurasi ini memungkinkan setiap pengguna (yang terpenting, proses server web) untuk mengubah file di instalasi WordPress Anda. Untuk mengunci ini, kami menyarankan Anda membuat satu pengguna untuk setiap instalasi WordPress sebagai pengguna protokol transfer file (FTP) untuk situs tersebut. Artikel ini mengasumsikan bahwa Anda memiliki satu situs dan Anda memberi nama server ini wp-user .

Gunakan perintah berikut untuk membuat pengguna ini:

sudo useradd wp-user -d /home/wp-user -m -s /bin/false

Catatan :Kami menyarankan Anda menggunakan otentikasi kunci Secure Shell (SSH) saja. Jika Anda berencana menggunakan otentikasi kata sandi untuk FTP, Anda harus membuat kata sandi yang kuat untuk pengguna.

Setel izin

Anda harus menjadikan pengguna, selain pengguna sistem layanan web, sebagai pemilik root dokumen situs Anda. Anda juga harus menolak izin menulis ke layanan web. Layanan web hanya memerlukan izin baca untuk menyajikan konten, dan memberikan izin menulis atau mengeksekusi untuk itu meninggalkan vektor serangan untuk orang luar. Namun, karena WordPress harus dapat mengunggah file dan memperbarui kodenya sendiri, Anda perlu sedikit membengkokkan aturan ini.

Misalnya, Anda harus mengatur kepemilikan seluruh direktori sebagai wp-user:www-data .

Pengaturan ini berarti bahwa wp-user memiliki kepemilikan pengguna, dan www-data (pengguna sistem untuk server web Apache®) memiliki kepemilikan grup. Bergantung pada sistem operasi Anda, pengguna ini mungkin juga bernama httpd atau apache . Jika Anda menggunakan nginx®, pengguna adalah nginx . Untuk mengatur izin, jalankan perintah berikut, menggantikan nilai contoh /var/www/example.com/ dengan root dokumen situs Anda:

sudo chown -R wp-user:www-data /var/www/example.com/

Gunakan izin dasar berikut untuk instalasi WordPress Anda:

  • 755 (drwxr-xr-x) untuk folder
  • 644 (-rw-r–r–) untuk file

Izin ini memberikan wp-user kemampuan untuk mengubah apa pun, dan akses hanya baca server web.

Contoh berikut menunjukkan cara menetapkan izin ini:

find /var/www/example.com/ -type d -exec sudo chmod  755 {} \;
find /var/www/example.com/ -type f -exec sudo chmod 644 {} \;

Izin ini memberikan wp-user kemampuan untuk mengubah apa pun, dan akses hanya baca server web. Meskipun ini adalah praktik umum untuk situs statis, ada beberapa file yang harus dapat diakses dan dijalankan oleh WordPress agar berfungsi dengan benar. Daftar berikut menunjukkan pengecualian dan izin yang perlu Anda atur, dengan asumsi akar dokumen yang sama:

  • find /var/www/example.com/wp-content/uploads -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/upgrade -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/themes -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/plugins -type d -exec sudo chmod 775 {} \;
  • find /var/www/example.com/wp-content/uploads -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/upgrade -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/themes -type f -exec sudo chmod 664 {} \;
  • find /var/www/example.com/wp-content/plugins -type f -exec sudo chmod 664 {} \;
  • sudo chmod 775 /var/www/example.com/wp-config.php

WordPress menggunakan direktori ini untuk pembaruan sistem, pembaruan tema dan plugin, dan unggahan lampiran blog (biasanya gambar).

Pengguna admin WordPress

Mirip dengan pengguna root Linux®, instalasi WordPress Anda dilengkapi dengan admin pengguna. Karena ini adalah pengguna administratif yang ada di hampir setiap instalasi WordPress, peretas menargetkannya dalam serangan brute force. Cara termudah untuk menutup vektor serangan ini adalah dengan menghapus pengguna admin. Kami menyarankan Anda membuat pengguna dengan nama yang berbeda, memberikan hak istimewa administrator kepada pengguna tersebut, lalu menghapus pengguna admin.

Pembaruan aman

FTP pada dasarnya tidak aman, terutama ketika Anda menggunakan otentikasi berbasis kata sandi. Jauh lebih aman untuk mengatur pembaruan kunci SSH daripada menggunakan kata sandi. Gunakan langkah-langkah berikut untuk menyiapkan pembaruan kunci SSH:

  1. Pastikan bahwa paket yang diperlukan telah diinstal pada sistem Anda. Di Ubuntu® atau Debian®, jalankan perintah berikut:

    sudo apt-get update
    sudo apt-get install php5-dev libssh2-php libssh2-1-dev
    
  2. Siapkan akses SSH Anda, lakukan langkah-langkah berikut sebagai wp-user . Karena Anda tidak mengizinkan login sebagai wp-user , Anda harus membuka shell dengan menggunakan perintah sudo berikut:

    sudo -u wp-user /bin/bash
    
  3. Gunakan perintah berikut untuk pindah ke wp-user direktori home dan mengatur kunci SSH:

    cd ~
    ssh-keygen -t rsa -b 4096
    mkdir ~/.ssh; cd ~/.ssh
    echo 'from="127.0.0.1"' cat ~/.ssh/id_rsa.pub > authorized_keys
    exit
    
  4. Selanjutnya, pastikan Anda mengatur izin dengan benar dengan menggunakan perintah berikut:

    sudo chmod 700 /home/wp-user/.ssh
    sudo chmod 040 /home/wp-user/.ssh/*
    sudo chmod 644 /home/wp-user/.ssh/authorized_keys
    
  5. Tambahkan baris berikut ke /var/www/example.com/wp-config.php . Anda berkas:

    define('FTP_PUBKEY','/home/wp-user/id_rsa.pub');
    define('FTP_PRIVKEY','/home/wp-user/id_rsa');
    define('FTP_USER','wp-user');
    define('FTP_PASS','');
    define('FTP_HOST','127.0.0.1:22');
    

Anda seharusnya dapat memperbarui WordPress, plugin, dan tema tanpa diminta untuk informasi login.

Plug-in

Kami menyarankan Anda menggunakan plugin sesedikit mungkin untuk mencapai hasil yang Anda inginkan. Namun, kami menyarankan Anda menggunakan plugin berikut untuk meningkatkan keamanan:

  • WP Keamanan Pro :Ini adalah plugin all-in-one yang memiliki fitur perlindungan seperti perlindungan login, pemindai malware, autentikasi dua faktor, dan firewall.
  • Nonaktifkan XML-RPC :Anda dapat mengunci XML-RPC dengan menggunakan .htaccess mengajukan. Namun, kecuali Anda memiliki alasan kuat untuk memerlukan kendali jarak jauh dari instalasi WordPress Anda, lebih baik nonaktifkan untuk mencegah serangan pingback.
  • Disqus :Karena sistem komentar pengguna bawaan untuk WordPress sangat rentan terhadap spam, kami menyarankan Anda menonaktifkan pendaftaran terbuka. Lakukan ini dengan menavigasi ke Setelan> Umum , lalu hapus centang Siapa saja dapat mendaftar . Kemudian gunakan Disqus untuk memoderasi komentar dan minta pengguna mengautentikasi terhadap akun Facebook® atau Google® mereka.

Linux
  1. Apa itu pengguna Linux?

  2. Praktik Terbaik Keamanan OpenSSH

  3. Daftar Pengguna di Linux - Metode terbaik

  1. 8 Praktik terbaik dengan sudo di Linux – Tindakan dan Larangan dari sudo

  2. Praktik terbaik keamanan server Linux

  3. Praktik terbaik keamanan server Windows

  1. Praktik Terbaik DNS untuk Keamanan dan Kinerja

  2. perintah su Linux

  3. Instal WordPress di Linux dengan Apache