Log POST Data pada WordPress Nginx

Nginx adalah web server yang cukup populer digunakan karena konfigurasinya yang cukup simpel dan ringan. Ada saat suatu ketika kita ingin melakukan log terhadap suatu POST data. Misalkan kita ingin mengecek password apa saja yang masuk ke wordpress admin page karena ada banyaknya bruteforce. Untuk mendapatkan log tersebut, berikut adalah langkah yang dibutuhkan

  • Buka /etc/nginx/nginx.log
  • Pada http blok, masukkan baris berikut
http {
    ..........
    log_format postdata '$time_local $remote_addr "$request" $request_body';
    ..........
}
  • Pada server blok website site yang diinginkan, masukkan location berikut
server {
    .........
    location ~ ^/(wp-login) {
        access_log  /var/log/nginx/postdata.log postdata;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    ..........
}
  • Restart nginx

Dengan konfigurasi di atas, log akan muncul pada /var/log/nginx/postdata.log . Berikut adalah contoh log yang dihasilkan

23/Jul/2016:14:16:53 -0500 162.158.167.78 "POST /wp-login.php HTTP/1.1" log=usernamelogin&pwd=passwordlogin&wp-submit=Log+In&redirect_to=https%3A%2F%2Fnotulensiku.com%2Fwp-admin%2F&testcookie=1

usernamelogin dan passwordlogin adalah username dan password yang digunakan untuk login ke wordpress ini. Konfigurasi Location pada nginx dapat disesuaikan ke website biasa lainnya sesuai dengan kebutuhan.

Leave a Reply

Your email address will not be published. Required fields are marked *