Upgrade Nginx versi 1.18.0 ke versi terbaru (1.27.0) di Ubuntu 22.04

Saat tulisan ini dibuat, ditengarai bahwa Nginx versi 1.18 yang menjadi default versi Nginx di Ubuntu 22.04 sudah dianggap obsolete, dan rentan faktor keamanan. Untuk itu sangat disarankan untuk mengupgrade nya ke versi yang lebih tinggi.

Berikut adalah langkah-langkah upgrade nya menggunakan terminal/console

Pertama kali sebaiknya kita lakukan backup terhadap Nginx yang sekarang ada:

sudo cp -r /etc/nginx /etc/nginx.backup

Lakukan langkah-langkah berikut ini:

sudo apt update && sudo apt upgrade -y

Kita cabut atau hilangkan Nginx yang ada

sudo systemctl stop nginx
sudo apt-get autoremove nginx*

Kemudian tambahkan repository mainline NGinx

sudo add-apt-repository ppa:ondrej/nginx-mainline -y
sudo apt update
sudo apt install nginx-core nginx-common nginx nginx-full -y

Kita cek/periksa Nginx versi Mainline nya, perintah di bawah akan memunculkan versi terakhir yang tersedia di server:

apt-cache policy nginx

Enable/aktifkan layanan Nginx

systemctl status nginx
sudo systemctl start nginx
sudo systemctl enable nginx

Semoga berhasil !

Pengamanan Situs dengan menggunakan headers pada server Nginx

Secure Nginx from Clickjacking with X-FRAME-OPTIONS

Clickjacking

https://owasp.org/www-community/attacks/Clickjacking

X-Frame Options

Header add_header X-Frame-Options “SAMEORIGIN”;

Reference: here

Header X-XSS-Protection

When this header is being sent along with a response and the website contains an XSS attack, the browser will see this XSS attack and stop it from loading. This protection knows 3 levels:

  • X-XSS-Protection: 0; Disables the filter entirely.
  • X-XSS-Protection: 1; Enables the filter but only sanitizes the malicious script
  • X-XSS-Protection: 1; mode=block Enables the filter and completely blocks the page

Example:

add_header X-XSS-Protection "1; mode=block";
atau
add_header X-XSS-Protection "1;";

Reference

https://youtu.be/pV_uX0jDAh4?si=W6gbBjvpvniVDSDB

X-XSS-Protection headers. Protection or vulnerability?

https://webdock.io/en/docs/how-guides/security-guides/how-to-configure-security-headers-in-nginx-and-apache

Nginx config tips

Membuat semua file txt, git dan md tidak dapat di akses user

Letakkan script ini dalam file config di bagian atas

location ~.(git|txt|md)$ {
deny all;
return 404;
}

Menyembunyikan versi nginx

Pada /etc/nginx/nginx.conf, tambahkan berikut ini:

server_tokens off;

Tambahan konfigurasi yang tidak standard di Nginx

apt-get install nginx-extras

Setelah itu kita bisa menambahkan kode berikut ini di nginx.conf

server_tokens off;
more_set_headers "Server: Molly Percocet";

Blok semua tipye file tapi tidak untuk file tertentu (misalnya dengan file yang di awali dengan  .well-known )

## Disable .htaccess and other hidden files
location ~ /\.(?!well-known).* {
    deny all;
    access_log off;
    log_not_found off;
}