Skip to main content

Posts

Showing posts with the label Nginx

Ansible Nginx with ModSecurity Automation

  Dalam era digital yang semakin kompleks, keamanan web menjadi prioritas utama bagi banyak organisasi. Salah satu kombinasi alat yang efektif untuk meningkatkan keamanan aplikasi web adalah Nginx dengan ModSecurity. Nginx, sebagai server web yang cepat dan andal, dan ModSecurity, sebagai firewall aplikasi web (WAF), bekerja bersama untuk melindungi aplikasi dari berbagai serangan siber. Untuk mempermudah proses instalasi dan konfigurasi, Ansible hadir sebagai alat otomatisasi yang kuat. Artikel ini akan membahas langkah-langkah detail tentang bagaimana mengotomatiskan instalasi dan konfigurasi Nginx dengan ModSecurity menggunakan Ansible. Dengan code Ansible ini akan mampu menyederhanakan proses deployment dan memastikan konfigurasi keamanan yang konsisten di seluruh lingkungan server. Code Ansible berikut bisa menjadi awal untuk memulai belajar Nginx dengan Modsecurity module, selanjutnya bisa dikembangkan sendiri untuk rules  seperti OWASP, Rules tuning, Rate limit, dll. https://git

Konfigurasi Ansible Role Webserver Nginx

Berikut adalah panduan contoh saja use case dengan simple http nginx belum https untuk membuat role Ansible yang mengatur Nginx dengan template untuk menambahkan virtual host `www.sabang.net` misalnya: ### Langkah 1: Menentukan Struktur Peran Pertama, buat struktur direktori yang diperlukan untuk peran Ansible. ```bash mkdir -p roles/nginx/{tasks,templates,defaults,handlers} ``` ### Langkah 2: Buat `defaults/main.yml` File ini akan mendefinisikan variabel default untuk peran. ```yaml # roles/nginx/defaults/main.yml nginx_user: www-data nginx_conf_dir: /etc/nginx nginx_vhost_template: nginx_vhost.j2 nginx_sites_available_dir: "{{ nginx_conf_dir }}/sites-available" nginx_sites_enabled_dir: "{{ nginx_conf_dir }}/sites-enabled" nginx_domain: www.sabang.net nginx_root: /var/www/{{ nginx_domain }} ``` ### Langkah 3: Buat `tasks/main.yml` File ini akan berisi tugas-tugas untuk menginstal dan mengonfigurasi Nginx. ```yaml # roles/nginx/tasks/main.yml --- - name: Pastikan Ng

How to forward the real client IP to a webserver NGINX behind a GCP Load Balancer

Purpose : We want to protect the origin server from being hit directly over the internet so we make sure only CDN/WAF connect to the backend also known as Origin Protection. Scenario:   https://www.indusface.com/blog/fundamentals-of-origin-server-protection/ CDN+WAF---->GCP Load Balancer --->VM Nginx Solution: Modify Nginx Configuration ... location / {      allow 100.100.100.0/24 ; //Change with your CDN/WAF source IP that connects to the backend.     deny all; } ... set_real_ip_from 1.1.1.1/32; // Change with your LB Public IP address set_real_ip_from 130.211.0.0/22; // Private IP range for GCP Load Balancers set_real_ip_from 35.191.0.0/16; //Private IP range for GCP Load Balancers real_ip_header X-Forwarded-For;  real_ip_recursive on; ... Save and restart the services. Check the Log tail -f /var/log/nginx/access.log tail -f /var/log/nginx/error.log If there is client over the internet hit directly IP the load balancer, it will be blocked by Nginx (403 Forbidden) you should see